• Nenhum resultado encontrado

Aula 8 - Escalonamento_Processos

N/A
N/A
Protected

Academic year: 2021

Share "Aula 8 - Escalonamento_Processos"

Copied!
53
0
0

Texto

(1)

Sistemas Operacionais

Escalonamento de Processos

https://sites.google.com/site/thiagoaalves/

(2)

Escalonamento

 Uma vez que há diversos processo na fila de pronto, qual deles selecionar para o estado de execução?

o Política de Escalonamento!

 Base da gerência do processador

Estado de Espera Estado de Execução Estado de Pronto E sca lo n a m e n to

(3)

Escalonamento

• Organizar, distribuir

obedecendo uma

seqüência lógica ou

compatível.

(4)

Escalonamento

https://www.youtube.com/watch?v=tY7oJ3q6SKA https://www.youtube.com/watch?v=IfuoehU-rhc

(5)

Escalonamento

 Funções básicas da política de escalonamento: o Manter a CPU a mais ocupada possível;

o Balancear o uso da CPU entre os processos; o Privilegiar aplicações críticas;

o Maximizar throughput (vazão) do sistema;

o Possibilitar tempos de resposta razoáveis para aplicações interativas (SO de tempo real);

(6)

Escalonamento

 Cada SO possui sua política de escalonamento;

SO diferentes vão apresentar políticas diferentes;  Escalonador (scheduler): rotina responsável por

implementar a política de escalonamento;

 Dispatcher: rotina responsável pela troca de contexto depois que o escaclonador determina qual processo vai para o estado de execução;

o Tempo gasto para troca de contexto é chamado de latência do dispatcher

 Comportamento é o mesmo tanto para processos quanto para threads no estado de pronto

(7)

Escalonamento

 Critérios considerados na política de escalonamento: o Utilização da CPU

 Desejável maximizar

 Abaixo de 30%, carga baixa; acima de 90%, próximo da saturação (atenção!)

o Throughput

 Número de processos / tempo, desejável maximizar o Tempo de CPU

 Tempo do processo no estado de execução durante todo seu processamento

(8)

Escalonamento

 Critérios considerados na política de escalonamento: o Tempo de Espera

 Tempo total do processo na fila de pronto durante todo seu processamento, desejável minimizá-lo

o Tempo de Turnaround

 Tempo total do processo (início a fim), desejável minimizá-lo

o Tempo de Resposta

 Tempo entre uma requisição ao sistema e sua resposta (p/ex., digitação e saída no monitor)

(9)

Escalonamento

 Escalonamento não preemptivo:

o Primeira forma de implementação

o Processo em execução não pode ser

interrompido por evento externo e sai do estado de execução somente quando termina ou quando

executa instrução que o coloque no estado de espera

 Escalonamento preemptivo:

o SO pode interromper um processo em execução e passá-lo para o estado de pronto, colocando

outro em execução

o Permite implementar políticas de escalonamento e priorizar processos

(10)

Escalonamento FIFO

UCP Estado de Criação Estado de Espera

Fila dos processos no estado de Pronto

Estado de Término

 First-In-First-Out

o Primeiro a entrar na fila de pronto é selecionado para execução

(11)

Escalonamento FIFO

Processo A Processo B Processo C 10 14 17 Processo A Processo B Processo C 4 7 17 u.t. u.t. Processo Tempo de processador (u.t.) A B C 10 4 3

No ex., tempo médio de espera é diferente p/ cada caso

(12)

Escalonamento FIFO

 Simples, porém apresenta deficiências:

o Impossibilidade de se prever início da execução de determinado processo

o Não se preocupa em otimizar critérios de

escalonamento (p/ex., tempo de turnaround de processos que demandam menos CPU)

o Processos CPU-bound dominam o processador frente a processos I/O-bound

o Escalonamento do tipo não-preemptivo, atualmente adotado com algumas variações

(13)

Escalonamento SJF

Processo A Processo B Processo C 3 7 17 u.t.  Shortest-Job-First

o Processo com menor tempo de processador a executar é selecionado para execução

(14)

Escalonamento SJF

 Implementação se vale de estimativas para o tempo de execução restante para os processo na fila de pronto

o Estimativas levam em consideração execuções anteriores de cada processo

o Tende a reduzir o tempo médio de espera (ver ex.)

o Impossibilidade de estimar tempo de processador para aplicações interativas

 Escalonamento considera apenas tempo de CPU na próxima vez que o processo for escalonado, não mais o tempo total até o término

 Estimativa baseada em média exponencial dos últimos tempos de CPU

(15)

Escalonamento SJF

 Escalonamento não-preemptivo

 Em relação ao escalonamento FIFO, reduz o tempo médio de turnaround dos processos

 Possibilidade de starvation para processos com tempo de CPU muito longos ou CPU-bound

(16)

Escalonamento Cooperativo

 Processo em execução pode, voluntariamente, liberar processador e retornar à fila de pronto

 Liberação do processador é tarefa exclusiva do processo em execução

o Processo em execução verifica periodicamente se há processos na fila de pronto para saber quando deve liberar a CPU

 Demais processos não serão executados se processo em execução não liberar a CPU

(17)

Escalonamento circular

Preempção por tempo

UCP Estado de

Criação

Estado de Espera

Fila dos processos no estado de Pronto

Estado de Término

 Ou Round-Robin Scheduling

o Escalonamento semelhante ao FIFO, porém preemptivo, onde é dada uma fatia de tempo de execução para cada processo e, ao final deste

(18)

Escalonamento circular

Processo A

Processo B

Processo C

2 4 6 8 10 11 17 u.t.

(19)

Escalonamento circular

 Especialmente projetado para uso em sistemas de tempo compartilhado

 Fatia de tempo é chamada de time-slice ou quantum o Em geral, varia de 10 a 100 ms, dependendo do SO

o Se o quantum for muito grande, comportamento será semelhante à política FIFO

o Se quantum for muito pequeno, desempenho será comprometido pelo número excessivo de

preempções e conseqüentes atrasos para troca de contexto

(20)

Escalonamento circular

 Principal vantagem é impedir o monopólio da CPU por algum processo

o Tempo máximo de CPU igual ao time-slice definido no sistema

 Processos CPU-bound levam vantagem em relação a processos I/O-bound

o Processos I/O-bound têm mais chance de entrar no estado de espera antes de usarem todo o

(21)

Escalonamento circular virtual

Preempção por tempo

UCP Estado de

Criação

Fila dos processos no estado de Pronto

Estado de Término

Estado de Espera Fila auxiliar

 Refinamento do escalonamento circular, visa reduzir desbalanceamento entre processos I/O e CPU-bound

o Processos que saem do estado de espera vão para uma fila de pronto auxiliar e preferencial

(22)

Escalonamento circular virtual

 Processos na fila de pronto serão escalonados apenas se a fila preferencial (auxiliar) estiver vazia

 Fatia de tempo para processos escalonados a partir da fila preferencial calculada de forma diferenciada

o Time-slice do sistema menos tempo de CPU que o processo usou da última vez que foi escalonado a partir da fila de pronto

 Ou seja, o tempo que faltava para o processo usar todo o time-slice no momento que este foi para o estado de espera

(23)

Escalonamento por

prioridades

 Escalonamento preemptivo com base na prioridade de execução de cada processo

o Processos são organizados em filas separadas de acordo com seu nível de prioridade

o Processos são escalonados somente quando as filas dos processos de maior prioridade estiverem vazias

o Processos com mesmo nível de prioridade são escalonados segundo uma política FIFO

 Não existe conceito de time-slice, não há preempção por tempo e sim por prioridade

(24)

Escalonamento por

prioridades

UCP

Estado de Término Filas dos processos no estado de Pronto

Prioridade P1 Prioridade P2 Prioridade Pn Estado de Criação Estado de Espera

(25)

Escalonamento por

prioridades

Processo A Processo B Processo C 3 13 17 u.t. Processo Tempo de processador (u.t.) A B C 10 4 3 Prioridade 2 1 3

(26)

Escalonamento por

prioridades

 Implementação através de interrupção de clock, a intervalos de tempo determinados, para que o escalonador verifique as filas de prioridade

 Também pode ser implementado de forma não-preemptiva:

o Processos com prioridade maior vão para o início da fila de pronto, sem causar preempção de processos com menor

prioridade

 Cada SO implementa sua faixa de valores para as prioridades de execução

(27)

Escalonamento por

prioridades

 Prioridade de execução do processo definida em seu contexto de software, podendo ser estática ou dinâmica

o Prioridade dinâmica pode ser ajustada ao longo da existência do processo segundo critérios do SO

 Permite ajustar critérios de escalonamento em função do comportamento dos processos

 Principal problema: possibilidade de Starvation!

o Processos com baixa prioridade podem nunca ser escalonados

o Uma solução é o aging: aumentar gradativamente prioridade de processos há muito na fila de pronto

(28)

Escalonamento por

prioridades

 Útil em sistemas de tempo real

 Útil para aplicações de controle de processos

 Útil para priorizar processos em sistemas de tempo compartilhado

(29)

Escalonamento circular com

prioridades

 Implementa conceito de fatia de tempo junto com prioridade

o Processo em execução pode sofrer preempção por tempo ou por prioridade

o Permite melhor balanceamento no uso da CPU o Amplamente usado em sistemas de tempo

compartilhado

(30)

Escalonamento circular com

prioridades

UCP

Estado de Término Fila dos processos no estado de Pronto

Prioridade P1 Prioridade P2 Prioridade Pn Estado de Criação Estado de Espera

(31)

Escalonamento por múltiplas filas

 Ou Multilevel Queue Scheduling

o Diversas filas de pronto, cada qual com sua prioridade específica

o Processos associam-se às filas de acordo com suas características

 Se dá na criação do processo e assim permanece até seu término

o Mecanismos de escalonamento distintos para cada fila

o Prioridade não está associada ao processo, mas sim à fila

(32)

Escalonamento por múltiplas

filas

UCP Fila de processos do sistema

Fila de processos interativos

Fila de processos batch Maior

prioridade

Menor prioridade

(33)

Escalonamento por múltiplas

filas com realimentação

 Ou Multilevel Feedback Queues Scheduling

o Semelhante ao MQS, porém processos podem trocar de fila durante seu processamento

 Este ajuste é denominado mecanismo adaptativo o Filas implementam FIFO com fatia de tempo,

excetuando a de menor prioridade, que implementa fila circular

 Quanto maior a prioridade, menor o time-slice

o Preempção por fatia de tempo joga processo para fila com prioridade imediatamente menor

(34)

Escalonamento por múltiplas

filas com realimentação

UCP Fila 1 (FIFO Adaptado)

Preempção por tempo Fila 2 (FIFO Adaptado)

Preempção por tempo Fila 3 (FIFO Adaptado)

Preempção por tempo

Fila n (Circular)

Preempção por tempo

M e n o r P ri o ri d a d e M a io r P ri o ri d a d e M a io r fa ti a d e t e m p o M e n o r fa ti a d e t e m p o

(35)

Escalonamento por múltiplas

filas com realimentação

 Complexo, mas bom para processos I/O-bound

o Ficam mais tempo nas filas de maior prioridade já que sofrem poucas preempções por tempo

 Muito tempo no estado de espera, pouco tempo no estado de execução

 Processos CPU-bound tendem a ser direcionados para filas com menor prioridade

o Quanto maior o tempo de CPU, menor sua prioridade

o Mudança de comportamento para I/O-bound compromete o desempenho

(36)

Escalonamento em Sistemas

de Tempo Compartilhado

 Sistemas de tempo compartilhado caracterizam-se pelo uso de processamento interativo

o Usuários exigem tempos de resposta baixo para as aplicações

o Política de escalonamento deve considerar compartilhamento eqüitativo de recursos,

principalmente do tempo de CPU

o Maioria dos SOs de tempo compartilhado utiliza escalonamento circular com prioridades dinâmicas

(37)

Escalonamento FIFO

(exemplo)

Processo A Processo B u.t. 27 7 E/ S de A 11 E/ S de B 19 E/ S de A 21 E/ S de B Processo Tempo de processador (u.t.) A B 21 6 Característica CPU-bound I/O-bound

(38)

Escalonamento circular

(exemplo)

Processo Tempo de processador (u.t.) A B 15 10 Característica CPU-bound I/O-bound Processo A Processo B u.t. Pr ee m p çã o p o r te m p o d e A 5 E/ S d e B 9 E/ S d e A 11 E/ S d e B 13 Pr ee m p çã o p o r te m p o d e A 18 E/ S d e B 20 E/ S d e A 23 25 E/ S d e B 27 U C P liv re

(39)

Escalonamento circular com

prioridades (exemplo)

Processo A Processo B u.t. E/ S d e B 4 Pr e em p çã o p o r p ri o ri d a d e d e A 6 E/ S d e B 8 Pr e em p çã o p o r p ri o ri d a d e d e A 12 E/ S d e B 14 E /S d e A 15 17 Pr e em p çã o p o r p ri o ri d a d e d e A 18 E/ S d e B 20 Pr e em p çã o p o r p ri o ri d a d e d e A 24 E/ S d e B 27 U C P liv re Processo Tempo de processador (u.t.) A B 12 13 Característica CPU-bound I/O-bound Prioridade Baixa Alta

(40)

Escalonamento em Sistemas

de Tempo Real

 Sistemas onde certas aplicações exigem respostas imediatas para a execução de determinadas tarefas

o SO de tempo real deve garantir a execução de processos dentro de limites rígidos de tempo

 Ex: controle de tráfego aéreo, controle de processos industriais

o Escalonamento deve considerar importância relativa de cada processo (tarefa)

o Escalonamento por prioridades estáticas é o mais adequado o Não deve haver preempção por tempo!

(41)

Memória Virtual

• A técnica de memória virtual fundamenta-se em

desvincular o espaço de endereçamento físico (RAM) do espaço de endereçamento usado pelo programa.

• Para tal é criado um espaço de endereçamento virtual, linear e contínuo (semelhante a um vetor), para atender os requisitos de memória de um dado programa abstraindo-se questões de implementação física.

• Os objetivos principais desta técnica são o de maximizar o número de processos em memória, reduzir a fragmentação e permitir estruturas de dados maiores que a memória física.

(42)

Espaço de Endereçamento

Virtual

Endereço Físico 500 501 502 503 504 . . . 599 VET [1] VET [2] VET [3] VET [4] VET [5] . . . . . . VET [100]

• Vetor de 100 posições

(43)

Espaço de Endereçamento

Virtual

• O espaço de endereços virtuais, arranjados na forma de

vetor, corresponde à memória virtual e pode ser maior que o espaço de memória real.

E sp a ço d e e n d e re ç a m e n to v ir tu a l E sp a ç o d e e n d e re ça m e n to r e a l Endereço virtual 0 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 . . . Endereço virtual V Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3 . . . Endereço real R

(44)

Espaço de Endereçamento

Virtual

• A porção de memória virtual ativa do programa fica

situada na memória principal, o restante fica armazenado

em disco. Memória Virtual

. . . . Memória Principal Memória Secundária . . .

(45)

Mapeamento

• A unidade de gerenciamento de memória (Memory

Management Unit – MMU) mapeia os endereços virtuais

em endereços físicos. Memória Virtual Memória Principal Mapeamento . . . . . . • OBS: um programa não precisa estar em endereços contíguos da memória principal para ser executado.

(46)

Mapeamento

• O mecanismo de

tradução se encarrega de manter tabelas de mapeamento

exclusivas para cada processo.

• Quando ocorre troca de processo, registrador contendo posição inicial da tabela de mapeamento é atualizado. Pr o cesso A Esp a ço d e en d er eça m en to vi rtu a l d e A En d er eço vir tu a l 1 . . . Ta b ela d e m a p ea m en to d e A Esp a ço d e en d er eça m en to vi rtu a l d e B En d er eço vir tu a l 1 . . . Ta b ela d e m a p ea m en to d e B Pr o cesso B M em ó r ia Pr in cip a l

(47)

Mapeamento

• Problema: se cada entrada na tabela de mapeamento representar uma célula da memória virtual, o espaço ocupado pela tabela seria da ordem de tamanho da memória virtual, inviabilizando sua implementação. • Solução: particiona-se a memória virtual em blocos.

– Cada bloco da memória virtual estará representado por uma entrada na tabela de mapeamento.

– Tamanho do bloco determina o número de entradas na tabela de mapeamento.

– 3 técnicas são usadas para o particionamento em blocos: paginação, segmentação e segmentação com paginação.

(48)

Memória Virtual por Paginação

• A técnica mais comum utilizada para implementar memória virtual é a paginação.

• Nesta técnica, tanto memória virtual como memória principal são divididas em blocos de igual tamanho chamados páginas.

– Tamanho do bloco determina o nível de fragmentação. • Quando uma página referenciada não é encontrada na

RAM, diz-se que houve um page fault.

• Na ocorrência de um page fault, realiza-se uma operação de paginação, ou seja, de troca de páginas entre a memória

(49)

Memória Virtual por Paginação

• Cada processo possui sua própria tabela de páginas.

– Uma página virtual contém um bloco de endereços virtuais.

Memória Virtual . . . . Página virtual 0 Página virtual 1 Página virtual 2 Página virtual V Tabela de páginas ETP Memória Principal Memória Secundária . . . Página real 0 Página real 1 Página real R • ETP: Entrada da Tabela de Páginas, associada a cada página virtual de um processo. • Os blocos da memória principal que abrigam as páginas reais são chamados frames.

(50)

Proteção de Memória

• Proteção: cada página conta com dois bits de proteção nas ETPs, um permitindo ou não acesso de leitura, outro

permitindo ou não acesso de escrita.

• SO deve impedir que um processo acesse uma página do

sistema, que não a dele, sem autorização explicitada nos bits de proteção.

L G página/ segmentoEndereço da

Bits de proteção

Descrição Sem acesso Acesso de leitura

Acesso para leitura/ gravação LG

00 10 11

(51)

Compartilhamento de Memória

• Em sistemas que

implementam memória virtual, é muito simples implementar

reentrância, bastando que as entradas das

tabelas de mapeamento dos processos apontem p/ os mesmos frames. Pr o cesso A Esp a ço d e en d er eça m en to vi rtu a l d e A En d er eço vir tu a l 1 . . . Ta b ela d e m a p ea m en to d e A Esp a ço d e en d er eça m en to vi rtu a l d e B En d er eço vir tu a l 1 . . . Ta b ela d e m a p ea m en to d e B Pr o cesso B M em ó r ia Pr in cip a l Pá g i n a

(52)

Thrashing

• Ocorre quando há uma taxa elevada de faults, sejam de segmentos ou de páginas, seja a nível de sistema ou de processo.

• Acarreta uma degradação no desempenho da máquina: uma página ou segmento swapped out em breve será requisitada para fazer swap in, causando um efeito cascata.

• CPU perde muito tempo com swapping de páginas/segmentos. • Se houver uma demanda de memória, pelos processos a serem

executados, maior que a capacidade da memória principal, a única solução é aumentar esta capacidade.

(53)

- MACHADO, Francis Berenger e MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais, 4a. edição. Ed. LTC, 2013.

Referências

Documentos relacionados

O empregador deverá realizar a avaliação ambiental de poeira de asbesto nos locais de trabalho em intervalos não superiores a seis meses.. Os registros das avaliações deverão

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos

8- Bruno não percebeu (verbo perceber, no Pretérito Perfeito do Indicativo) o que ela queria (verbo querer, no Pretérito Imperfeito do Indicativo) dizer e, por isso, fez

2. Identifica as personagens do texto.. Indica o tempo da história. Indica o espaço da história. Classifica as palavras quanto ao número de sílabas. Copia do texto três

1- A vida das comunidades recoletoras era muito difícil, devido ao frio intenso e aos animais ferozes, mas também porque era difícil encontrar comida e lugares onde se abrigarem.. 2-

Um senhorio é um território, pertencente a um Senhor (do Clero ou da Nobreza), em que podemos encontrar terras cultivadas pelos camponeses que vivem no senhorio,

Em janeiro, o hemisfério sul recebe a radiação solar com menor inclinação e tem dias maiores que as noites, encontrando-se, assim, mais aquecido do que o hemisfério norte.. Em julho,