Gerência de Memória Aula Anterior ANDREW S. TANENBAUM Sistemas Operacionais Modernos – 2ª Edição Sistemas Operacionais 1 Gerência de Memória Aula Anterior Um terceiro modo de lidar com o problema da exclusão mútua é ilustrado na Figura 2.20. Esse fragmento de programa como quase todos os outros deste livro foi escrito em C. C foi escolhida aqui porque os sistemas operacionais reais são quase todos escritos em C (ou ocasionalmente em C++), muito dificilmente em linguagens como Java, ou Pascal. C é uma linguagem poderosa, eficiente e previsível; características fundamentais para se escrever sistemas operacionais. Java, por exemplo, não é previsível porque a memória pode ser requisitada em um momento crítico no qual se precise invocar o coletor de resíduos da memória (garbage collector) em um momento inoportuno. Isso não aconteceria com C, onde não há coleta de resíduos, uma comparação quantitativa entre C, c++, e outras quatro linguagens Java podem ser verificadas em Prechelt (2000). Sistemas Operacionais 2 Tópico 25 Subsistema de Entrada e Saída Sistemas Operacionais 3 Conteúdo • Introdução; • Acesso ao Subsistema de Entrada e Saída; • Device Drivers; • Controladores; • DMA e Padrões de Conexão; • Dispositivos de Entrada e Saída; • Discos Magnéticos e Desempenho; • Redundância e Proteção de Dados; • Exercícios. Sistemas Operacionais 4 Introdução • O SO é formado por um conjunto de rotinas que oferece serviços aos usuários e às suas aplicações • A Gerência de Dispositivos de Entrada/Saída é uma das mais complexas funções do SO e sua implementação é estruturada através de camadas. • A diversidade dos tipos de E/S exige que o SO implemente uma camada chamada de Subsistema de E/S, com a função de isolar a complexidade dos dispositivos da camada de sistemas de arquivos e da aplicação, possibilitando ao sistema manter sua flexibilidade. • As camadas são divididas em dois grupos: – O primeiro visualiza os diversos tipos de dispositivos do sistema de um modo único; – O segundo é específico para cada dispositivo Sistemas Operacionais 5 Gerência de Dispositivos Sistemas Operacionais 6 Acesso ao Subsistema de Entrada e Saída • O SO possui um conjunto de rotinas que torna possível a comunicação com qualquer dispositivo que possa ser conectado ao computador. Essas rotinas são denominadas de Rotinas de Entrada/Saída e fazem parte do Subsistema de E/S. • As operações de E/S são realizadas através de System Calls que chamam as rotina de E/S do núcleo do SO. Dessa forma, é possível escrever um programa que manipule arquivos, estejam eles em disquetes, discos rígidos, CDs, fitas magnéticas, sem ter que alterar o código para cada tipo de dispositivo. • As System Calls responsáveis pois essa comunicação são chamadas de System Calls de Entrada/Saída, e um de seus objetivos é simplificar a interface entre as aplicações e os dispositivos. Sistemas Operacionais 7 Acesso ao Subsistema de Entrada e Saída As operações de E/S podem ser classificadas em: • Operação Síncrona: Quando o processo que realizou a operação fica aguardando em estado de espera por seu término. • Operação Assíncrona: Quando o processo que realizou a operação não aguarda pelo seu término e continua pronto para ser executado. Neste caso deve existir uma sinalização que indique que a operação foi terminada. Sistemas Operacionais 8 Operações de Entrada/Saída Sistemas Operacionais 9 Device Drivers • O Device Driver ou somente Driver, tem como função implementar a comunicação do subsistema de E/S com os dispositivos através de Controladores. • Os Drivers recebem os comandos gerais sobre os acessos aos dispositivos e traduz para comandos específicos que poderão ser acessados pelas funções do Controladores e com isso ele possa entendê-las e executá-las. • Cada driver manipula um tipo de dispositivo ou grupo de dispositivos semelhantes e normalmente o SO possui diferentes drivers para cada recurso computacional. • Devido ao grau de dependência entre os drivers e o restante do Núcleo do SO, os fabricantes desenvolvem para um mesmo dispositivo, diferentes drivers para um SO. Sistemas Operacionais 10 Figura 3 – Device Drivers Sistemas Operacionais 11 Controladores • São componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S. • O Driver comunica-se com os dispositivos através dos Controladores. • Ele pode ser uma placa independente conectada a um slot do computador ou implementada na mesma placa do processador. • Controlador possui memória e registradores próprios. • São utilizados na execução de instruções enviadas pelo Driver. Em operações de leitura, armazena em seu buffer interno, uma seqüência de bits provenientes driver até formar um bloco. Após verificar se no bloco existem erros, é transferido para um buffer de E/S na Memória Principal. Sistemas Operacionais 12 Exercícios 1. Explique na finalidade do subsistema de Entrada e Saída para o Sistema Operacional. 2. Explique como atuam e funcionam o Device Driver em um Sistema Operacional. 3. Explique o que são Controladores. Para que servem e suas características Sistemas Operacionais 13 Exercícios 1. Explique a finalidade do subsistema de Entrada e Saída para o SO. Resposta: A diversidade dos tipos de E/S exige que o SO implemente uma camada chamada de Subsistema de E/S, com a função de isolar a complexabilidade dos dispositivos da camada de sistemas de arquivos e da aplicação. 2. Explique como atuam e funcionam o Device Driver em um SO. Resposta: O Device Driver ou somente Driver, tem como função implementar a comunicação do subsistema de E/S com os dispositivos através de Controladores. Os Drivers recebem os comandos gerais sobre os acessos aos dispositivos e traduz para comandos específicos que poderão ser acessados pelas funções dos Controladores e com isso ele possa entendê-las e executá-las. Cada driver manipula um tipo de dispositivo ou grupo de dispositivos semelhantes e normalmente o SO possui diferentes drivers para cada recurso computacional Sistemas Operacionais 14 Exercícios 3. Explique o que são Controladores. Para que servem e suas características Resposta: São componentes de hw responsáveis por manipular diretamente os dispositivos de E/S. É através dos controladores que os drivers se comunicam com os dispositivos. Possuem memória e registradores próprios. São utilizados na execução de instruções enviadas pelo driver. 4. Qual o nome do software que fornece informações específicas ao sistema operacional sobre um determinado hardware: Tem como função implementar a comunicação do subsistema de E/S com os dispositivos através de Controladores: a) Unix b) WinZip c) Semáforos d) Device Driver 5. São componentes de hardware responsáveis por manipular diretamente os dispositivos de E/S. a) Device Drivers b) Controladores c) Kernel d) RAID Sistemas Operacionais 15 Figura 4: UCP, Memória e Controladores Sistemas Operacionais 16 DMA e Padrões de Conexão • DMA (Direct Memory Acess ou Acesso Direto a Memória), permite que certos dispositivos de hardware acessem a memória para leitura e gravação independentemente. • A técnica de DMA evita que o processador fique ocupado com a transferência do bloco para a memória.Pode fazer parte do Controlador ou ser independente. • Exemplos: Controladores de Disco, placas de rede e som. • Uma transferência por DMA copia um bloco de memória de uma dispositivo para o outro. A UCP inicia a transferência, mas não a executa. Alguns padrões de Conexão: • SCSI (Small Computer Systens Interface); • IDE (Integrated Drive Electronics) ou ATA (Advanced Techology) Attachment. • ATA, SATA, S-ATA, tecnologias de transferência de dados em série. Sistemas Operacionais 17 Figura 5 – Técnica de DMA Sistemas Operacionais 18 Dispositivos de Entrada e Saída Permitem a comunicação entre o SO e o mundo externo. São classificados como: • Entrada de Dados: (CD-ROM, teclado, etc) • Saída de Dados: (impressoras) ou ainda, • Entrada/Saída de dados: ( modem, discos, CD-ROM.) Sistemas Operacionais 19 Dispositivos de Entrada e Saída Em função da forma com que os dados são armazenados, são classificados em: • Dispositivos Estruturados: Armazenam as informações em blocos de tamanho fixo possuindo cada qual um endereço que pode ser lido/gravado. Ex. Disco rígido. Seus tipos: – Acesso Direto: Quando um bloco pode ser recuperado através de seu endereço. – Acesso Seqüencial: Quando para se acessar um bloco, o dispositivo blocos. percorre seqüencialmente os demais • Dispositivos não Estruturados: Enviam ou recebem uma seqüência de caracteres sem estar estruturado no formado de um bloco. Ex.: Terminais, impressoras, interfaces de rede. Sistemas Operacionais 20 Figura 6 – Tempo de Acesso Sistemas Operacionais 21 Discos Magnéticos e Desempenho Entre os diversos dispositivos de E/S, os discos magnéticos são o principal repositório de dados. O tempo utilizado pela leitura e gravação de dados em um disco está em função de três fatores: • Tempo de Seek: Tempo do posicionamento do cabeçote de leitura/gravação. • Latência Rotacional: Tempo de espera até que o setor desejado posicione sobre o mecanismo de leitura / gravação. • Tempo de Transferência: Tempo necessário transferir o bloco da MP para o setor do disco. Sistemas Operacionais para 22 Redundância e Proteção de Dados Na década de 80, os pesquisadores desenvolveram técnicas de gerenciamento de disco para otimizar as operações de E/S e implementar redundância e proteção de Dados conhecidos como RAID (Redundant Arrays of Inexpensive Disk). • Uma característica da técnica de RAID é a criação de um dispositivo virtual, o Array de Discos. • Consiste em um grupo de discos físicos que são tratados pelo SO como um único disco, trazendo mais capacidade de armazenamento, maior desempenho e confiabilidade nos dados armazenados. • As técnicas de Raid estão distribuídas em 6 níveis (1-6) e um novo nível foi introduzido denominado RAID 0. Detalhamento dos níveis foram abordados na disciplina de Organização e Arquitetura de Computadores. Sistemas Operacionais 23 Redundância e Proteção de Dados Dentre as técnicas de RAID temos: • RAID 0 (Striping) Que distribui as operações de E/S entre diversos discos físicos visando aumento de desempenho, • RAID 1 (Espelhamento / Mirroring) Que replica todo o conteúdo do disco principal, chamado de primário em discos secundários; • RAID 5 (Acesso Independente com Paridade Distribuída) Distribui dados entre os discos do array e implementar redundância baseada em paridade, requerendo espaço adicional menor para ser implementada. Sistemas Operacionais 24 Figura 7 – Níveis do RAID RAID O RAID 1 RAID 5 Sistemas Operacionais 25 Exercícios 1) Qual é a função do Subsistema de E/S para o SO? 2) Em qual aspecto, a System Calls é importante no acesso ao Subsistema de E/S? 3) Diferencie Operações Síncronas e Assíncronas. 4) Descreva a função dos Devices Drivers. 5) O Controlador é responsável por_______________ complete a frase. 6) A técnica de DMA facilita em que a execução dos Controladores? 7) No que consiste os Dispositivos Estruturados? 8) "O tempo utilizado pela leitura e gravação de dados em um disco está em função de 3 fatores". Explique-os. 9) Como a tecnologia RAID trabalha? Sistemas Operacionais 26