Processo

Propaganda
Processos
Conceitos de Processos
 Programa: seqüência de instruções com diferentes
fluxos de execução  comandos condicionais e
interativos (entidade passiva)
 Processo: um programa em execução (entidade
ativa)
 Vários processos podem existir ao mesmo tempo
no sistema
 Processador se reveza entre os processos
Conceitos de Processos
 Quando o processador muda de um processo para
outro, algumas informações devem ser salvas
(identificação do processo, estado da máquina,
ponteiro da área de dados, de código entre outras)
Ao conceito de processo estão associadas algumas
informações que caracterizam o seu contexto de
execução
Conceitos de Processos
 Termos: job = processo
 Um processo inclui
 contador de instruções
 pilha
 área de dados
Conceitos de Multiprogramação
 Vantagem
 aumento da taxa de utilização do processador
 melhor utilização dos recursos
 redução do tempo de execução de um conjunto
de programas
 A multiprogramação dá a idéia ao usuário de que
ele possui uma máquina só para si
Conceitos de Multiprogramação
e1
c1
s1 e2
e1
c1
s1
c2
s2 e3
seqüencial
e2
c2
s2
multiprogramado
e3
c3
s3
c3
s3
Conceitos de Processo
 Representação de um processo no SO
 bloco de controle de processo (PCB)
 contém informações necessárias ao controle
do processo
 pelas áreas de código e dados na memória
Conceitos de Processo
 Informações associadas à cada processo
 estado do processo
 apontador de instruções
 registradores da CPU
 informações relativas ao escalonamento da CPU
 informações relativas ao gerenciamento de
memória
 dados para contabilidade (estatísticas)
 informações relativas ao status de I/O
Process Control Block
estado do
processo
ponteiro
número do processo
apontador de instruções
registradores
limites na memória
lista de arquivos abertos
.
.
.
Criação de Processo
 Sistemas antigos: só o sistema operacional podia
criar novos processos
 Sistemas atuais, os usuários podem criar e
destruir processos dinamicamente.
 SO deve fornecer chamadas para a manipulação e
gerência de processos
 Quando um novo processo é criado, o seu PCB é
preparado com as informações básicas e colocado
na fila de prontos
Criação de Processo
 atribui um pid único
 alocar as estruturas de dados associadas a um
processo
 alocar o espaço necessário em memória
 PCB deve ser iniciado
 consistência das listas do SO devem ser mantidas
 outras estruturas devem ser iniciadas (ex.: account)
Identificação
do processo
PCB
Informação
do Estado
Criação de Processo
Processo de usuário na memória
Informação
de Controle
Pilha do
Usuário
PCB
executando
pronto
Espaço de
Endereçamento
privativo do
usuário
(programas,
dados)
Espaço de
Endereçamento
Compartilhado
PCB
PCB
PCB
PCB
bloqueado
PCB
Estrutura com
lista de processos
Criação de Processo
 Processos pais criam processos filhos, que podem
criar novos processos  árvore de processos
 Compartilhamento de recursos
 Pais e filhos compartilham os mesmos recursos
 Filhos compartilham um subconjunto dos recursos
do pai
 Pais e filhos não compartilham algum recurso
 Execução
 Pai e filhos executam concorrentemente
 Pai aguarda até que os filhos terminem
Criação de Processo
 Espaço de endereçamento
 Filho é uma cópia do pai
 Filho tem um novo programa carregado
 Exemplos do UNIX
 Chamada ao sistema
 fork cria novos processos
 execve usada após um fork para sobrepor o
espaço de endereçamento do processo com
um novo programa
Árvore de Processos: SO Unix Típico
root
pagedaemon
swaper
user 1
init
user 2
user 3
Finalização de Processos
 Processos executam a última linha
 chamar o SO para controlar a terminação
(exit)
 saída de dados do filho para o pai
(wait)
 recursos do processo são desalocados pelo SO
Finalização de Processos
 Pais podem terminar a execução de processos filhos
(abort)
 filhos excederam os recursos alocados
 tarefa de encumbência do filho não é mais
necessária
 Pai está terminando
 SO não permite que o filho continue se o seu
pai terminou
 terminação em cascata
Processos Cooperativos
 Processos independentes não podem afetar a
execução de outros processos.
 Processos cooperativos podem afetar ou ser afetados
pela execução de um outro processo envolvido
 Vantagens da cooperação entre processos:
 Compartilhamento de informações
 Aumento da velocidade de computação (speedup)
 Modularidade
 Conveniência
Threads
 Thread (ou processo leve ) é uma unidade básica
de utilização da CPU, que consiste em:
 apontador de instruções
 conjunto dos registradores
 espaço de pilha
 Uma thread compartilha com threads irmãs:
 área de código
 área de dados
 recursos do sistema operacional (coletivamente
conhecidos como tarefa)
 Um processo tradicional é equivalente a uma tarefa
com uma única thread
Interação entre Threads
Recursos do Sistema
Thread 1
Registradores
AX=9 BX=0
Pilha
Apontador
var1, var2... 45B8DD
Área de Dados
Tarefa
Thread 2
Área
de Código
0100100001
000
11110100011000101010
10
101001011 110
01111111111111000010
1010010
01 11
00001010110101000101
11 111110110111111
00100 101
Registradores
AX=7 BX=4
Pilha
Apontador
var3, var8... FFE56A
Múltiplas Threads em uma Tarefa
Tarefa
Área de Código
threads
Área de Dados
apontadores
de instrução
Threads
 Numa tarefa dotada de múltiplos fluxos de execução,
enquanto um fluxo está bloqueado, um outro fluxo na
mesma tarefa pode continuar executando
 cooperação de múltiplas threads em uma mesma
tarefa aumenta o throughput e o desempenho.
 aplicações que requerem o compartilhamento de
buffers (p.ex., produtores e consumidores) se
beneficiam da utilização de threads
 O mecanismo de threads permite que processos
seqüenciais sejam executados paralelamente, apesar de
poderem fazer chamadas ao sistema que bloqueiam
processos
Threads
 Threads oferecidas pelo kernel (Mach e OS/2)
 Threads no nível de usuários, suportadas acima
do kernel, via chamadas para um conjunto de
bibliotecas no nível do usuário (Posix Pthreads)
 Enfoque híbrido implementa tanto threads no
nível do usuário quanto threads suportadas pelo
kernel (Solaris 2)
Estados de um Processo
 A execução de um processo é composta por ciclos
de execução
 na CPU (CPU-burst)
 na E/S (I/O-burst)
 Durante o seu tempo de vida, um processo pode
encontrar-se em diferentes estados
Estados de um Processo
 novo: O processo está sendo criado
 executando: Suas instruções estão sendo
executadas
 espera: O processo está esperando pela
ocorrência de algum evento
 pronto: O processo está esperando para
ser escalado para a execução
 terminado: O processo terminou sua
execução
Estados de um Processo
 Transições possíveis entre os estados
NENHUM
NOVO
PRONTO
EXECUTANDO
EXECUTANDO
EXECUTANDO
BLOQUEADO
PRONTO
BLOQUEADO
NOVO
PRONTO
EXECUTANDO
TERMINADO
PRONTO
BLOQUEADO
PRONTO
TERMINADO
TERMINADO
Estados de um Processo
MODELO DE DOIS ESTADOS
Diagrama de transição
despachado
entrada
Parado
Executando
saída
pausa/bloqueio
(time-out ou
interrupção)
Diagrama de fila
entrada
fila
despachado
Processador
pausa/bloqueio
saída
Estados de um Processo
CRIAÇÃO
DO
PROCESSO
Novo
MODELO DE CINCO ESTADOS
FIM DO
PROCESSO
Despachado
(pelo escalonador)
admitir
Pronto
Executando
liberar
Time-out
(preempção)
ou interrupção
desbloqueado
quando o
evento
esperado
ocorre
bloqueado a
espera de um
evento
Bloqueado
Saída
Conceito de Escalonamento
 Para cada estado, existe uma fila que contém os PCB's
executando
pcb3
prontos
pcb1
pcb5
e/s disco
pcb4
pcb6
e/s terminal
pcb9
e/s impressão
pcb8
bloqueados
pcb7
pcb2
pcb10
 nas transições entre estados, o PCB do processo é
movido entre as filas apropriadas
Razões para Suspender Processos
 Do SO
 Swapping: para liberar espaço na memória principal
para trazer outro processo da memória secundária
 SO pode suspender um processo
 em background
 utilitário
 suspeito de estar causando problemas
 Solicitação de usuário interativo
 Temporização: determinados processos são executados
periodicamente
 Solicitação do processo pai
Conceito de Escalonamento
 Escalonamento consiste em determinar, dentre
os processos prontos, qual o próximo processo a
ser executado
 Realizado por um componente do sistema
operacional denominado escalonador
 Dois tipos de escalonadores
 longo prazo
 curto prazo
Conceito de Escalonamento
 Escalonador longo prazo
memória secundária  memória principal
 Escalonador curto prazo
memória principal  processador
 Principais objetivos
 maximizar a utilização do processador
 maximizar o número de processos completados
por unidade de tempo
 garantir que todos os processos recebam o
processador
 minimizar o tempo de resposta para o usuário
Conceito de Escalonamento
 Uma visão dos escalonadores do sistema operacional
Longo-Prazo
Curto-Prazo
Fila de Prontos
I/O
Fila
Espera
CPU
FIM
Conceito de Escalonamento
 Dispatcher: responsável por passar o controle da CPU
para o processo selecionado pelo escalonador de curto
prazo, envolve:
 mudança de contexto
 mudança para o modo usuário
 salto para a posição adequada dentro do processo
selecionado para reiniciar sua execução
 Latência de despacho  Tempo gasto pelo
dispatcher para interromper um processo e começar a
execução de um outro
Filas de Prontos e de I/O
Fila de
Prontos
PCB 5
PCB 19
registradores
registradores
.
.
.
.
.
.
cabeçalho
final
cabeçalho
final
cabeçalho
PCB 3
final
cabeçalho
final
PCB 22
cabeçalho
final
.
.
.
PCB 1
PCB 37
Representação do Escalonamento
fila de processos prontos
I/O
fila de dispositivo
CPU
requisição de
I/O
término de fatia
de tempo
filho em
execução
criação de um
processo filho
interrupção
ocorre
em espera por
uma interrupção
Adição de Escalonador Intermediário
carregar
processos em execução
parcialmente removidos
da memória
remover
terminar
fila de processos
prontos
I/O
CPU
fila de espera por
I/O
Conceito de Escalonamento
 Mudança de contexto
 CPU é chaveada para outro processo  SO deve
salvar o estado do processo antigo e carregar o
estado do novo processo
 Implica overhead  SO não realiza nenhum
trabalho útil durante os chaveamentos
 Tempo consumido é dependente do suporte de
hardware fornecido
Chaveamento da CPU
interrupção ou chamada ao sistema
armazenar estado no PCB1
.
.
.
exec.
Processo P0
ocioso
recarregar estado no PCB1
recarregar estado no PCB0
Processo P1
.
.
.
ocioso
armazenar estado no PCB0
executando
SO
ocioso
exec.
interrupção ou chamada ao sistema
Características dos Escalonadores
 Escalonador da CPU é invocado muito
freqüentemente (milissegundos)
 precisa ser rápido
 Escalonador de processos é invocado com muito
pouca freqüência (segundos, minutos)
 pode ser lento
 O escalonador de processos controla o grau de
multiprogramação do sistema
Conceito de Escalonamento
 Os escalonadores são implementados por
algoritmos dentro do sistema operacional
 Critérios para comparar a eficiência dos algoritmos
 utilização da CPU (1)
 taxa de saída (throughput) (2)
 turnaround time (3)
 tempo de espera (4)
 tempo de resposta (5)
 Objetivos maximizar (1) e (2)
minimizar (3), (4) e (5)
Conceito de Escalonamento
 Considerações
Tipo de processamento
batch
interativo
CPU bound
I/O bound
Tipo de sistema
monoprogramado (?)
multiprogramado
time-sharing
tempo-real
multiprocessado
política de escalonamento
(scheduling policies)
Critérios de Escalonamento
 Orientados ao Usuário e Desempenho
 Uso do processador  mede a porcentagem de
tempo em que a CPU está ocupada
 importante em tempo compartilhado
 não muito importante em sistemas monousuário e
tempo-real
 Tempo de resposta
 processos interativos
 tempo entre uma requisição e o início da resposta
do ponto de vista do usuário
 qual seria o tempo de resposta ideal ?
Critérios de Escalonamento
 Orientados ao Usuário e Desempenho
 Deadlines (prazos)  quando o prazo de término
pode ser especificado
 o sistema deveria fazer o melhor esforço para
atender todos os prazos
 Previsibilidade  um dado processo deveria
executar sempre em um tempo médio previsível
 a carga do sistema não deveria impor
variações
Critérios de Escalonamento
 Orientados ao Sistema e Desempenho
 Throughput (vazão)  número de processos
completados por unidade de tempo, depende:
 do tamanho dos processos
 das políticas de escalonamento
 Turnaround  intervalo de tempo entre a
submissão de um processo e o seu término
 inclui o tempo de execução, espera por recursos
 medida para sistemas batch
 Waiting time  quantidade total de tempo que um
processo esteve esperando na fila de prontos
Critérios de Escalonamento
 Orientados ao Sistema
 Justiça  processos devem ser tratados igualmente,
a menos que especificado o contrário
 processos não deveriam sofrer starvation
 Prioridades  processos mais prioritários devem
efetivamente ser favorecidos
 problema da inversão de prioridade
 Balanceamento de recursos  recursos devem ficar
ocupados o máximo possível
 processos que não vão utilizar recursos
sobrecarregados devem ser favorecidos
Escalonamento de Processos
 Longa duração  decisão de se adicionar um
processo ao pool de processos para serem
executados
 admissão ao sistema
 Duração média  decisão de se adicionar ao
número de processos que está completamente ou
parcialmente na memória
 swapping, memória virtual
Escalonamento de Processos
 Curta duração  decisão de qual processo
disponível será executado
 interrupção de clock e I/O, chamadas ao
sistema, signals
 I/O  decisão de qual processo que está na fila
de espera por uma requisição de I/O será tratado
Escalonamento de Processos
 Tipos
 não-preemptivo: processo executando não pode
ser interrompido
 preemptivo: processo pode ser retirado do
processador
 Políticas mais comuns:
 First-Come-First-Served (FCFS)
 Shortest Job First (SJF)
 Prioridade
 Múltiplas Filas
 Round-Robin
First-Come-First-Served
 Não preemptivo por definição
 Primeiro processo da fila é o primeiro a ser
executado
 Processos usam a CPU até terminar todo
processamento
 Mesmo com alguma intercalação, processos
com menor prioridade podem prejudicar
processos com maior prioridade
 inversão de prioridade
 starvation
First-Come-First-Served
PROCS. TE
p1
0 ut
p2
6 ut
p3
14 ut
p4
21 ut
t=6
t=8
t=7
t=3
p1
p2
p3
p4
p1
0
TT
6 ut
8 ut
7 ut
3 ut
p2
6
p3
14
p4
21
24
t
First-Come-First-Served
Exemplo:
Processo
Tempo de execução
P1
24
P2
3
P3
3
Suponha que os processos chegaram na seguinte ordem:
P1 , P2 , P3
1. Qual seria o diagrama de Gannt, o waiting time para
cada um dos processos e o waiting time médio?
First-Come-First-Served
Diagrama de Gantt para o escalonamento:
P1
0
P2
24
P3
27
30
Waiting time para P1 = 0; P2 = 24; P3 = 27
Waiting time médio: (0 + 24 + 27)/3 = 17
Shortest-Job-First
 Pode ser preemptiva ou não-preemptiva
 Cada processo é associado ao seu tempo de uso do
processador
 Escalonado o processo com o menor tempo de CPU
 privilegiam processos menores
 reduzem o tempo médio de espera na fila de
prontos
 Problema:
 Como determinar quanto tempo de CPU será
necessário?
Shortest-Job-First
 Tanto o escalonamento FIFO quanto o SJF não são
utilizados em sistemas de time-sharing (por quê ?)
p4
0
t=6
t=8
t=7
t=3
p1
p2
p3
p4
p1
3
p3
9
p2
16
24
t
Shortest-Job-First
A política SJF é ótima, minimizando o tempo
médio de espera de um conjunto de processos
 Dificuldade: determinar antecipadamente o
tempo de processador de cada processo
 Na prática, o tempo é estimado, é utilizada
uma aproximação
Shortest-Job-First: não preemptivo
Processo Tempo de chegada Duração da rajada
P1
0.0
7
P2
2.0
1
P3
4.0
4
P4
5.0
4
SJF (não preemptivo)
P1
0
3
P2
7
P3
8
P4
12
16
waiting time médio = (0 + 5 + 4 + 7)/4 = 4
Shortest-Job-First: preemptivo
Processo
P1
P2
Tempo de chegada
0.0
2.0
P3
4.0
P4
5.0
Duração da rajada
7
terminado
4
terminado
terminado
1
terminado
4
SJF (preemptivo)
P1
0
P2
2
P3
4
P2
5
P1
P4
7
11
waiting time médio = (9 + 1 + 0 +2)/4 = 3
16
Shortest-Job-First: preemptivo
Processo
P1
P2
Tempo de chegada
0.0
2.0
P3
4.0
P4
5.0
Duração da rajada
terminado
tempo
restante: 5
7
tempo restante: 2
4
terminado
terminado
1
terminado
4
SJF (preemptivo)
P1
0
P2
2
?
P3
?
4
P2
5
P4
7
P1
11
waiting time médio = (9 + 1 + 0 +2)/4 = 3
16
Shortest-Job-First
 Determinação do tempo de CPU, pode:
 somente estimar a próxima duração
 ser feita usando a duração de tempo de CPU
anteriores, usando-se média exponencial
1. t n  tamanho real da n α rajada de CPU
2.  n 1  valor estimado para a próxima rajada de CPU
3.  , 0    1
4. Define :
 n1   tn  1    n
Shortest-Job-First
  =0
n+1 = n  História recente não conta
  =1
n+1 = tn  Somente o último tempo de CPU (rajada) é
condiserado
 Se expandirmos a fórmula teremos
n+1 =  tn+(1 - )  tn-1 + …
+(1 -  ) j  tn-1 + …
+(1 -  )n+1 tn 0
 Uma vez que tanto  como (1 - ) são menores ou iguais
a 1, cada termo tem peso menor do que o seu predecessor
Shortest-Job-First Preemptivo
 Permite que se dê atenção mais rapidamente a
processos mais prioritários
 Melhores respostas em sistemas time-sharing
 Compartilhamento do processador tende a ser mais
uniforme
 Troca de processos na CPU gera overhead
 Estabelecer de forma otimizada os critérios para
a preempção
 Procurar utilizar processos leves quando
possível
Prioridade
 A cada processo é atribuída uma prioridade
 O processo com maior prioridade é atribuído
ao processador
 Pode ser não-preemptiva ou preemptiva
 não-preemptiva: o processo libera
espontaneamente o processador
 preemptiva : o processo executando é
interrompido caso chegue à fila de prontos um
processo com maior prioridade
Prioridade
 Atribuição de prioridades
 estática: o processo tem uma prioridade fixa
durante o seu tempo de vida
 dinâmica: prioridade muda ao longo do
tempo de vida do processo, de acordo com o
seu comportamento
Prioridade
Dinâmica
 pode ser ajustada
de acordo com
Atribuição
de prioridades
 tipo de processamento realizado
 normalmente é feita pelo SO
 a carga do SO
 pode ser configurada pelo superusuário
 Estática
quando o processo passa do estado de
 processos
de usuário recebem uma prioridade
espera para o estado executando ele é
máxima
de usuário
penalizado
é atribuída
quando
o processo
é
e sua
prioridade
é reduzida,
 usuário
pode diminuir a prioridade de seus
iniciado
processos
processos
Observação
 SO
não
ébound
alterada
durante
a existência
do

CPU
terão
suas
prioridades
 ex.:
comando
renice
doprioridade
Unix
pode
associar
à alta
um número
reduzidas
cada passagem para o estado
processo
escalarapequeno
executando
pode
oferecer
tempos
de resposta

0 significa
a maior
prioridade
aceitáveis
I/O bound ficam em estado de espera com
freqüência, processos CPU bound não serão
prejudicados
Prioridade
4 u.t.
Processo A
Processo B
3 u.t.
4 u.t.
5 u.t.
2 u.t.
4
8
B solicita
I/O
10
1u.t.
2 u.t.
13
16
18
A solicita
I/O
preempção
por B
B solicita
I/O
3 u.t.
23
26 27
preempção
por B
B solicita
I/O
B solicita
I/O
Tempo de CPU (u.t.)
Característica do Processo
Prioridade
Processo A
13
CPU bound
1 menor
Processo B
11
I/O bound
0 maior
tempo
Prioridade
 Vantagens
 é possível fazer diferenciação entre processos
 adaptabilidade (prioridades dinâmicas)
 Desvantagem
 starvation: um processo com baixa
prioridade pode nunca ser atribuído ao
processador
 solução: aumentando, em intervalos
regulares, a prioridade dos processos que estão
há muito tempo esperando
Round-Robin
 Escalonamento do tipo preemptivo
 Cada processo executa durante uma fatia de
tempo (time-slice ou quantum)
 Ao final da fatia de tempo, o processo
executando é inserido no final da fila de prontos
 Processo na frente da fila de prontos recebe o
processador
Round-Robin
bcp1
bcp2
bcp3
bcp4
bcp4
bcp1
processo 1 executando
fatia de tempo
esgotada
bcp2
bcp3
processo 2 executando
Round-Robin
 Bom para tempo compartilhado
 Similar a FIFO + tempo limite para
execução (time-slice ou quantum)
 terminado o quantum, o processo é
devolvido (preempção) para o final da
fila de prontos
 processos não monopolizam a CPU
 quantum entre 100 a 300 ms
Round-Robin
Processo A
5 u.t.
2 u.t.
4 u.t.
Processo B
5
termina
quantum
de A
5 u.t.
2 u.t.
9
11
3 u.t.
2 u.t.
13
B solicita
I/O
16
B solicita
I/O
21
termina
quantum
de A
A solicita
I/O
Tempo de CPU (u.t.)
23
26 27
A solicita
I/O
B solicita
I/O
Característica do Processo
Processo A
15
CPU bound
Processo B
8
I/O bound
tempo
Round-Robin
 Vantagem do escalonamento Robin Round
 simplicidade
 Tamanho da fatia de tempo é crucial no
escalonamento circular
 pequena: tempo de troca de contexto
torna-se significativo
 grande: aumenta o tempo de resposta
dos processos no final da fila de prontos
Round-Robin
 Se existem n processos na fila de prontos
 Se quantum = q
 cada processo tem 1/n do tempo de
CPU em fatias de no máximo q unidades
de tempo cada
 Nenhum processo espera por mais de
(n-1) q unidades de tempo para ser
atendido
Round-Robin
 Desempenho
 quantum = muito grande
 FIFO
 quantum = muito pequeno
 q deve ser grande comparado a
mudança de contexto, caso contrário, o
overhead é muito elevado
Round-Robin
Processo
P1
P2
P3
P4
Tempo de execução
53
17
68
24
Diagrama de Gantt (quantum = 20 u.t.)
P1
0
20
P2
37
P3
57
P4
P1
77
P3
97 117
P4
P1
P3
P3
121 134 154 162
Tipicamente, temos turnaround time médio maior que
na SJF, mais em compensação melhor resposta
Como um pequeno quantum de tempo
aumenta as mudanças de contexto
quantum
tamanho do processo: 10 u.t.
0
12
0
6
1
1
9
10
0
0
mudanças
de contexto
6
1
2
3
4
5
6
10
7
8
9
10
Múltiplas Filas
 Política do tipo preemptiva
 Prioridades são atribuídas às classes de
processos
 Processos das classes de maior prioridade
recebem o processador
 Processos podem migrar entre classes de
acordo com seu comportamento
 Vantagem: adaptabilidade de acordo com o
comportamento do processo
Múltiplas Filas
 Processos são classificados em função do
tipo de processamento
 Cada grupo formado  fila associada
 Fila de prontos associada a cada grupo
permite
 aplicação de tipos de escalonamento
diferentes
Múltiplas Filas
 Cada fila possui uma prioridade
 SO só vai escalonar processos em uma fila
se todos os processos das filas de maior
prioridade estiverem vazias
Múltiplas Filas
p=3
processos interativos
p=2
p=1
processos em batch
p=0
 sistema
Exemplo
 mais prioritário
 algoritmo de escalonamento por prioridades
 interativo
 prioridade intermediária
 escalonamento Round-Robin
 batch
 menor prioridade
 usa Round-Robin ou FCFS
Maior Prioridade
Fila de Processos do Sistema
Fila de Processos Interativos
Fila de Processos Batch
Menor Prioridade
Múltiplas Filas com Realimentação
 Escalonamento anterior a classificação dos
processos era estática
 Se processo alterar seu comportamento, o
esquema pode falhar (não existe reclassificação)
 Seria interessante que o SO
 reconhecesse a alteração de comportamento
de um processo
 ajustasse dinamicamente o seu tipo de
escalonamento
Múltiplas Filas com Realimentação
 No escalonamento por múltiplas filas com
realimentação (multi-level feed-bak queues)
 é permitido que os processos sejam
movimentados entre as filas
 ajuste dinâmico (mecanismo adaptativo)
 processo é direcionado para uma das filas em
função de seu comportamento
Múltiplas Filas com Realimentação:
Funciomanto
 Criação do processo
 prioridade mais alta e quantum mais baixo
 Cada fila pode implementar uma política de
escalonamento diferente para chegar a CPU:
 FIFO com quantum
 SJF
 RR
Múltiplas Filas com Realimentação:
Funciomanto
 Processo é reescalonado dentro da mesma fila
quando
 processo volta ao estado de pronto
 sofre preempção por outro processo de uma
fila mais prioritária
 Processo é direcionado para fila de menor
prioridade e maior quantum quando
 processo esgota o seu quantum (sofrendo
preempção)
Múltiplas Filas com Realimentação:
Funciomanto
 Quanto maior a prioridade menor o quantum
 Escalonamento de uma fila só acontece depois
que todas as outras filas de prioridade mais alta
estão vazias
 Fila de menor prioridade  Round-Robin
Múltiplas Filas com Realimentação:
Características
 Atende as necessidades de escalonamento de
diversos tipos de processos
 Processos I/O bound
 bom tempo de resposta: maior prioridade
 permanecem a maior parte do tempo nas
filas de alta prioridade
 usa pouco a CPU
Múltiplas Filas com Realimentação:
Características
 Processos CPU bound
 com o transcorrer do processamento sua
prioridade vai sendo reduzida
 É um mecanismo complexo e gera
overhead, mas os resultados são
satisfatórios
Múltiplas Filas com Realimentação:
Exemplo 1
Maior Prioridade
Menor quantum
Fila 1 (escalonamento FIFO)
preempção por término de quantum
Fila 2 (escalonamento FIFO)
preempção por término de quantum
Fila 3 (escalonamento FIFO)
preempção por término de quantum
...
Fila m (Round-Robin)
Menor Prioridade
Maior quantum
Múltiplas Filas com Realimentação:
Exemplo 2
quantum = 8
quantum = 16
FCFS

Download