Gerência de Dispositivos Adão de Melo Neto 1
Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho, redundância e proteção de dados 2
Gerência de Dispositivos 3
Gerência de Dispositivos A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema operacional Sua implementação é estruturada através de camadas A camadas de mais baixo nível escondem as características dos dispositivos das camadas superiores oferecendo uma interface simples e confíavel. 4
Gerência de Dispositivos A sua implementação é estruturada através de camadas As camadas são divididas em dois grupos As camadas de mais baixo nível escondem as características dos dispositivos das camadas superiores 5
Gerência de Dispositivos SUBSISTEMA DE E/S Tem como função isolar a complexidade dos dispositivos das camadas de sistema de arquivos e da aplicação Torna o sistema flexível permitindo a comunicação dos processos com qualquer tipo de periférico 6
Gerência de Dispositivos Tem como função isolar a complexidade dos dispositivos das camadas de sistema de arquivos e da aplicação Torna o sistema flexível permitindo a comunicação dos processos com qualquer tipo de periférico 7
Gerência de Dispositivos DEVICE DRIVER Oferece uma interface entre o subsistema de E/S e todos os dispositivos (Hardware) Trata de aspectos como: velocidade de operação Unidade de transferência Representação dos dado Tipos de operações e Demais detalhes de cada um dos periféricos 8
Gerência de Dispositivos Oferece uma interface entre o subsistema de E/S e todos os dispositivos (Hardware) Trata de aspectos como velocidade de operação, unidade de transferência, representação dos dados, tipos de operações e demais detalhes de cada um dos periféricos 9
Acesso ao Subsistema de E/S O sistema possui um conjunto de rotinas (que faz parte do subsistema de E/S) que possibilita a comunicação com qualquer dispositivo que possa ser conectado ao computador. As operações de E/S devem ser realizadas através de System Calls que chamam as rotinas de E/S do kernel do sistema operacional. Desta forma é possível escrever programas que manipulem arquivos, estejam eles em disquetes, discos rígidos ou qualquer outro dispositivo. 10
Acesso ao Subsistema de E/S 11
Acesso ao Subsistema de E/S As operações de E/S devem ser realizadas através de System Calls de E/S que chamam as rotinas de E/S do kernel do sistema operacional. Desta forma é possível escrever programas que manipulem arquivos, estejam eles em disquetes, discos rígidos ou qualquer outro dispositivo. 12
Acesso ao Subsistema de E/S Comunicação entre comandos de E/S oferecidos pelas linguagens de programação (C, C++, C#, etc ) são feitas por passagem de parâmetros, como caminho para o arquivo e tipo de operação (leitura ou escrita) O compilador da linguagem relaciona o comando e a system call 13
Acesso ao Subsistema de E/S Comunicação entre comandos de E/S oferecidos pelas linguagens de programação (C, C++,etc ) são feitas por passagem de parâmetros, como caminho para o arquivo e tipo de operação (leitura ou escrita) O compilador da linguagem relaciona o comando e a system call 14
Gerência de Dispositivos SUBSISTEMA DE E/S Tem como função isolar a complexidade dos dispositivos das camadas de sistema de arquivos e da aplicação Torna o sistema flexível permitindo a comunicação dos processos com qualquer tipo de periférico 15
Gerência de Dispositivos Tem como função isolar a complexidade dos dispositivos das camadas de sistema de arquivos e da aplicação Torna o sistema flexível permitindo a comunicação dos processos com qualquer tipo de periférico 16
Subsistema de E/S Responsável por realizar funções comuns a todos os tipos de dispositivos ficando aspectos específicos de cada periféricos como responsabilidade dos drivers É parte do sistema operacional que oferece uma interface uniforme com as camadas superiores. 17
Subsistema de E/S Responsável por realizar funções comuns a todos os tipos de dispositivos ficando aspectos específicos de cada periféricos como responsabilidade dos drivers É parte do sistema operacional que oferece uma interface uniforme com as camadas superiores. 18
Subsistema de E/S É responsável por implementar todo um mecanismo de proteção de acesso aos dispositivos. No momento que um usuário solicita uma operação de E/S, é verificado se seu processo possui a permissão para realizar a operação No momento que um usuário solicita uma operação de E/S, é verificado se seu processo possui a permissão para realizar a operação 19
Subsistema de E/S Responsável por implementar todo um mecanismo de proteção de acesso aos dispositivos. No momento que um usuário solicita uma operação de E/S, é verificado se seu processo possui a permissão para realizar a operação 20
Subsistema de E/S É responsável por criar uma interface padronizada com os device drivers. O subsistema tem que oferecer uma interface padronizada que permita a inclusão de novos drivers (que é necessário quando um novo dispositivo é instalado) sem a alteração da camada de subsistema de E/S. 21
Subsistema de E/S Responsável por criar uma interface padronizada com os device drivers. O subsistema tem que oferecer uma interface padronizada que permita a inclusão de novos drivers (que é necessário quando um novo dispositivo é instalado) sem a alteração a camada de subsistema de E/S. 22
Gerência de Dispositivos DEVICE DRIVER Oferece uma interface entre o subsistema de E/S e todos os dispositivos (Hardware) Trata de aspectos como: velocidade de operação Unidade de transferência Representação dos dado Tipos de operações e Demais detalhes de cada um dos periféricos 23
Gerência de Dispositivos Oferece uma interface entre o subsistema de E/S e todos os dispositivos (Hardware) Trata de aspectos como velocidade de operação, unidade de transferência, representação dos dados, tipos de operações e demais detalhes de cada um dos periféricos 24
Device Drivers 25
Device Driver (ou driver) Tem como função implementar a comunicação do subsistema de E/S com os dispositivos, através de controladores. Trata apenas de aspectos particulares dos dispositivos. Tem como função receber comandos gerais sobre acesso aos dispositivos e traduzi-los em comandos específicos para aquele dispositivo em questão. Cada driver manipula somente um tipo de dispositivo específico ou grupo de dispositivos semelhantes 26
Device Driver (ou driver) Esta ligado diretamente às funções do controlador. É o componente do sistema que reconhece as características particulares do funcionamento de cada dispositivo de E/S, como o número de registradores do controlador, funcionamento e comandos específicos. 27
Device Driver (ou driver) Sua função principal é receber comandos abstratos do sistema de E/S e traduzi-los para comandos que o controlador possa entender e executar. Pode realizar outras funções como a inicialização do dispositivo e seu gerenciamento 28
Device Driver (ou driver) Os drivers fazem parte do núcleo do sistema operacional, sendo escritos normalmente em assembly. Executam no modo kernel. Qualquer erro de programação pode comprometer o funcionamento do sistema e por isso deve ser cuidadosamente desenvolvido e testado. 29
Gerenciamento de dispositivo 30
Device Driver (ou driver) Alta dependência entre os drivers e o restante do kernel do sistema os fabricantes desenvolvem diferentes drivers para um mesmo dispositivo: Um para cada arquitetura de processador (32 ou 64 bits) Um para cada sistema operacional. Sempre que um dispositivo é instalado, um driver do dispositivo deve ser adicionado ao kernel do sistema 31
Controladoras 32
Controladores Controladores são componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S Pode ser uma placa independente conectada a um SLOT do computador ou implementado diretamente na placamãe. 33
Controladores O controlador possui memória e registradores próprios utilizados na execução de instruções enviadas pelo driver. Essas instruções, de baixo nível, são responsáveis pela comunicação entre o controlador e o dispositivo de E/S. 34
Técnica DMA Em operações de leitura, o controlador deve armazenar em seu buffer interno uma seqüência de bits provenientes do dispositivo até formar um bloco. Após verificar a ocorrência de erros, o bloco pode ser transferido para um buffer de E/S na memória principal. A transferência do bloco do buffer interno do controlador para o buffer de E/S na memória principal pode ser realizada pelo processador ou por um controlador de DMA. 35
Técnica DMA O uso da técnica de DMA evita que o processador fique ocupado com a transferência do bloco para a memória. O controlador de DMA é um dispositivo de hardware que pode fazer parte do computador ou pode ser um dispositivo independente. 36
Dispositivos de E/S A transferência de dados pode ocorrer através de blocos de informação ou caracteres por meio controladores dos dispositivos. Em função da forma com que os dados são armazenados, os dispositivos de E/S podem ser classificados em duas categorias: dispositivos estruturados e dispositivos nãoestruturados 37
Dispositivos de E/S Dispositivos estruturados (block devices) Caracterizam-se por armazenar informações em blocos de tamanho fixo possuindo cada qual um endereço que pode ser lido ou gravado de forma independente dos demais. Classificação dos Dispositivos estruturados Os dispositivos estruturados classificam-se em dispositivos de acesso direto e seqüencial, em função da forma com que os blocos são acessados. 38
Dispositivos de E/S Dispositivo de Acesso Direto Um dispositivo é classificado como de acesso direto quando um bloco pode ser recuperado diretamente através de um endereço. O HD é o um exemplo de dispositivo de acesso direto. 39
Dispositivos de E/S Dispositivo de Acesso Sequencial Um dispositivo é do tipo de acesso seqüencial quando para acessar um bloco, o dispositivo deve percorrer sequencialmente dos demais blocos. A Fita Magnética é um exemplo deste tipo de dispositivo. 40
Dispositivos de E/S Dispositivos não-estruturados Os dispositivos não-estruturados (character devices) são aqueles que enviam ou recebem uma seqüência de caracteres sem estar estruturada no formato de blocos. Desse modo, a seqüência de caracteres não é endereçável, não permitindo operações de acesso direto ao dado. Dispositivos como terminais, impressoras e interfaces de rede são exemplos de dispositivos não-estruturados. 41