3_2 - Escalonamento_Tarefas_GerenciaProc

Download Report

Transcript 3_2 - Escalonamento_Tarefas_GerenciaProc

Arquitetura de Sistemas
Operacionais
Técnico em Informática MBI1
Gerência do Processador
Cap. 8 – Gerência do Processador
1
Sumário
•
•
•
•
•
•
•
•
•
•
Introdução
Funções Básicas
Critérios de escalonamento
Escalonamentos não-preemptivos e
preemptivos
Escalonamento FIFO
Escalonamento SJF
Escalonamento cooperativo
Escalonamento circular
Escalonamento por prioridades
Escalonamento circular com prioridades
Cap. 8 – Gerência do Processador
2
Sumário
• Escalonamento por múltiplas filas
• Escalonamento por múltiplas filas com
realimentação
• Política de Escalonamento em Sistemas de
Tempo Compartilhado
• Política de Escalonamento em Sistemas de
Tempo Real
Cap. 8 – Gerência do Processador
3
Introdução
• Escalonamento
Estado de
Execução
lo
ca
Es
na
me
n to
Estado de
Espera
Cap. 8 – Gerência do Processador
Estado de
Pronto
4
Funções Básicas
• Manter a UCP ocupada a maior parte do
tempo
• Balancear o uso da UCP entre processos
• Privilegiar a execução de aplicações críticas
• Maximizar o throughput
• Oferecer tempos de resposta razoáveis para
usuários interativos
• Implementada pelo scheduler e dispatcher
• Processos – unidades de alocação de
recursos
• Threads – unidades de escalonamento
Cap. 8 – Gerência do Processador
5
Throughput
Throughput (ou taxa de transferência) é a
quantidade de dados transferidos de um
lugar a outro, ou a quantidade de dados
processados em um determinado espaço de
tempo, pode-se usar o termo throughput
para referir-se a quantidade de dados
transferidos em discos rígidos ou em uma
rede, por exemplo; tendo como unidades
básicas de medidas o Kbps, o Mbps e o
Gbps.
Cap. 8 – Gerência do Processador
6
Turnaround
Turnaround Intervalo de tempo entre a
submissão de um processo e sua
finalização (soma dos intervalos esperando
para ser carregado na memória, fila de
pronto, em execução e em espera)
Cap. 8 – Gerência do Processador
7
Critérios de Escalonamento
•
•
•
•
•
•
Utilização do processador
Throughput
Tempo de Processador / Tempo de UCP
Tempo de Espera
Tempo de Turnaround
Tempo de Resposta
Cap. 8 – Gerência do Processador
8
Escalonamentos
Não-Preemptivo e Preemptivo
• Preempção – possibilidade do SO
interromper um processo em execução
e substituí-lo por outro
• Escalonamento não-preemptivo
• Escalonamento preemptivo
Cap. 8 – Gerência do Processador
9
Escalonamento FIFO
• Escalonamento First-In-First-Out
Fila dos processos no estado de Pronto
Estado de
Criação
UCP
Estado de
Término
Estado de
Espera
Cap. 8 – Gerência do Processador
10
Escalonamento FIFO
• Exemplo
Processo A
Processo B
Processo C
10
14
17
u.t.
Processo A
Processo
Tempo de
processador
(u.t.)
A
10
B
4
C
3
Processo B
Processo C
4
7
Cap. 8 – Gerência do Processador
17
u.t.
11
Escalonamento SJF
• Escalonamento Shortest-Job-First
• Não preemptivo
• O processo com o menor tempo para
ser completado é escolhido.
Cap. 8 – Gerência do Processador
12
Escalonamento SJF
• Escalonamento Shortest-Job-First
Processo A
Processo B
Processo C
3
Cap. 8 – Gerência do Processador
7
17
u.t.
13
Escalonamento Cooperativo
• Processo em execução libera
voluntariamente a UCP
• Verifica a fila de mensagens
periodicamente (Windows 3.11)
• Um programa mal escrito pode
monopolizar a CPU
• Podem ocorrer problemas
• Exemplo: primeiros sistemas
MS-Windows
Cap. 8 – Gerência do Processador
14
Escalonamento Circular ou
Round Robin
• Define-se uma unidade de tempo denominada timeslice que corresponde ao tempo limite para uso da
CPU.
• Após este tempo ter sido passado, o processo sofre
preempção e é colocado no final da fila de pronto.
• A fila de pronto é tratada como uma fila circular
(FIFO).
• O escalonador “pega” o primeiro processo da fila de
pronto para ser executado e define um tempo de 1
time-slice.
• Se o tempo de execução for maior que 1, o time
gera uma interrupção.
• Projetado para sistemas de tempo compartilhado.
Cap. 8 – Gerência do Processador
15
Escalonamento Circular ou
Round Robin
Fila dos processos no estado de Pronto
Estado de
Criação
UCP
Estado de
Término
Preempção por tempo
Estado de
Espera
Cap. 8 – Gerência do Processador
16
Escalonamento por
Prioridades
Filas dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Estado de
Criação
UCP
Estado de
Término
Prioridade Pn
Preempção por prioridade
Estado de
Espera
Cap. 8 – Gerência do Processador
17
Escalonamento por
Prioridades
• Exemplo
Processo A
Processo B
Processo C
3
13
Cap. 8 – Gerência do Processador
17
Processo
Tempo de
processador
(u.t.)
Prioridade
A
10
2
B
4
1
C
3
3
u.t.
18
Escalonamento Circular com
Prioridades
Fila dos processos no estado de Pronto
Prioridade P1
Prioridade P2
Estado de
Criação
UCP
Estado de
Término
Prioridade Pn
Preempção por tempo ou prioridade
Estado de
Espera
Cap. 8 – Gerência do Processador
19
Escalonamento
por Múltiplas Filas
• Os processos são previamentes divididos em grupos
em função do tipo de processamento realizado.
 Interativo / 1˚ plano (foreground)
 Batch / 2˚ plano (background)
 Processo BATCH - É todo aquele que não necessita
de intervenção do usuário, isto é, uma vez
iniciado será terminado automaticamente.
• A cada grupo é aplicado um escalonamento
adequado.
Cap. 8 – Gerência do Processador
20
Escalonamento
por Múltiplas Filas
Fila de processos do sistema
Maior
prioridade
Fila de processos interativos
UCP
Fila de processos batch
Menor
prioridade
Cap. 8 – Gerência do Processador
21
Escalonamento por Múltiplas
Filas com Realimentação
• Os processos não permanecem em uma mesma fila
até o término do processamento;
• O SO faz um ajuste dinâmico para ajustar os
processos em função do comportamento do
sistema.
• Os processos não são previamente associados às
filas, mas direcionados pelo sistema entre as
diversas filas com base no seu comportamento.
• Parâmetros:
 Número de filas;
 Algoritmo de escalonamento para cada fila
 Método para determinar em que fila um
processo entra.
Cap. 8 – Gerência do Processador
22