Aula 03 (Resumo)

Propaganda
Instituto Federal de Santa Catarina – Campus Chapecó
Ensino Médio Integrado a Informática
Sistemas Operacionais
Professor: Bruno Crestani Calegaro
Notas de Aula 03
Escalonamento de processos
No sistema operacional, cada programa em execução constitui um processo. Este processo é
definido como um conjunto necessário de informações para que o sistema operacional implemente a
concorrência dos programas, ou seja, é constituído por:

Contexto de hardware → armazena o conteúdo dos registradores gerais da CPU e registradores de uso específico;

Contexto de software → especifica os limites e características dos recursos que podem ser
alocados pelo processo;

Espaço de endereçamento → determina a área de memória pertencente ao processo onde
instruções e dados serão armazenados para execução.
Um processo é classificado como CPU-bound ou I/0-bound, de acordo com a utilização do
processador e dos dispositivos de E/S. Portanto:

Processo CPU-bound → Passa a maior parte do tempo no estado de execução, utilizando o
processador, ou no estado pronto;

Processo I/O-bound → Passa a maior parte do tempo no estado de espera, pois realiza um
elevado número de operações de E/S.
Nos sistemas multiprogramáveis os processos são executados concorrentemente, compartilhando o
uso do processador, memória principal e dispositivos de E/S, dentre outros recursos. A partir do
momento em que diversos processos podem estar no estado de pronto, deve-se adotar uma política
de escalonamento, ou seja, deve-se estabelecer critérios que determinarão qual processo será
escolhido para fazer o uso do processador.
Sendo assim, a gerência de processos é uma das principais funções de um sistema operacional,
possibilitando aos programas alocar recursos, compartilhar dados, trocar informações e sincronizar
suas execuções.
A política de escalonamento é implementada por uma rotina do sistema operacional (denominada
escalonador) e deve possuir as seguintes funções:

Manter o processador ocupado a maior parte do tempo;

Balancear o uso da CPU entre os processos;

Privilegiar a execução de aplicações críticas;

Maximizar a produtividade do sistema;

Oferecer tempos de resposta razoáveis para usuários interativos.
Uma política de escalonamento pode ser classificada de acordo com a sua preempção, ou seja, se o
sistema operacional pode interromper o processo em execução e substituí-lo por outro:

Escalonamento não-preemptivo → quando um processo está em execução nenhum evento
externo pode ocasionar a perda do uso do processador;

Escalonamento preemptivo → o sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, para poder alocar outro processo na CPU. Este modelo permite que o sistema priorize a execução certos de processos além de balancear o uso
da CPU entre os processos.
Escalonamentos: FIFO, Shortest Job First, Shortest Remaining Time e
Round-Robin
Escalonamento FIFO
Escalonamento First in First out (FIFO) adota a política de que o processo que chegar primeiro ao
estado de pronto será selecionado para a execução.
Possui as seguintes características:

Estrutura → contém uma fila para armazenar os processos que estão no estado de pronto;

Funcionamento → quando um processo passa para o estado de pronto, ele entrará no final da
fila e será escalonado quando chegar ao seu início;

Classificação → não preemptivo, pois um processo não pode ser interrompido quando está
sendo executado;

Deficiência → Impossibilidade de prever quando um processo terá a sua execução iniciada;
falta de uma estrutura para melhorar o tempo médio de espera dos processos; processo CPUbound tem vantagem em relação ao processo I/0-bound.
Esse método tem como desvantagem prejudicar os processos I/O Bound.
Exercício 1: monte o diagrama do tempo dos processos abaixo, sabendo que o número informado
na tabela corresponde ao tempo de execução de cada processo.
Processo
Tempo
A
12
B
8
C
15
D
5
Exercício 2: calcule o tempo médio de espera na fila de execução.
Escalonamento Shortest Job First
Escalonamento Shortest Job First (SJN), também citado em algumas fontes de pesquisa como
Shortest Job Next (SJN) ou Shortest Process Next (SPN), o algoritmo seleciona o processo que tiver
o menor tempo de execução que resta para executar.
Assim sendo, o processo que estiver no estado pronto e que necessitar de menor tempo de CPU,
considerando um mesmo contexto, passa a possuir o estado de execução. Esta metodologia busca
priorizar a uniformização do algoritmo de escalonamento Round-Robin, porém, considera o
processo em estado de execução como não apropriativo.
A implementação desse paradigma de escalonamento foi utilizada com sistemas operacionais
exclusivos para processamento em lote. A cada novo processo admitido pelo sistema, um tempo de
execução era associado ao contexto do software.
Como não é possível determinar precisamente esse tempo de execução, uma estimativa era
realizada considerando como base análises estatísticas de execuções passadas (heurística), podendo
ser fornecidas pelo usuário ou incorporadas aos programas. Caso o tempo de execução informado
fosse muito inferior ao tempo real, o sistema operacional poderia interromper a execução do
processo.
O principal problema dessa solução é a impossibilidade de estimar o tempo de execução de
processos interativos, já que a entrada de dados é uma ação imprevisível.
Em sua concepção inicial, o escalonamento SJF é um escalonamento não-preemptivo. Sua
vantagem no escalonamento FIFO está na redução do tempo médio de turnaround dos processos,
porém, no SJF é possível haver starvation para processos com tempo de processador muito longo,
ou do tipo CPU-bound.
Neste modelo, os processos prontos ficam organizados em uma lista em ordem crescente, baseado
no tempo de execução e o momento de chegada. Em suma, esse paradigma de escalonamento pode
ser classificador por:

Mão apropriativa;

Privilegia os processos I/O-bound;

Possui desempenho médio melhor se comparado ao paradigma FIFO;

Possui uma desvantagem de implementação, já que necessita um algoritmo de heurística eficiente;

É pouco previsível;

Não é justo com processos longos.
Exercício 3: Refaça os exercícios 1 e 2 utilizando o algoritmo de escalonamento SJF.
Escalonamento Shortest Remaining Time
O algoritmo de escalonamento Shortest Remaining Time (SRT) ou Shortest Remaining First (SRF)
é a variante preemptiva do escalonamento SJF. A fila de processos a serem executados pelo SRT é
organizada conforme o tempo estimado de execução, ou seja, de forma semelhante ao SJF, sendo
processados primeiro os menores jobs.
Na entrada de um novo processo, o algoritmo de escalonamento avalia seu tempo de execução
incluindo o job em execução, caso a estimativa de seu tempo de execução seja menor que o
processo corrente em execução, ocorre a substituição do processo em execução pelo processo
recém-chegado.
A função de seleção pode ser representada simplificadamente por:

A cada mudança de contexto, o processo suspenso pela CPU deve ser recolocado em uma
posição correspondente apenas ao seu tempo restante de execução e não mais o tempo de
execução total;

As sobrecargas impostas pela manutenção dos registros de tempos decorridos e pela troca de
contexto da CPU acabam sendo justificadas pelo fato de pequenos processos serem executados praticamente de imediato, minimizando o tempo médio de espera dentro de um cenário
mais amplo e tornando-se útil para sistemas de tempo repartido.
Este algoritmo também se baseia nas estimativas de tempo de execução dos processos, possuindo as
mesmas deficiências do algoritmo SJF, sendo necessário considerar:

Processos com tempo de execução curtos são priorizados;

Processos de maior duração tem seus tempos de espera variáveis em função de jobs menores
que venham a ser executados primeiramente;

Possibilidade potencial de processos grandes sendo adiados por um tempo indeterminado
(starvation) devido ao excessivo favorecimento de processos de curta duração;

Deve-se incluir um mecanismo extra para evitar que um processo, prestes a ser finalizado,
sofre alguma preempção.
Exercício 4: Utilizando o algoritmo de escalonamento SRT, faça o diagrama do tempo da tabela
abaixo.
Processo
Tempo de
Execução
Tempo de
chegada
A
5
0
B
3
0
C
1
1
D
3
5
Escalonamento Round-Robin
Escalonamento Round-Robin (RR), cuja tradução é escalonamento circular, foi o primeiro modelo a
propor uma implementação que simulasse a multitarefa em tempo real. Esta metodologia propõe
que os processos revezem o uso da CPU através de uma unidade de tempo denominada quantum
(“q”), cujo valor é determinado pela implementação do sistema operacional, podendo ter a duração
de 10 a 100 milissegundos.
Após se encerrar o quantum, o processo escalonado deve ceder o lugar na CPU a outro processo.
Portanto, o comportamento da metodologia ocorrerá em função do valor do quantum:

Elevado valor de quantum → funcionará semelhante ao FIFO, pois os processos poderão ser
executados até o final;

Baixo valor de quantum → haverá grande sobrecarga ao sistema, pois utilizará a maior parte
do tempo para a troca de contexto.
Neste modelo os processos prontos ficam organizados em uma fila circular do tipo FIFO (primeiro
a chegar, é o primeiro a sair). O escalonador percorrerá a fila e revezará a execução dos processos
até que todos acabem.
Logo, este escalonamento obterá as seguintes características:

Tempo de retorno e de resposta aumenta de acordo com o número de processos na fila;

Maior complexidade de implementação;

Aumento no custo operacional, devido à mudança constante de contexto de processos;

Preemptivo, pois um processo pode ser interrompido quando está sendo executado;

Menor quantidade de processos finalizados em um determinado intervalo de tempo
(throughput);

Melhor tempo de resposta.
Exercício 5: Refaça os exercícios 1 e 2 utilizando o algoritmo de escalonamento Round-Robin considerando a fatia de tempo, quantum, de 3 u.t. e troca de contexto zero.
Download