Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Princípios do hardware de E/S Prof. Sílvio Fernandes UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Introdução 2 Dispositivos de entrada/saída (E/S) Função do SO Controlar todos os dispositivos E/S Interceptar interrupções Tratar erros Interface intuitiva E/S fração significativa do SO Introdução O SO deve emitir comandos para os dispositivos, interceptar interrupções e tratar erros Deve fornecer uma interface entre os dispositivos e o restante do sistema, que seja simples e fácil de usar Na medida do possível, ela deveria ser a mesma para todos os dispositivos 3 Dispositivos de E/S Dispositivos de blocos Armazena informações em blocos endereçáveis de tamanho fixo Os discos são os dispositivos mais comuns Dispositivos de caracteres Envia e recebe um fluxo de caracteres Não é endereçável e não dispõe de qualquer operação de posicionamento Ex: Impressoras, interfaces de rede, mouses 4 Dispositivos de E/S Esse modelo de classificação não é perfeito Relógios Não são endereçáveis nem enviam ou recebem fluxos Geram interrupções em intervalos bem definidos Vídeo mapeado na memória também não se enquadra em nenhuma das 2 classificações Os dispositivos de E/S podem apresentar uma ampla variação de velocidades 5 Dispositivos de E/S 6 Controladores de dispositivos As unidades de E/S consistem, usualmente, em um componente mecânico (dispositivo propriamente dito) e um eletrônico (controlador ou adaptador) 7 Dispositivos de E/S Muitos controladores são capazes de tratar vários dispositivos Tarefas do controlador converter fluxo serial de bits em bloco de bytes executar toda correção de erro necessária tornar o bloco disponível para ser copiado para a memória principal 8 E/S mapeada na memória Cada controlador possui 1 ou mais registradores para comunicação com a CPU SO pode ligar ou desligar o dispositivo, entregar ou receber dados, descobrir o estado do dispositivo Além dos registradores, muitos dispositivos têm um buffer de dados que pode ser lido ou escrito Há duas formas de fazer essa comunicação 9 E/S mapeada na memória A 1ª é associar cada registrador de controle a um número de porta de E/S Usando instruções especiais de E/S IN REG, PORT OUT PORT, REG O espaço de endereçamento para a memória e E/S são diferentes As instruções a seguir são completamente diferentes IN R0, 4 MOV R0, 4 10 E/S mapeada na memória O 2º métodos mapeia todos os registradores de controle no espaço de endereçamento da memória: E/S mapeada na memória Possui endereços únicos na memória Um esquema híbrido com buffer de dados de E/S mapeados na memória e portas de E/S separadas também pode ser usado 11 E/S mapeada na memória a) Espaços de memória e E/S separados b) E/S mapeada na memória c) Híbrido 12 E/S mapeada na memória 13 Vantagens Acesso E/S em linguagem de alto nível Não é necessário mecanismo de proteção especial Cada instrução capaz de referenciar a memória pode referenciar os registradores de controle Desvantagens Hardware deve desabilitar cache dessas regiões Todos os dispositivos E/S e módulos de memória devem examinar as referências a memória E/S mapeada na memória 14 (a) Arquitetura com barramento único (b) Arquitetura com barramento dual E/S mapeada na memória 15 A tendência é ter um barramento de memória de alta velocidade dedicado Esse barramento é usado para otimizar o desempenho da memória, sem qualquer compromisso quanto aos interesses dos dispositivos de E/S lentos • Ex: PCI, ISA etc. E/S mapeada na memória 16 Fonte: TANENBAUM, Andrew S. “Sistemas Operacionais Modernos”. 2 ed. São Paulo: Prentice Hall, 2005. E/S mapeada na memória 17 Quando se tem um barramento separado surge a preocupação de que os dispositivos de E/S não têm como enxergar os endereços de memória quando estes são lançados no barramento de memória Uma ponte PCI pode filtrar os endereços (pré- carregados) que estejam em uma faixa de endereços reservados não utilizáveis como memória Acesso direto a memória (DMA) 18 Quando a CPU requisita diretamente dados de um controlador de E/S, um byte de cada vez, ela desperdiça muito tempo, de modo que um esquema chamado acesso direto à memória é muitas vezes utilizado Depende de um chip (controlador de DMA) que tem acesso ao barramento do sistema, independente da CPU Ele contém registradores que são preenchidos pela CPU e especificam a porta de E/S a ser usada, a direção, a unidade de transferência e o número de bytes a ser transferido Acesso direto a memória (DMA) 19 Operação de transferência usando DMA Acesso direto a memória (DMA) 20 Os controladores DMA variam consideravelmente em termo de sofisticação Os mais simples tratam uma transferência por vez Os mais complexos podem ser programados para tratar múltiplas transferências simultaneamente Ele pode ser configurado para usar um algoritmo de alternância circular (round robin) ou ter um esquema de prioridade Acesso direto a memória (DMA) 21 No modelo discutido até aqui é chamado de modo direto, pois o controlador de DMA diz para o controlador do dispositivo transferir dados diretamente para a memória principal No modo indireto o controlador DMA estabelece que o controlador do dispositivo deve enviar uma palavra para qualquer que seja seu destino Permite cópias de dispositivo para dispositivo Acesso direto a memória (DMA) 22 A maioria dos controladores de DMA usa endereçamento físico para sua transferências, um esquema alternativo deve usar a MMU para tradução do endereço virtual para físico Interrupções revisitadas 23 Quando um dispositivo de E/S finaliza seu trabalho, ele gera uma interrupção (sinal no barramento) O sinal é detectado pelo chip controlador de interrupções Caso nenhuma outra interrupção esteja pendente ela é imediatamente tratada Se já há outra interrupção em tratamento o dispositivo é momentaneamente ignorado, e continua a gerar o sinal de interrupção até ser atendido Interrupções revisitadas 24 O controlador apenas coloca um valor no barramento especificando qual dispositivo requer atenção e repassa a interrupção a CPU A CPU para o que estava fazendo e usa esse valor como índice para um vetor de interrupções Cada elemento do vetor é na verdade um endereço na memória que aponta para o início de uma rotina de tratamento de interrupção correspondente Interrupções revisitadas 25 Imediatamente após o início da execução de uma rotina de tratamento ela escreve um certo valor em um registrador do controlador de interrupções que confirma que a interrupção está sendo tratada e deixa o controlador livre para passar outra interrupção para a CPU Interrupções revisitadas 26 Interrupções revisitadas 27 Uma interrupção que deixa a máquina em um estado bem definido é chamada de interrupção precisa, e possui as propriedades: 1. O PC é salvo em um lugar conhecido 2. Todas as instruções anteriores àquela apontado pelo PC foram totalmente executadas 3. Nenhuma instrução posterior à apontada pelo PCfoi executada 4. O estado de execução da instrução apontada pelo PC é conhecido Interrupções revisitadas 28 Não existe proibição para instruções posteriores ao PC tenham sido iniciadas Cabe observar que quais alterações que elas façam aos registradores ou memória devem ser desfeitas antes que a interrupção ocorra Uma interrupção que não atende a esses requisitos é chamada de interrupção imprecisa Esse tipo de máquina geralmente coloca uma grande quantidade de informações de estado interno da pilha para o que SO possa calcular o que estava acontecendo Referências TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2. ed., Prentice Hall, 2007. TANENBAUM, Andrew S.; WOODHULL, Albert S. Sistemas Operacionais: Projeto e Implementação. 3ª Ed., Prentice Hall, 2008. 29
Compartilhar