Sistemas Operacionais
Capítulo 11
Gerência de Dispositivos

11.1 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.


11.2 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.


11.3 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.


11.4 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.


11.5 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.


11.6 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.


11.7 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.
      • 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 espelamento e striping e definem diferentes níveis para melhoria do desempenho e segurança de armazenamento de dados em dicos.

[voltar]