Gerência de Entrada/Saída Prof Clodoaldo Ap Moraes Lima 1 Princípios básicos de hardware Periférico é um dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo Os periféricos são conectados ao computador através de componentes de hardware denominado de interface As interfaces são interconectadas aos barramentos internos de um computador Elemento chave na coordenação de transferências de dados Interfaces se utilizam de um processador dedicado a realização e controle das operações de entrada e saída Controladoras 2
Arquitetura de entrada e saída Dispositivo de entrada e saída possui uma parte mecânica e outra eletrônica 3 Arquitetura de entrada e saída Cada dispositivo de E/S deverá estar ligado a uma interface de E/S Acesso ao dispositivo é realizado endereçandose a interface a qual o dispositivo esta ligado Normalmente estes endereços referenciam registradores da interface de E/S Estes registradores são denominadas portas 4
Como controladoras e sistema operacional interagem? Controladoras são programadas via registradores de configuração Recebem ordens do processador Fornecem estados de operação Leitura e escrita de dados do periférico Dependendo de como são definidos os endereços utilizados para operação de E/S, podemos dividir dois tipos de arquitetura E/S isolada (E/S mapeada em portas) Ex: 8080, 8085, Z80 E/S mapeada em memória Ex: 68HC11 5 BE BD BC Memória E/S isolada CPU Barramento de Endereços - BE Barramento de Dados - BD Barramento de Controle - BC Barramento de E/S Decodificador de endereços Decodificador de endereços Interface de E/S Interface de E/S Dispositivo de Saída Dispositivo de Entrada 6
E/S isolada (E/S mapeada em portas) Distinção lógica, mas não necessariamente física, entre barramento de E/S e barramento de memória Deve haver distinção entre as operações de E/S e as operações de acesso a unidade de memória geração de um sinal de controle através de uma linha reservada no barramento de controle 7 E/S isolada (E/S mapeada em portas) Valores idênticos de endereço Dois espaços de endereçamento distintos, com instruções especificas: E/S e memória 0 1 m Espaço de Memória 0 1 i Espaço de E/S Cada registrador de controle é associado a um número de porta de E/S, um número de 8 ou 16 bits IN REG, PORT lê o registrador de controle PORT e armazenar no registrador REG OUT REG, PORT escreve o conteúdo do registrador REG para o registrador de controle PORT 8
Memória E/S mapeada em memória CPU Barramento de Endereços - BE Barramento de Controle - BC Barramento de Dados - BD Decodificador de endereços Decodificador de endereços Interface de E/S Interface de E/S Dispositivo de Saída Dispositivo de Entrada 9 E/S mapeada em memória Um único espaço de endereçamento, com parte reservada às portas 0 1 M M+1 N Células de Memória Registradores de Interface 10
E/S mapeada em memória A CPU vai tratar qualquer porta como célula de memória As instruções de E/S são as próprias instruções de acesso à memória Vantagens Não são necessários códigos específicos para instruções de E/S Todas as instruções que fazem referência à memória podem utilizadas para manipulação de E/S A quantidade de endereços para E/S é praticamente ilimitada SO não precisa de mecanismo de proteção especial para impedir que os processos executem E/S 11 E/S mapeada em memória Desvantagem Parte dos endereços de memória não pode ser utilizado como endereços de memória; Há necessidade de interfaces mais complexas para reconhecer endereços maiores; 12
Controle de transferência de dados Existem 3 formas básicas de controle de E/S Por programa (controlada pela CPU) Por interrupção (controlada pela CPU) Por Hardware especifico (DMA) 13 E/S controlada por programa Usuário insere em pontos determinados do programa as instruções correspondentes às operações de E/S desejadas Este tipo de controle de E/S é aplicável quando há necessidade de executar a transferência em um determinado ponto do programa Assim a transferência é executada de forma síncrona em relação ao programa Ex: leitura de um dado de entrada a ser fornecido pelo usuário e do qual depende a continuação do programa em execução 14
E/S controlada por Interrupção Utilizada em aplicações em que o tipo de transferência é por evento, não existindo um ponto determinado do programa onde é feita a E/S de dados É importante observar que a rotina de serviço de interrupção não precisará implementar o laço de espera, pois toda vez que a interrupção ocorrer, a interface estará pronta para realizar a transferência, não existindo a possibilidade de perda de informação A transferência é executada de forma assíncrona em relação ao programa 15 E/S controlada por hardware Operações de E/S controladas pela CPU são inadequadas para transferência de dados entre a memória e dispositivos de alta velocidade, como as unidades de discos magnéticos Neste caso, são transferidos grandes blocos de dados e a execução repetitiva das instruções de E/S torna a transferência ineficiente Solução: hardware especifico que permita a conexão direta entre a memória e o dispositivo interface especial denominada controlador DMA 16
Gerência de Entrada/Saída no UNIX A gerência de E/S é integrada ao sistema de arquivos O acesso aos dispositivos é feito através de arquivos especiais, como /dev/lp que pode ser impressora /dev/tty1 que pode ser um terminal /dev/net que pode ser uma interface de rede As mesmas chamadas de sistemas usadas para arquivos pode ser usadas para os outros dispositivos Desta maneira, cria-se uma forma de acesso uniforme a todos os dispositivos 17 Gerência de Entrada/Saída no UNIX Em dispositivos que operam em modo bloco, a transferência de dados entre o espaço de endereçamento de um processo e o dispositivo se dá via buffer cache A razão para tal é que tais dispositivos (disco) são lentos, sendo portanto a bufferização um meio de aumentar a taxa de transferência de dados Obs: Com o objetivo de minimizar a freqüência de acesso ao disco o núcleo gerência um pool interno de buffers denominado de cache de buffer Neste caso trata-se de uma estrutura de software que não dever confundida com a memória cache em hardware que é utilizada para acelerar as referências à memória 18
O sistema de E/S do Unix no BSD 19 20
Gerência de Entrada/Saída no UNIX Uma chamada close faz com que o núcleo acesse o respectivo procedimento para o dispositivo, cuja identificação é obtida na tabela de arquivos Chamada ioctl permitem o usuário operar tanto arquivos regulares quanto dispositivos do tipo caracteres Operações típicas são: Bloquear um arquivo; Desligar o eco do terminal; Ajustar a taxa de transferência de modens; 21 Gerência de Entrada/Saída no UNIX Para dispositivo do tipo bloco, chamadas read e write seguem o mesmo procedimento Para tais dispositivos, na qual o driver tem que interagir com as rotinas de buffer cache, o procedimento é outro Uma rotina denominada strategy realiza as operações de leitura e escrita em tais dispositivos Quando uma operação de leitura ou escrita é requisitada, o núcleo identifica a rotina strategy definida para o dispositivo, passando a o endereço do cabeçalho do buffer para onde os dados devem ser copiados, caso leitura, ou contendo os dados para escrita 22