Académique Documents
Professionnel Documents
Culture Documents
.
END.
Processo
principal
1
Comunicao entre Processos Comunicao entre Processos
Soluo para os Problemas de Compartilhamento Soluo para os Problemas de Compartilhamento
Excluso mtua (mutual exclusion) Arquivo de contas bancrias compartilhado
Mecanismo que impede que dois ou mais processos acessem um O protocolo indica se j existe ou no algum processo acessando o
mesmo recurso no mesmo instante registro
Enquanto um processo estiver acessando determinado recurso, todos Caso o processo A esteja em sua regio crtica e o processo B tente
os outros que queiram acessar esse mesmo recurso devero esperar acessar o mesmo registro, o protocolo de entrada faz com que ele
fique aguardando, at que o processo A termine o acesso ao recurso
que o primeiro processo termine o acesso
O protocolo de sada informa aos outros processos que o processo A
Regio crtica terminou o
BEGIN
Parte do cdigo do programa onde feito o acesso ao recurso acesso ao .
compartilhado recurso .
BEGIN
Os mecanismos . Entra_Regiao_Critica; (* Protocolo de Entrada *)
READ (Arq_Contas, Reg_Cliente);
que implementam .
Entra_Regiao_Critica; (* Protocolo de Entrada *) READLN (Valor_Dep_Ret);
a excluso mtua Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret;
Regiao_Critica;
utilizam um protocolo Sai_Regiao_Critica; (* Protocolo de Saida *) WRITE (Arq_Contas, Reg_Cliente);
de acesso regio . Sai_Regiao_Critica; (* Protocolo de Saida *)
.
crtica .
END .
END
2
Comunicao entre Processos Comunicao entre Processos
Solues de Hardware Solues de Hardware
Desabilitao de Interrupes Instruo Test-and-set
As interrupes so desabilitadas pelo processo antes de entrar
em sua regio crtica, e reabilitadas aps deixar a regio crtica Test-and-Set (X,Y);
O acesso garantido porque a mudana de contexto somente
pode ser realizada atravs de interrupes
O valor lgico da varivel Y copiado para X, e o valor lgico
Pode ocorrer problemas se as interrupes
no forem reabilitadas pelo processo verdadeiro atribudo varivel Y
Pode ser til ao sistema Instruo indivisvel
BEGIN
operacional quando este .
necessita manipular .
estruturas de dados Desabilita_Interrupes;
Regiao_Critica;
compartilhadas do Habilita_Interrupes;
sistema .
.
END
3
Comunicao entre Processos Comunicao entre Processos
Semforos Semforos
Fila de
Instrues DOWN e UP so indivisveis
espera de
processos System calls
TYPE Semaforo = RECORD
Valor: INTEGER;
Libera processo da Fila_Espera: (* Lista de processos pendentes *);
DOWN (S=0)
fila de espera End;
4
Comunicao entre Processos Comunicao entre Processos
Troca de Mensagens Troca de Mensagens PROGRAM Produtor_Consumidor_4;
PROCEDURE Produtor;
Mecanismo de comunicao e sincronizao entre processos Comunicao VAR Msg: Tipo_Msg;
BEGIN
Duas rotinas do sistema: SEND e RECEIVE Sncrona REPEAT
Produz_Mensagem(Msg);
Endereamento Assncrona SEND(Msg);
UNTIL False;
Direto END;
Indireto (mailbox) Processo
transmissor
Processo
receptor
PROCEDURE Consumidor
VAR Msg: Tipo_Msg;
BEGIN
SEND RECEIVE REPEAT
Processo Processo
A B
RECEIVE(Msg);
Consome_Mensagem(Msg);
UNTIL False;
SEND (Receptor, Mensagem); END;
Processo Processo
BEGIN
A B RECEIVE (Transmissor, Mensagem); PARBEGIN
Produtor;
Consumidor;
PAREND;
Mailbox
END.