sistemas operacionais
3.1 INTRODUÇÃO
Os Sistemas Operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade de o processador executar instruções em paralelo com operações de E/S permite que diversas tarefas sejam executadas concorrentemente. O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas multiprogramáveis.
Os sistemas multiprogramáveis surgiram a partir de limitações existentes nos Sistemas Operacionais monoprogramáveis. Neste tipo de sistema, os recursos computacionais como processador, memória e dispositivos de E/S eram utilizados de maneira pouco eficiente, limitando o desempenho destas arquiteturas. Muitos destes recursos de alto custo permaneciam muitas vezes ociosos por longos períodos de tempo.
Nos sistemas monoprogramáveis, somente um programa pode estar em execução por vez, permanecendo o processador dedicado exclusivamente a uma tarefa. Podemos observar que, nesse tipo de sistema, ocorre um desperdício na utilização do processador (Fig. 3.1a), pois enquanto uma leitura em disco é realizada, o processador permanece ocioso. O tempo de espera é relativamente longo, já que as operações com dispositivos de entrada e saída são muito lentas se comparadas com a velocidade com que o processador executa instruções.
A Tabela 3.1 apresenta um exemplo de um programa que lê registros de um arquivo e executa, em média, 100 instruções por registro lido. Neste caso, o processador gasta aproximadamente 93% do tempo esperando o dispositivo de E/S concluir a operação para continuar o processamento (Stallings, 1997). Em sistema monoprogramáveis, o processador é subutilizado, permanecendo livre grande parte do tempo.
Tabela 3.1 Exemplo de utilização do sistema
Leitura de um registro 0,0015 s
Execução de 100 instruções 0,0001 s
Total 0,0016 s
% utilização da CPU (0,0001/0,0015) = 0,066 = 6,6 %
Outro aspecto a ser considerado é a