Beruflich Dokumente
Kultur Dokumente
Unidade II
Processos
Chaves de Sistemas Distribudos
Programas em execuo
Os processos so organizados na
memria e o ncleo do sistema elege
quem ser executado.
Estados de Processo
executando (running)
pronto (ready)
bloqueado (blocked)
Transio de estados de
Processo
Identificao de Processos
Sistema cria um processo e associa a este um nmero de identificao,
pid (process identifier), colocando-o no final da fila de processos
prontos. Em outras palavras, o estado inicial de um processo o estado
pronto. Suponha que o pid deste processo 5 (P5). Em um
determinado tempo de execuo, a fila de prontos e o processo sendo
executado pela CPU pode ser como mostrado na figura abaixo. Perceba
que o processo P5 o prximo processo a ser executado.
Implementao de
Processos
Para implementar o modelo de processo, comum a criao e
manuteno de uma tabela que organize as informaes relativas aos
processos. Esta tabela chamada de tabela de processos e
usualmente implementada sob a forma de um vetor de estruturas ou
uma lista ligada de estruturas. Cada processo existente corresponde a
uma entrada nesta tabela, e cada entrada da tabela denominada PCB
(Process Control Block ou Bloco de Controle de Processo). O PCB possui
todas as informaes necessrias para que a execuo do processo
possa ser iniciada, interrompida e retomada conforme determinao do
SO, sem prejuzo para o processo. A figura seguinte mostra a tabela de
processos, implementada como um vetor de estruturas, e os PCBs
Implementao de
Processos
Implementao de
Processos
- identificador de processo (pid);
- estado atual do processo;
- cpia do contedo do registrador contador de programa (PC
Program Counter Contem informaes sobre a alocao de memria
onde se encontra a prxima instruo a ser executada);
- tempo em que o processo iniciou;
- tempo utilizado do processador;
Comunicao entre
Processos
A comunicao entre processos (IPC Interprocess Communication)
uma situao comum em sistemas de computao, que ocorre
quando dois ou mais processos precisam se comunicar, ou seja,
quando os processos precisar compartilhar ou trocar dados entre si. A
comunicao entre processos pode ocorrer em vrias situaes
diferentes, tais como:
- redirecionamento de sada (resultados) de um comando para
outro;
- envio de arquivos para impresso;
- transmisso de dados pela rede, entre outras.
Tal comunicao ocorre, geralmente, por meio da utilizao de
recursos comuns, como a memria do sistema, aos processos
envolvidos na comunicao. Devido complexidade e limitaes de
desempenho, as interrupes no so usadas para este tipo de
comunicao. A seguir sero abordados alguns tpicos associados
comunicao entre processos.
Condies de corrida
- Spooler de Impresso
Considere que o diretrio de spooler possui um nmero grande de
slots (0, 1, 2, ...) cada qual sendo capaz de armazenar um nome de
arquivo que dever ser impresso. Tambm considere que existem
duas variveis compartilhadas, na memria principal, tais que:
- prox: aponta para o prximo arquivo para ser impresso;
- livre: aponta para o prximo slot livre no diretrio.
Condies de corrida
Processo
Processo
Processo
Processo
.
.
.
Processo
Processo
Processo
Processo
A
B
B
B
A
A
A
A
Condies de corrida
O Problema de Espao na Geladeira
Hora
Pessoa A
Pessoa B
6:00
6:05
6:10
Chega na padaria
6:15
Sai da padaria
6:20
Chega na padaria
6:25
Sai da padaria
6:30
Conceito de Operaes
Atmicas
Operaes Atmicas so operaes que
no podem ser interrompidas.
No possvel ver as "partes" de uma
operao atmica, mas apenas seu
efeito final. Ou seja, no possvel ver a
operao "em progresso".
Ex.:
Regies Crticas
Objetivo: proibir que mais de um processo acesse o dado compartilhado ao mesmo
tempo (i.e. excluso mtua).
A implementao de excluso mtua essencial para sistemas operacionais
multiprogramados.
Diviso do processo:
processamento local;
manipulao de dados compartilhados.
A parte do programa cujo processamento, por manipular dados compartilhados, pode
levar ocorrncia de condies de corrida chamada REGIO CRTICA.
Objetivo: nunca permitir que dois processos entrem simultaneamente em suas regies
crticas correspondentes (i.e. referentes mesma varivel compartilhada).