LUla e seu dedo mendinho
Funções específicas: Enviar sinais para os dispositivos; Atender interrupções;
Gerenciar comandos aceitos e funcionalidades;
Tratar possíveis erros;
Prover interface entre os dispositivos e o sistema;
Dispositivos Hardware:
→ baseados em bloco: informação é armazenada em blocos de tamanho fixo, cada um com um endereço próprio; Tamanho entre 512 bytes e 32.768 bytes; Permitem leitura e escrita independentemente de outros dispositivos e operações de busca;
→ baseados em caracter: aceita uma sequência de caracteres, sem se importar com a estrutura de blocos; informação não é endereçável e não possuem operações de busca;
Há exceção: clocks:provocam interrupções em intervalos definidos;
Classificar os dispositivos auxilia na obtenção de sua independência;
Dispositivos de E/S possuem basicamente dois componentes:
Mecânico: o próprio dispositivo;
Eletrônico: controladores ou adaptadores;
O dispositivo e a controladora se comunicam por meio de uma interface;
Cada controladora possui um conjunto de registradores de controle, que são utilizados na comunicação com a CPU;
SO gerencia, utilizando os drivers, os dispositivos de E/S escrevendo nos registradores;
A CPU se comunica com os registradores de controle através de um número de porta;
Memory-mapped : mapear os registradores de controle em espaços de memória;
Cada registrador possui um único endereço de memória;
Em geral, os endereços estão no topo da memória protegidos em endereços não utilizados por processos;
Uso de linguagem de alto nível, já que registradores são apenas variáveis na memória;
SOs utilizam essa estratégia para os dispositivos de vídeo; Estratégia híbrida: Registradores --> Porta;