dos processos. - IME-USP

Propaganda
Gerência do Processador
Adão de Melo Neto
1
Introdução
Q
Sistemas Multiprogramáveis:
– Múltiplos processos podem permanecer na memória principal
compartilhando o uso da CPU.
– POLÍTICA DE ESCALONAMENTO
Como diversos processos podem estarem estado de pronto devem
ser estabelecidos critérios para determinar qual processo será
escolhido para fazer uso do processador
Programa
Processo
2
Processo/Memória Principal (revisão)
3
Critérios de Escalonamento
Q
Utilização do Processador
– 30% (sistema com carga baixa) e 90% (sistema bastante carregado)
Q
Throughput
– Número de processos executados em determinado intervalo de tempo
Q
Tempo de Processador/CPU
– Tempo que um processo leva no estado de execução durante seu processamento
– As políticas de escalonamento não influenciam este tempo
Q
Tempo de espera
– Tempo que um processo fica no estado de pronto aguardando ser executado
Q
Tempo de Turnaround
– Tempo que leva desde a criação até seu término
Q
Tempo de Resposta
– Tempo decorrido desde a requisição ao sistema ou aplicação até o instante que a
resposta é exibida
Busca-se maximizar
Busca-se minimizar
As características do sistema operacional (sistemas de
tempo compartilhado ou sistemas de tempo real)
irão determinar quais os principais aspectos
na implementação de uma política de escalonamento
4
Funções de uma Política de Escalonamento
- Manter processador ocupado a maior parte do tempo
- Balancear o uso da CPU entre os processos
- Privilegiar aplicações críticas
- Maximizar o throuput do sistema.
- Maximizar o tempo de resposta
Rotina SCHEDULER
Implementar a política de escalonamento do processador
Rotina DISPATCHER
Implementar a troca de contexto entre processos
5
Escalonamentos Preemptivos Não-Preemptivos
PREEMPÇÃO
Capacidade de um sistema operacional interromper um processo em
execução e substituí-lo por um outro
ESCALONAMENTOS NÃOPREEMPTIVOS
(nenhum evento externo pode
ocasionar a perda do uso do
processador)
ESCALONAMENTO PREEMPTIVOS
(o sistema operacional pode interromper um
processo e passá-lo para o estado de pronto,
a fim de alocar outro processo na CPU)
6
Mudança de Estados de um Processo (revisão)
(B) EXECUÇÃO → ESPERA
(gerada por eventos do processo
como
operações de E/S)
(gerada por eventos externo:
Sistema operacional suspende
por um período de tempo a
execução do processo)
(A) PRONTO → EXECUÇÃO
( depende da política de
escalonamento do Sistema
Operacional)
(D) EXECUÇÃO → PRONTO
(término da fatia de tempo que
processo possui para sua
execução)
(C) ESPERA → PRONTO
(operação solicitada é atendida ou recurso esperado é concedido
7
Vantagens da Preempção
Priorizar a execução de processos como no
caso de aplicações de tempo real onde o fator de tempo é
crítico
Implementar políticas de escalonamento que compartilhem
o processador de maneira mais uniforme
8
ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO)
Q
Q
Q
Q
Não-preemptivo
Os processos que passam para o estado de pronto ⇒ entram no
final de uma fila e são escalonados quando chegam ao seu início.
Processo em execução termina o seu processamento ou vai para o
estado de espera ⇒ o primeiro processo da fila é escalonado.
Processos que saem da fila de estado de espera ⇒ entram no final
da fila de pronto.
Final
Início
1o processo
Processo em
execução
Escalonamento FIFO
9
ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO)
Q
Q
Duas situações distintas que dependem do posicionamento dos
processos A , B e C na fila de estado de pronto.
Tempo de Processador
– A (10), B (4) e C (3)
Tempo Médio de Espera
(0 + 10 + 14 )/3 = 8 u.t
C → B →A
Tempo Médio de Espera
(7 + 0 + 4 )/3 = 3,7 u.t
A→C→B
10
ESCALONAMENTO FIRST-IN_FIRST-OUT (FIFO)
Q
Vantagens
– Simples
Q
Desvantagens
– Impossibilidade de se prever quando um processo terá sua
execução iniciada (não se preocupa em melhorar o tempo médio
do processo)
– Processos CPU-bound levam vantagem em relação aos
processos I/O-bound
11
ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF)
Q
Q
Q
Não-preemptivo em sua concepção original
Seleciona o processo em estado de pronto que tiver o menor tempo
de processador ainda por executar.
Tempo de processador estimado com base em análises estatísticas
de execuções passadas.
A (10) B (4)
C (3)
C (3)
B (4) A (10)
Como será executado
Ordem na Fila (exemplo)
12
ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF)
Q
Tempo de Processador
– A (10), B (4) e C (3)
Tempo Médio de Espera
(7 + 3 + 0 )/3 = 3,3 u.t
13
ESCALONAMENTO SHORSTEST-JOB-FIRST (SJF)
Q
Vantagens
– Redução do tempo médio de turnaround (desde da criação do
processo até o seu fim)dos processos.
Q
Desvantagens
– Impossibilidade de se estimar o tempo de processador para
processo interativos (entrada de dados é uma ação
imprevisível).
– Possibilidade de starvation para processos do tipo CPU-Bound
14
ESCALONAMENTO COOPERATIVO
Q
Q
Q
Escalonamento preemptivo (preempção controlada pelo processo)
Um processo em execução pode voluntariamente liberar o
processador retornando à fila de pronto, possibilitando que outro
processo possa ser escalonado.
Um processo em execução verifica periodicamente a fila de
mensagens para determinar se existem outros processos na fila de
pronto.
15
ESCALONAMENTO COOPERATIVO
Q
Vantagens
– Aumenta o grau de
multiprogramação em políticas de
escalonamento que não possuem mecanismo de preempção.
Q
Desvantagens
Q
– Caso um processo não verifique a fila de mensagens, os
demais não terão chance de serem executados.
Exemplo de Uso
– Primeiros sistemas operacionais Microsoft Windows ( multitarefa
cooperativa )
16
ESCALONAMENTO CIRCULAR (Round Robin Schedule)
Q
Q
Q
Q
Escalonamento preemptivo
Projetado para sistemas de tempo compartilhado.
Semelhante ao FIFO, porém quando passa para o estado de
execução existe um tempo limite para o uso do processados (timeslice).
Fim do time-slice, o sistema operacional interrompe o processo,
salva seu contexto e o direciona ao final da fila de pronto.
17
ESCALONAMENTO CIRCULAR (Round Robin Schedule)
Exemplo
onde
a fatia de tempo é
igual
a 2 u.t
18
ESCALONAMENTO CIRCULAR (Round Robin Schedule)
Q
Vantagens
– Não permitir que um processo monopolize a CPU.
Q
Desvantagens
Q
– Processos CPU-bound são mais beneficiados no uso do
processador do que os I/O-bound, pois tendem a utilizar por
completo a fatia de tempo.
Exemplo de Uso
– Muito adequado para sistemas interativos
19
ESCALONAMENTO POR PRIORIDADES
Q
Q
Q
Escalonamento Preemptivo (implementável de forma não-preemptiva)
Um valor (prioridade de execução) é associado a cada processo e para cada
prioridade existe uma fila
Reavaliação das Prioridades Periodicamente:
– O processo com maior prioridade em estado de pronto é escolhido para execução
(escalonado).
– Processo com valores iguais de prioridade são escolhido de acordo com FIFO
Q
Preempção por prioridade:
– Não existe o conceito de time-slice (não existe preempção por tempo)
20
ESCALONAMENTO POR PRIORIDADES
PREEMPÇÃO POR PRIORIDADE
Implementada por interrupção de clock gerada em determinados intervalos de tempo a
fim de que a rotina de escalonamento reavalie as prioridades dos processos na fila de
estado de pronto.
Caso haja processos na fila de pronto com maior prioridade que o processo em execução,
o sistema operacional realiza a preempção
21
ESCALONAMENTO POR PRIORIDADES
IBM-AIX
prioridade: 1 a 127
Prioridade de 1 a 5
22
ESCALONAMENTO POR PRIORIDADES
Q
Prioridade de Execução→característica do Contexto de Software do Processo
– Prioridade Estática
(não alterada durante a existência do processo)
– Prioridade Dinâmica
(pode ser alterada de acordo com critérios do sistema operacional)
23
ESCALONAMENTO POR PRIORIDADES
Q
Vantagens
– Permite diferenciar processos de acordo com sua importância.
Q
Desvantagens
– Starvation
• Processos com baixa prioridade podem ficar indefinidamente na
fila de pronto
• Solução: mecanismo de aging (incremento gradual da prioridade
de processos que ficam muito tempo na fila de pronto)
Q
Exemplo de Uso
– Útil em sistemas de tempo real e aplicações de controle de
processo.
24
ESCALONAMENTO CIRCULAR POR PRIORIDADES
Q
Q
Q
Escalonamento Preemptivo
Um valor (prioridade de execução) é associado a cada processo e para cada
prioridade existe uma fila
Preempção por prioridade ou por tempo (time-slice)
25
ESCALONAMENTO POR MÚLTIPLAS FILAS
Q
Q
Q
Q
Q
Existem várias filas de processos em estado de pronto com uma prioridade
específica.
O processo não possui prioridade, ficando esta característica associada a fila
As filas estão associadas aos tipos de processos (ex: sistema, iterativos, batch).
Cada fila possui um mecanismo próprio de escalonamento (isto permite que
alguns sejam escalonados pelo mecanismo FIFO enquanto outros pelo outro pelo
circular)
Sistema Operacional só pode escalonar processo de uma fila caso todas as outras
filas de maior prioridade estejam vazias
Escalonamento
por prioridade
Escalonamento Circular
Escalonamento Circular
26
ESCALONAMENTO POR MÚLTIPLAS FILAS
Q
Vantagens
– Diversos mecanismos de escalonamento em um mesmo
sistema operacional
Q
Desvantagens
– Um processo não pode ser redirecionado para uma outra fila
mais adequada (caso altere seu comportamento no decorrer do
tempo)
27
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO COMPARTILHADO
Q
Q
Q
Caracterizam pelo processamento interativo (exigem tempo de resposta
rápidos)
A escolha da política para atingir este propósito deve levar em consideração o
compartilhamento da CPU de forma interativa
Comportamento dos processos CPU-Bound e I/O-Bound nos escalonamentos
apresentados
28
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO COMPARTILHADO
Comportamento dos processos CPU-Bound e I/O-Bound no
Escalonamento FIFO
Muitas operações I/O
Grande parte
do tempo em estado de
espera
Processador
distribuído de
forma bastante
desigual
29
Mudança de Estados de um Processo (revisão)
30
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO COMPARTILHADO
Comportamento dos processos CPU-Bound e I/O-Bound no
Escalonamento Circular com time-slice igual a 5
Melhoria da
distribuição do
tempo de
processador em
relação ao FIFO
31
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO COMPARTILHADO
Comportamento dos processos CPU-Bound e I/O-Bound no
Escalonamento Circular com Prioridades
Há uma melhoria do
compartilhamento do uso do
processador pois foi possível
associar maior prioridade ao
processo B (I/O-Bound) 32
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO COMPARTILHADO
A MAIORIA DOS SISTEMAS OPERACIONAIS DE TEMPO
COMPARTILHADO UTILIZAM O
ESCALONAMENTO CIRCULAR COM PRIORIDADES DINÂMICAS
33
POLÍTICAS DE ESCALONAMENTO EM
SISTEMAS DE TEMPO REAL
Sistemas de Tempo Real
É garantida a execução de processos dentro de limites rígidos
de tempo, sem o risco da aplicação ficar comprometida.
Escalonamento
O escalonamento deve levar em consideração a importância de
cada tarefa na aplicação
Escalonamento mais Adequado
O escalonamento por prioridade é o mais adequado desde que a
cada processo é associado uma prioridade em função da
importância do processo dentro da aplicação
34
Download