Escalonamen to de
Processos
Métodos de escalonamento de processos em Sistemas
Operacionais
Processos X Threads
Tipos de sistemas
1 processo X 1 thread: MSDOS
N processos X 1 thread: OS/386, VAX/VMS, Windows 3.1, UNIX antigo
1 processo X N threads: kernels para sist.
embarc.
N processos X N threads: Windows
95/98,NT, UNIX
Escalonamento de Processos
Processo
Estados de um processo
Pronto Rodando
Bloqueado Criação
Término
Esperando evento Evento
ocorreu
ID do Processo Estado
Program Counter Ponteiros da Memória
Contexto (regs.) I/O Status Prioridade
Informações gerais
• tempo de CPU
• limites, usuário, etc.
Process Control Block - PCB
Filas de
Escalonamento
Long- term queue
Short- term
queue CPU
I/O queue
I/O queue
I/O queue
I/O I/O
I/O
Process
request FIM
High-level scheduling
Short-term scheduling
I/O scheduling
Interrupt Handler
Interrupt of process
Interrupt from I/O
Escalonamento de Processos
Abstração
Uma máquina para cada processo
Paralelismo real
T11
T12
T0
P1
P2
P3
P3 T22
Escalonamento de Processos
Realidade
Compartilhamento do tempo
Pseudoparalelismo
T11
T12 T0 T22 T0
1 41 51 70 90 121 t
P1
Exemplo
Contr. Serviços Escalonador
contr.
interrupção Sist. Operacional
A Rodando
B Pronto
Outros processos Execu-
tando
Sist. Operacional
A Bloqueado
B Pronto
Execu -tando Contr. Serviços
Escalonador contr.
interrupção
Outros processos
A Bloqueado
B Rodando
Execu- tando Contr. Serviços
Escalonador contr.
interrupção
Outros processos
Sist. Operacional Processo A parou:
• Req. serviço ao S.O.
• Interrupção de A Ex. erro
• Interrupção de outra fonte. Ex. I/O
• Tempo acabou Processo A parou:
• Req. serviço ao S.O.
• Interrupção de A Ex. erro
• Interrupção de outra fonte. Ex. I/O
• Tempo acabou
Características de Escalonamento
Justiça (fairness)
Todos os processos têm chances iguais de uso dos processador
Eficiência
Taxa de ocupação do processador ao longo do tempo
Tempo de Resposta
Tempo entre a ocòrrencia de um evento e o termino da acao correspondente
Turnaround
“Tempo de resposta” para usuários em batch
Throughput
Núm de “jobs” (processos) executados por unidade de tempo
Tipos de Escalonamento
Mecanismos de Escalonamento
Preemptivo x Não-preemptivo
Políticas de Escalonamento
Round-Robin
FIFO (First-In First-Out)
Híbridos
Partições de Lote (Batch)
MFQ - Multiple Feedback Queue
SJF – Shortest Job First
SRJN – Shortest Remaining Job Next
Tipos de Escalonamento
Preemptivo
Permite a suspensão temporária de processos
Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez
T11 T12 T0 T22 T0
1 41 51 70 90 121 t
P1
Preempção
Quantum grande:
Diminui núm. de mudanças de contexto e overhead do S.O.
Ruim para processos interativos
Tipos de Escalonamento
Round-Robin
Uso de uma lista de processos sem prioridade
Escalonamento preemptivo
Simples e justo
Bom para sistemas interativos
Tar. B
Contexto Tar. B
Contexto Tar. C
Contexto Tar. C
Contexto
CPU:Runni CPU:Runni ng
ng
Tar. A
Contexto Tar. A
Contexto Tar. A
Contexto Tar. A
Contexto Tar. A
Contexto
Tipos de Escalonamento
First-In First-Out (FIFO)
Uso de uma lista de processos sem prioridade
Escalonamento não-preemptivo
Simples e justo
Bom para sistemas em batch
B C D E F … N B C D E F … N
CPU CPU A
FIM
Tipos de Escalonamento
Exemplo
Três processos cpu-bound
Cada um consome 1 hora de CPU