holandaholanda.xyz/files/2015-08-24-sched-so1.pdf · regrasdeescalonamento windowsxp i...
TRANSCRIPT
PolíticasProcessos limitados por E/S x processador
I E/S – processos limitados por E/S gastam a maior parte do temposubmetendo ou esperando requisições de E/S. Exemplo: InterfaceGráfica (interação com mouse, teclado, disco).
I Processador – processos limitados por processador gastam a maiorparte do seu tempo executando código. Exemplo: geradores dechave para criptografia, Matlab.
Esta classificação não é mutuamente exclusiva, pois um processo podeexibir ambos comportamentos, como o servidor X Window porexemplo.
A política de escalonamento em um SO deve satisfazer dois objetivosconflitantes: tempo de resposta rápido ao processo (baixa latência) emáxima utilização do SO (alta vazão).
Escalonamento preemptivo
Condições para a tomada de decisão de escalonamento de umprocesso:
1. Processo passa do estado executando para o estadoesperando. Por exemplo, como resultado de uma requisição deE/S, ou uma chamada de espera pelo término de um dosprocessos filho.
2. Quando um processo passa do estado executando para oestado pronto. Por exemplo, quando ocorre uma interrupção.
3. Quando um processo passa do estado esperando para o estadopronto. Por exemplo, no término da E/S.
4. Quando o processo termina.Para as situações 1 e 4 não há escolha em termos de escalonamento.Este esquema de escalonamento é chamada de não-preemptivo oucooperativo, foi usado no Windows 3.x e Mac OS anterior ao X.
Escalonamento preemptivo
Condições para a tomada de decisão de escalonamento de umprocesso:
1. Processo passa do estado executando para o estadoesperando. Por exemplo, como resultado de uma requisição deE/S, ou uma chamada de espera pelo término de um dosprocessos filho.
2. Quando um processo passa do estado executando para oestado pronto. Por exemplo, quando ocorre uma interrupção.
3. Quando um processo passa do estado esperando para o estadopronto. Por exemplo, no término da E/S.
4. Quando o processo termina.Para as situações 1 e 4 não há escolha em termos de escalonamento.Este esquema de escalonamento é chamada de não-preemptivo oucooperativo, foi usado no Windows 3.x e Mac OS anterior ao X.
DespachanteDispatcher
Despachante – componente envolvido no escalonamento doprocessador realizando as seguintes funções:
1. Troca de contexto;2. Troca para o modo usuário;3. Desvio para o local apropriado no programa do usuário para
reiniciar o processo.O despachante utiliza um ou vários algoritmos de escalonamentoque normalmente buscam:
1. Otimizar a utilização do processador;2. Aumentar a vazão (throughput);3. Reduzir o tempo de espera (não leva em conta tempo de
espera devido a requisição de E/S).
DespachanteDispatcher
Despachante – componente envolvido no escalonamento doprocessador realizando as seguintes funções:
1. Troca de contexto;2. Troca para o modo usuário;3. Desvio para o local apropriado no programa do usuário para
reiniciar o processo.O despachante utiliza um ou vários algoritmos de escalonamentoque normalmente buscam:
1. Otimizar a utilização do processador;2. Aumentar a vazão (throughput);3. Reduzir o tempo de espera (não leva em conta tempo de
espera devido a requisição de E/S).
Primeiro a chegar, primeiro a ser servido (FIFO)FIFO – first in first out
processo tempo de surto (ms)p1 24p2 3p3 3
Pior caso
p1
24
p2
27
p3
30
te = (0 + 24 + 27)/3 = 17ms
Primeiro a chegar, primeiro a ser servido (FIFO)FIFO – first in first out
processo tempo de surto (ms)p1 3p2 3p3 24
Melhor caso
p1
3
p2
6
p3
30
te = (0 + 3 + 6)/3 = 3ms
Tarefa mais curta primeiroSJF – shortest job first
processo tempo de surto (ms)p1 6p2 8p3 7p4 3
p4
3
p1
9
p3
16
p2
24
te = (0 + 3 + 9 + 16)/4 = 7ms
Escalonamento por prioridade
processo tempo de surto(ms) prioridadep1 10 3p2 1 1p3 2 4p4 1 5p5 5 2
p2
1
p5
6
p1
16
p3
18
p4
19
te = (1 + 6 + 16 + 18 + 19 + 0)/5 = 8, 2ms
Escalonamento por Round-Robin (revezamento)
processo tempo de surto (ms)p1 24p2 3p3 3
quantum = 4 ms
p1
4
p2
7
p3
10
p1
14
p1
18
p1
22
p1
26
p1
30
te = ((10− 4) + 4 + 7)/3 = 17/3 = 5, 66ms
Quantum x troca de contexto
tempo do processo = 10 ms quantum trocas decontexto
1012 0
6 106 1
1 2 3 4 5 6 7 8 9 101 9
Exercício 1Fonte: “Sistemas Operacionais com Java”, Silberschatz, Galvin, Gagne. Ed. Campus,2008.
Considere os seguintes processos com o tempo de execução (burst) noprocessador data em milisegundos:
Processo tempo de execução prioridadep1 10 3p2 1 1p3 2 3p4 1 4p5 5 2
Considere que os processos chegaram na ordem p1, p2, p3, p4, p5, todos nomomento 0.
I Desenhe quatro gráficos de Gantt para a utilização dos seguintesalgoritmos de escalonamento: FIFO, SJF, prioridade preemptivo erevezamento (Round-Robin) com quantum igual a 1 ms.
I Qual o tempo de espera para cada processo para cada um dos algoritmos?I Qual o tempo de espera médio?
Escalonamento com fila de multinívelEscalonamento multilevel queue
Nível mais alto
Nível mais baixo
sistema
interativo
edição interativa
lote (batch)
Escalonamento multilevel feedback-queue
quantum=8
quantum=16
FCFS
entrada fila 0
fila 1
fila 2
1. Fila 0 → quantumprocesso ≤ 8;
2. Fila 1 → quantumprocesso ≤ 24;
3. Fila 2 → quantumprocesso > 24.
Técnicas de escalonamento com multiprocessadores
I Multiprocessamento assimétrico – todas as atividades deescalonamento, processamento de E/S são tratadas por umprocessador único, o servidor mestre. Simples pelo fato depossibilitar acesso único aos dados compartilhados.
I Multiprocessamento simétrico (SMP1) – cada processador éauto-escalonado, podendo ter sua própria fila de processosprontos ou compartilhar uma fila comum. O escalonador,porém, é específico para cada processador devendo examinaras filas de pronto e tomar cuidado com as estruturas de dadoscompartilhadas com outros processadores. Ex: Windows XP,Linux, Solaris, Mac OS X.
1Symmetric Multiprocessing
Técnicas de escalonamento com multiprocessadores
I Multiprocessamento assimétrico – todas as atividades deescalonamento, processamento de E/S são tratadas por umprocessador único, o servidor mestre. Simples pelo fato depossibilitar acesso único aos dados compartilhados.
I Multiprocessamento simétrico (SMP1) – cada processador éauto-escalonado, podendo ter sua própria fila de processosprontos ou compartilhar uma fila comum. O escalonador,porém, é específico para cada processador devendo examinaras filas de pronto e tomar cuidado com as estruturas de dadoscompartilhadas com outros processadores. Ex: Windows XP,Linux, Solaris, Mac OS X.
1Symmetric Multiprocessing
Afinidade do processadorSMP
Atribui um processo específico a um processador reduzindo o custode transferência dos dados da memória cache de um processadorpara outro, além da invalidação dos dados na memória cache doprimeiro processador.
I Afinidade flexível – processo pode migrar;I Afinidade rígida – processo não pode migrar (Ex: Linux).
Multithreading simétricoSMT
A tecnologia de Multithreading simétrico(SMT2) fornece váriosprocessadores lógicos em um único processador físico.Cada processador possui seu próprio estado arquitetônico que incluiregistradores de uso geral e de estado de máquina.Como SMT é um recurso implementado em hardware, o sistemaoperacional não precisa necessariamente gerenciar o escalonamentodos processos.
2Symmetric Multithreading
Escalonamento no Windows XP
I Escalonamento com base em prioridade e preemptivo;I Thread de maior prioridade sempre será executada.
I O despachante pode interromper a thread em execução deacordo com as seguintes condições:
I Término de execução da thread;I Término de quantum de tempo da thread;I Requisição de execução de uma thread de maior prioridade;I Invocação de uma chamada de sistema bloqueante (E/S, por
exemplo).I Esquema de prioridade: 0 → 31.
1. Classe variável: 1 → 15.2. Classe de tempo real: 16 → 31.3. Prioridade 0: usada pelo sistema para gerenciamento de
memória.
Escalonamento no Windows XP
I Escalonamento com base em prioridade e preemptivo;I Thread de maior prioridade sempre será executada.
I O despachante pode interromper a thread em execução deacordo com as seguintes condições:
I Término de execução da thread;I Término de quantum de tempo da thread;I Requisição de execução de uma thread de maior prioridade;I Invocação de uma chamada de sistema bloqueante (E/S, por
exemplo).I Esquema de prioridade: 0 → 31.
1. Classe variável: 1 → 15.2. Classe de tempo real: 16 → 31.3. Prioridade 0: usada pelo sistema para gerenciamento de
memória.
Escalonamento no Windows XP
I Escalonamento com base em prioridade e preemptivo;I Thread de maior prioridade sempre será executada.
I O despachante pode interromper a thread em execução deacordo com as seguintes condições:
I Término de execução da thread;I Término de quantum de tempo da thread;I Requisição de execução de uma thread de maior prioridade;I Invocação de uma chamada de sistema bloqueante (E/S, por
exemplo).I Esquema de prioridade: 0 → 31.
1. Classe variável: 1 → 15.2. Classe de tempo real: 16 → 31.3. Prioridade 0: usada pelo sistema para gerenciamento de
memória.
Escalonamento no Windows XPClasses de prioridades
Classes de proridade
REALTIME_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
ABOVE_NORMAL_PRIORITY
NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
despachanteValores relativos
TIME_CRITICAL HIGHEST ABOVE_NORMAL
31 26 25
15 15 14
15 12 11
15 10 9
15 8 7
15 6 5
Escalonamento no Windows XPClasses de prioridades
Classes de proridade
REALTIME_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
ABOVE_NORMAL_PRIORITY
NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
despachanteValores relativos
NORMAL BELOW_NORMAL LOWEST IDLE
24 23 22 16
13 12 11 1
10 9 8 1
8 7 6 1
6 5 4 1
4 3 2 1
prioridade básica
Regras de escalonamentoWindows XP
I Processos são membros de NORMAL_PRIORITY_CLASS, exceto:
I Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou;I Quando foi especificada outra classe na criação do processo.
I Quando o quantum de tempo de uma thread se esgota, esta éinterrompida e se a classe de prioridade for variável, suaprioridade é reduzida, porém, nunca menos do que aprioridade básica.
I Quando um processo pertence à classeNORMAL_PRIORITY_CLASS, e está atualmente selecionado natela (primeiro plano), seu quantum é aumentado, obtendomais tempo de execução antes de ser preemptado.
I A classe REALTIME_PRIORITY_CLASS é invariante e provocapreempção de outros processos quando volta para a filapronto.
Regras de escalonamentoWindows XP
I Processos são membros de NORMAL_PRIORITY_CLASS, exceto:
I Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou;I Quando foi especificada outra classe na criação do processo.
I Quando o quantum de tempo de uma thread se esgota, esta éinterrompida e se a classe de prioridade for variável, suaprioridade é reduzida, porém, nunca menos do que aprioridade básica.
I Quando um processo pertence à classeNORMAL_PRIORITY_CLASS, e está atualmente selecionado natela (primeiro plano), seu quantum é aumentado, obtendomais tempo de execução antes de ser preemptado.
I A classe REALTIME_PRIORITY_CLASS é invariante e provocapreempção de outros processos quando volta para a filapronto.
Regras de escalonamentoWindows XP
I Processos são membros de NORMAL_PRIORITY_CLASS, exceto:
I Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou;I Quando foi especificada outra classe na criação do processo.
I Quando o quantum de tempo de uma thread se esgota, esta éinterrompida e se a classe de prioridade for variável, suaprioridade é reduzida, porém, nunca menos do que aprioridade básica.
I Quando um processo pertence à classeNORMAL_PRIORITY_CLASS, e está atualmente selecionado natela (primeiro plano), seu quantum é aumentado, obtendomais tempo de execução antes de ser preemptado.
I A classe REALTIME_PRIORITY_CLASS é invariante e provocapreempção de outros processos quando volta para a filapronto.
Regras de escalonamentoWindows XP
I Processos são membros de NORMAL_PRIORITY_CLASS, exceto:
I Quando o processo pai pertence a IDLE_PRIORITY_CLASS ou;I Quando foi especificada outra classe na criação do processo.
I Quando o quantum de tempo de uma thread se esgota, esta éinterrompida e se a classe de prioridade for variável, suaprioridade é reduzida, porém, nunca menos do que aprioridade básica.
I Quando um processo pertence à classeNORMAL_PRIORITY_CLASS, e está atualmente selecionado natela (primeiro plano), seu quantum é aumentado, obtendomais tempo de execução antes de ser preemptado.
I A classe REALTIME_PRIORITY_CLASS é invariante e provocapreempção de outros processos quando volta para a filapronto.
Exercício 2Fonte: “Sistemas Operacionais”. Oliveira, Carissimi, Toscani. Ed. Bookman, 2008.
Quatro programas devem ser executados em um computador. Todos osprogramas são compostos por 2 ciclos de processador e 2 ciclos de E/S.A entrada e saída de todos os programas é feita sobre a mesma unidadede disco. Os tempos para cada ciclo de cada programa são mostradosabaixo:
programa processador disco processador discop1 3 10 3 12p2 4 12 6 8p3 7 8 8 10p4 6 14 2 10
Construa um diagrama de tempo mostrando qual programa estáocupando o processador e o disco a cada momento, até que os 4programas terminem. Suponha que o algoritmo utilizado seja o derevezamento (Round-Robin), com quantum de 4 unidades. Qual a taxade ocupação do processador e do disco?