You are on page 1of 19

Sistemas Operativos

Gesto Processos
Nuno Lopes

Definio de Processo
n
n

Um processo consiste na execuo de um programa


utilizando os recursos da mquina.
Os recursos so: tempo de utilizao do
processador; memria principal para armazenar
cdigo, dados e stack de execuo do programa; e
estado global do processo (informao do sistema).
Os processos executam num contexto independente,
de modo a no interferir com os restantes processos
da mquina.
Para restringir o acesso aos recursos da mquina, o
processo est associado a um utilizador e s suas
permisses no sistema.

Multiprogramao
n

n
n

A multiprogramao consiste na execuo


concorrente de vrios programas no mesmo
computador.
Nas mquina com apenas um processador (e um
ncleo), s possvel a execuo de uma instruo
em cada instante.
A multiprogramao com um nico processador
denomina-se por pseudoconcorrncia.
A pseudoconcorrncia tira proveito da caracterstica
interactiva dos processos para partilhar o mesmo
processador por vrios processos em simultneo.

Tarefas (Threads)
Tarefas so linhas de execuo concorrentes
que partilham o mesmo espao de
endereamento do processo ao qual esto
associadas.
n Ao partilhar o espao de endereamento, as
tarefas partilham todos os dados do
processo.
n As tarefas permitem a execuo de mltiplas
partes de um programa em simultneo.
n

Escalonamento de processos
A multiprogramao com um nico
processador obriga a partilha desse
processador pelos processos ao longo do
tempo.
n Comutao de processos a operao que
retira um processo de execuo e troca por
outro.
n Escalonamento de processos define qual a
ordem de execuo dos vrios processos.
n

Estados de Execuo dos


Processos
n

Os processos encontram-se num dos


seguintes estados:
em execuo: processo est a usar o
processador;
executvel: processo pode continuar a sua
execuo mas est a aguardar disponibilidade do
processador;
bloqueado: processo espera por um
acontecimento externo que enquanto no ocorrer
o impede de ser executado.

Transies de estado dos


processos
n

As transies entre os estados so:


Executvel -> execuo: o processo foi
seleccionado para ocupar o processador;
Execuo -> executvel: um outro processo
executvel tem mais prioridade do que este que
removido do proc.;
Execuo -> bloqueado: processo interrompeu a
sua execuo porque espera um acontecimento
sem o qual no pode continuar a execuo.
Bloqueado -> executvel: o acontecimento do
qual o processo aguardava ocorreu e assim est
pronto para continuar a execuo.

Caracterizao do Comportamento dos


Processos
n

Os processos no fazem uso dos recursos do


mesmo modo, e podem-se categorizar num
dos dois seguintes padres de
comportamento:
Processos IO-bound: usam com mais frequncia
os perifricos (leitura de teclado e rato), como
resultado da interaco com o utilizador;
Processos CPU-bound: usam com mais
frequncia o processador e no dependem de
dados externos para executar.

Caracterizao dos Sistemas Computacionais


n

O escalonamento de processos vai depender


dos objectivos dos sistemas computacionais,
que esto dividos nas seguintes categorias:
Processamento por lotes (batch processing):
processos so executados sequencialmente, sem
interactividade com o utilizador;
Tempo partilhado: vrios utilizadores interagem
com o sistema em simultneo e partilham os
recursos do computador ;
Tempo real: sistema garante poder responder a
acontecimentos externos

Algoritmos de Escalonamento
n

Os objectivos do escalonamento so:


Justia: todos os processos tm direito mesma quota de
processador.
Equilbrio: todos os recursos do computador devem ser
igualmente aproveitados (utilizao do disco e perifricos
deve ser maximizada do mesmo modo que o processador).
Dbito de processos: executar o maior nmero possvel de
processos por determinado perodo de tempo (no
processamento por lotes).
Tempo de resposta: minimizar a espera da reaco do
sistema a eventos externos criados pelo utilizador (em
sistemas interactivos);
Cumprir prazos temporais, por exemplo na execuo de
aplicaes multimdia (em sistemas de tempo real).

Algoritmos de Escalonamento
n

Existem vrios algoritmos de escalonamento que


surgiram de acordo com o tipo de sistemas
computacionais.
Para o sistema de processamento por lotes temos:
FIFO: processamento sequencial
Shortest Job First: trabalho mais curto primeiro
Para os sistemas interactivos temos:
Round-robin: tempo de execuo partilhado;
Priority Queues: tempo de execuo partilhado com
prioridades
Finalmente, existem algoritmos para gesto de restries em
tempo real, mas que no sero abordados.

Algoritmo Sequencial
n FIFO:

First In First Out

Neste algoritmo todos os processos so


executados sequencialmente at terminarem.
Um novo processo s comea a ser executado
quando o anterior terminar
No contempla interactividade.
Indicado para situaes onde os processos
necessitem de ser concludos,
independentemente do tempo que demoram
Exemplo: clculo de salrios

Trabalho Mais Curto Primeiro


n Shortest

Job First:

Neste algoritmo os processos mais curtos so


executados primeiro.
Implica o conhecimento da durao do tempo de
execuo do processo;
Favorece o dbito de processos, porque ao
comear pelos mais curtos ir concluir mais
processos no incio.
Contudo, prejudica a execuo de processos
longos, ao adiar para mais tarde a sua execuo.

Intervalo de tempo de Execuo


n

De modo a dar a todos os processos uma quota


idntica de tempo de utilizao do processador, os
algoritmos dos sistemas interactivos definiram o
conceito de Fatia de tempo ou Quantum.
O quantum representa a maior unidade de tempo
que um processo pode usar consecutivamente o
processador. Aps este perodo de tempo, o
processo removido e escolhido um novo processo
para executar.
Pode acontecer que o mesmo processo seja
escolhido para o processador, mas tal deciso ser
sempre feita pelo escalonador e no voluntriamento
pelo processo.

Desafectao Forada do
Processador
n

No processamento por lotes, os processos nunca


eram removidos do processador explicitamente, mas
apenas voluntriamente.
Com a introduo dos sistemas interactivos, um
processo j no pode monopolizar a utilizao do
processador, porque tal implica o prejuzo dos
restantes processos nos seus tempos de resposta.
Preemptive Scheduling:
O mecanismo de desafectao forada de um processo
permite retirar o processo de execuo do processador
involuntriamente;
Tal mecanismo usado pelo SO para remover um processo
que est a monopolizar o processador.

Tempo de Execuo Partilhado


n

n
n

O algoritmo Round Robin atribui uma fatia de tempo


idntica a todos os processos em execuo, de
modo a que todos tenham um acesso justo ao
processador.
mantida uma lista de processos que define a
ordem de execuo dos processos.
Para um processo poder ser executado novamente
no processador, deve primeiro ter sido dado tempo
de execuo a todos os restantes processos da lista.
Um dos inconvenientes desta soluo que
aumenta o tempo de resposta do sistema quando
existem muitos processos, prejudicando a
interactividade.
Ambos os processos CPU-bound e IO-bound so tratados
da mesma forma.

Tempo de Execuo Partilhado


com Prioridades
n
n

O algoritmo anterior no fazia distino entre


processos CPU-bound e IO-bound.
Contudo, para processos CPU-bound
prefervel a execuo menos frequente
durante um perodo de tempo maior; e para
processos IO-bound prefervel a execuo
mais frequente mas com perodos de tempo
mais curtos.

Tempo de Execuo Partilhado


com Prioridades
n

No escalonamento com prioridades, existem


vrias listas com prioridades distintas
Cada lista funciona internamente como um roundrobin;
Listas com mais prioridade tem um quantum
menor, mas so executadas mais vezes;
Listas com prioridade menor tem um quantum
maior mas so executadas menos vezes.

Tempo de Execuo Partilhado


com Prioridades
Um processo CPU-bound vai esgotar o seu
quantum e ser colocado uma lista de
prioridade menor;
n Processos interactivos no iro esgotar o
quantum e continuaro com prioridades
elevadas, mantendo a sua interactividade
com o utilizador.
n

You might also like