Вы находитесь на странице: 1из 13

1 |pgina de 13

UNIVERSIDADE EDUARDO MONDLANE



FACULDADE DE ENGENHARIA
Disciplina: Sistemas Operativos e Programao Concorrente
Docente: dr. Incio G. Ticongolo

GESTO DE PROCESSOS
Antes de falarmos de gesto de processos, falaremos de conceitos bsicos em volta de Processos.
Conceitos Bsicos:
PROGRAMA sequncia de comandos sem actividade prpria.

Todos softwares executados em um computador, inclusive o prprio Sistema Operativo so
organizados em processos sequenciais.

Processo abstraco de execuo de uma instncia dum programa. Um programa ao ser
executado pode correr mais de um processo.

Muitos sistemas operativos identificam os processos atravs de um nico identificador de
processo (pid), que um Inteiro.
Em geral, um processo ir precisar de certos recursos (tempo de CPU, memria, ficheiro,
dispositivos de I/O) para cumprir com as suas tarefas.



2 |pgina de 13

Composio de Processo

Um processo inclui:

1. Valores actuais do contador de programa e registadores;
2. Pilha(stack) do processo que contm dados temporrios (parmetros de funes ou
mtodos, endereos de retorno e as variveis locais);
3. Seco de dados que contm as variveis globais
4. Heapmemria que alocada dinamicamente durante a execuo do processo.


Figura 1: Alocao de memria Principal

Estados do Processo
O processo passa por diversos estados durante a sua execuo. O estado de um processo
definido em parte pela sua actividade em curso. Um processo pode estar em um dos seguintes
estados:

3 |pgina de 13

- Novo(New): o processo est a ser criado
- Em Execuo(Running): as instrues esto a ser executadas, neste momento o processo
tem acesso a CPU.
- Em Espera (Waitting): o processo est a espera pela ocorrncia de algum evento (como
concluso de I/O ou recepo de um sinal).
- Pronto (ready): o processo est a espera que seja atribudo o processador.
- Terminado (Terminated): o processo terminou a sua execuo.



Figura 2: Estados de processo

Notas:
S um processo pode estar no estado
running
Pode haver vrios processos no estado
ready e no estado waiting

No sistema operativo, um processo representado por um bloco de controlo do processo (PCB-
process control block).

4 |pgina de 13

Bloco de Contolo de Processo
Contm informaes associadas a um processo especfico, incluindo:
- Estado do processo: ver diagramas de estados
- Contador do programa: indica o endereo da prxima instruo a ser executada
- Registadores da CPU: incluem os acumuladores, registos de indexao, ponteiros de
pilha, registos gerais.
- Informao de escalonamento da CPU: inclui prioridade do processo, ponteiros para
filas de escalonamento.
- Informao da gesto de memria: inclui valores dos registos de base e de limite,
tabelas de paginao (ou tabelas de segmentao)
- Informao de contabilizao
- Informao do estado de I/O: inclui lista de dispositivos I/O afectados ao processo, lista
de ficheiros abertos.
- Repositrio para qualquer informao que pode variar de um processo para outro.

Informao associada a cada processo:

5 |pgina de 13


Figura 3: Bloco de controlo de processos

De forma a maximizar a utilizao da CPU, h que ter sempre um processo a correr, i.e. em
execuo. Alm disso, num dado instante, s um processo pode usar um dispositivo de
entrada/sada. Isto obriga a que haja: Escalonamento incluindo comutao de contexto, Filas
de escalonamento e Escalonadores.



6 |pgina de 13

Escalonamento de Processo
Escalonamento tem a ver com decises sobre:
1. Qual o prximo processo a executar?
2. Quando comea a executar?
3. Durante quanto tempo executa?
A primeira deciso implica a noo de prioridade, as outras duas tem a ver com o facto de se usar
ou no desafectao forada.
O objectivo da multiprogramao garantir que haja sempre um processo em execuo de forma
a maximizar a CPU.

Figura 4 : Escalonamento de Processos em ambiente multiprogramado (Adaptado de
Tanbaum)



7 |pgina de 13

Comutao de Contexto
A partilha do processador requer um mecanismo de comutao de processos, a que se d o nome
de comutao de contexto
A comutao entre dois processos faz-se atravs da: salvaguarda do estado do processo que
perde o CPU e restaurao do estado do processo que ganha o CPU.
O sistema no realiza algum trabalho til enquanto efectua a mudana de contexto.
Os tempos de mudana de contextos so altamente dependentes do hardware.
Quanto mais complexo for o sistema operativo, mais trabalho ser realizado durante a mudana
de contexto.


Figura 5: Comutao de contexto

8 |pgina de 13


medida que os processos entram no sistema so colocados numa fila de jobs.
Os processos residentes na memria principal que esto prontos e em espera para entrar em
execuo so colocados numa lista chamada fila pronta. Geralmente, esta fila armazenada na
forma de uma lista encadeada. A cabea de uma fila pronta contm um apontador para o
primeiro e o ltimo PCB da lista. Cada PCB inclui um apontador que aponta para o prximo
PCB da fila pronto

Filas de Escalonamento

Figura 6: Filas de Escalonamento


9 |pgina de 13

Normalmente, todo o recurso tem associada uma fila de escalonamento (CPU, dispositivos de
entrada e sada)
Ready queue Esta fila contm os PCBs dos processos residentes em memria que esto no
estado ready, i.e. processos que esto prontos e espera de executar.
Fila de dispositivo (ou device queue) lista dos PCBs dos processos espera dum
dispositivo I/O Por exemplo:
Disk unit 0 queue - se um processo espera a concluso de I/O, colocado na fila de espera
do dispositivo em causa
Segundo a figura, os processos migrao entre vrias filas.
Diagrama de espera no escalonamento de processos
- Um novo processo inicialmente colocado na ready queue .
- O processo fica espera na ready queue at ser seleccionado e despachado para o CPU
Durante a sua execuo vrias coisas podem acontecer:
1. o processo pode emitir um pedido I/O, e consequentemente ser colocado numa I/O
device queue;
2. o processo pode criar um novo subprocesso, ficando espera que ele termine;
3. o processo pode ser removido do CPU em consequncia duma interrupo,
transitando para a ready queue


10 |pgina de 13


Figura 7: Diagrama de espera no escalonamento de processos


Escalonadores

H trs tipos de escalonadores:
- curto prazo
- mdio prazo
- longo prazo

Escalonador de longo-prazo (ou escalonador de processos):
Selecciona que processos devem ser levados para a fila ready
Escalonador de longo-prazo controla o grau de multiprogramao

Escalonador de curto-prazo (ou escalonador do CPU):
Selecciona que processos devem ser executados de seguida e reserva,
consequentemente, o CPU

11 |pgina de 13



Escalonamento de mdio-prazo
Ideia base: swapping

- Remover processos da memria (i.e. baixar o grau de multiprogramao)
- Mais tarde, estes processos podem ser re-introduzidos na memria e continuar a sua
execuo onde tinham sido deixados.
Pode assim conseguir-se uma melhor mistura de processos, ou ento libertar memria principal
para outros processos.

Figura 8: diagrama de swapping


Operaes sobre Processos

Os processos no sistema podem executar concorrentemente e podem ser criados e eliminados
dinamicamente.
Assim, o sistema operativo deve fornecer mecanismos(ou facilidades) para Criao e Trmino do
processo.



12 |pgina de 13

Criao do Processo
Um processo pode dar origem a diversos novos processos durante o seu curso de execuo, por
intermdio de uma chamada de sistema create-process.
O processo criador denominado processo Pai, e os novos processos so chamados processos
filhos do processo criador.
Cada um desses novos processos pode, por sua vez, criar outros processos, formando uma rvore
de processos (fig 9).


Figura 9: hierarquia de processos

Quando um processo cria um subprocesso, este subprocesso pode obter seus recursos
directamente do SO, ou pode ficar limitado ao conjunto de recursos do processo pai.
O processo pai pode ter que repartir seus recursos entre os filhos ou compartilhar alguns recursos
(como memria ou ficheiros) entre os filhos.
Ao restringir um processo filho a um subconjunto de recursos do pai, evitamos que algum
processo possa sobrecarregar o sistema se possuir elevado nmero de subprocessos.
Alm de vrios recursos fsicos e lgicos que o processo obtm, os dados de inicializao (input)
podem ser transmitidos do processo pai ao processo filho.

Quando um processo cria um novo subprocesso, existem duas possibilidades em termos de
execuo:
1. O pai continua a executar concorrentemente com os seus filhos;
2. O pai aguarda at que alguns dos seus filhos ou todos eles tenham terminado.

13 |pgina de 13

Existem ainda duas possibilidades em termos de espao de endereamento do novo processo:
1. O processo filho tem o mesmo programa e dados que processo pai;
2. O processo filho tem um programa carregado dentro dele.

Trmino do Processo
Um processo termina quando conclui a execuo do seu ultimo commando e solicita que o
sistema operativo o elimine usando a chamada de sistema exit().
Neste ponto, o processo pode retornar um valor de estado (geralmenteuminteiro) para o seu
processo pai (por intermdio da chamada de sistema wait())
Todos recursos do processoincluindo memria, ficheiros abertos e bufferdeI/Oso desalocados
pelo sistema operativo
Um processo pode causar o trmino de um outro processo por meio de uma chamada de sistema
apropriada (por exempo,abort(), TerminateProcess()).
Usualmente, esta chamada de sistema pode ser invocada somente pelo pai do processo que est
para terminar.
Um processo pai pode terminar a execuo de um dos seus processos filhos por vrios motivos:
1. O processo filho excedeu a utilizao de algum recurso que lhe foi alocado. Isso requer
que o processo pai tenha um mecanismo para inspeccionar os estados dos seus filhos.
2. A tarefa atribuda ao processo filho j no necessria.
3. O processo pai est terminar, e o sistema operativo no permite que um processo filho
continue a execuo quando o seu pai terminar.

Вам также может понравиться