Click here to load reader

Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Capítulo 5: Escalonamento da CPU Conceitos básicos Critérios de escalonamento Algoritmos

  • View
    107

  • Download
    0

Embed Size (px)

Text of Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Capítulo 5: Escalonamento da CPU...

  • Slide 1
  • Silberschatz, Galvin and Gagne 2002 5.1 Operating System Concepts Captulo 5: Escalonamento da CPU Conceitos bsicos Critrios de escalonamento Algoritmos de escalonamento Escalonamento multi-processador Escalonamento em tempo real SUMRIO:
  • Slide 2
  • Silberschatz, Galvin and Gagne 2002 5.2 Operating System Concepts Conceitos bsicos Objectivo do escalonamento do processador (principal recurso): Ideia base da multiprogramao: maximizar a utilizao da CPU via multiprogramao. Quando um processo tem de esperar (p.ex operao I/O), o sistema operativo retira-lhe a CPU, dando-a a outro processo. Conceitos bsicos: Ciclo burst CPU-I/O execuo dum processo consiste dum ciclo de execuo na CPU e espera I/O Escalonador da CPU Escalonamento preemptivo Despachador
  • Slide 3
  • Silberschatz, Galvin and Gagne 2002 5.3 Operating System Concepts A execuo dum processo consiste em vrios ciclos CPU-I/0 tal que uma intermitncia (burst) de execuo da CPU alterna com uma intermitncia (burst) de espera pela finalizao duma operao I/O. Os processos I/O-bound tm em geral um grande nmero de CPU bursts de curta durao. Os processos CPU-bound tm em geral um pequeno nmero de CPU-bursts de longa durao. n O sucesso do escalonamento da CPU depende da seguinte observao sobre os processos: Histograma de CPU bursts Sequncia alternada de intermitncias de CPU e I/O
  • Slide 4
  • Silberschatz, Galvin and Gagne 2002 5.4 Operating System Concepts Escalonador da CPU n Sempre que a CPU fica livre, cabe ao sistema operativo seleccionar um dos processos da ready queue a fim de o colocar em execuo. n A seleco efectuada pelo escalonador de curto prazo ou escalonador da CPU. n O escalonamento da CPU pode ter lugar quando um processo: 1. Comuta do estado RUNNING para o estado WAITING. 2. Comuta do estado RUNNING para o estado READY. 3. Comuta do estado WAITING para o estado READY. 4. Termina. Situaes geradoras de escalonamento da CPU Ready queue uma abstraco.. Pode ser fifo, fila de prioridades, arvore, lista- ligada simples etc.
  • Slide 5
  • Silberschatz, Galvin and Gagne 2002 5.5 Operating System Concepts Escalonamento No-Preemptivo As decises de escalonamento da CPU tm lugar nas 4 seguintes circunstncias: 1. um processo comuta do estado running para o estado waiting. n Interrupo I/O ou Sleep n Chamado ao sistema wait() espera a terminao dum processo filho. 2. um processo comuta do estado running para o estado ready n Ocorrncia dum interrupo 3. um processo comuta do estado waiting para o estado ready n Terminao de I/O n Recurso livre 4. Um processo termina n System call _exit() O processo ocupa a CPU at ao seu trmino ou at que passe ao estado waiting as 1 e 4 situaes. Agora um novo processo da ready queue tem que ser seleccionado para execuo. O escalonamento dito ser no-preemptivo MS Windows 3.1, MAC OS (antes de OSX), SOs especializadas. Os sistemas operativos no-preemptivos no so adequados para sistemas de tempo real, pois no garantem a execuo em primeiro lugar dos processos com prioridade mais alta. Cooperative Multitasking : one poorly designed program can consume all of the CPU time for itself or cause the whole system to hang.
  • Slide 6
  • Silberschatz, Galvin and Gagne 2002 5.6 Operating System Concepts Escalonamento Preemptivo Preemptive multitasking involves the use of an interrupt mechanism which suspends the currently executing process and invokes a scheduler to determine which process should execute next. Preempo nas 2 e 3 situaes. Necessite algum Hardare/Mecansimo especifico (Hardware Timer) Mas aqui h um custo a pagar. Considere que dois processos partilham dados. Um dos processos est a actualizar os dados quando ocorre a preempo do segundo processo que passa a executar e a ler os dados. Os dados assim podem ficar num estado inconsistente. Acesso sincronizado aos dados..estudado mais tarde. Algumas tarefas (do OS) no so interuptaveis p.ex o proprio interrupt handler routine As decises de escalonamento da CPU tm lugar nas 4 seguintes circunstncias: 1. um processo comuta do estado running para o estado waiting. n Interrupo I/O ou Sleep n Chamado ao sistema wait() espera a terminao dum processo filho. 2. um processo comuta do estado running para o estado ready n Ocorrncia dum interrupo 3. um processo comuta do estado waiting para o estado ready n Terminao de I/O n Recurso livre 4. Um processo termina n System call _exit()
  • Slide 7
  • Silberschatz, Galvin and Gagne 2002 5.7 Operating System Concepts Despachador n o mdulo que despacha o controlo da CPU para o processo seleccionado pelo escalonador de curto-prazo. n Executa as seguintes operaes : F comutao de contexto F comutao para o modo de utilizador F salto para o endereo certo de memria do programa por forma a (re-)execut-lo n O despacho deve ser to rpido quanto possvel. n O tempo que decorre entre a paragem de execuo dum processo e o incio doutro designado por latncia de despacho.
  • Slide 8
  • Silberschatz, Galvin and Gagne 2002 5.8 Operating System Concepts Critrios de Escalonamento H vrios critrios para comparar algoritmos de escalonamento: n Utilizao da CPU: maximizar a utilizao da CPU. Deve variar entre 40% e 90% em sistemas de tempo real. Um critrio de maximizao. Dbito (throughput): maximizar o n de processos concludos por unidade de tempo. Critrio de maximizao. Tempo de circulao (turnaround): tempo que decorre entre o instante em que um processo submetido e o instante em que concludo. Critrio de minimizao. Tempo de espera: a soma dos perodos dispendidos na ready queue. Critrio de minimizao. n Tempo de resposta: minimizar o tempo que decorre entre a submisso dum pedido e o incio da resposta. Este critrio adequado para sistemas interactivos. Critrio de minimizao. geralmente usamos uma mdia
  • Slide 9
  • Silberschatz, Galvin and Gagne 2002 5.9 Operating System Concepts Algoritmos de Escalonamento First-Come, First-Served (FCFS Shortest-Job-First (SJT) Prioridade Round-Robin (R-R) n Multi-fila n Multi-fila com transbordo Metricos : TME Tempo Mdio de Espera TMT Tempo Mdio de Turnaround
  • Slide 10
  • Silberschatz, Galvin and Gagne 2002 5.10 Operating System Concepts First-Come, First-Served (FCFS) ProcessoBurst Time P 1 24 P 2 3 P 3 3 Suponha que os processos chegam pela ordem: P 1, P 2, P 3 A Carta Gantt de escalonamento : Tempos de espera: P 1 = 0; P 2 = 24; P 3 = 27 TME: (0 + 24 + 27)/3 = 17 P1P1 P2P2 P3P3 2427300 O algoritmo mais simples: processos so seleccionados ou servidos pela ordem de chegada ready queue. Assim que a CPU libertada, o processo cabea da ready queue seleccionado e despachado para a CPU.
  • Slide 11
  • Silberschatz, Galvin and Gagne 2002 5.11 Operating System Concepts FCFS (Cont.) Suponha que os processos chegam pela ordem: P 2, P 3, P 1. A Carta de Gantt de escalonamento : Tempos de espera P 1 = 6; P 2 = 0 ; P 3 = 3 TME: (6 + 0 + 3)/3 = 3 Muito melhor que o caso anterior. Convoy effect: processo curto antes de processo longo P1P1 P3P3 P2P2 63300
  • Slide 12
  • Silberschatz, Galvin and Gagne 2002 5.12 Operating System Concepts Concluses FCFS O tempo mdio de espera , por vezes, bastante elevado, mas isto depende muito da durao e frequncia dos bursts. O algoritmo FCFS no preemptivo. No , pois, adequado para sistemas interactivos (time sharing) ou de tempo real. Batch Systems Pode ser Adequado
  • Slide 13
  • Silberschatz, Galvin and Gagne 2002 5.13 Operating System Concepts Shortest-Job-First (SJF) Associa-se a cada processo (ao PCB) o tempo do seu prximo CPU burst. Usa-se estes tempos para escalonar/seleccionar o processo com o CPU burst mais pequeno. Quando dois processo tm o mesmo CPU burst, o desempate faz-se por FCFS. Dois esquemas: no-preemptivo uma vez a CPU atribuda a um processo, este no pode ser preempcionado at completar o seu CPU burst. preemptivo se um novo processo chega ready queue com um CPU burst menor que o tempo restante do processo em execuo, ento h preempo. Este esquema conhecido por Shortest-Remaining-Time-First (SRTF). SJF ptimo uma vez que minimiza o tempo mdio de espera dum dado conjunto de processos. O problema est em determinar qual o valor do prximo CPU burst dum processo.
  • Slide 14
  • Silberschatz, Galvin and Gagne 2002 5.14 Operating System Concepts Exemplos Processo Arrival Time Burst Time P 1 0.07 P 2 2.04 P 3 4.01 P 4 5.04 SJF (no-preemptivo) Tempo mdio de espera (0 + 6 + 3 + 7)/4 = 4 ProcessoArrival TimeBurst Time P 1 0.07 P 2 2.04 P 3 4.01 P 4 5.04 SJF (preemptivo) Tempo mdio de espera (9 + 1 + 0 +2)/4 = 3 P1P1 P3P3 P2P2 73160 P4P4 812 P1P1 P3P3 P2P2 42 11 0 P4P4 57 P2P2 P1P1 16 SJF no-preemptivo SJF preemptivo
  • Slide 15
  • Silberschatz, Galvin and Gagne 2002 5.15 Operating System Concepts Determinio da durao do Proximo CPU Burst Apenas uma estimativa possvel Utilize-se uma mdia mvel baseado na durao de CPU bursts anteriores Valor tpico de alpha=0.5. Os bancos e Euribor
  • Slide 16
  • Silberschatz, Galvin and Gagne 2002 5.16 Operating System Concepts Previso da durao do proximo CPU Burst
  • Slide 17
  • Silberschatz, Galvin and Gagne 2002 5.17 Operating System Concepts Escalonamento por prioridades ProcessoPrioridadeBurst Time P 1 310 P 2 11 P 3 32 P 4 41 P 5 25 no-preemptivo Tempo mdio de espera = 8.2 P1P1 P3P3 P5P5 1 0 P4P4 6 P2P2 16 18 19 n O algoritmo SJF um caso particular do algoritmo de escalanomento por prioridades, em que a prioridade o prximo tempo prevsivel de CPU burst. n Uma prioridade atribuda a cada processo, e o escalonador atribui a CPU ao processo com maior prioridade (menor inteiro). F preemptivo F no-preemptivo n Se dois processos tm a mesma prioridade, o desempate feito recorrendo ao FCFS n Problema inanio (starvation) processos de baixa prioridade arriscam- se a nunca executar. Problema n Soluo envelhecimento (aging) medida que o tempo passa, a prioridade dum processo aumenta.
  • Slide 18
  • Silberschatz, Galvin and Gagne 2002 5.18 Operating System Concepts Critrios de prioridade A prioridade atribuda a um processo pode ser definida em funo dos seguintes factores: Factores internos: limites de tempo requisitos de memria n de ficheiros abertos durao mdia dos bursts de I/O durao mdia dos bursts de CPU Factores externos: importncia do processo preo pago pela utilizao proprietrio do processo
  • Slide 19
  • Silberschatz, Galvin and Gagne 2002 5.19 Operating System Concepts Round Robin (RR) n Este algoritmo foi concebido para sistemas de time-sharing. n semelhante ao FCFS, mas preemptivo. n Cada processo obtm uma pequena unidade de tempo na CPU (time quantum ou time slice), vulgarmente 10-100 milisegundos. Aps decorrer este tempo, o processo preempcionado e adicionado cauda da fila READY. A fila READY tratada como uma fila circular. n Se h n processos na fila READY e o time quantum q, ento cada processo obtm 1/n do tempo da CPU em fatias de q unidades de tempo duma vez. Nenhum processo espera mais do que (n-1)q unidades de tempo. n Desempenho F q grande FIFO F q pequeno q tem de ser grande relativamente comutao de contexto; caso contrrio, a sobrecarga muito elevada. ProcessBurst Time P 1 53 P 2 17 P 3 68 P 4 24 A Carta Gantt : Tipicamente, turnaround mdio mais elevado do que SJF, mas tem melhor resposta. P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P3 02037577797117121134154162 time quantum = 20 ms
  • Slide 20
  • Silberschatz, Galvin and Gagne 2002 5.20 Operating System Concepts Comparao de tempos de processamento time quantum versus tempo de comutao de contexto tempo de turnaround varia com o time quantum
  • Slide 21
  • Silberschatz, Galvin and Gagne 2002 5.21 Operating System Concepts Algorithm Evaluation Modelao e Simulao Define um workload e depois simule o desempenho de cada algoritmo para este workload. Workloads podem ser : Determinstica Define um workload baseando por exemplo em dados reais ou inventados Aleatrio utilizando processos aleatrios e probabilsticos tempo de chegada poisson burst time.. exponencial Analise Matemtica Queueing models M/M/1 etc.
  • Slide 22
  • Silberschatz, Galvin and Gagne 2002 5.22 Operating System Concepts Evaluation of CPU Schedulers by Simulation
  • Slide 23
  • Silberschatz, Galvin and Gagne 2002 5.23 Operating System Concepts Fila multi-nvel n Este tipo de escalonamento usado quando fcil classificar os processos em classes distintas (processos interactivos, processos batch, etc.). n A fila READY particionada em vrias filas, uma por cada classe de processos: foreground (interactive) background (batch) n Cada fila tem o seu prprio algoritmo de escalonamento: foreground RR background FCFS n O escalonamento entre as filas tem de ser feito. F Escalonamento de prioridades fixas; (i.e., serve todas as filas, desde as foreground at s background). Problema:inanio. F Time slice cada fila obtm uma certa quantidade de tempo da CPU que pode ser escalonado pelos seus processos; por exemplo., 80% para foreground em RR20% para background em FCFS escalonamento de fila multi-nvel
  • Slide 24
  • Silberschatz, Galvin and Gagne 2002 5.24 Operating System Concepts Fila multi-nvel com transbordo n Um processo pode mover-se entre vrias filas; a tcnica de envelhecimento pode ser implementada desta forma. n Outras caractersticas: prioridades por fila preempo generalidade configurabilidade Trs filas: Q 0 time quantum de 8 milisegundos Q 1 time quantum de 16 milisegundos Q 2 FCFS Escalonamento Um novo processo entra na fila Q 0, a qual segue uma poltica FCFS. Quando ganha a CPU, o processo recebe 8 ms. Se no termina em 8 ms, o processo transladado para a fila Q 1. Em Q 1, o processo servido novamente por uma poltica de escalonamento FCFS e recebe 16 ms adicionais. Se mesmo assim no termina, o processo preempcionado e transladado para a fila Q 2. exemplo
  • Slide 25
  • Silberschatz, Galvin and Gagne 2002 5.25 Operating System Concepts Escalonamento Multi-Processor No existe uma soluo ptima de escalonamento mesmo para sistemas uniprocessador. O problema do escalonamento torna- se ainda mais complexo para sistemas multiprocessador. Processadores homogneos dentro do sistema multi-processador. Partilha de carga Multi-processamento assimtrico s um processador acede s estruturas de dados do sistema, aliviando a necessidade de partilha de dados. usada uma nica fila ready, e no uma fila por processador, para evitar que haja algum processador inactivo enquanto outros tm processos na suas filas ready espera. H duas polticas de escalonamento multiprocessador: Processadores auto-escalonveis. Neste caso, cada processador responsvel pela seleco dum processo existente na fila ready partilhada. Processador mestre - processador escravo. H um processador (mestre) que desempenha o papel de escalonador dos restantes (escravos) Cf a Caixa-Geral e McDonalds !!
  • Slide 26
  • Silberschatz, Galvin and Gagne 2002 5.26 Operating System Concepts Escalonamento em tempo-real Escalonamento: Escalonamento por prioridades. Processos de tempo real tm prioridade mxima. Manuteno da prioridade. Ao contrrio doutros processos, um processo de tempo real mantm a sua prioridade. Latncia de despacho. Deve ser baixa o mais possvel. Para isso, h sistemas operativos que admitem a preempo das chamadas ao sistema de longa durao. Dois tipos de sistemas operativos de tempo real: sistemas estritos de tempo real (hard real-time systems). So necessrios para garantir a concluso duma tarefa crtica dentro duma quantidade de tempo pr-definida. sistemas latos de tempo real (soft real-time systems). So menos restritivos. Mas, os processos crticos tm sempre a mxima prioridade. Fim de Captulo