210 likes | 499 Views
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementado por Sidney Lucena (Prof. UNIRIO) Capítulo 12 Gerência de Dispositivos. Introdução. Gerência de dispositivos. Introdução.
E N D
Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Complementadopor Sidney Lucena (Prof. UNIRIO) Capítulo 12 Gerência de Dispositivos
Introdução • Gerência de dispositivos
Introdução • Subsistema de E/S isola complexidade dos dispositivos das camadas superiores (sistema de arquivos ou aplicação) • Permite flexibilidade ao SO para comunicação com qualquer tipo de periférico • Detalhes do periférico (velocidade de transferência, tipos de operações, etc) ficam a cargo do device driver de cada dispositivo
Acesso ao Subsistema de Entrada e Saída • Operações de entrada/saída devem ser as mais simples possíveis para as aplicações • SO possui conjunto de rotinas que possibilita comunicação com qualquer dispositivo: • Rotinas de Entrada/Saída • Fazem parte do Subsistema de E/S • Permitem operações de E/S sem a necessidade de se saber detalhes do dispositivo acessado • Operações de E/S realizadas via System Calls de E/S • Chamam rotinas de E/S do núcleo do SO • Por ex., um programa que manipula arquivos o fará qualquer que seja a mídia onde o arquivo se encontra ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Acesso ao Subsistema de Entrada e Saída • Comunicação com system calls de E/S: • Relacionamento criado na geração do código executável • System calls realizadas diretamente no código de alto nível do programa • Operação de E/S síncrona: • Processo fica em espera até término da operação • Maioria dos comandos em alto nível • Operação de E/S assíncrona: • Processo não fica em espera, término da operação é sinalizado ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Subsistema de Entrada e Saída • Responsável pela interface (uniforme) entre dispositivos e aplicação: • Cuida das funções comuns a todos os tipos de dispositivos • Aspectos específicos são tratados pelos device drivers • Unidades de informação de tamanhos diferentes (p/ex. caracteres ou blocos) • Em geral, tratamento de erros nas operações de E/S • Erros podem ser tratados de maneira uniforme usando subsistema de E/S • Implementa mecanismos de proteção no acesso a dispositivos compartilhados, verifica permissões • Realiza “bufferização” (cache) das operações de E/S • Padroniza interface com diferentes device drivers ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Device Drivers • Os drivers, implementam a comunicação entre subsistema de E/S e controladores dos dispositivos • Recebem comandos genéricos de acesso e os traduz para comandos específicos do dispositivo, executados pelos controladores • Cada driver é específico para um tipo de dispositivo, ou grupo de dispositivos • Ex.: drivers de disco, de rede, de vídeo, etc • Diretamente integrado às funções do controlador • Conhece características como registradores, funcionamento e comandos • Inicializa e gerencia seu funcionamento ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Device Drivers ASO – Machado/Maia – complem. por Sidney Lucena (UNIRIO)
Device Drivers • Na leitura síncrona de um dado em disco: • Driver recebe solicitação de leitura de um dado bloco • Informa ao controlador do disco qual cilindro, trilha e setor onde o bloco se localiza • Inicia operação de leitura, processo colocado em espera • Controlador gera interrupção de término, driver verifica se há erros e transfere dados subsistema de E/S e, portanto, para o processo, que será acordado
Device Drivers • Drivers fazem parte do núcleo do SO • Códigos reentrantes que executam em modo kernel • Qualquer bug prejudica todo o sistema, deve ser cuidadosamente desenvolvido e testado • Geralmente escritos em assembly • Em geral, fabricantes do dispositivo desenvolvem drivers deste dispositivo para diferentes Sos • Procura evitar problemas de bug dado o grau de dependência entre SO e drivers • Inclusão de novo driver, algumas vezes, exige recompilação do kernel (SOs mais antigos)
Controladores • Componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S • Geralmente, pode estar numa placa independente conectada a um slot ou estar na placa mãe • Possui memória e registradores próprios usados na execução das instruções do driver
Controladores • A técnica de DMA (Direct Memory Access) é usada para transferir um bloco entre o buffer interno do controlador e o buffer de E/S da memória principal sem intermédio da CPU • Evita ocupar CPU com a transferência do bloco • Controlador de DMA pode fazer parte do controlador do dispositivo ou ser independente • Em geral, controladores de disco usam técnicas de cache para melhorar desempenho
Controladores • Operação de leitura usando DMA: • CPU, através do driver, inicializa registradores do controlador de DMA e fica liberada • Controlador de DMA solicita ao controlador de disco a transferência do bloco para seu buffer interno • Controlador de disco verifica se não há erros • Controlador de DMA transfere bloco para buffer de E/S na MP e gera interrupção para a CPU
Controladores • O SCSI (Small Computer System interface) é um padrão popular de conexão de dispositivos • Define padrões de hardware e software para conexão de dispositivos de fabricantes diferentes • SO deve possuir driver SCSI e hardware para conexão dos periféricos deve possuir controlador SCSI
Dispositivos de Entrada e Saída • Permitem comunicação do SO com o mundo externo • Podem ser só de entrada, só de saída ou ambos • Conforme forma de armazenamento dos dados, podem ser classificados como estruturados e não-estruturados • Os estruturados (block devices) usam blocos de tamanho fixo, cada qual com seu endereço • Ex.: discos magnéticos e ópticos, fitas magnéticas • Os não-estruturados (character devices) enviam ou recebem seqüência de caracteres sem estrutura definida, portanto não endereçável • Ex.: Terminais, impressoras e placas de rede
Discos Magnéticos • Constitui-se por vários discos sobrepostos, unidos por um mesmo eixo vertical, girando a velocidade constante • Cada disco possui trilhas concêntricas divididas em setores • Trilhas de diferentes discos numa mesma posição vertical formam um cilindro • Braço se move no sentido radial
Discos Magnéticos • Tempo de acesso é função do tempo de seek, latência rotacional e tempo de transferência • Envolve aspectos mecânicos e, portanto, é extremamente longo se comparado ao número de instruções que poderiam ser executadas num mesmo intervalo de tempo • Alguns sistemas usam área da MP como espelho de parte do disco: RAM Disk • Similar à técnica de cache
Desempenho, Redundância e Proteção de Dados • RAID: Redundant Arrays of Inexpensive Disk • Técnicas de gerenciamento de discos para otimizar operações de E/S, implementar redundância e proteção dos dados • Diferentes técnicas que utilizam múltiplos discos, publicadas em 7 níveis (0 a 6) • Podem ser implementadas diretamente nos controladores de discos (RAID externo), no SO ou através de software específico
Desempenho, Redundância e Proteção de Dados • O RAID cria dispositivo virtual conhecido como array de discos • Grupo de discos físicos tratados como se fosse um único disco • Grande capacidade de armazenamento, alto desempenho e confiabilidade nos dados armazenados • RAID 0: Faz disk striping, dividindo igualmente pedaços dos arquivos (stripes) pelos discos • Operações de E/S podem ser paralelizadas • Não faz redundância
Desempenho, Redundância e Proteção de Dados • RAID 1: Espelhamento • Replica conteúdo do disco primário em um ou mais discos secundários ou espelhos, permitindo redundância no caso de falha • Toda escrita no disco primário é reproduzida nos espelhos, mas overhead é pequeno • Capacidade útil só vai até 50%
Desempenho, Redundância e Proteção de Dados • RAID 5: Acesso independente com paridade distribuída • Distribui os dados entre discos do array e implementa redundância baseada em paridade (maior overhead) • No caso de falha, dados podem ser recuperados através de algoritmo de reconstrução • Faz operação inversa entre dados de paridade e dados restantes • Requer espaço adicional menor para ter redundância • Capacidade útil sobe para ~80%