24
Sistemas Operacionais: Escalonamento de processos

Aula3Escalonamento.pdf

Embed Size (px)

Citation preview

  • Sistemas Operacionais:

    Escalonamento de

    processos

  • Escalonamento

    Critrios de escalonamento

    Algoritmos de escalonamento

    Escalonamento em multiprocessadores

    Escalonamento tempo real

  • Caractersticas de processos

    Multiprogramao possibilita a mxima

    utilizao da CPU

    Processo:utilizao da CPU e E/S

    Distribuio da utilizao da CPU

  • Algoritmo de escalonamento

    Seleciona entre os processos prontos e na memria, qual ir ganhar a CPU

    O escalonamento pode ocorrer: 1. Um processo passa do estado executando para o estado espera (p.

    exemplo, o processo solicita uma operao de E/S)

    2. Um processo passa do estado executando para o estado pronto

    3. Um processo passo do estado espera para pronto

    4. Um processo finalizado

    Escalonamento nas alternativas 1 e 4 denominado no-preemptivo (nonpreemptive)

    As outras opes so denominadas preemptivo (preemptive)

  • Critrios para o escalonamento

    Utilizao da CPU utilizar o mximo da CPU

    Throughput nmero de processos finalizados em

    um dado intervalo de tempo

    Tempo de execuo tempo para finalizar a

    execuo de um determinado processo no sistema

    Tempo de espera quantidade de tempo que o

    processo ficou na fila de prontos

    Tempo de resposta tempo entre a requisio e a

    sada do primeiro resultado (sistemas interativos)

  • Otimizaes

    Utilizao mxima da CPU

    Throughput mximo

    Tempo de execuo mnimo

    Tempo de espera mnimo

    Tempo de resposta mnimo

  • FCFS (First-come, first-served)

    Primeiro a chegar, primeiro a ser servido (sistemas no preeemptivos)

    Process Burst Time

    P1 24

    P2 3

    P3 3

    A ordem de chegada dos processos P1, P2, P3. O grfico de

    Gantt para esse algoritmo :

    Tempo de espera P1 = 0; P2 = 24; P3 = 27

    Tempo mdio de espera: (0 + 24 + 27)/3 = 17

    P1 P2 P3

    24 27 30 0

  • FCFS(2)

    Considerando a ordem de chegada P2, P3, P1

    O grfico de Gantt

    Tempo de espera P1 = 6; P2 = 0; P3 = 3

    Tempo mdio de espera: (6 + 0 + 3)/3 = 3

    Melhor desempenho que o caso anterior

    Efeito comboio: todos os processos menores ficam esperando pelo processo maior utilizar a CPU

    P1 P3 P2

    6 3 30 0

  • SJF (Shortest Job First)

    Menor tarefa primeiro

    Cada processo associado com o tempo de utilizao da CPU (normalmente derivado das execues anteriores)

    Dois esquemas: No preeemptivo quando um processo ganha a CPU ele

    executado at o fim do perodo de utilizao da CPU

    Preemptivo se um processo chega com o tempo de durao da CPU menor que o tempo restante que do processo em execuo, o escalomanento realizado. Shortest-Remaining-Time-First (SRTF)

    SJF fornece o menor tempo mdio de espera para um dado conjunto de processos (soluo tima)

  • SJF no preemptivo

    Process Arrival Time Burst Time

    P1 0.0 7

    P2 2.0 4

    P3 4.0 1

    P4 5.0 4

    Tempo mdio de espera = (0 + 6 + 3 + 7)/4 = 4

    P1 P3 P2

    7 3 16 0

    P4

    8 12

  • SJF preemptivo

    Process Arrival Time Burst Time

    P1 0.0 7

    P2 2.0 4

    P3 4.0 1

    P4 5.0 4

    Tempo mdio de espera= (9 + 1 + 0 +2)/4 = 3

    P1 P3 P2

    4 2 11 0

    P4

    5 7

    P2 P1

    16

  • Determinando o tempo de uso da

    CPU de um processo Estimativas

    Normalmente baseadas nos ciclos de execuo anteriores, utilizando a mdia exponencial

    = controla o peso da ltima execuo sobre as execues passadas

    :Define 4.

    10 , 3.

    burst CPU next the for value predicted 2.

    burst CPU of length actual 1.

    1n

    thn nt

    .1 1 nnn t

  • Predio do tempo de execuo

  • Utilizando a mdia exponencial

    =0 n+1 = n A histria recente no considerada

    =1 n+1 = tn Somente a ltima execuo considerada

    Expandindo a formula: n+1 = tn+(1 - ) tn -1 +

    +(1 - )j tn -j +

    +(1 - )n +1 0

    Desde que E (1 - ) so menores que 1, cada item um peso menor que o seu predecessor

  • Escalonamento por prioridades

    Cada processo tem uma prioridade associada (valor inteiro)

    Ganha a CPU o processo com maior prioridade (normalmente,

    menor valor = maior prioridade)

    Preemptivo

    No preemptivo

    SJF um algoritmo baseado em prioridades, onde a prioridade

    do processo a estimativa do tempo de uso da CPU

    Problema Starvation (abandono de processos)processos de

    baixa prioridade podem no ganhar a CPU

    Soluo Aging (envelhecimento) durante a execuo do

    sistema, processos vo ganhando maior prioridade

  • Round Robin (RR)

    Alocao circular

    Cada processo ganha um pequeno tempo de CPU (na ordem de milissegundos) denominado quantum

    Cada processo ganha uma quantidade q de utilizao da CPU

    q grande: FCFS (todos os processos executam at o FIM)

    q pequeno: haver desperdcio devido ao tempo necessrio para a troca de contexto

  • Simulao do escalonamento RR

    Process Burst Time

    P1 53

    P2 17

    P3 68

    P4 24

    Grfico de Gantt:

    Normalmente, o throughput menor, porm com um melhor tempo de resposta

    P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

    0 20 37 57 77 97 117 121 134 154 162

  • Exerccio

    Calcular o tempo mdio de processamento

    para os seguintes processos utilizando a

    poltica de alocao circular (RR), para q =1,

    2, 3, 4, 5, 6

    Processo Tempo

    P1 6

    P2 3

    P3 1

    P4 7

  • Escalonamento com mltiplas filas

    A fila de prontos separada em vrias filas:

    fila para processos interativos

    fila para processos em lote

    Cada fila tem sua poltica de escalonamento

    RR para processos interativos

    FCFS para processos em lote

    Deve haver um escalonamento entre as filas

    Prioridade: primeiro a fila de processos interativos

    (possibilidade de abandono de processos (starvation)

    Fatia de tempo para cada fila

  • Mltiplas filas e transferncia entre

    filas Processos podem ser transferidos de fila

    Envelhecimento (aging): processo vai ganhando prioridade com o tempo

    Escalonador com mltiplas filas pode ser definido atravs dos seguintes parmetros:

    Nmero de filas

    Algoritmos de escalonamento para cada fila

    Mtodo utilizado para aumentar a prioridade do processo

    Mtodo utilizado para diminuir a prioridade do processo

    Mtodo utilizado para determinar qual fila o processo ficar quanto o mesmo solicita um servio

  • Escalonamento com mltiplas filas

  • Escalonamento em

    multiprocesadores Escolher qual processo pronto vai executar em

    qual CPU

    Simtrico

    Todas as estruturas de dados so acessadas por

    todos os processadores

    Assimtrico

    Somente um processador tem acesso a estrutura de

    dados do ncleo

  • Escalonamento no Linux (at 2.6)

    Dois algoritmos: tempo compartilhado e tempo real

    Tempo compartilhado Baseado em prioridades(crditos) o processo com mais

    crdito escalonado

    O crdito subtrado quando um interrupo ocorre

    Quando crdito= 0, outro processo escolhido

    Quando todos os processos tem crdito= 0, um novo clculo dos crditos realizado

    Baseado em fatores como prioridade e histrico

    Tempo real Soft real-time

    Duas classes de algoritmos FCFS e RR

    O processo de mais alta prioridade sempre executa

  • Escalonamento no Linux (a partir

    2.6) CFS: Completely Fair Scheduler

    Modela uma CPU ideal (todos os processos

    ganham a quantidade de tempo que precisam para

    executar)

    Wait_runtime: tempo em que o processo esperou

    para ganhar a CPU. Idealmente 0

    Os processos so organizados em uma rvore

    rubro-negra

    Ordenados pela tempo que elas devem ganhar a CPU

    Resoluo em nanosegundos