Você está na página 1de 24

Sistemas Operacionais

Profa. Me. Maitê Marques Caetano


1. Escalonamento por chaveamento circular

2. Escalonamento por prioridades

Escalonamento em 3. Filas múltiplas

SISTEMAS 4. Próximo processo mais curto

INTERATIVOS 5. Escalonamento garantido

6. Escalonamento por loteria

7. Escalonamento por fração justa


1. Escalonamento por
CHAVEAMENTO
CIRCULAR
(round-Robin)

• Escalonamento circular.
• Lista de processos
executáveis = estado pronto.
• Intervalo de tempo =
quantum
• Quando acaba o quantum a
CPU sofre a preempção
• Para o escalonamento
circular o que importa é o
tamanho do quantum.
1. Escalonamento por Se o meu chaveamento durar 1ms, e o quantum for de 4ms,
estarei desperdiçando 20% do tempo apenas realizando
CHAVEAMENTO chaveamentos.
CIRCULAR Para melhorar a eficiência da CPU, o meu quantum poderia ser de
(round-Robin) 100ms, ai estarei 1% do tempo realizando chaveamento de
contexto.
Se o meu sistema receber 50 solicitações num curto intervalo de
tempo. Serão colocados os 50 processos na fila para execução.
Se a CPU estiver ociosa o primeiro será executado, mas, o
segundo só será executado quando passarem 100ms, e o último
terá que esperar 5 segundos.
Isso é ruim principalmente se uma das últimas solicitações
precisar de apenas alguns milisegundos para executar toda a sua
ação.
• Um quantum muito curto pode causar muitos chaveamentos e
reduzir a eficiência da CPU, mas um quantum muito longo pode
demorar nas respostas às requisições interativas curtas. Sendo
assim, um quanto em torno de 20ms a 50ms é bastante
razoável.
• A cada processo é atribuída • Para que o processo não
uma prioridade. execute para sempre:
• O processo com prioridade • A cada interrupção de
mais alta é permitido relógio a prioridade do
2. Escalonamento executar. processo pode ser
por PRIORIDADES reduzida.
Prior. Estática Ou
Militares
100 – General
• O processo recebe um
90 – Coronel
quantum máximo, ao
Prioridades 80 – Major final o próximo com
numa 70 – Capitão prioridade mais alta
Universidade 60 – Tenente executa.
Reitor …
Professores
Secretários
Estudantes Prioridade dinâmica, seria atribuir prioridade alta
a um processo I/O-bound.
Um dos primeiros escalonadores por prioridades usava um sistema de
tempo compartilhado do MIT, no IBM 7094. Só que o 7094 só podia
manter 1 processo de cada vez na memória. Sendo assim cada
chaveamento significava, copiar todo o processo da memória para o
disco e buscar um processo do disco para a memória.

Neste caso um quantum pequeno é ruim, pois ocasiona muitos


chaveamentos.
E já vimos que um quantum muito grande pode atrapalhar.
Então qual seria a solução?
Se 1 processo precisasse de 100 quanta. Primeiro ele receberia 1
quantum e seria levado da memória para o disco. Na próxima vez
3. FILAS teria 2 quanta. Nas próximas execuções ele teria 4, 8, 16, 32, 64
quanta (no ultimo usaria so 37 dos 64). Seriam realizadas 7 trocas

MÚLTIPLAS entre memória e disco.

• Classes de prioridade.
• Os processos de prioridade
mais alta 1 quantum.
• A classe seguinte recebia 2.
• A próxima classe 4, e assim
por diante.
4. PRÓXIMO PROCESSO MAIS CURTO
(shortest process next)

• Em sistemas em lote é usado a tarefa mais curta primeiro, que resulta no mínimo
tempo de resposta.
Para usarmos em sistemas interativos, podemos:
• Processos interativos seguem o padrão esperar por comando, executar comando,
esperar por comando, executar comando, e assim por diante.
• É possível calcular o tempo médio de cada próximo comando com uma estimativa,
baseada no último tempo de execução deste mesmo comando.
Esta estimativa permite executar o próximo processo mais curto.
• Fazer promessas reais aos usuários:
• Se houverem n usuários conectados você
receberá 1/n de CPU.
• Num sistema monousuário, com n processos em
execução (todos iguais) cada um deve receber
1/n de CPU.
5. ESCALONAMENTO • Para isso o sistema controla a quantidade de CPU
que cada processo recebeu desde que foi criado.
GARANTIDO • A CPU calcula a taxa entre o tempo de CPU
realmente consumido pelo processo e o tempo
de CPU que o processo deve receber.
• Se o processo tem uma taxa 0,5, significa que só
usou metade do tempo que é seu por direito.
• Se o processo tem uma taxa de 2,0 significa que
já usou duas vezes mais do que lhe era
destinado.
A ideia é dar bilhetes de loteria aos processos.

Na hora do escalonamento um bilhete será escolhido.


6. ESCALONAMENTO
POR LOTERIA O sistema pode fazer 50 sorteios por segundo, cada
vencedor terá 20ms de tempo de CPU como prêmio.

Os processos mais importantes podem receber mais


bilhetes, para aumentar a probabilidade de vitória.
• Se forem 100 bilhetes e um processo tiver 20 bilhetes, ele terá
20% de chance de vencer na loteria.
Vantagens:
• Cada novo processo recebe uma quantidade de
bilhetes, o próximo sorteio será proporcional a
quantidade de bilhetes, ou seja, responsivo.
6. ESCALONAMENTO
• Os processos cooperativos podem trocar os
POR LOTERIA bilhetes entre si, se desejarem.
• Se um processo cliente envia uma mensagem
para o servidor e é bloqueado, ele pode dar
todos os bilhetes para o servidor. Quando o
servidor terminar retorna os bilhetes para o
cliente.
Leva em consideração o usuário dono do
processo:
• Se o usuário 1 inicia 9 processos, e o usuário 2, inicia 1, no
chaveamento circular com prioridades iguais, o usuário 1
terá 90% de CPU e o 2 terá 10%.

7. ESCALONAMENTO No processo por fração justa, cada usuário


POR FRAÇÃO JUSTA recebe 50% de CPU.
(fair-share) • Exemplo: Se o usuário 1 tem os processos A, B, C e D e o
usuário 2 tem o processo E.
• Com o escalonamento circular que respeite as regras
acima, poderia ser assim: A E B E C E D E A E B E C E D E …
• Se o usuário 1 tivesse duas vezes mais tempo que o
usuário 2, poderíamos obter: A B E C D E A B E C D E….
• Inúmeras outras possibilidades podem ser aplicadas
dependendo da noção de justiça.
Escalonamento em sistemas de TEMPO REAL

• Tempo real crítico


• Existem prazos absolutos que devem ser cumpridos.
• Tempo real não-crítico
• O descumprimento ocasional de um prazo é indesejável, contudo
tolerável.

Um ou mais dispositivos físicos externos ao computador geram estímulos, e o


computador deve reagir apropriadamente a eles dentro de um dado intervalo
de tempo.
Escalonamento em sistemas de TEMPO REAL
Exemplos:
• Conversão de bits de um driver de cd player em música.
• Monitoração de pacientes em UTI.
• Piloto automático de aeronave.
• Robôs de controle em fábrica automatizada.

Em todos estes casos, ter a resposta certa, mas tardia, é tão ruim
quanto não ter nada.
Política x Mecanismo
O processo tem uma visão de quais processos filhos são importantes, mas, o
escalonador não aceita nenhuma entrada que venha dos processos do usuário,
sendo assim, raramente faz a melhor escolha.

Separando as políticas de escalonamento do mecanismo de escalonamento é


possível permitir que o processo controle a política, que o mecanismo deve seguir,
sendo assim:
Se o mecanismo trabalha por prioridades, é possível conceder ao processo o poder
para alterar a prioridade dos seus processos filhos.
Problemas
clássicos de IPC
(Inter-process
communication)
Problemas clássicos de
ipc
(Inter-process
communication)

O problema do jantar dos


filósofos
• Um filósofo pensa e come
• Precisa de 2 garfos
Este problema representa a
disputa entre processos
por um número reduzido
de recursos, como
dispositivos de E/S.
Problemas clássicos de ipc
O jantar dos filósofos
1ª - Pegar o garfo esquerdo, depois o direito, depois comer.
Problemas clássicos de FALHA: Se todos pegarem o garfo esquerdo ao mesmo tempo,
ninguém conseguirá pegar o direito isso gerará um IMPASSE
ipc (deadlock).
(Inter-process
communication)
2ª - Pegar o garfo esquerdo, testar se o direito está disponível, se
sim comer, se não devolver o esquerdo e aguardar um tempo e
recomeçar.
FALHA: Se todos iniciarem o algoritmo juntos, todos vão pegar o
esquerdo juntos, testar juntos, devolver, aguardar o mesmo
tempo juntos, e recomeçar o algoritmo. Essa ação em que todos
os programas continuam executando indefinidamente, mas
falham ao tentar progredir é chamada INANIÇÃO (starvation).

Uma solução seria cada processo esperar um tempo aleatório.


Funcionaria, mas, precisamos de uma solução que sempre
funcione e que não dependa de números aleatórios. Por exemplo
na segurança de uma usina de energia nuclear.
Problemas clássicos de ipc
O jantar dos filósofos

Um aperfeiçoamento na solução anterior sem impasse ou inanição, seria proteger os comandos após o think,
com um semáforo binário. Antes de pegar os garfos, fazer um down no mutex e depois de pegar fazer um up
no mutex.

Entretanto essa solução permitiria que apenas 1 filósofo comesse por vez, e com 5 garfos dois filósofos
podem comer por vez.
Problemas clássicos de ipc
O jantar dos filósofos

Solução sem impasse ou inanição, com paralelismo.


Continuação…
ATIVIDADES

1. Dos 7 algoritmos de escalonamento dos SISTEMAS INTERATIVOS:


(1) escalonamento por chaveamento circular;
(2) escalonamento por prioridades;
(3) filas múltiplas;
(4) Próximo processo mais curto;
(5) Escalonamento garantido;
(6) Escalonamento por loteria
(7) Escalonamento por fração justa.

Escolha três e explique seu funcionamento.


2. Qual é a única regra que deve ser obedecida em um sistema de TEMPO REAL?
3. Em um SISTEMA EM LOTE, o algoritmo de escalonamento pode usar quais
mecanismos para escolha dos processos?
Referência

CAPÍTULO 2 :
TANENBAUM, A. S.; SISTEMAS OPERACIONAIS
MODERNOS. 2010. 3 ED. SÃO PAULO:
PEARSON.

Você também pode gostar