Guia de Controladores e Software de Entrada e Saída (E/S)
Classificado em Computação
Escrito em em
português com um tamanho de 25,63 KB
Controladores de Dispositivos
Os componentes de dispositivos de E/S dividem-se em: mecânico e eletrônico. O componente eletrônico é o controlador do dispositivo, que pode ser capaz de tratar múltiplos dispositivos.
Tarefas do Controlador
- Converter fluxo serial de bits em bloco de bytes;
- Executar toda correção de erro necessária;
- Tornar o bloco disponível para ser copiado para a memória principal.
Interrupções Revisitadas
Como ocorre uma interrupção: as conexões entre dispositivos e o controlador de interrupção usam linhas de interrupção no barramento em vez de fios dedicados.
Princípios do Software de E/S
Objetivos do Software de E/S
- Independência de dispositivo: programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (disquete, disco rígido ou CD-ROM).
- Nomeação uniforme: o nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um número inteiro independente do dispositivo.
- Tratamento de erro: deve ser tratado o mais próximo possível do hardware.
- Transferências Síncronas vs. Assíncronas: transferências bloqueantes vs. orientadas a interrupção.
- Utilização de buffer: para armazenamento temporário, pois dados provenientes de um dispositivo muitas vezes não podem ser armazenados diretamente em seu destino final.
- Dispositivos Compartilháveis vs. Dedicados: discos são compartilháveis, enquanto unidades de fita não são.
Camadas do Software de E/S
Tratadores de Interrupção
As interrupções devem ser escondidas o máximo possível. Uma forma de fazer isso é bloqueando o driver que iniciou uma operação de E/S até que uma interrupção notifique que a E/S foi completada. A rotina de tratamento de interrupção cumpre sua tarefa e então desbloqueia o driver que a chamou.
Passos Executados após a Interrupção
- Salva registradores que ainda não foram salvos pelo hardware;
- Estabelece contexto para a rotina de tratamento;
- Estabelece uma pilha para a rotina de tratamento;
- Sinaliza o controlador de interrupção e reabilita as interrupções;
- Copia os registradores de onde eles foram salvos;
- Executa a rotina de tratamento de interrupção;
- Escolhe o próximo processo a executar;
- Estabelece o contexto da MMU para o próximo processo;
- Carrega os registradores do novo processo;
- Começa a executar o novo processo.
Software de E/S Independente de Dispositivo
- Interface uniforme para os drivers dos dispositivos;
- Armazenamento em buffer e relatório de erros;
- Alocação e liberação de dispositivos dedicados;
- Fornecimento de tamanho de bloco independente de dispositivo.
Algoritmos de Escalonamento de Braço de Disco
O tempo necessário para ler ou escrever um bloco de disco é determinado por três fatores:
- Tempo de posicionamento (seek time): fator dominante;
- Atraso de rotação;
- Tempo de transferência do dado.
A checagem de erro é realizada pelos controladores.
Temporizadores de Software
Utiliza-se um segundo relógio programável para interrupções de temporização, ajustado para qualquer taxa que um programa precisar. Funciona bem se a frequência de interrupção for baixa. Temporizadores de software evitam interrupções desnecessárias; o núcleo checa se o temporizador expirou antes de retornar para o modo usuário. A eficácia depende da taxa de entradas no núcleo.
Terminais RS-232 e Base em Caracteres
Hardware do Terminal RS-232
Um terminal RS-232 se comunica com um computador bit a bit através de uma linha serial (os bits saem em série, um por vez). O Windows usa portas COM1 e COM2 para linhas seriais. O computador e o terminal são completamente independentes.