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 Processos
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
Conceitos de Multiprogramação
c3e3 s3c2e2 s2e1 c1 s1
c3e3 s3
c2e2 s2
e1 c1 s1
seqüencial
multiprogramado
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 processoInformações associadas à cada processo estado do processoestado do processo apontador de instruçõesapontador de instruções registradores da CPUregistradores da CPU informações relativas ao escalonamento da CPUinformações relativas ao escalonamento da CPU informações relativas ao gerenciamento de informações relativas ao gerenciamento de
memóriamemória dados para contabilidade (estatísticas)dados para contabilidade (estatísticas) informações relativas ao informações relativas ao statusstatus de I/O de I/O
Process Control Block
registradores
número do processo
apontador de instruções
limites na memória
lista de arquivos abertos
.
.
.
estado do processo
ponteiro
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 atribui um pidpid único único alocar as estruturas de dados associadas a um alocar as estruturas de dados associadas a um
processoprocesso alocar o espaço necessário em memóriaalocar o espaço necessário em memória PCB deve ser iniciadoPCB deve ser iniciado consistência das listas do SO devem ser mantidasconsistência das listas do SO devem ser mantidas outras estruturas devem ser iniciadas (ex.: outras estruturas devem ser iniciadas (ex.: accountaccount))
Criação de Processo
Processo de usuário na memóriaProcesso de usuário na memória
Identificaçãodo processo
Informaçãodo Estado
Informaçãode Controle
Pilha doUsuário
Espaço deEndereçamento
privativo dousuário
(programas,dados)
Espaço deEndereçamentoCompartilhado
PCB
executando
pronto
bloqueado
PCB
PCBPCB
PCBPCBPCB
Estrutura comlista 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
rootroot
pagedaemonpagedaemon swaperswaper initinit
user 1user 1 user 2user 2 user 3user 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
Área de DadosÁrea de Dados
0100100001 0001111010001100010101010 101001011 110011111111111110000101010010 01 110000101011010100010111 11111011011111100100 101
Área de CódigoÁrea de Código
Recursos do SistemaRecursos do Sistema
Tar
efa
Apontador
45B8DD
Registradores
AX=9 BX=0
Pilha
var1, var2...
Thread 1
Apontador
FFE56A
Registradores
AX=7 BX=4
Pilha
var3, var8...
Thread 2
Múltiplas Threads em uma Tarefa
TarefaTarefa
Área de Dados
Área de Código
threads
apontadoresde 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 NOVONOVO PRONTOPRONTO EXECUTANDOEXECUTANDO TERMINADOEXECUTANDO PRONTOEXECUTANDO BLOQUEADOBLOQUEADO PRONTOPRONTO TERMINADOBLOQUEADO TERMINADO
Estados de um ProcessoMODELO DE DOIS ESTADOS
Diagrama de transição
Diagrama de fila
ExecutandoParadoentrada saída
despachado
pausa/bloqueio(time-out ou interrupção)
pausa/bloqueio
Processadorentrada
despachado saídafila
Estados de um Processo
Novo Pronto
Bloqueado
Executando Saídaadmitir liberar
desbloqueado quando o
evento esperado
ocorre
Despachado(pelo escalonador)
bloqueado aespera de um evento
Time-out(preempção)
ou interrupção
FIM DO PROCESSO
CRIAÇÃODO
PROCESSO
MODELO DE CINCO ESTADOS
Conceito de Escalonamento Para cada estado, existe uma fila que contém os PCB's
nas transições entre estados, o PCB do processo é movido entre as filas apropriadas
executando
bloqueados
pcb3
prontos pcb1 pcb5 pcb2
pcb4 pcb6
pcb8 pcb7 pcb10
e/s disco
e/s terminal
e/s impressão
pcb9
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
Fila de Prontos
FilaEspera
I/O
CPU
Curto-Prazo
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 pelodispatcher para interromper um processo e começar a execução de um outro
Filas de Prontos e de I/O
cabeçalho
finalPCB 3 PCB 1 PCB 37
cabeçalho
final
cabeçalho
final
registradores
.
.
.
PCB 5
registradores
.
.
.
PCB 19
cabeçalho
finalFila de
Prontos
PCB 22
cabeçalho
final...
Representação do Escalonamento
término de fatiade tempo
término de fatiade tempo
requisição deI/O
requisição deI/O
em espera poruma interrupção
em espera poruma interrupção
criação de umprocesso filho
criação de umprocesso filho
interrupçãoocorre
interrupçãoocorre
filho em execução
filho em execução
fila de dispositivoI/OI/O
fila de processos prontos CPUCPU
Adição de Escalonador Intermediário
fila de espera porI/O
I/O
fila de processos prontos
CPU
terminar
processos em execuçãoparcialmente removidos
da memória
carregar remover
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
Pro
cess
o P
0
exec
.ex
ec.
ocio
so
Pro
cess
o P
1
ocio
soex
ecut
ando
ocio
sorecarregar estado no PCB0
armazenar estado no PCB1
armazenar estado no PCB0
recarregar estado no PCB1
.
.
.
.
.
.
interrupção ou chamada ao sistema
SO
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
Tipo de processamentobatchinterativoCPU boundI/O bound
Tipo de sistemamonoprogramado (?)multiprogramadotime-sharingtempo-realmultiprocessado
Tipo de processamentobatchinterativoCPU boundI/O bound
Tipo de sistemamonoprogramado (?)multiprogramadotime-sharingtempo-realmultiprocessado
política de escalonamento(scheduling policies)
política de escalonamento(scheduling policies)
Considerações
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árioqual 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
p1 p2 p3 p4
t = 6 t = 8 t = 7 t = 3
p1 p2 p3 p4
0 6 14 2421 t
PROCS. TE TTp1 0 ut 6 utp2 6 ut 8 utp3 14 ut 7 utp4 21 ut 3 ut
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:
Waiting time para P1 = 0; P2 = 24; P3 = 27
Waiting time médio: (0 + 24 + 27)/3 = 17
P1
24 27 300
P2 P3
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ê ?)
p1 p2 p3 p4
t = 6 t = 8 t = 7 t = 3
p4 p1 p3 p2
3 9 16 240 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)
waiting time médio = (0 + 5 + 4 + 7)/4 = 4
73 160 8 12
P1 P2 P3 P4
Shortest-Job-First: preemptivo
Processo Tempo de chegada Duração da rajada
P1 0.0 7
SJF (preemptivo)
waiting time médio = (9 + 1 + 0 +2)/4 = 3
P2 2.0 4
P3 4.0 1 terminado
P4 5.0 4
terminado
0
P1
2
P2
5
P3
4 7
P2
11
P4
terminado
16
P1
terminado
Shortest-Job-First: preemptivo
?
Processo Tempo de chegada Duração da rajada
P1 0.0 7
0
P1
SJF (preemptivo)
waiting time médio = (9 + 1 + 0 +2)/4 = 3
2
P2
P2 2.0 4
tempo restante: 5
? 5
P3 4.0 1
P3
4
tempo restante: 2
terminado
P4 5.0 4
7
P2
terminado
11
P4
terminado
16
P1
terminado
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
:Define 4.
10 , 3.
CPU de rajada próxima a para estimado valor 2.
CPU de rajada da real tamanho 1.
1
n
αn nt
nnn t 1 1 nnn t 1 1
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
Atribuição de prioridadesAtribuição de prioridades normalmente é feita pelo SOnormalmente é feita pelo SO pode ser configurada pelo superusuáriopode ser configurada pelo superusuário processos de usuário recebem uma prioridade processos de usuário recebem uma prioridade
máxima de usuáriomáxima de usuário usuário pode diminuir a prioridade de seus usuário pode diminuir a prioridade de seus
processosprocessos ex.: comando ex.: comando renicerenice do Unix do Unix
DinâmicaDinâmica pode ser ajustada de acordo compode ser ajustada de acordo com
tipo de processamento realizadotipo de processamento realizado a carga do SOa carga do SO
quando o processo passa do estado de quando o processo passa do estado de espera para o estado executando ele é espera para o estado executando ele é penalizadopenalizado e sua prioridade é reduzida, e sua prioridade é reduzida, processosprocessos
CPU boundCPU bound terão suas prioridades terão suas prioridades reduzidas a cada passagem para o estado reduzidas a cada passagem para o estado executandoexecutando
I/O boundI/O bound ficam em estado de espera com ficam em estado de espera com freqüência, processos freqüência, processos CPU boundCPU bound não serão não serão prejudicadosprejudicados
DinâmicaDinâmica pode ser ajustada de acordo compode ser ajustada de acordo com
tipo de processamento realizadotipo de processamento realizado a carga do SOa carga do SO
quando o processo passa do estado de quando o processo passa do estado de espera para o estado executando ele é espera para o estado executando ele é penalizadopenalizado e sua prioridade é reduzida, e sua prioridade é reduzida, processosprocessos
CPU boundCPU bound terão suas prioridades terão suas prioridades reduzidas a cada passagem para o estado reduzidas a cada passagem para o estado executandoexecutando
I/O boundI/O bound ficam em estado de espera com ficam em estado de espera com freqüência, processos freqüência, processos CPU boundCPU bound não serão não serão prejudicadosprejudicados
EstáticaEstática é atribuída quando o processo é é atribuída quando o processo é
iniciadoiniciado não é alterada durante a existência do não é alterada durante a existência do
processoprocesso pode oferecer tempos de resposta pode oferecer tempos de resposta
aceitáveisaceitáveis
EstáticaEstática é atribuída quando o processo é é atribuída quando o processo é
iniciadoiniciado não é alterada durante a existência do não é alterada durante a existência do
processoprocesso pode oferecer tempos de resposta pode oferecer tempos de resposta
aceitáveisaceitáveis
ObservaçãoObservaçãoSO pode associar à alta prioridade um SO pode associar à alta prioridade um
número escalar pequeno número escalar pequeno
0 significa a maior prioridade0 significa a maior prioridade
ObservaçãoObservaçãoSO pode associar à alta prioridade um SO pode associar à alta prioridade um
número escalar pequeno número escalar pequeno
0 significa a maior prioridade0 significa a maior prioridade
Prioridade
Processo A
Processo B
tempo4 8 10 13 16 18 23 26 27
1u.t.
4 u.t.
B solicita I/O
preempçãopor B
4 u.t.
B solicita I/O
2 u.t.
A solicita I/O
3 u.t.
2 u.t.
B solicita I/O
5 u.t.
preempçãopor B
3 u.t.
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
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
processo 1 executando
fatia de tempoesgotada
bcp2 bcp3 bcp4 bcp1
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
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
Processo B
tempo5 9 11 13 16 21 23 26 27
Tempo de CPU (u.t.) Característica do Processo
Processo A 15 CPU bound
Processo B 8 I/O bound
5 u.t.
terminaquantum
de A
4 u.t.
B solicita I/O
A solicita I/O
2 u.t.
B solicita I/O
2 u.t.
5 u.t.
terminaquantum
de A
2 u.t.
B solicita I/O
3 u.t.
A solicita I/O
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
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
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
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 Tempo de execução
P1 53
P2 17
P3 68
P4 24
Diagrama de Gantt (quantum = 20 u.t.)
Tipicamente, temos turnaround time médio maior que na SJF, mais em compensação melhor resposta
0 20 37 57 77 97 117 121 134 154 162
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
Como um pequeno quantum de tempo aumenta as mudanças de contexto
tamanho do processo: 10 u.t. quantum mudançasde contexto
0 10
12 0
0 6 10
6 1
0 1 2 3 4 5 6 107 8 9
1 9
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
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
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
p = 2
p = 0
p = 1
processos interativos
processos em batch
Fila de Processos do SistemaFila de Processos do Sistema
Fila de Processos BatchFila de Processos Batch
Fila de Processos InterativosFila de Processos Interativos
Maior PrioridadeMaior Prioridade
Menor PrioridadeMenor Prioridade
sistema mais prioritário algoritmo de escalonamento por prioridades
interativo prioridade intermediária escalonamento Round-Robin
batch menor prioridade usa Round-Robin ou FCFS
sistema mais prioritário algoritmo de escalonamento por prioridades
interativo prioridade intermediária escalonamento Round-Robin
batch menor prioridade usa Round-Robin ou FCFS
Exemplo
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 processoajustasse 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 prontosofre 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
Fila 1 (escalonamento FIFO)
Fila 2 (escalonamento FIFO)
Fila m (Round-Robin)
Maior Prioridade
Menor Prioridade Maior quantum
Menor quantum
Fila 3 (escalonamento FIFO)
preempção por término de quantum
preempção por término de quantum
...preempção por término de quantum
Múltiplas Filas com Realimentação: Exemplo 2
quantum = 8
quantum = 16
FCFS
Top Related