arquitetura de sistemas operacionais – machado/maia cap. 7 – sincronização e comunicação1...
TRANSCRIPT
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 1
Arquitetura de Sistemas Arquitetura de Sistemas OperacionaisOperacionais
Francis Berenger MachadoFrancis Berenger MachadoLuiz Paulo MaiaLuiz Paulo Maia
Capítulo 7Capítulo 7Sincronização e ComunicaçãoSincronização e Comunicação
entre Processosentre Processos
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 2
Sumário
• Introdução• Aplicações concorrentes• Especificação de concorrência em programas• Problemas de compartilhamento de recursos• Exclusão mútua• Sincronização condicional• Semáforos• Monitores• Troca de mensagens• Deadlock
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 3
Aplicações Concorrentes
• Sincronização e comunicação entre processos
Processog ravad o r
Processoleito r
d ado
Sin cron ização
leitura
g ra vaçã o
Bu ffer
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 4
Especificação de Concorrência em Programas
• Concorrência em programasProcessop rincip a l
Processop rincip a l
Processo 1 Processo 2 Processo n
PARBEGIN Comando_1; Comando_2; . . Comando_n;PAREND
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 5
Especificação de Concorrência em Programas
X := SQRT (1024) + (35.4 * 0.23) - (302 / 7)
PROGRAM Expressao;
VAR X, Temp1, Temp2, Temp3 : REAL;
BEGIN
PARBEGIN
Temp1 := SQRT (1024);
Temp2 := 35.4 * 0.23;
Temp3 := 302 / 7;
PAREND;
X := Temp1 + Temp2 - Temp3;
WRITELN ('x = ', X);
END.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 6
Prob. de Compartilhamento de Recursos
PROGRAM Conta_Corrente;
.
.
READ (Arq_Contas, Reg_Cliente);
READLN (Valor_Dep_Ret);
Reg_Cliente.Saldo :=
Reg_Cliente.Saldo + Valor_Dep_Ret;
WRITE (Arq_Contas, Reg_Cliente);
.
.
END.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 7
Prob. de Compartilhamento de Recursos
Processo A Processo B
X := X + 1; X := X - 1;
Processo A Processo B
LOAD x,Ra LOAD x,Rb
ADD 1,Ra SUB 1,Rb
STORE Ra,x STORE Rb,x
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 8
Exclusão Mútua
• Região crítica• Protocolos de acesso
BEGIN
.
.
Entra_Regiao_Critica;
Regiao_Critica;
Sai_Regiao_Critica;
.
.
END.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 9
Exclusão Mútua
• Soluções de hardware
– Desabilitação de interrupções
BEGIN . Desabilita_Interrupcoes; Regiao_Critica; Habilita_Interrupcoes; .END.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 10
Exclusão Mútua
• Soluções de hardware
– Instrução Test-and-Set
Test-and-Set (X,Y);
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 11
Exclusão Mútua
• Soluções de software– Primeiro algoritmo– Segundo algoritmo– Terceiro algoritmo– Quarto algoritmo– Algoritmo de Dekker– Algoritmo de Peterson– Algoritmo para exclusão mútua entre N
processos
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 12
Sincronização CondicionalPROGRAM Produtor_Consumidor_1;
CONST TamBuf = (* Tamanho qualquer *);
TYPE Tipo_Dado = (* Tipo qualquer *);
VAR Buffer : ARRAY [1..TamBuf] OF Tipo_Dado;
Dado : Tipo_Dado;
Cont : 0..TamBuf;
BEGIN
Cont := 0;
PARBEGIN
Produtor;
Consumidor;
PAREND;
END.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 13
Sincronização CondicionalPROCEDURE Produtor;BEGIN REPEAT Produz_Dado (Dado); WHILE (Cont = TamBuf) DO (* Nao faz nada *); Grava_Buffer (Dado, Cont); UNTIL False;END; PROCEDURE Consumidor;BEGIN REPEAT WHILE (Cont = 0) DO (* Nao faz nada *); Le_Buffer (Dado); Consome_Dado (Dado, Cont); UNTIL False;END;
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 14
Semáforos
• Exclusão mútua utilizando semáforos• Sincronização condicional utilizando
semáforos• Problema dos Filósofos• Problema do Barbeiro
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 15
Semáforos
• Semáforo binário na exclusão mútua
Fila de esperad e processos
Processo acessaa reg iã o cr ítica
Processo d eseja en tra rn a reg ião cr ítica
DOW
N (S=
0)
DOW
N (S
>0)
U P (S) - p rocesso sa id a reg ião cr ítica
Libe ra processod a fi la de espe ra
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 16
Monitores
• Estrutura do monitor
D ecla ração deva riáveis g lo ba is
Proced im entos
Fila de entra da
In icia lizaçãod e va r iáveis
Proc. 1
Proc. 2
Proc. n
Mo
nit
or
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 17
Monitores
• Estrutura do monitor com varáveis de condição
D ecla ração deva riáveis g lo ba is
Proced im ento s
Fila de entra da
In icia lizaçãod e va r iáveis
Proc. 1
Proc. 2
Proc. n
Mo
nit
or
F ila s de esp era
C o n diçã o C 1
C o n diçã o C 2
C o n diçã o C n
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 18
Troca de Mensagens
• Transmissão de mensagem
Pro cessotran sm isso r
Pro cessorecep to r
SEN D REC EIV E
C an a l d e co m u nicação
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 19
Troca de Mensagens
• Comunicação direta
Pro cesso A Pro cesso B
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 20
Troca de Mensagens
• Comunicação indireta
Pro cesso A Pro cesso B
M a ilb oxo u Po rt
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 21
Deadlock
• Espera circular
Recu rso 2 Recu rso 1
Processo A
Processo B
Processo Aso licita oRecu rso 2
Recu rso 1a loca do aoProcesso A
Recu rso 2a loca do aoProcesso B
Processo Bso licita oRecu rso 1
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 7 – Sincronização e Comunicação 22
Deadlock
• Condições necessárias– Exclusão mútua– Espera por recurso– Não-preempção– Espera circular
• Mecanismos– Prevenção– Detecção– Correção