Gerência de Dispositivos
De Aulas
Conteúdo integrante da disciplina de Sistemas Operacionais
Introdução
- Uma das principais e mais complexas funções do Sistema Operacional.
- Implementada através de uma estrutura de camadas de software e hardware.
- Procura oferecer uma interface simples e confiável para o usuário e a aplicação.
- Esconde das camadas superiores, detalhes das camadas inferiores.
- Dividido em dois grupos:
- O 1o Visualiza os dispositivos de um modo único.
- O 2o é específico para cada dispositivo.
- A maior parte da gerência de E/S trabalha independentemente de dispositivo, permitindo a comunicação dos processos com qualquer tipo de periférico, proporcionando maior flexibilidade.
Operações de Entrada/Saída
- O sistema deve tornar a tarefa o mais simples possível.
- Independência de dispositivos - o sistema deve se comunicar com qualquer tipo de dispositivo conectado ao computador.
- Acesso à dispositivos através bibliotecas. Linguagens de auto nível permitem portabilidade, como C ou Pascal.
- A independência de dispositivos deve ser realizada através de system calls, chamadas de system calls de entrada/saída, presentes na camada de mais alto nível implementada pelo sistema operacional.
- Permite o usuário acessar os dispositivos sem se preocupar com detalhes.
- A comunicação é feita através das bibliotecas e System Calls através de parâmetros.
- Objetivos da System Calls, neste caso, é esconder do programador características associadas à programação de cada dispositivo.
Subsistema de Entrada/Saída
- Funções:
- Realizar funções que são comuns a todos os dispositivos.
- Criar uma unidade lógica de informações independente de dispositivos e repassá-la para os níveis superiores.
- Implementar todo o mecanismo de proteção de acesso aos dispositivos.
- Mapear o nome do dispositivo com seu respectivo driver. As camadas superiores acessam o dispositivo através deste nome.
- Controlar os dispositivos de Entrada/Saída de forma segura e confiável obtendo um maior compartilhamento.
- Bufferização, permitindo reduzir o número de operações de Entrada/Saída, utilizando-se de uma área de memória intermediária chamada buffer.
- Aspectos e funções específicas ficam a cargo dos device drivers.
- Normalmente, os erros são tratados nas camadas mais próximas ao hardware, sendo que alguns podem ser tratados independente de dispositivos.
Device Drivers (driver)
- Principal função – comunicação com dispositivos de Entrada/Saída em alto nível de hardware, geralmente através de controladores, especificando características físicas de cada dispositivo.
- Subsistemas de E/S trata de funções que afetam todos os dispositivos e os Drivers tratam apenas dos seus aspectos particulares.
- Cada Device Driver controla apenas um tipo de dispositivo ou grupo de dispositivos semelhantes.
- Função de receber comandos gerais sobre acessos aos dispositivos, geralmente System Calls, e traduzi-los para comandos específicos para serem executados pelos controladores.
- Os drivers fazem parte do núcleo do Sistema Operacional, sendo escritos geralmente em assembly.
- Normalmente são desenvolvidos, para o mesmo dispositivo, diferentes devices drivers para cada sistema operacional. Isto devido ao fato dos mesmos serem de alto grau de dependência.
- Quando um novo dispositivo é adicionado, este deve ser acoplado ao núcleo do sistema.
Controladores (ou interfaces)
- São componentes eletrônicos (hardware) responsáveis por manipular diretamente os dispositivos de Entrada/Saída.
- Serve de comunicação do Sistema Operacional com os Dispositivos.
- Em geral, possui memória e registradores próprios para executar instruções enviadas pelo device driver.
- Em operações de leitura, o controlador armazena uma seqüência de bits vinda do dispositivo no seu buffer interno e verifica a ocorrência de erros, não havendo erros, o bloco é transmitido para a memória principal.
- Na maioria dos dispositivos orientados a bloco, como discos, é implementada a técnica de DMA para transferência de dados entre o controlador e a memória principal:
- O device driver executa as operações de Entrada/Saída gravando os comandos nos registradores do controlador.
- O controlador executa a operação com o dispositivo enquanto a UCP pode realizar outras tarefas.
- O device driver, então, testa os resultados através dos registradores do controlador.
- Alguns controladores, particularmente os de discos, implementam técnicas de cache para melhorar o desempenho.
- SCSI (Small Computer Systems Interface)
- Padrão popular para conexão de dispositivos ao computador.
- Inicialmente utilizado em RISC.
- Define padrões de hardware e software que permitem conectar ao computador qualquer tipo de dispositivo, mesmo de fabricantes diferentes.
- O Sistema Operacional deve estar configurado com um driver SCSI e o hardware com um controlador SCSI onde os periféricos são conectados.
Dispositivos de Entrada/Saída
- Responsáveis pela comunicação entre o computador e o mundo externo.
- Tipos de dispositivos quanto à Entrada/Saída
- Dispositivos somente para entrada de dados (teclado, mouse).
- Dispositivos somente para saída de dados (impressoras).
- Dispositivos para entrada e saída de dados (modems, discos, fitas).
- Comunicação efetuada através de blocos de informações ou palavra a palavra, realizando-se a transfer6encia através de controladores de dispositivos sob supervisão da UCP.
- Dispositivos Estruturados:
- Armazenam informações em blocos de tamanho fixo, cada um com um endereço.
- Tamanho do bloco varia entre 128 e 1.024 bytes.
- Blocos pode ser lidos ou gravados de forma independentes.
- Exemplo : Discos
- Acesso Direto – blocos de dados pode ser recuperado diretamente através de um endereço, exemplo discos magnéticos.
- Acesso seqüencial – para acessar um bloco de dados, o dispositivo deve percorrer seqüencialmente o meio de armazenamento à procura do bloco, exemplo, fita magnética.
- Dispositivos não-Estruturados:
- Podem enviar ou receber uma seqüência de caracteres sem estar estruturada no formato de um bloco.
- A seqüência de caracteres não é endereçável, não podendo haver operações de acesso ao dado após a transmissão.
- Exemplo: terminais, impressoras, interfaces de rede.
Discos Magnéticos
- Pelo fator tempo ser um fator crucial no acesso aos dados, aspectos como desempenho e segurança devem ser considerados.
- O Disco é composto de diversos discos sobrepostos, unidos por um mesmo eixo vertical, girando em velocidade constante.
- Cada disco compõe-se de trilhas concêntricas, que estão divididas em setores.
- As trilhas dos diferentes discos que ocupam a mesma posição vertical formam um cilindro.
- Para cada superfície de um disco existe uma cabeça de leitura/gravação.
- O conjunto de cabeças é preso a um braço que se movimenta entre os vários cilindros no sentido radial.
- O tempo necessário para ler/gravar um bloco de dados é em função de três fatores:
- Tempo de procura: tempo gasto para mover o braço até o cilindro onde o bloco se encontra.
- Tempo de latência: tempo de espera até que o setor desejado se posicione sob a cabeça de leitura/gravação.
- Tempo de transferência: tempo necessário para ler/gravar o bloco do/para o setor.
- Em muitos casos, o fator que leva mais tempo é o tempo de procura, são necessárias algumas estratégias para minimizar o tempo de procura.
- Copiar parte dos dados do disco para a memória principal pode minimizar os tempos de procura e latência.
- Técnicas que permitem aumentar o desempenho e segurança do armazenamento de dados em disco:
- Espelhamento :
- Simples duplicação dos dados de um disco em um ou mais discos.
- Procura diminuir o tempo de acesso aso dados e aumentar a segurança em caso de problemas físicos nos discos.
- O sistema fica responsável a escolher o disco em que o sistema realizará a operação requisitada.
- Ambos os discos precisam ser atualizados pelo sistema.
- Striping :
- Permite que dados sejam divididos e gravados em diversos discos.
- Procura diminuir o tempo de acesso.
- É preciso formar um conjunto de discos chamado stripe set.
- Quando o stripe set é criado, divide-se cada disco em pedaços (stripes.
- Espelhamento :
Sempre que um arquivo é gravado, seus dados são espelhados simultaneamente pelos stripes dos diversos discos.
- RAID (Redundant Array of Inexpensive Disks) – envolve a técnica de espelhamento e striping e definem diferentes níveis para melhoria do desempenho e segurança de armazenamento de dados em dicos.
Lista de Exercícios
- Defina o que é a Gerência de Dispositivos.
- O que são, como funcionam e quais são os tipos de operações de Entrada/Saída?
- O que é o Subsistema de Entrada/Saída e quais suas funções?
- O que são os Devices Drivers e para que servem?
- O que são controladores (ou interfaces)?
- Como funcionam o controladores?
- O que é SCSI e para que serve?
- O que são os Dispositivos de Entrada/Saída, diferencie os tipos quanto a Entrada e Saída e quanto a sua estrutura, dando exemplos de cada.
- Descreva como são os Discos Magnéticos e seu funcionamento.
- O que é RAID e para que serve?
- Explique as técnicas de Espelhamento e Striping para aumentar o desempenho e segurança do armazenamento de dados em disco.