Sistemas Operacionais



Documentos relacionados
SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Sistemas Operacionais Gerência de Dispositivos

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

6 - Gerência de Dispositivos

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais

Gerência de Entrada/Saída

Estruturas do Sistema de Computação

Gerenciador de Entrada/Saída

SW DE E/S INDEPENDENTE DE DISPOSITIVO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

SISTEMAS OPERACIONAIS 2007

Sistemas Operacionais

Processos e Threads (partes I e II)

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Fundamentos de Sistemas Computacionais Introdução

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

ESTUDO DE CASO WINDOWS VISTA

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Sistemas Operacionais. Estruturas de SO. Edeyson Andrade Gomes.

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

7 Processos. 7.1 Introdução

Everson Scherrer Borges João Paulo de Brito Gonçalves

Sistemas Operacionais

Sistemas Operacionais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

Arquitetura e Organização de Computadores I

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Figura 01 Kernel de um Sistema Operacional

Arquitetura de Sistemas Operacionais

5 Entrada e Saída de Dados:

Sistemas Operacionais

Tipos de sistemas operacionais

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Organização e Arquitetura de Computadores

Introdução aos Sistemas

Sistema Operacional Correção - Exercício de Revisão

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Arquitetura dos Sistemas Operacionais

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Visão Geral de Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Sistema de arquivos. Prof. Valeria M. Bastos Prof. Antonio Carlos Gay Thomé 13/06/2012 1

Setores Trilhas. Espaço entre setores Espaço entre trilhas

SISTEMAS OPERACIONAIS

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

SISTEMAS OPERACIONAIS

Unix: Sistema de Arquivos. Geraldo Braz Junior

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Arquitetura de Computadores II

ENTRADA E SAÍDA DE DADOS

Conceitos de Entrada e Saída

2. Introdução aos Sistemas Operacionais

Sistemas Operacionais Cap 2 Estruturas de Sistemas Computacionais

MODELO CLIENTE SERVIDOR

Sistemas Operacionais. Prof. André Y. Kusumoto

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Sistemas Operacionais

Introdução aos Sistemas Operacionais. Computador = hardware + software. Como é formado o meu computador? E como estes componentes se comunicam?

Fundamentos de Sistemas Operacionais. Sistema de Arquivos. Prof. Edwar Saliba Júnior Março de Unidade Sistemas de Arquivos

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Operacionais Processos e Threads

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operativos. Funções genéricas de um S.O.

Sistemas Operacionais

Mecanismo de Interrupção

Arquitetura de Computadores. Sistemas Operacionais IV

SISTEMAS OPERACIONAIS

Sistemas Distribuídos

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES DISPOSITIVOS DE ENTRADA E SAÍDA. Prof. Dr. Daniel Caetano

SISTEMAS OPERACIONAIS. Prof. André Dutton

Entrada e Saída (Input/Output)

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

Organização de Computadores 1

Introdução aos Computadores

Transcrição:

Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Software Sistema de Entrada/Saída Princípios de Software Tratadores (Manipuladores) de Interrupções Acionadores de Dispositivos (Device Drivers) Subsistema de E/S Ciclo de Operações em uma Requisição de E/S Desempenho dos Sistemas de E/S 2 Sistemas Operacionais -Entrada e Saída

Princípios de Software Conceito chave: o software de E/S deve buscar independência do dispositivo Características/objetivos importantes: Uniformidade de nome para os dispositivos (strings/inteiros) Manipulação de erros (devem ser feitas o mais próximo possível do hardware) Transferências síncronas (bloqueantes) e assíncronas (manipuladas por interrupção) Dispositivos compartilhados ou dedicados (possibilidade de deadlock) 3 Sistemas Operacionais -Entrada e Saída Visão Geral Processos Software Hardware Subsistema de E/S Device Drivers Manipuladores de Interrupção Controladores Dispositivos Independente do dispositivo Dependente do dispositivo 4 Sistemas Operacionais -Entrada e Saída

Tratadores de Interrupções São eventos complicados de se tratar. Assim, devem ser tratadas por uma pequena parte (parte específica) do SO Uma forma de tratá-las isoladamente é bloquear os processos que estiverem aguardando operações de E/S até uma interrupção de operação completada A rotina de tratamento desta interrupção libera o processo bloqueado (UP em um semáforo, SIGNAL em um monitor ou envio de uma mensagem) 5 Sistemas Operacionais -Entrada e Saída Acionadores de Dispositivos Todo código dependente do dispositivo se concentra do acionador (driver) do dispositivo Cada acionador manipula um dispositivo ou uma classe de dispositivos semelhantes Acionadores para: fita magnética, rede, Função: terminais etc receber comandos gerais (abstratos) sobre acessos aos dispositivos e traduzi-los para comandos específicos (executados pelos controladores) 6 Sistemas Operacionais -Entrada e Saída

Acionadores de Dispositivos O acionador é a parte do SO que reconhece o hardware, ou seja, sabe quantos registradores um controlador possui, para que eles servem, como são utilizados e quais são seus comandos. Devido a dependência entre os acionadores e as chamadas de sistema (system calls), os fabricantes desenvolvem, para um mesmo dispositivo, diferentes acionadores, um para cada SO. Dispositivo adicionado acionador deve ser acoplado ao kernel do SO 7 Sistemas Operacionais -Entrada e Saída Acionadores de Dispositivos Exemplo: leitura de um dado (bloco) em um disco System Call E/S Ler bloco n Acionador de disco Ler bloco no Disco X, Cilindro Y, Trilha W, Setor Z Controlador de disco disco disco disco Se acionador estiver desocupado, a requisição é aceita, caso contrário, ele a põe em uma fila de requisições pendentes Transcreve a requisição abstrata em ações concretas (comandos). Por exemplo, para um disk driver: informar onde o bloco se encontra no disco verificar se o motor do driver está girando determinar se o braço está no cilindro apropriado etc 8 Sistemas Operacionais -Entrada e Saída

Acionadores de Dispositivos Decididas quais operações realizar e em que ordem, o acionador escreve os comandos nos registradores do controlador Alguns controladores aceitam apenas um comando por vez, outros aceitam uma lista deles. Após o(s) comando(s) ter(em) sido(s) emitido(s), podem ocorrer duas situações o acionador deve se bloquear até que a operação seja completada (requisição bloqueante) no caso da operação ser lenta (envolvendo movimentos mecânicos, como no nosso exemplo) acionador deve aguardar, no caso de operações rápidas por exemplo, o deslocamento da tela em terminais requer apenas a escrita de um poucos bytes nos registradores do controlador (microssegundos) 9 Sistemas Operacionais -Entrada e Saída Acionadores de Dispositivos Se for o caso, uma vez completada a operação, o controlador gera uma interrupção que ativa o acionador O acionador verifica a ocorrência de erros Se tudo estiver correto, ele passa as informações (dados lidos) para a camada superior (Subsistema de E/S) Finalmente, ele retorna as informações de situação de erro (status) Caso haja, pega a próxima requisição; caso contrário, aguarda pela próxima... 10 Sistemas Operacionais -Entrada e Saída

Subsistema de E/S Responsável por realizar as funções comuns a todos os dispositivos (gerência dos dispositivos). Conhecido com Software de E/S Independente de Dispositivo Funções: Prover uma interface uniforme para as operações de E/S (software do usuário) Fazer o mapeamento simbólico dos nomes dos dispositivos para os seus respectivos acionadores (No Unix, p. ex., cada nome de dispositivo é mapeado em um nó-i de um arquivo especial com informações do acionador) Pode haver interesse em se prevenir que usuários acessem dispositivos que não estão autorizados. Isto está intimamen-te relacionado com a identificação (p. ex., bits rwx no Unix) 11 Sistemas Operacionais -Entrada e Saída Subsistema de E/S Prover um tamanho de bloco uniforme para as camadas superiores independente do dispositivo (p. ex., tratando vários setores como um único bloco lógico) Buferização: para dispositivos de blocos: hardware transfere blocos inteiros, mas processos do usuário manipulam unidades arbitrárias para dispositivos de caracteres: coletar caracteres e submetêlos em conjunto para os dispositivos Para diminuir efeitos de diferença de velocidade entre dispositivos durante uma cópia Para suporte à semântica de cópia (versão que vale é a do instante da chamada) 12 Sistemas Operacionais -Entrada e Saída

Subsistema de E/S Pode prover a implementação do algoritmo de localização de blocos livres nos dispositivos de bloco, uma vez que ele é independente do dispositivo Controlar a alocação e liberação dos dispositivos compartilhados ou dedicados de acordo com sua disponibilidade Realizar a ordenação das operações de E/S, com o objetivo de melhorar o desempenho global do sistema (ex., ordenação de operações de leitura em blocos espalhados de um disco) Gerenciamento de erros persistentes que são reportados pelos acionadores. Exemplo: Bloco ruim na área de usuário informar erro para o mesmo em área crítica solicitar intervenção do administrador 13 Sistemas Operacionais -Entrada e Saída É o Software no Nível do Usuário A maior parte do software de E/S está embutida no SO (subsistema de E/S) Uma pequena porção consiste em rotinas de bibliotecas, ligadas junto com os programas de usuários (ou mesmo em programas inteiros rodando fora do núcleo) Chamadas de sistema, incluindo as de E/S, são normalmente feitas por procedimentos de bibliotecas, como as oferecidas pelas linguagens de programação C, Pascal etc 14 Sistemas Operacionais -Entrada e Saída

Por isto que os comandos de E/S nestas linguagens independem do ambiente operacional onde se está trabalhando. Por exemplo: bytes_lidos = fread(buffer, tam_item, n_itens, arquivo); o procedimento fread será ligado com o programa (fica contido no código binário presente no espaço do usuário) antes de efetuar a chamada de sistema, este procedimento coloca seus parâmetros nas posições de memória apropriadas 15 Sistemas Operacionais -Entrada e Saída Outro exemplo: formatação de entradas e saídas são feitas por procedimentos da biblioteca de E/S padrão:» printf,» gets etc Estas porções do código, que rodam como parte dos programas do usuário, são parte do Sistema de E/S 16 Sistemas Operacionais -Entrada e Saída

Nem todo software de E/S consiste de procedimentos de bibliotecas Por exemplo, Sistemas de SPOOLING (Simultaneous Peripheral Operation On-Line) Spooling: modo de negociação com os dispositivos dedicados de E/S em sistemas multiprogramados Exemplo: impressora Processo abre o arquivo especial da impressora Mantém arquivo aberto por horas, sem usá-lo Ninguém mais imprime nada... 17 Sistemas Operacionais -Entrada e Saída Técnica de Spooling Cria-se um processo especial, denominado daemon (servidor), e um diretório especial, chamado diretório de spool (spooling directory) Processo envia arquivo para daemon (isto é, copia o arquivo no diretório de spool) Daemon, que é o único processo que tem permissão para usar o arquivo especial associado à impressora, transfere os arquivos do diretório de spool para impressora, um a um Spooling também é usado em outras situações (p. ex., em transferência de mensagens de correio eletrônico) 18 Sistemas Operacionais -Entrada e Saída

Ciclo de Operações em uma Requisição de E/S 19 Sistemas Operacionais -Entrada e Saída Desempenho Desempenho do Sistema de E/S afeta diretamente o desempenho global do sistema: Uso da CPU na execução do código do acionador do dispositivo Mudanças de contexto devido às interrupções Sobrecarga do barramento da memória durante as cópias de dados Um exemplo: o custo do tráfego de um caracter pela rede 20 Sistemas Operacionais -Entrada e Saída

Desempenho 21 Sistemas Operacionais -Entrada e Saída Melhorando o desempenho: Desempenho Reduzir o número de mudanças de contexto Reduzir o número de cópias de dados entre controlador, núcleo e processo Reduzir a freqüência de interrupções usando grandes transferências, controladores inteligentes e polling (quando viável) Usar DMA para aumentar o paralelismo Usar CPU, memória, barramento e dispositivos de E/S de forma balanceada, para evitar gargalos 22 Sistemas Operacionais -Entrada e Saída