Por que os dispositivos de E s colocam o vetor de interrupção no barramento?

Entrada e Sa�da

Uma 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.

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 Dispositivos

As 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


  • Cada controlador de dispositivo tem seus registradores. Esses registradores s�o usados para comunicar com a CPU. Por meio da escrita nesses registradores do controlador de dispositivo, o S.O pode comandar o dispositivo para aceitar, executar, desligar.
  • A partir da escrita nesses registradores, o S.O pode saber o estado de um dispositivo, se ele est� apto a receber um novo comando, etc. Al�m dos registradores, os dispositivos t�m buffers, no qual o S.O l� e escreve.
COMO A CPU SE COMUNICA COM OS REGISTRADORES DO CONTROLADOR E COM OS BUFFERS DO DISPOSITIVO?

H� duas possibilidades:

  1. Cada registrador � associado a um numero de porta de e/s. Usando uma instru��o, a CPU pode ler o registrador do controlador e armazenar o resultado no seu registrador. A mesma pode escrever o conte�do do registrador da CPU para o registrador de controle.
  2. Visa mapear todos os registradores de controle no espa�o de endere�amento. Quando a CPU quer ler uma palavra, ou da mem�ria, ou da e/s, a CPU coloca o endere�o que precisa nas linhas do barramento. Um segundo sinal � emitido, ele informa se o espa�o requisitado � da mem�ria, ou da e/s.
  • Se o espa�o requisitado � da mem�ria, a mem�ria responder� a requisi��o, se for da e/s o dispositivo e/s responder�.
  • Se existe somente um espa�o, cada m�dulo de mem�ria e cada dispositivo de e/s compara as linhas de endere�o associado a cada dispositivo de e/s, compara as linhas do endere�o com a faixa de endere�o associada a cada um. Se os endere�os est�o dentro da faixa, esse componente responde a requisi��o.

Os dois esquemas de endere�amento dos controladores apresentam vantagens e desvantagens espec�ficas

. As vantagens da E/S Mapeada na Mem�ria:
  • Primeiro: Quando s�o necess�rias instru��es especiais de e/s para ler ou escrever nos registradores dos dispositivos, requer c�digo em assembly, pois n�o tem nenhum modo de executar uma instru��o. Assim, com e/s mapeada na memoria, um driver do dispositivo pode ser escrito em C.
  • Em segundo lugar, N�o � preciso qualquer mecanismo de prote��o para impedir que os processos dos usu�rios executem e/s. Tudo que o S.O faz � deixar de mapear aquela por��o do espa�o de endere�amento associada aos registradores de controle no espa�o de endere�amento virtual do usu�rio.
  • Em terceiro lugar, Na memoria, cada instru��o capaz de referenciar a memoria, pode tamb�m referenciar os registradores de controle.
Desvantagens:
  • A maioria dos computadores atuais usa alguma forma de cache para as palavras de mem�ria. O uso de cache para registradores de controle seria desastroso. O HW deve ser equipado com a capacidade de desabilitar a cache.
  • Em segundo lugar, se existe somente um espa�o de endere�amento, todos os m�dulos de memoria e todos os dispositivos devem examinar as referencias de memoria, para verificar quais delas devem ser respondidas por cada um. Se tiver somente um barramento, cada componente pode olhar para cada endere�o diretamente.

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.

  • Quando o DMA � usado, o procedimento � diferente. A CPU programa o controlador do DMA, inserindo valores em seus registradores, de modo que ele saiba que tem algo para transferir e para onde transferir.
  • Ele emite um comando para o controlador de disco, ordenando carregar os dados do disco para seu buffer interno e ent�o verificar a soma de verifica��o. Quando os dados que est�o no buffer do controlador s�o validos, o DMA pode come�ar.
  • O controlador do DMA inicia a transfer�ncia emitindo pelo barramento uma requisi��o de leitura para o controlador de disco. Normalmente, o endere�o de memoria, para onde escrever, est� nas linhas de endere�o do barramento, de modo que quando o controlador de disco busca a pr�xima palavra do seu buffer interno ela sabe onde escrever.

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 Revistadas

Em 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 Precisa

Uma 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

  • Independ�ncia do dispositivo: Prop�e que deveria ser poss�vel escrever programas aptos a acessar qualquer dispositivo. Relacionado a isso, est� a nomea��o uniforme. O nome de um arquivo ou dispositivo deve ser uma cadeia de caracteres ou n�meros inteiros independentes do dispositivo. Tratamento de erros. Os erros deveriam ser tratados e mais perto poss�vel do HW.
  • Orientada a Interrup��es: Quando a impressora imprime um caractere e est� preparado para aceitar o pr�ximo caractere, ela gera uma interrup��o. Esta interrup��o da impressora � executada. Se n�o existem mais caracteres para imprimir, o tratador de interrup��es executa alguma a��o para desbloquear o usu�rio solicitante. Ou, ele envia o caractere seguinte, confirma a interrup��o e retorna para o processo que parou E/S usando DMA.
  • DESVANTAGEM: � a ocorr�ncia de interrup��es para cada caractere. Desperdi�ando tempo de CPU. Uma solu��o � usar DMA.

CAMADAS DE SW DE E/S

O 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 dispositivo

Cada 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

  • Sistemas Operacionais Modernos 3� Edi��o � Andrew S. Tanenbaum Edi��o: 3�. Autor: Andrew S. Tanenbaum. Editora: Prentice Hall

Plano PRO

  • Acesso completo
  • Projetos reais
  • Professores online
  • Exerc�cios gamificados
  • Certificado de autoridade

Por que os dispositivos de E s colocam o vetor de interrupção no barramento?

Por L�gia Em 2013

Receba nossas novidades

Por 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.