Você está na página 1de 14

07/10/2011

TADS Sistemas Operacionais Prof. Ricardo Ramos

Gerncia do Processador Captulo 08

8.1 Introduo
Com o surgimento dos sistemas multiprogramveis a gerncia do processador tornou-se uma das atividades mais importantes em um SO. A poltica de escalonamento a base da gerncia do processador e da multiprogramao em um SO.

8.1 Introduo

07/10/2011

8.2 Funes bsicas


Funes bsicas da poltica de escalonamento: - manter o processador ocupado a maior parte do tempo; - balancear o uso da CPU entre processos; - privilegiar a execuo de aplicaes crticas; - maximizar o throughput do sistema; - oferecer tempos de respostas razoveis para usurios interativos.
4

8.2 Funes bsicas


A rotina do SO que tem como principal funo implementar os critrios da poltica de escalonamento denominada escalonador (scheduler). Outra rotina importante na gerncia do processador conhecida como dispatcher, responsvel pela troca de contexto dos processos. O perodo de tempo gasto na substituio de um processo em execuo por outro denominado latncia do dispatcher.
5

8.3 Critrios de Escalonamento


Sistemas de tempo compartilhado - exigem que o escalonamento trate todos os processos de forma igual, evitando o starvation. Sistemas de tempo real - devem priorizar a execuo de processos crticos em detrimento da execuo de outros processos.
6

07/10/2011

8.3 Critrios de Escalonamento


8.3.1 - Utilizao do processador Na maioria dos sistemas desejvel que o processador permanea a maior parte do tempo ocupado.

8.3 Critrios de Escalonamento


8.3.2 - Throughput Representa o nmero de processos executados em um determinado intervalo de tempo. Deseja-se maximizar o throughput.

8.3 Critrios de Escalonamento


8.3.3 - Tempo de CPU Tempo de processador ou tempo de CPU o tempo que um processo leva no estado de execuo durante seu processamento.

07/10/2011

8.3 Critrios de Escalonamento


8.3.3 - Tempo de Espera Tempo de espera o tempo total que um processo permanece na fila (estado) de pronto durante seu processamento, aguardando para ser executado. Deseja-se reduzir o tempo de espera.

10

8.3 Critrios de Escalonamento


8.3.4 - Tempo de Turnaround o tempo que um processo leva desde a sua criao at o seu trmino, levando em considerao todo o tempo gasto na espera para alocao de memria, espera na fila de pronto (tempo de espera), processamento na CPU (tempo de processador) e na fila de espera, como nas operaes de E/S. Deseja-se minimizar o turnaround.

11

8.3 Critrios de Escalonamento


8.3.5 - Tempo de Resposta o tempo decorrido entre uma requisio ao sistema ou aplicao e o instante em que a resposta exibida. Sistemas interativos.

12

07/10/2011

8.3 Critrios de Escalonamento


Em qualquer poltica de escalonamento busca-se otimizar a utilizao do processador e o throughput, enquanto tenta diminuir os tempos de turnaround, espera e resposta.

13

8.4 Escalonamento no-preemptivos e preemptivos Preempo - possibilidade do SO interromper um processo em execuo e substitu-lo por outro. O escalonamento no-preemptivo foi o primeiro tipo de escalonamento implementado nos sistemas multiprogramveis, onde predominava tipicamente o processamento batch.

14

8.4 Escalonamento no-preemptivos e preemptivos Os escalonamentos preemptivos apesar de tornar os sistemas mais complexos possibilitam a implementao dos diversos critrios de escalonamento apresentados.

15

07/10/2011

8.5 FIFO (First-In-First-Out)


O processo que chegar primeiro ao estado de pronto o selecionado para execuo.

16

8.5 FIFO (First-In-First-Out)


Tempo mdio de espera (TME) = (0+10+14)/3 = 8u.t. TME = (7+0+4)/3 = 3,7u.t.

17

8.5 FIFO (First-In-First-Out)


Simples e no-preemptivo Problemas: - impossibilidade de prever quando um processo ter sua execuo iniciada -no se preocupa em melhorar o TME - trata diferente processos CPU-bound de I/O-bound Inicialmente implementado em sistemas monoprogramveis com proc. batch
18

07/10/2011

8.6 SJF (Shortest-Job-First)


O algoritmo de escalonamento seleciona o processo que tiver o menor tempo de processador ainda por executar. Dessa forma, o processo em estado de pronto que necessitar de menos tempo de CPU para terminar seu processamento selecionado para execuo.
19

8.6 SJF (Shortest-Job-First)


TME = (7+3+0)/3 = 3,3 u.t.

20

8.6 SJF (Shortest-Job-First)


Problema: - impossibilidade de estimar o tempo de processador para processos interativos, j que a entrada de dados uma ao imprevisvel No-preemptivo e possvel de haver starvation.

21

07/10/2011

8.7 Cooperativo
Um processo em execuo pode voluntariamente liberar o processador, retornando fila de pronto e possibilitando que um novo processo seja escalonado, permitindo assim uma melhor distribuio no uso do processador. A liberao do processador uma tarefa realizada exclusivamente pelo processo em execuo, que de uma maneira cooperativa libera a CPU para um outro processo.
22

8.7 Cooperativo
Problemas: - um programa pode permanecer por um longo perodo de tempo alocando o processador.

23

8.8 Circular (round robin scheduling)


Preemptivo para sistemas de tempo compartilhado. Semelhante ao FIFO porm quando um processo passa para o estado de execuo existe um tempolimite para o uso contnuo do processador denominado fatia de tempo (time-slice) ou quantum.

24

07/10/2011

8.8 Circular (round robin scheduling)


Preempo por tempo.

25

8.8 Circular (round robin scheduling)


Quantum = 2 u.t. Tempo de troca de contexto (TTC) = 0 u.t

26

8.8 Circular (round robin scheduling)


Quantum = valor alto (mesmo que o FIFO) Quantum = valor pequeno (grande num preempes) Vantagem: no permite que um processo monopolize a CPU Problema: processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O bound.
27

07/10/2011

8.9 Prioridades
Preemptivo realizado com base em um valor associado a cada processo denominado prioridade de execuo. O processo com maior prioridade no estado de pronto sempre o escolhido para execuo, e processos com valores iguais so escalonados seguindo o critrio FIFO.
28

8.9 Prioridades
Preempo por prioridade implementada atravs de uma interrupo de clock..

29

8.9 Prioridades

TME = (3+13+0)/3 = 5,3u.t.


30

10

07/10/2011

8.9 Prioridades
A prioridade de execuo uma caracterstica do contexto de software de um processo e pode ser esttica ou dinmica. Problema: starvation (resolve com a tcnica do aging) Sistemas de tempo real.
31

8.10 Circular com Prioridades


Implementa o conceito de fatia de tempo e de prioridade de execuo associada a cada processo.

32

8.10 Circular com Prioridades


Vantagem: permitir o melhor balanceamento no uso do processador em sistemas de tempo compartilhado. Amplamente utilizado em sistemas de tempo compartilhado, como o Windows e Unix.

33

11

07/10/2011

8.11 Escalonamento por Mltiplas Filas


Existem diversas filas de processos no estado de pronto, cada qual com uma prioridade especfica. Vantagem: possibilidade da convivncia de mecanismos de escalonamento distintos em um mesmo SO. Neste mecanismo, o processo no possui prioridade, ficando esta caracterstica associada fila. Desvantagem: o processo no poder ser redirecionado para uma outra fila. 34

8.11 Escalonamento por Mltiplas Filas


Prioridade Circular Circular

35

8.12 Escalonamento por Mltiplas Filas com Realimentao


Semelhante ao escalonamento por mltiplas filas, porm os processos podem trocar de filas durante seu processamento (vantagem).

36

12

07/10/2011

8.12 Escalonamento por Mltiplas Filas com Realimentao

37

8.12 Escalonamento por Mltiplas Filas com Realimentao


Generalista podendo ser implementado em qualquer SO. Problemas: - a mudana de comportamento de um processo CPU-bound para I/O bound pode comprometer seu tempo de resposta; - complexidade.
38

8.13 Sistemas de tempo compartilhado


Processamento interativo. Atualmente a maioria dos SOs de tempo compartilhado utiliza o escalonamento circular com prioridades dinmicas.

39

13

07/10/2011

8.14 Sistemas de tempo real


Respostas imediatas. Controle de processos como controle de trfego areo so aplicaes de tempo real. Escalonamento por prioridade (esttica).

40

14

Você também pode gostar