Sistema operacional
Uma das principais funções do Sistema Operacional é gerenciar os dispositivos de Entrada e Saída (E/S) ligados ao computador. É tarefa do sistema operacional enviar sinais, informando as ações que o usuário espera que o dispositivo realize; tratar as interrupções e erros gerados pelos dispositivos.
Controladores de dispositivos
Dispositivos de hardware precisam ser controlados para proporcionar a entrada e saída de dados para o processador. O controle do hardware é realizado por meio de hardware e software apropriados.
Unidades de E/S: componente mecânico + componente eletrônico (chamado de "controlador de dispositivo").
FIGURA 1. Controladores de dispositivos
Os controladores recebem os comandos do SO e disponibilizam ao SO uma interface mais simples do que aquela do dispositivo em si.
Princípios de Hardware de E/S
Dispositivos de blocos * Armazenam informações em blocos endereçáveis de tamanho fixo (512 a 32.768 bytes, tipicamente); * Cada bloco pode ser lido ou escrito de forma independente; * Exemplos: discos, CDs, DVDs, pen-drives
Dispositivos de caracteres * Recebem/enviam fluxo de caracteres (sem estrutura de blocos). * Sem endereçamento e sem operação de posicionamento (por exemplo, lseek). * Exemplos: impressoras, interfaces de rede, mouses, teclado, vídeo, etc.
Relógios (clocks): geram interrupções em intervalos bem definidos: não se classificam muito bem em nenhuma das categorias acima.
Princípios de Software de E/S
Princípios gerais: * Princípio da independência de dispositivo: Exemplo: programas que lêem/escrevem em arquivos do HD, disquete, CD-ROM, sem ter que modificar o programa para cada dispositivo diferente. * Tratamento de erros: o mais próximo possível do hardware. Somente passar às camadas superiores o que não for possível tratar nas inferiores. * Tipos de transferência: assíncrona (com interrupção após o término). * Utilização do buffer: para armazenamento