-
-
-
-
CENAPAD-MGCO
A seguir: A Disciplina Programação Paralela
Acima: Apresentação do Curso
Anterior: Apresentação do Curso
Alguns dos primeiros computadores tinham uma instrução
lê cartão , que comandava diretamente a leitora de
cartões, enviando instruções e recebendo dados, até a
leitura completa do cartão, quanto o fluxo normal de
execução de instruções da CPU era retomado. A leitura
de um cartão envolvia a movimentação mecânica do
cartão, e era intrinsecamente lenta, tomando um tempo em que a CPU
poderia executar alguns milhares de instruções. CPUs eram
muito caras, da ordem de milhões de dólares, e todo
esforço para um melhor aproveitamento de seus recursos era
justificável.
Surgiu então a idéia de leitura antecipada
dos
cartões. Os 80 bytes lidos de um cartão seriam colocados em
uma área de memória, chamada buffer . Enquanto a leitora
estivesse operando, o programa do usuário continuaria fazendo seus
cálculos, usando a CPU. Quando o programa do usuário quisesse
ler um cartão, sua imagem seria obtida diretamente da memória,
numa operação rápida. Uma idéia simples e boa, que
entretanto colocava novos problemas:
- o modelo de programação para o usuário não deveria ser
alterado. O programador comum poderia continuar a pensar que o
comando
read(cardReader, cardImage) acionava a leitora, e lia
efetivamente os mesmos cartões, na mesma ordem em que estavam
colocados no escaninho de entrada;
- era necessário um mecanismo para a leitora avisar do
término da leitura de um cartão, de onde surgiu a
interrupção
- o programa do usuário deveria esperar quando o buffer estivesse
vazio, e a leitora deveria esperar quando o buffer estivesse cheio
Next: A Disciplina Programação Paralela
Up: Apresentação do Curso
Previous: Apresentação do Curso
Osvaldo Carvalho
-
Postscript -
Comentários?