Apostila SO Parte 4
Processos
O escalonamento da Unidade Central de Processamento (CPU - Central Processing Unit) é o conceito mais relevante de sistemas operacionais multiprogramados. É através do chaveamento do processador entre os vários processos, que o sistema operacional pode tornar a máquina mais eficiente e produtiva. Neste capítulo são introduzidos os conceitos básicos de processos, apresentados alguns problemas e algumas soluções propostas na literatura relacionados ao escalonamento de processos.
4.1 Conceito de Multiprogramação
Sem dúvida, o conceito de multiprogramação é um dos mais importantes nos sistemas operacionais modernos. Se existirem vários programas carregados na memória ao mesmo tempo, a CPU pode ser compartilhada entre eles, aumentando a eficiência da máquina e produzindo mais resultados em menos tempo.
A idéia por detrás da multiprogramação é bastante simples. Quando um programa libera a CPU, seja para realizar alguma operação de E/S ou por outro motivo, ela fica parada. Enquanto espera que o programa volte para executar, a CPU não realiza nenhum trabalho útil. Para acabar com a ociosidade deste tempo vários programas são mantidos ao mesmo tempo na memória e o sistema operacional se encarrega de escolher um deles para executar. Assim, sempre que um programa é interrompido, um outro é escolhido para ser executado em seu lugar. Com isso, a CPU estará durante grande parte do tempo ocupada processando instruções de programas.
Os benefícios da multiprogramação são vários: aumento da utilização da CPU e da taxa de saída do sistema computacional, isto é , da quantidade de trabalho realizada dentro de um intervalo de tempo (throughput).
Para exemplificar a utilidade da multiprogramação imaginemos um sistema onde três programas estão carregados na memória para serem executados, como na figura 4.1. Na primeira parte da figura é mostrada a execução seqüencial dos três processos. e1 c1
s1
e2
c2
s2
e3
c3
s3
seqüencial
e1 multiprogramado c1 e2 s1