A função de E/S sofreu uma série de evoluções ao longo dos anos. Inicialmente o processador controlava diretamente o periférico, depois surgiu a utilização de interrupções para gerência do processo, para, por fim, ser proposta a técnica que ficou conhecida como acesso direto à memória.
O controle direto da CPU é estabelecido através da técnica de entrada e saída programada, também conhecida como pooling. Neste modelo, a Unidade Central de Processamento garante que o programa não avança até que a operação de E/S esteja totalmente completada.
O que acontece na prática é que o programa efetua uma chamada de sistema solicitando o dispositivo e, assim que obtém a posse do mesmo, faz uma nova chamada para que a operação de E/S seja executada. Apenas neste momento o processo de Entrada e Saída passa a ser gerenciado pelo SO.
A principal característica desta técnica é o fato de que o Sistema Operacional demanda que a CPU verifique, durante a execução da operação de E/S e de forma cíclica e contínua, se o dispositivo ainda está disponível. Este comportamento, chamado de espera ocupada (busy waiting), é uma das principais desvantagens do modelo programado, já que gera desperdício do tempo de processamento da CPU.
De forma geral, a E/S programada se caracteriza pela facilidade de implementação e baixo custo. Como desvantagem, pode-se citar a ineficiência desta abordagem, sobretudo pelo desperdício de processamento ocasionado pela verificação cíclica da condição do dispositivo. Um esquema de funcionamento da técnica de e/s programada é exibido na figura. |
|