Escalonamento de
Processos em
Sistemas
Operacionais
O escalonamento de processos é um componente crucial dos
sistemas operacionais. Ele determina a ordem de execução dos
processos, garantindo eficiência e justiça no uso dos recursos
do sistema.
Jeferson Silva
Por que é Necessário
Escalonar?
1 Execução de Processos
Os processos precisam ser executados de forma
organizada e eficiente.
2 Função do Escalonador
O escalonador é um componente do sistema operacional
que determina a ordem de execução.
3 Algoritmo de Escalonamento
Baseia-se em um algoritmo para ordenar os processos na
fila de "pronto".
O que Provoca o Escalonamento?
Novo
Pronto Executando
Bloqueado
Terminado
O que Provoca o
Escalonamento?
Novo Processo
A criação de um novo processo pode iniciar o escalonamento.
Término de Processo
O fim de um processo libera recursos e pode acionar o
escalonador.
Bloqueio de Processo
Um processo bloqueado por falta de recursos pode provocar
escalonamento.
Tipos de Algoritmos de Escalonamento
Preemptivo Não-preemptivo
A execução de um processo dura um tempo pré- O processo fica em execução até terminar, liberar a
determinado. Quando o tempo acaba, o processo é CPU voluntariamente ou ser bloqueado por falta de
interrompido. recurso.
Fatores que Afetam o
Desempenho do
Escalonamento
1 Contexto do Processo
Cada processo possui informações que definem seu estado
precisamente.
2 Troca de Contexto
Mecanismo que permite interromper e retomar tarefas sem
corromper seu estado.
3 Separação do Escalonamento
O escalonamento é composto por política e mecanismo.
Ilustração da Troca de Contexto
1 Preempção
O processo em execução é interrompido.
2 Salvar Contexto
O estado atual do processo é salvo.
3 Verificar Próximo Processo
O escalonador determina qual processo será executado em
seguida.
4 Restaurar Contexto
O contexto do novo processo é carregado.
Ilustração da Troca de Contexto
preempção Restaura o
contexto de P3
Dispatcher Dispatcher
Processo 1 Escalonador Processo 3
(P1) (P3)
tempo
Salvar o contexto Verificar qual o próximo
de P1 processo a ser executado
Objetivo do Escalonamento
em Sistemas em Lote
Throughput
Melhorar a vazão de processos no sistema.
Turnaround
Reduzir o tempo entre submissão e finalização dos processos.
Ocupação da CPU
Manter a CPU ocupada para maximizar a eficiência.
Objetivo do Escalonamento
em Sistemas de Propósito
Geral
1 Tempo de Resposta
Melhorar o tempo médio de resposta para os usuários.
2 Expectativas dos Usuários
Atender às expectativas de desempenho dos usuários interativos.
3 Preempção
Utilizar algoritmos preemptivos para garantir responsividade.
Objetivo do Escalonamento
em Sistemas de Tempo Real
Requisitos Lógicos
Cumprir os requisitos lógicos dos processos em tempo real.
Requisitos Temporais
Atender aos prazos e restrições temporais dos processos.
Preempção
Utilizar algoritmos preemptivos para garantir o cumprimento dos
prazos.
Critérios Universais para Algoritmos de
Escalonamento
Justiça Equilíbrio Eficiência
Aplicação equitativa da política de Balanceamento entre as diferentes Maximização do uso dos recursos
escalonamento. partes do sistema. do sistema.
Escalonamento FCFS (FIFO) para Sistemas em
Lote
1 Primeiro a Chegar, Primeiro 2 Não-preemptivo 3 Simplicidade
a Ser Atendido
O processo executa até o fim Fácil de entender e programar,
O primeiro processo da fila de sem interrupções. mas pode ter problemas de
pronto é escolhido para eficiência.
executar.
Escalonamento FCFS (FIFO) para Sistemas em Lote
5 Processo Custo de Instante de
execução chegada
15
A 12 t=0
8 B 8 t=3
C 15 t=5
12 D 5 t = 10
Exemplo de FCFS
Processo Custo de Instante de
execução chegada
A 12 t=0
B 8 t=3
C 15 t=5
D 5 t = 10
Escalonamento SJF
(Shortest Job First) para
Sistemas em Lote
1 Menor Job Primeiro
O job de menor custo de execução é executado primeiro.
2 Não-preemptivo
O processo executa até o fim sem interrupções.
3 Eficiência
Pode melhorar o tempo médio de resposta, mas requer
conhecimento prévio dos tempos de execução.
Exemplo de SJF
Processo Custo de execução
A 12
B 8
C 15
D 5
Escalonamento Round-Robin para Sistemas
de Propósito Geral
1 Alternância Circular 2 Preemptivo 3 Justiça
Processos executam dentro O processo é interrompido Garante que todos os
de uma fatia de tempo ao final do quantum se não processos tenham chance
predefinida (quantum). terminar. de executar.
Desafios do Round-Robin
Tamanho do Quantum
Definir o tamanho ideal do quantum pode ser um desafio.
Overhead
Trocas frequentes de contexto podem gerar overhead
significativo.
Balanceamento
Equilibrar a responsividade com a eficiência geral do sistema.
Escalonamento por
Prioridade
1 Níveis de Prioridade
Processos têm diferentes prioridades de execução.
2 Preemptivo
Baseado nos ciclos da CPU ou quantum.
3 Atribuição de Prioridade
Pode ser estática ou dinâmica.
Implementação do Escalonamento
por Prioridade
Definição de Prioridades
Atribuir prioridades aos processos.
Criação de Filas
Implementar filas para cada nível de prioridade.
Seleção de Processos
Escolher processos da fila de maior prioridade primeiro.
Ajuste Dinâmico
Atualizar prioridades conforme necessário.
Escalonamento com Filas
Múltiplas
1 Múltiplas Filas
Processos são distribuídos em diferentes filas.
2 Quantum Variável
Cada fila pode ter um quantum diferente.
3 Promoção de Processos
Processos podem ser promovidos entre filas ao longo do
tempo.
Vantagens do Escalonamento
com Filas Múltiplas
Flexibilidade
Adaptável para diferentes tamanhos e tipos de processos.
Eficiência
Pode melhorar o desempenho geral do sistema.
Priorização
Permite priorizar certos tipos de processos conforme necessário.