arquitetura de sistemas operacionais – machado/maia cap. 7 – sincronização e comunicação1...

22
rquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação 1 Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Operacionais Francis Berenger Machado Francis Berenger Machado Luiz Paulo Maia Luiz Paulo Maia Capítulo 7 Capítulo 7 Sincronização e Comunicação Sincronização e Comunicação entre Processos entre Processos

Upload: internet

Post on 17-Apr-2015

121 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 2: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 3: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 4: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 5: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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.

Page 6: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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.

Page 7: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 8: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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.

Page 9: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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.

Page 10: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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);

Page 11: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 12: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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. 

Page 13: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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;

Page 14: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 15: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 16: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 17: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 18: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 19: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 20: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 21: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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

Page 22: Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 7 – Sincronização e Comunicação1 Arquitetura de Sistemas Operacionais Francis Berenger Machado

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