Você está na página 1de 3

1) Discorra sobre os seguintes algoritmos de escalonamento

a. Round-Robin

• Mais simples e mais utilizado.


• Preemptivo.
• Cada processo recebe um tempo de execução chamado quantum.
• Quando seu tempo acaba, o processo é suspenso e volta para o final da
fila.
• Outro processo (primeiro da fila) é então colocado em execução.
• Quando um processo solicita I/O, vai para a fila de bloqueados e, ao
terminar a operação, volta para o final da fila de prontos.
Problema: Tempo de chaveamento de processo.
T = 4 mseg (quantum)
Mudança de contexto = 1 mseg, então 25% de tempo de CPU é perdido na troca
de processos (menor eficiência)

b. Prioridade

• Cada processo possui uma prioridade.


• Os processos prontos com maior prioridade são executados primeiro.
• Prioridades são atribuídas dinamicamente.
• Preemptivo.
• Round-Robin pressupõe igual prioridade para todos os processos.
• Enquanto houver processos na classe maior: rode cada um de seus
processos usando Round-Robin (quantum fixo de tempo).
• Se essa classe não tiver mais processos: passe a de menor prioridade.
Problema: Processos menos prioritários podem nunca rodar (inanição).

c. Múltiplas Filas
• Cada vez que um processo é executado e suspenso, ele recebe mais tempo
para ser executado.
• Reduz o número de trocas de processo.
• Os mais curtos terminam logo.
• Aos mais longos é dado mais tempo, progressivamente.
• Preemptivo.

d. Shortest Process Next


• Processos interativos: Não se conhece o tempo necessário para execução.
• Como empregar esse algoritmo: estimativa de tempo.
• Com base em execuções antigas da mesma tarefa.
• Verificar o comportamento passado do processo e estimar o tempo.

e. Garantido
• Garantias são dadas aos processos dos usuários:
• N usuários (ou N processos em sistemas monousuário): 1/N do tempo de
CPU para cada usuário.

f. Loteria
• Cada processo recebe “bilhetes” que lhe dão direito a recursos do sistema
(inclusive processador).
• Fatias de processamento iguais por bilhete.
• Quando um escalonamento deve ser feito, escolhe-se aleatoriamente um
bilhete.
• Processos mais importantes podem receber mais bilhetes.
• Processos podem doar bilhetes para colaboração com outros.
• Precisa garantir que todos os processos terão sua vez de rodar.
• Um modo é manter duas filas:
• Bilhetes já sorteados
• Bilhetes ainda não sorteados.
• Quando a lista dos não sorteados se esvazia, os bilhetes da lista dos
sorteados são transferidos a ela, reiniciando o processo.

g. Fair-Share
• O dono do processo é lavado em conta.
• Como acontece sem o Fair-Share: Se um usuário A possui 9 processos e um
usuário B apenas 2, então o usuário A ganha 90% do uso da CPU, com
Round-Robin (injusto).
• Com o Fair-Share, se a um usuário foi prometida certa fatia de tempo, ele a
receberá, independentemente do número de processos (ex: 50% para A e
50% para B).
• Usuário 1: A, B, C, D
• Usuário 2: E
• Foi prometido 50% da CPU a cada um: A, E, B, E, C, E, D, E, A, E ...
• Se 2/3 devem ir ao Usuário 1: A, B, E, C, D, E, A, B, E ...

h. Tempo Real
• Tempo é um fator crítico.
• O computador deve reagir apropriadamente dentro de um intervalo fixo de
tempo.
• Sistemas críticos:
1. piloto automático de aviões.
2. Monitoramento de pacientes em hospitais.
3. Controle de automação em fábricas.
• Tipos de STR:
1. Hard Real Time: atrasos não são tolerados – aviões, usinas nucleares,
hospitais.
2. Soft Real Time: atrasos ocasionais são tolerados – Bancos, multimídia.
• Eventos causam a execução de processos.
• Quando um evento externo (sensor) é detectado, cabe ao escalonador
arrumar os processos de modo que todos os prazos sejam cumpridos.
• Eventos podem ser classificados como:
1. Periódicos: Ocorrem em intervalos regulares de tempo.
2. Aperiódicos: Ocorrem em intervalos irregulares de tempo.
• Algoritmos podem ser:
1. Estáticos: decisões de escalonamento antes do Sistema começar a rodar.
2. Dinâmicos: decisões de escalonamento em tempo de execução.

Você também pode gostar