Entrada e Sa�daUma das fun��es principais de um sistema operacional � controlar todos os dispositivos de e/s de um computador, tratar erros, interceptar interrup��es, fornecer uma interface entre o dispositivo e o sistema, emitir comandos para os dispositivos. Show
Os dispositivos de entrada e sa�da podem ser divididos em um modo gen�rico como dispositivos de bloco e caractere. Um dispositivo de bloco armazena as informa��es em blocos de tamanho fixo, cada qual com seu endere�o. Cada bloco pode ser lido ou escrito de maneira independente uns dos outros. Um dispositivo de bloco pode estar com um ponteiro em qualquer lugar e pode ser posicionado para outro cilindro. Outro dispositivo de e/s � o dispositivo de caractere. O dispositivo de caractere n�o utiliza estrutura de blocos nem posicionamento. No dispositivo de caractere ele recebe um fluxo de caracteres, al�m de n�o ser endere��vel. Os dispositivos de e/s tem uma grande variedade, cada uma trabalha a uma velocidade, assim pressionando o sw a trabalhar com essas diferentes taxas de transfer�ncias. Os rel�gios n�o s�o dispositivos de blocos nem de caracteres. Os rel�gios s� causam interrup��es. Dispositivos diferentes dos discos podem ser considerados dispositivos de caracteres. Mas esse modelo de classifica��o n�o � perfeito. Controladores de DispositivosAs unidades de e/s constituem de um componente eletr�nico e um mec�nico. O elemento eletr�nico � chamado de controlador de dispositivo ou adaptador. Nos computadores pessoais, o controlador de dispositivo aparece em forma de uma placa de circuito impresso. Nessa placa, tem um conector que pode ser plugado outros dispositivos. (Se for uma interface padr�o, entre o dispositivo e o controlador), ou seja, deve ter uma interface baixa entre o controlador e um dispositivo. Pre�mbulo � escrito quando um disco � formatado. Nele, contem o numero do cilindro, tamanho do setor, informa��es dos dados e sincroniza��o. O trabalho do controlador de dispositivo � converter fluxo de bits em bloco de bytes, al�m de corrigir erros. O bloco de bytes � formado dentro do controlador. Ap�s converter em blocos de bytes, � somado e checado, se o bloco estiver com a soma correta e sem erros ele � copiado para a mem�ria principal. Entrada e Sa�da Mapeada na Mem�ria
H� duas possibilidades:
Os dois esquemas de endere�amento dos controladores apresentam vantagens e desvantagens espec�ficas. As vantagens da E/S Mapeada na Mem�ria:
Quando se tem um barramento de memoria separado em m�quinas mapeadas na mem�ria, surge a preocupa��o que os dispositivos n�o t�m como enxergar os endere�os de memoria quando estes s�o lan�ados no barramento da memoria, de modo que estas n�o tenham como responder. Uma Solu��o pode ser enviar todas as referencias de memoria para a memoria, se a memoria falhar para responder, ent�o a CPU tenta outros barramentos. Uma segunda solu��o poderia colocar um dispositivo de escuta no barramento da memoria para repassar aos dispositivos de e/s podem n�o serem capazes de processar as requisi��es na velocidade da memoria. J� um terceiro m�todo consiste em filtrar os endere�os no chip da ponte PCI. Acesso Direto a Memoria (DMA)N�o importa se a CPU tem ou n�o E/S mapeada na memoria, ela precisa endere�ar os controladores dos dispositivos para poder trocar dados com eles. A CPU pode requisitar dados de um controlador de E/S, um byte de cada vez, mas desperdi�a muito tempo, de modo que um esquema diferente (DMA) seja usado. Um S.O pode utilizar um DMA somente se o HW tem o controlador de DMA. O controlador de DMA tem acesso ao barramento do sistema. Eles contem v�rios registradores que podem ser lidos ou escritos na CPU, os quais possuem registrador de endere�o de memoria, registrador de controle e registrador de contador de bytes. O controlador l� um bloco do dispositivo, bit a bit, at� que todo bloco esteja no buffer do controlador. Em seguida, ele calcula a soma de verifica��o, para constatar de que n�o houve algum erro de leitura. Ent�o, o controlador causa uma interrup��o. Quando o S.O inicia o atendimento, ele pode ler o bloco do disco a partir do buffer do controlador. Um bloco de byte ou uma palavra � lida no registrador do controlador e armazenada na memoria principal.
A escrita na memoria � outro ciclo de barramento. Quando a escrita est� completa, o controlador de disco emite um sinal de confirma��o para o controlador, tamb�m pelo barramento. O controlador de DMA incrementa o endere�o de memoria e diminui o contador de bytes. Se o contador � maior que O, os passos s�o repetidos at� que ele se torne 0. Nesse momento, o controlador de DMA interrompe a CPU para deixa-la ciente de que a transfer�ncia est� completa. Quando o S.O inicia o atendimento da interrup��o, ele n�o precisa copiar o bloco de disco para a memoria, pois ele j� est� l�. Muitos barramentos podem operar em dois modos: modo palavra e modo bloco. Alguns controladores de DMA tamb�m s�o capazes de operar em outro modo. No modo palavra, opera��o funciona como descrita anteriormente, o controlador de DMA solicita a transfer�ncia de uma palavra e consegue. Se a CPU tamb�m quer o barramento, ela tem que esperar. O mecanismo � chamado de roubo de ciclo, pois o controlador de dispositivo rouba da CPU um ciclo do barramento, a cada vez alternando. No modo bloco, o controlador do DMA diz ao dispositivo para obter o barramento, emite uma serie de transfer�ncias e ent�o libera o barramento. Esse modo de opera��o � chamado de modo surto. Este � mais eficiente que o anterior, pois varias palavras podem ser transferidas com uma aquisi��o do barramento. A �nica desvantagem do modo surto � que ele pode bloquear a CPU e outros dispositivos por um per�odo grande de tempo, caso um longo surto tenha de ser transferido. Modo Direto, o controlador de DMA diz para o controlador de o dispositivo transferir dados diretamente para a memoria principal. Um modo alternativo, que alguns DMAs usam estabelece que o controlador de dispositivo deve enviar uma palavra para o controlador de DMA, que por sua vez requisita o barramento para escrever a palavra para qualquer que seja seu destino. As maiorias dos controladores de DMA usam endere�amento de memoria f�sica para suas transfer�ncias. O uso de endere�os de memoria f�sica requer que S.O converta o endere�o virtual do buffer de memoria em um endere�o f�sico. Ent�o o controlador de DMA deve usar a unidade de gerenciamento da memoria (MMU) para fazer essa tradu��o. Somente no caso em que a MMU � parte da memoria, e n�o da CPU, os endere�os virtuais s�o colocados no barramento. Nem todos os computadores usam DMA, pois se argumenta que a CPU � muito mais veloz que o controlador de DMA e pode fazer o trabalho muito mais r�pido. Interrup��es RevistadasEm hardware, as interrup��es trabalham: quando um dispositivo de e/s finaliza seu trabalho, ele gera uma interrup��o (se estiverem habilitadas). Ele envia um sinal pela linha do barramento a qual est� associado. O sinal � detectado pelo chip, controlador de interrup��o localizado na placa m�e, o qual decide o que fazer. Se nenhuma outra interrup��o est� pendente, o controlador de interrup��o processa a interrup��o imediatamente. Se outra interrup��o est� em tratamento, ou outro dispositivo fez uma requisi��o com maior prioridade, o dispositivo � ignorado. Ele continua a gerar interrup��o no barramento at� ser atendido. Para tratar a interrup��o, o controlador coloca um numero nas linhas de endere�o, citando qual dispositivo deve observar e passa a interrup��o para a CPU. O sinal de interrup��o faz com que a CPU pare aquilo que esta fazendo e inicie outras atividades. Os n�meros colocados na linha de endere�amento s�o usados como �ndice no vetor de interrup��o. Esse vetor aponta para uma rotina de tratamento de interrup��o. Interrup��o PrecisaUma Interrup��o que deixa a m�quina num estado bem definido. Propriedades: PC � salvo em um lugar conhecido. Todas as instru��es anteriores a apontadas pela CPU foram executadas. Nenhuma instru��o posterior a apontada pela CPU foram executadas. O estado da instru��o apontada pelo PC � conhecido Uma instru��o que n�o atende a estes requisitos s�o chamadas de interrup��es Imprecisas. Objetivos do SW de E/S
CAMADAS DE SW DE E/SO SW de E/s � dividido em 4 camadas. Cada camada tem uma fun��o bem definida para executar e uma interface para as camadas. Drivers do dispositivoCada controlador tem alguns registradores do dispositivo, utilizado para dar comandos. O n�mero de registradores do dispositivo e a natureza dos comandos variam de dispositivos para dispositivos. EX: um driver de mouse deve aceitar informa��es do mouse dizendo o quanto se moveu e qual bot�o foi pressionado. Em contra partida, o driver do disco deve saber sobre o setor, trilhas, cilindros e cabe�otes. Obviamente esses drivers ser�o muito diferentes. Como consequ�ncia, cada dispositivo de e/s ligado ao computador precisa de algum c�digo especifico do dispositivo para control�-lo. Esse c�digo, chamado de driver do dispositivo,� em geral escrito pelo fabricante do dispositivo, juntamente com o dispositivo.Visto que cada sistema operacional precisa de seus pr�prios drivers dos dispositivos, os fabricantes fornecem drivers para os sistemas operacionais mais populares. Cada driver de dispositivo normalmente trata um tipo de dispositivo. Para acessar o HW do dispositivo, o driver deve ser parte do S.O. Os S.O geralmente classificam os drivers em categoria de dispositivo de blocos, os quais contem v�rios blocos de dados que podem ser endere�ados independentemente - e os dispositivos de caractere, os quais geram ou aceitam um fluxo de caracteres. Refer�ncias bibliogr�ficas
Plano PRO
Por L�gia Em 2013 Receba nossas novidadesPor que os dispositivos de E s colocam o vetor de interrupção no barramento?A interrupção permite aos dispositivos periféricos sincronizarem a sua operação com a CPU. Caso não existisse, a CPU teria que ficar verificando se algum periférico pretende reportar algum evento (“polling”).
Qual a função do vetor de interrupção?O vetor de interrupções é uma tabela de endereços de memória que apontam para as rotinas de tratamento de interrupção.
Qual a importância do emprego de interrupção em operações de e S?Se a CPU for mais rápida que o módulo de E/S, isto é um desperdício de tempo de CPU. Com E/S conduzida por interrupção a CPU emite um comando de E/S, continua a executar outras instruções e é interrompida pelo módulo de E/S quando este tiver concluído o seu trabalho.
O que são interrupções em sistemas computacionais e para que servem?A interrupção avisa ao processador quando o evento ocorreu, permitindo dessa forma uma acomodação eficiente para dispositivos mais lentos. Interrupções permitem aos processadores modernos responder a eventos gerados por dispositivos enquanto outro trabalho está sendo realizado.
|