Você está na página 1de 35

UNESP 2012 Profa.

Valria Maria Volpe Aula 1

Gerenciamento de Processos
Definies:
Sistemas Operacionais: um programa ou um conjunto de programas cuja

funo gerenciar os recursos do sistema (definir qual programa recebe ateno do processador, gerenciar memria, criar um sistema de arquivos, etc.), fornecendo uma interface entre o computador e o usurio.
Processo: um programa em execuo, ou seja, so tarefas em execuo, mas

nem todas tm relao direta com algum aplicativo. Muitas delas so executadas em pano de fundo e mantm o sistema trabalhando, como por exemplo:

Gerenciamento de redes, Gerenciamento de memria, Gerenciamento de disco, Checagem antivrus, etc.

Logo, podemos definir processos como softwares que executam alguma ao e

que podem ser controlados de alguma maneira, seja pelo usurio, pelo aplicativo correspondente ou pelo sistema operacional.
ORI - VMV - 2012 2

Gerenciamento de Processos
Introduo:
Com o surgimento de sistemas multiprogramveis, nos quais

mltiplos processos podem permanecer na memria principal compartilhando o uso da CPU, a gerencia de processos tornou-se uma das atividades mais importantes em um Sistema Operacional.
Um processo, para ser executado, deve estar no estado de pronto.

A partir da, necessrio se ter uma poltica de escalonamento para determinar qual processo ser escolhido para fazer uso do processador.
ORI - VMV - 2012 3

Gerenciamento de Processos
Polticas de Escalonamento - Funes bsicas:
Manter

o processador ocupado a maior parte do tempo

possvel;
Balancear o uso do processador entre os processos; Privilegiar a execuo de aplicaes crticas; Maximizar o throughput do sistema; Oferecer

tempo de resposta razoveis aos usurio

interativos.
ORI - VMV - 2012 4

Gerenciamento de Processos
Poltica de Escalonamento definies:
Schelduler (escalonador): rotinas de um S.O. que tem como

funo implementar os critrios da poltica de escalonamento de processos.


Dispatcher: rotina cuja principal funo fazer

a troca de

contexto dos processos aps o escalonador determinar qual processo deve fazer uso do processador.

ORI - VMV - 2012

Gerenciamento de Processos
Critrios de escalonamento: determinar quais so os principais aspectos para implementar um poltica de escalonamento. Temos os seguintes critrios:

Utilizao do processador: deseja-se que o processador permanea em uso a maior parte de seu tempo.

Throughput: representa o nmero de processos executados em um determinado intervalo de tempo. A maximizao do throughput desejada.

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

Tempo de espera: o tempo que um processo leva na fila de pronto durante seu processamento, aguardando para ser executado.

Tempo de turnaround: o tempo que um processo leva desde sua criao at seu trmino, levando em considerao todo tempo gasto na espera de alocao de memria, espera na fila de pronto, processamento, espera com as operaes de I/O, etc.

Tempo de resposta: o tempo entre uma requisio ao sistema operacional e o instante em que a resposta exibida.
ORI - VMV - 2012 6

Gerenciamento de Processos
Escalonamento

Preemptivo

No-preemptivo:

as

polticas

de

escalonamento podem ser classificadas segundo a possibilidade de o S.O. interromper um processo em execuo ou substitu-lo por um outro. Classificao:
Preemptivo: o S.O. pode interromper um processo em execuo e pass-lo para

o estado de pronto, com o objetivo de alocar outro processo no processador. O uso da preempo possvel ao S.O. que prioriza a execuo de processos.
No-preemptivo: o S.O. no interrompe um processo quando ele est em

execuo. Nenhum evento externo pode ocasionar a perda de processamento. Este tipo de escalonamento foi mais usado em S.O. com processamento em bach.
ORI - VMV - 2012 7

Gerenciamento de Processos
Critrios de escalonamento:
Escalonamento First-In-First-Out (FIFO); Escalonamento Shortest-Job-First (SJF); Escalonamento Cooperativo; Escalonamento Circular; Escalonamento por Prioridade; Escalonamento Circular com Prioridade; Escalonamento por Mltiplas Filas; Escalonamento por Mltiplas Filas com Realinhamento.
ORI - VMV - 2012 8

Gerenciamento de Processos
Escalonamento First-In-First-Out (FIFO): o processo que chega primeiro

ao estado de pronto o selecionado para execuo. Este algoritmo uma apenas uma Fila, onde os processos passam para o estado de pronto e passam para o seu final e so escalonados quando chegam ao seu incio.

Figura 1 Escalonamento FIFO (MACHADO, 2007)

ORI - VMV - 2012

Gerenciamento de Processos
Escalonamento First-In-First-Out (FIFO):
Comparao do uso do escalonamento FIFO em duas situaes

distintas:
Tabela1 Escalonamento FIFO

Processo A B C
Fonte: MACHADO, 2007.

Tempo de Processador (u.t.) 10 4 3

ORI - VMV - 2012

10

Gerenciamento de Processos
Escalonamento First-In-First-Out (FIFO):

Figura 2 Escalonamento FIFO Situao a) (MACHADO, 2007)

Figura 3 Escalonamento FIFO Situao b) (MACHADO, 2007)

Situao a) processos inseridos na Fila na seguinte ordem: A, B e C. Tempo mdio de espera de processador: (tA + tB + tC) = (0 + 10 + 14) / 3 = 8,0 u.t.

Situao b) processos inseridos na Fila na seguinte ordem: B, C e A. Tempo mdio de espera de processador: (tA + tB + tC) = (7 + 0 + 4) / 3 = 3,7 u.t.

ORI - VMV - 2012

11

Gerenciamento de Processos
Escalonamento First-In-First-Out (FIFO) problemas:
Impossibilidade de prever quando um processo ter sua execuo

iniciada, j que isso varia em funo do tempo de execuo dos demais processos posicionados frente na Fila de pronto.
Este escalonamento do tipo no-preemptivo e foi implantado em

sistemas monoprogramveis com processamento em batch.


Ineficincia em sistemas interativos de tempo compartilhado.

ORI - VMV - 2012

12

Gerenciamento de Processos
Escalonamento Shortest-Job-First (SJF): este algoritmo 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 a execuo.
Situao: processos inseridos na Fila na seguinte ordem: C, B e A. Tempo mdio de espera de processador: (tA + tB + tC) = (7 + 3 + 0) / 3 = 3,3 u.t.
Figura 4 Escalonamento SJF (MACHADO, 2007)

ORI - VMV - 2012

13

Gerenciamento de Processos
Escalonamento

Cooperativo:

um

processo

em

execuo

pode,

voluntariamente, liberar o processador, retornando a Fila de pronto e possibilitando que um novo processo seja escalonado, permitindo assim uma melhor distribuio no uso do processador.
Problema:
A liberao do processador voluntria, ou seja, no responsabilidade do S.O. Um processo pode no liberar o processador, assim os demais processos no

tero chance de ser executados.

ORI - VMV - 2012

14

Gerenciamento de Processos
Escalonamento Circular (round robin schelduling): do tipo preemptivo.

Algoritmo bastante semelhante ao FIFO, porm quando um processo passa para o estado de execuo h um tempo-limite para uso contnuo do processador denominada fatia de tempo (time-slice) ou quantum. O S.O. responsvel por controlar o tempo de uso do processador e interromper o processamento e salvar o contexto e direcionar o processo para o final da Fila. Esse mecanismo conhecido como preempo por tempo. Desenvolvido para sistemas de tempo compartilhado.

ORI - VMV - 2012

15

Fila dos Processos em estado Pronto Estado de Criao Estado de Trmino

C CPU

Preempo por Tempo

Estado de Espera

Figura 5 Escalonamento Circular (MACHADO, 2007)

Processo A

Processo B

Processo C 2 4 6 8 10 11 17 u.t.

Figura 6 Escalonamento Circular exemplo (MACHADO, 2007)

ORI - VMV - 2012

16

Gerenciamento de Processos
Escalonamento

Circular: o problema que ocorre nesse tipo de

escalonamento que se o tempo de uso for muito alto o algoritmo se comporta como o escalonamento FIFO. Se for muito baixo tem-se um nmero grande de preempo, o que ocasiona excessivas mudanas de contexto, prejudicando o desempenho do sistema e afetando seu tempo de turnaround. Processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound.
Vantagem: no permite que o processador monopolize o uso do

processador.

ORI - VMV - 2012

17

Gerenciamento de Processos
Escalonamento por prioridade: um escalonamento do tipo preemptivo

realizado com base no valor associado a cada processo denominado prioridade de execuo. O processo com maior prioridade no estado de pronto sempre o escolhido para execuo, os processos com mesma prioridade seguem o critrio FIFO. O processo em execuo no sofre preempo por tempo.
A perda de uso de processador s ocorre no caso

de uma mudana

voluntria para o estado de espera ou quando um processo de prioridade maior passa para o estado de pronto.

ORI - VMV - 2012

18

Fila dos Processos em estado Pronto Prioridade P1 Estado de Criao A B Prioridade P2 A B C CPU Prioridade Pn A B C Estado de Trmino C

Preempo por Prioridade

Estado de Espera

Figura 7 Escalonamento por Prioridade (MACHADO, 2007)

ORI - VMV - 2012

19

Tabela1 Escalonamento por Prioridade

Process o A B C

Tempo de Processador (u.t.) 10 4 3

Prioridade 2 1 3

Processo A

Processo B

Processo C 3 13 17 u.t.

Figura 9 Escalonamento por Prioridade exemplo (MACHADO, 2007)

ORI - VMV - 2012

20

Gerenciamento de Processos
Escalonamento por prioridade: cada S.O. implementa sua faixa de

valores para as prioridades de execuo. Alguns valores associam valores altos para as maiores prioridades, enquanto outros associam valores baixos.
Exemplo:
Open

VMS (Open Virtual Memory System): um S.O. multiusurio,

multiprocessado que utiliza memria virtual e foi projetado para processamento em lote (batch) e em tempo real. Tem prioridade entre 0 e 31, sendo o 31 a prioridade mais alta de execuo.
IBM AIX: tecnolgica projetada para fornecer o mais alto nvel de desempenho

e confiabilidade de qualquer sistema operacional UNIX. Tem prioridade entre 0 e 127, sendo o 0 a prioridade mais alta de execuo.
ORI - VMV - 2012 21

Gerenciamento de Processos
Escalonamento por prioridade - problema: um dos principais problemas

nesse escalonamento o starvation. Processos de baixa prioridade podem no ser escalonados, permanecendo indefinidamente na fila de pronto.
Soluo: uso da tcnica aging. Tcnica que incrementa gradualmente a

prioridade de processos que permanecem muito tempo na fila de pronto.

ORI - VMV - 2012

22

Gerenciamento de Processos
Escalonamento Circular com Prioridade: esse algoritmo implementa o

conceito de fatia de tempo e de prioridade de execuo associada a cada processo. Nesse tipo de escalonamento um processo permanece em estado de execuo at que termine seu processamento, voluntariamente passe para o estado de espera ou sofra uma preempo por tempo ou por prioridade. Esse escalonamento pode ser do tipo:
Escalonamento circular com prioridade esttica: prioridade definida no contexto

de software e permanece inalterada.


Escalonamento circular com prioridade dinmica: possvel que a prioridade de

um processo seja alterada dinamicamente.

ORI - VMV - 2012

23

Gerenciamento de Processos
Escalonamento Circular com Prioridade - Vantagem:
permite o melhor balanceamento no uso do processador em sistemas de

tempo compartilhado.
Processos com perfil I/O-boud devem receber do administrador do sistema

prioridades com valores maiores que as dos processos CPU-bound, assim tem-se uma poltica compensatria.

ORI - VMV - 2012

24

Fila dos Processos em estado Pronto Prioridade P1 Estado de Criao A B Prioridade P2 A B C CPU Prioridade Pn A B C Estado de Trmino C

Preempo por Tempo ou Prioridade

Estado de Espera

Figura 10 Escalonamento Circular por Prioridade (MACHADO, 2007)

ORI - VMV - 2012

25

Gerenciamento de Processos
Escalonamento

por

mltiplas

Filas

(multileve

queue

scheduling): so criadas diversas filas no estado de pronto, cada fila criada de acordo com uma prioridade especfica. Os processos so associados s filas em funo de caractersticas prprias, como por exemplo, importncia para a aplicao, tipo de processamento, etc.
Como cada processo possui caractersticas prprias torna-se difcil

definir um nico mecanismo de escalonamento.

ORI - VMV - 2012

26

Gerenciamento de Processos
Escalonamento por mltiplas Filas (multileve queue scheduling)

- Vantagens: a possibilidade de se ter vrios mecanismos de escalonamento convivendo juntos em um mesmo S.O.
Desvantagem: no caso de um processo alterar seu comportamento

no decorrer do tempo, o processo no poder ser redirecionado para outra fila mais adequada, uma vez que, a destinao do processo para a fila feito no momento da criao do processo.

ORI - VMV - 2012

27

Fila dos Processos em estado Pronto Fila Processos do Sistema

Maior Prioridade

Fila Processos Interativos A B C CPU Fila Processos Batch Estado de Trmino

Menor Prioridade

Preempo por Tempo ou Prioridade

Figura 11 Escalonamento por mltiplas Filas (MACHADO, 2007)

ORI - VMV - 2012

28

Gerenciamento de Processos
Escalonamento por Mltiplas Filas com Realimentao (multilevel

feedback queues scheduling): semelhante ao escalonamento por mltiplas filas, porm os processos podem trocar de filas durante seu processamento. Um mecanismo FIFO adaptado com fatia de tempo implementado para o escalonamento em todas as filas, com exceo da fila de menor prioridade, que utiliza o escalonamento circular. O escalonamento de processos em outra fila ocorre quando todas as filas de prioridade mais altas estiverem vazias. A fatia de tempo de cada fila varia de acordo com sua prioridade, ou seja, maior prioridade menor fatia de tempo.

ORI - VMV - 2012

29

Gerenciamento de Processos
Escalonamento

por

Mltiplas

Filas

com

Realimentao

(multilevel feedback queues scheduling) - vantagens: permitir ao S.O. identificar dinamicamente o comportamento de cada processo e direcion-lo para filas com prioridades de execuo e mecanismos de escalonamento mais adequados ao longo de seu processamento. Esse mecanismo de escalonamento um mecanismo genrico. Portanto, pode ser implementado em qualquer tipo de S.O.

ORI - VMV - 2012

30

Fila dos Processos em estado Pronto Fila 1 FIFO Adaptado

Maior Prioridade

Menor Fatia de Tempo

Fila 2 FIFO Adaptado A B C Estado de Trmino

CPU Fila n (Circular)

Menor Prioridade

Maior Fatia de Tempo

Figura 12 Escalonamento por mltiplas Filas com realimentao (MACHADO, 2007)

ORI - VMV - 2012

31

Gerenciamento de Processos
Escalonamento

por

Mltiplas

Filas

com

Realimentao

(multilevel feedback queues scheduling): processos I/O-bound tempo de resposta adequado obtido, j que esse tipo de processo permanece o maior tempo na fila de maior prioridade, pois dificilmente sofrero preempo por tempo. J processos CPU-

bound, a tendncia que, ao entrar na fila de mais alta prioridade, ganhe o processador, gaste sua fatia de tempo e seja direcionado para uma fila de prioridade menor. Portanto, quanto mais tempo um processo utiliza o processador, mais ele vai caindo para filas de menor prioridade.
ORI - VMV - 2012 32

Gerenciamento de Processos
Trabalho:
Pesquisar sobre:

Escalonamento em Sistemas de Tempo Real Compartilhado; Poltica de Escalonamento em Sistemas de Tempo Real.

Data da Entrega: 04/04 Entregar por e-mail: prof.valeriavolpe@terra.com.br Formato do arquivo PDF Colocar nome, curso, Instituio e disciplina
ORI - VMV - 2012 33

Exerccios
1. 2. 3. 4.

O que poltica de escalonamento de um S. O.? Quais as funes do escalonador e do disparcher? Quais os principais cirtrios utilizados em uma poltica de escalonamento? Que tipo de escalonamento aplicaes de tempo real exige?

ORI - VMV - 2012

34

Exerccios
5.

Considere a tabela a seguir:


Calcule o tempo mdio de turnaround dos processos considerando que todos foram criados no instante 0 u.t. e que o tempo de troca de contexto igual a 0 u.t. para os seguintes escalonamentos: FIFO SJF Circular com fatia de tempo igual a 20 u.t. Prioridades Processos P1 P2 P3 P4
ORI - VMV - 2012

a) b) c) d)

Tempo de CPU 40 20 50 30

Prioridade 4 3 1 3
35