Sistemas Operacionais Escalonamento de processos Conceito de Escalonamento

  • Slides: 63
Download presentation
Sistemas Operacionais Escalonamento de processos

Sistemas Operacionais Escalonamento de processos

Conceito de Escalonamento § Para cada estado, existe uma fila que contém os PCB's

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

Razões para Suspender Processos § Do SO § Swapping: para liberar espaço na memória

Razões para Suspender Processos § Do SO § Swapping: para liberar espaço na memória principal n 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

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

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

Conceito de Escalonamento § Uma visão dos escalonadores do sistema operacional

Conceito de Escalonamento § Dispatcher: responsável por passar o controle da CPU para o

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

Representação do Escalonamento fila de processos prontos I/O fila de dispositivo CPU requisição de

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 fila de

Adição de Escalonador Intermediário carregar processos em execução parcialmente removidos da memória fila de processos prontos I/O remover terminar CPU fila de espera por I/O

Conceito de Escalonamento Mudança de contexto n CPU é chaveada para outro processo SO

Conceito de Escalonamento Mudança de contexto n CPU é chaveada para outro processo SO deve salvar o estado do processo antigo e carregar o estado do novo processo n Implica overhead SO não realiza nenhum trabalho útil durante os chaveamentos n Tempo consumido é dependente do suporte de hardware fornecido n

Chaveamento da CPU interrupção ou chamada ao sistema armazenar estado no PCB 1 .

Chaveamento da CPU interrupção ou chamada ao sistema armazenar estado no PCB 1 . . . exec. Processo P 0 ocioso recarregar estado no PCB 1 recarregar estado no PCB 0 Processo P 1 . . . ocioso armazenar estado no PCB 0 executando SO ocioso exec. interrupção ou chamada ao sistema

Características dos Escalonadores n n n Escalonador da CPU é invocado muito freqüentemente (milissegundos)

Características dos Escalonadores n n n 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

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 n n Tipo de processamento ¨ batch ¨ interativo

Conceito de Escalonamento § Considerações n n 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 n Orientados ao Usuário e Desempenho n Uso do processador mede

Critérios de Escalonamento n Orientados ao Usuário e Desempenho n 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 n 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 n Orientados ao Usuário e Desempenho n Deadlines (prazos) quando o

Critérios de Escalonamento n Orientados ao Usuário e Desempenho n Deadlines (prazos) quando o prazo de término pode ser especificado ¨ o sistema deveria fazer o melhor esforço para atender todos os prazos n 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 n Orientados ao Sistema e Desempenho n Throughput (vazão) número de

Critérios de Escalonamento n Orientados ao Sistema e Desempenho n Throughput (vazão) número de processos completados por unidade de tempo, depende: ¨ do tamanho dos processos ¨ das políticas de escalonamento n 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 n Waiting time quantidade total de tempo que um

Critérios de Escalonamento Orientados ao Sistema n Justiça processos devem ser tratados igualmente, a

Critérios de Escalonamento Orientados ao Sistema n Justiça processos devem ser tratados igualmente, a menos que especificado o contrário ¨processos não deveriam sofrer starvation n Prioridades processos mais prioritários devem efetivamente ser favorecidos ¨problema da inversão de prioridade n Balanceamento de recursos devem ficar ocupados o máximo possível ¨processos que não vão utilizar recursos sobrecarregados devem ser favorecidos n

Escalonamento de Processos Longa duração decisão de se adicionar um processo ao pool de

Escalonamento de Processos Longa duração decisão de se adicionar um processo ao pool de processos para serem executados ¨admissão ao sistema n 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 n

Escalonamento de Processos Curta duração decisão de qual processo disponível será executado ¨interrupção de

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 n I/O decisão de qual processo que está na fila de espera por uma requisição de I/O será tratado n

Escalonamento de Processos § Tipos § não-preemptivo: processo executando não pode ser interrompido §

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 (FIFO) § Não preemptivo por definição § Primeiro processo da fila é o

First-Come-First-Served (FIFO) § 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

First-Come-First-Served

First-Come-First-Served n Exemplo: Tempo de execução P 1 24 P 2 3 P 3

First-Come-First-Served n Exemplo: Tempo de execução P 1 24 P 2 3 P 3 3 n Suponha que os processos chegaram na seguinte ordem: P 1 , P 2 , P 3 n 1. Processo Qual seria o diagrama de Gannt, o waiting time para cada um dos processos e o waiting time médio?

First-Come-First-Served n Diagrama de Gantt para o escalonamento: P 2 P 1 0 n

First-Come-First-Served n Diagrama de Gantt para o escalonamento: P 2 P 1 0 n Waiting 24 P 3 27 30 time para P 1 = 0; P 2 = 24; P 3 = 27 n Waiting time médio: (0 + 24 + 27)/3 = 17

Shortest-Job-First § Pode ser preemptiva ou não-preemptiva § Cada processo é associado ao seu

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

Shortest-Job-First § Tanto o escalonamento FIFO quanto o SJF não são utilizados em sistemas de time-sharing (por quê ? )

Shortest-Job-First §A política SJF é ótima, minimizando o tempo médio de espera de um

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 n Processo Tempo de chegada P 1 P 2 P 3

Shortest-Job-First: não preemptivo n Processo Tempo de chegada P 1 P 2 P 3 P 4 Duração da rajada 0. 0 2. 0 4. 0 5. 0 7 1 4 4 n SJF (não preemptivo) n waiting time médio = (0 + 5 + 4 + 7)/4 = 4 P 1 0 3 P 2 7 P 3 8 P 4 12 16

Shortest-Job-First: preemptivo n Processo P 1 P 2 Tempo de chegada 0. 0 2.

Shortest-Job-First: preemptivo n Processo P 1 P 2 Tempo de chegada 0. 0 2. 0 P 3 4. 0 P 4 5. 0 Duração da rajada 7 terminado 4 terminado 1 terminado 4 SJF (preemptivo) P 1 0 P 2 2 P 3 4 P 2 5 P 1 P 4 7 11 waiting time médio = (9 + 1 + 0 +2)/4 = 3 16

Shortest-Job-First: preemptivo n n Processo rajada P 1 P 2 Tempo de chegada Duração

Shortest-Job-First: preemptivo n n Processo rajada P 1 P 2 Tempo de chegada Duração da 0. 0 2. 0 terminado tempo restante: 5 7 terminado tempo restante: 2 terminado 4 P 3 4. 0 1 P 4 5. 0 4 terminado SJF (preemptivo) P 1 0 P 2 ? 2 P 3 ? 4 P 2 5 P 4 7 P 1 11 waiting time médio = (9 + 1 + 0 +2)/4 = 3 16

Shortest-Job-First n Determinação do tempo de CPU, pode: ¨somente estimar a próxima duração ¨ser

Shortest-Job-First n 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

Shortest-Job-First n n =0 ¨ n+1 = n História recente não conta =1 ¨

Shortest-Job-First n n =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 n+1 = tn+(1 - ) tn-1 + … n +(1 - ) j tn-1 + … n +(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

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 § 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

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 n n. Atribuição de prioridades ¨

Prioridade Dinâmica pode ser ajustada de acordo com n n. Atribuição de prioridades ¨ tipo de processamento realizado n normalmente é feita pelo SO ¨ a carga do SO n pode ser configurada pelo superusuário n quando o processo passa do estado de espera n Estáticade usuário recebem uma prioridade n processos para o estado executando ele é penalizado e máxima de usuário nsua é atribuída o processo é iniciado prioridadequando é reduzida, processos n usuário pode diminuir a prioridade de seus n não. CPU é alterada durante existência do nprocessos bound terão suasaprioridades n Observação processo reduzidas a cada passagem para o estado ¨ ex. : comando renice n SO pode associar àdo alta. Unix prioridade um executando n pode oferecer número escalartempos pequenode resposta n emprioridade estado de espera aceitáveis n I/O 0 bound significam a maior com freqüência, processos CPU bound não serão prejudicados n

Prioridade 4 u. t. Processo A Processo B 3 u. t. 4 u. t.

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 1 u. t. 2 u. t. 13 16 18 A solicita I/O preempção por B B solicita I/O 3 u. t. 23 preempção por B 26 27 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)

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 n Escalonamento do tipo preemptivo n Cada processo executa durante uma fatia de

Round-Robin n Escalonamento do tipo preemptivo n Cada processo executa durante uma fatia de tempo (time-slice ou quantum) n Ao final da fatia de tempo, o processo executando é inserido no final da fila de prontos n Processo na frente da fila de prontos recebe o processador

Round-Robin

Round-Robin

Round-Robin Bom para tempo compartilhado n Similar a FIFO + tempo limite para execução

Round-Robin Bom para tempo compartilhado n Similar a FIFO + tempo limite para execução (time-slice ou quantum) n terminado o quantum, o processo é devolvido (preempção) para o final da fila de prontos n processos não monopolizam a CPU n quantum entre 100 a 300 ms n

Round-Robin Processo A 5 u. t. 2 u. t. 4 u. t. Processo B

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 A 15 CPU bound Processo B 8 I/O bound tempo

Round-Robin Vantagem do escalonamento Robin Round n simplicidade n Tamanho da fatia de tempo

Round-Robin Vantagem do escalonamento Robin Round n simplicidade n 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 n

Round-Robin Se existem n processos na fila de prontos n Se quantum = q

Round-Robin Se existem n processos na fila de prontos n Se quantum = q n cada processo tem 1/n do tempo de CPU em fatias de no máximo q unidades de tempo cada n Nenhum processo espera por mais de (n -1) q unidades de tempo para ser atendido n

Round-Robin n Desempenho ¨quantum = muito grande ¨ FIFO ¨quantum = muito pequeno ¨

Round-Robin n 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 P 1 P 2 P 3 P 4 n Diagrama de Gantt

Round-Robin Processo P 1 P 2 P 3 P 4 n Diagrama de Gantt (quantum = 20 u. t. ) P 1 0 Tempo de execução 53 17 68 24 20 n Tipicamente, P 2 37 P 3 57 P 4 P 1 77 P 3 P 4 P 1 P 3 97 117 121 134 154 162 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

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

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 comportamento do processo

Múltiplas Filas n n n Processos são classificados em função do tipo de processamento

Múltiplas Filas n n n 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 diferentes de tipos de escalonamento

Múltiplas Filas n Cada fila possui uma prioridade n SO só vai escalonar processos

Múltiplas Filas n Cada fila possui uma prioridade n SO só vai escalonar processos em uma fila se todos os processos das filas de maior prioridade estiverem vazias

Múltiplas Filas

Múltiplas Filas

n n n sistema Exemplo ¨mais prioritário ¨algoritmo de escalonamento por prioridades interativo ¨prioridade

n n n 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 n Escalonamento anterior a classificação dos processos era estática n

Múltiplas Filas com Realimentação n Escalonamento anterior a classificação dos processos era estática n Se processo alterar seu comportamento, o esquema pode falhar (não existe reclassificação) n 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 n No escalonamento por múltiplas filas com realimentação (multi-level feed-bak

Múltiplas Filas com Realimentação n 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: Funcionamento n n n Criação do processo prioridade mais alta

Múltiplas Filas com Realimentação: Funcionamento n n n 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: Funcionamento n Processo é reescalonado dentro da mesma fila quando

Múltiplas Filas com Realimentação: Funcionamento n 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 n 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: Funcionamento n Quanto maior a prioridade menor o quantum n

Múltiplas Filas com Realimentação: Funcionamento n Quanto maior a prioridade menor o quantum n Escalonamento de uma fila só acontece depois que todas as outras filas de prioridade mais alta estão vazias n Fila de menor prioridade Round-Robin

Múltiplas Filas com Realimentação: Características n Atende as necessidades de escalonamento de diversos tipos

Múltiplas Filas com Realimentação: Características n Atende as necessidades de escalonamento de diversos tipos de processos n 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 n Processos CPU bound ¨com o transcorrer do processamento

Múltiplas Filas com Realimentação: Características n Processos CPU bound ¨com o transcorrer do processamento sua prioridade vai sendo reduzida nÉ 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)

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

Múltiplas Filas com Realimentação: Exemplo 2 quantum = 8 quantum = 16 FCFS