Os primeiros computadores eram grandes equipamentos operados a partir de um console. Seus dispositivos de entrada mais comuns eram leitores de cartão e unidades de fita. Os de saída eram impressoras, unidades de fita e perfuradores de cartão. O usuário (geralmente um programador) interagia com o computador por intermédio de um operador. O usuário prepara uma tarefa (job) composta de programa, dados e informações de controle. Esta tarefa era entregue ao operador sob a forma de um conjunto de cartões perfurados. Após o processamento (que poderia durar mais de um dia) lhe era entregue a saída do processamento: uma impressão (em geral) ou alguns dados para interpretação de erros de execução. Nesta época o sistema operacional ficava residente em memória e sua principal tarefa era transferir o controle de uma tarefa para o subseqüente. Os operadores tentavam otimizar este processo reunindo tarefas em lotes com características semelhantes e executando-as como um grupo. Trabalhando neste regime, era comum a UCP (Unidade Central de Processamento, também conhecida com CPU, de Central Processing Unit) ficar ociosa durante atividades de entrada ou saída de dados (conhecida como E/S ou I/O, de Input/Output). Os dispositivos de E/S, geralmente, contém componentes mecânicos, intrisicamente mais lentos do que os dos dispositivos eletrônicos. Melhorias nos dispositivos de E/S tornaram-nos mais rápidos, mas as UCP avançaram ainda mais rápido. A solução deste problema começou a se desenhar com a introdução dos discos rígidos em 1957, pela IBM. O primeiro deles podia armazenar a incrível – para a época – quantidade de 5 MB. Um disco rígido poderia manter todas as tarefas e fornecer acesso direto a todos eles. Isso possibilitou a criação da multiprogramação. O sistema operacional pode manter várias tarefas na memória ao mesmo tempo. Estas tarefas são um subconjunto das tarefas matidas em um pool de tarefas. Uma desta tarefas é posta em execução. Em algum instante esta tarefa pode deixar a UCP ociosa (por estar esperando uma operação de E/S, por exemplo). Originalmente a UCP ficaria realmente ociosa. Em um ambiente de multiprogramação o sistema operacional passa o controle da UCP para outra tarefa e a executa.
Copyright © 2024 CliqueApostilas | Todos os direitos reservados.