Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre...

19
rquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos comuniquem-se entre si. Mecanismos como variáveis compartilhadas na memória ou troca de mensagens. É necessário que os processos tenham uma execução sincronizada.

Transcript of Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre...

Page 1: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

1

Sincronização e Comunicação entre Processos

Em uma situação concorrente é necessário que processos

comuniquem-se entre si. Mecanismos como variáveis compartilhadas na

memória ou troca de mensagens. É necessário que os processos tenham

uma execução sincronizada.

Page 2: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

2

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 3: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

3

Aplicações Concorrentes

• Os mecanismos de sincronização garantem a comunicação entre processos concorrentes e o acesso ao recurso compartilhado.

• Em qualquer situação onde dois ou mais processos tenham acesso a um mesmo recurso compartilhado devem existir mecanismos de controle.

Page 4: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

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 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

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 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

6

Problemas 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 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

7

Problemas de Compartilhamento 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 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

8

Exclusão Mútua

• Quando dois ou mais processos compartilham um mesmo recurso devem existir mecanismos de controle

• A solução é impedir que dois ou mais processos acessem um mesmo recurso simultaneamente

• Enquanto um processo estiver acessando determinado recurso todos os demais que queiram acessá-lo deverão esperar pelo término da utilização do recurso – Exclusão mútua

• A parte do código do programa onde é feito o acesso ao recurso compartilhado é denominado região crítica

Page 9: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

9

Exclusão Mútua• Mecanismo que implementam exclusão

mútua utilizam protocolos de acesso a região crítica. Pode ser implementada por soluções de hardware ou de software

BEGIN . . Entra_Regiao_Critica; Regiao_Critica; Sai_Regiao_Critica; . .END.

Page 10: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

10

Soluções de Hardware

1. Desabilitação de interrupções – o programa desabilita as interrupções antes de entrar em sua região crítica e as reabilita após deixar a região crítica.

BEGIN . Desabilita_Interrupcoes; Regiao_Critica; Habilita_Interrupcoes; .END.

Page 11: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

11

Soluções de Hardware2. Instrução Test-and-Set – muitos processadores

possuem uma instrução de máquina especial que permite ler uma variável, armazenar seu conteúdo em uma outra área e atribuir um novo valor a mesma variável.

Esta instrução, o test-and-set é executado sem interrupção.

Test-and-Set (X,Y);

Page 12: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

12

Soluções de Software

1. Sincronização Condicional – É uma situação onde o acesso ao recurso

compartilhado exige a sincronização de processos

vinculados a uma condição de acesso. – O recurso pode não se encontrar pronto para uso

devido a uma condição específica, neste caso o processo que deseja usá-lo permanecerá bloqueado.

Page 13: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

13

Sincronização Condicional(Problema Produtor/Consumidor)

PROGRAM 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 14: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

14

Sincronização Condicional (Problema Produtor/Consumidor)

PROCEDURE 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 15: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

15

Semáforos

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

•Um semáforo é uma variável inteira, não negatica que só pode ser manipulada pelas instruções Down e Up

•Up incrementa um ao semáforo e down decrementa 1

•A instrução Down coloca o processo em uma fila de espera

Page 16: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

16

Monitores

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

•São mecanismo de sincronização de alto nível implementados pelo compilador

•Mantém procedimentos e variáveis encapsulados dentro de um módulo.

•Implementa a exclusão mútua de forma automática entre os procedimentos declarados

•Somente um processo executa o monitor em um determinado momento

Page 17: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

17

Troca de Mensagens

Processotran sm isso r

Processorecep to r

SEN D REC EIV E

C an a l d e co m u nicação

•É um mecanismo de comunicação e sincronização entre processos

•O sistema operacional possui um subsistema de mensagem que suporta esse mecanismo

•Para que haja a comunicação entre os processos deve existir um canal de comunicação (buffer, link de uma rede de computadores)

•Duas rotinas são necessárias SEND(receptor, mensagem) e RECEIVE(transmissor,mensagem)

•Exige a sincronização na execução das mensagens

Page 18: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

18

Troca de Mensagens

• Comunicação direta – exige que ao enviar ou receber uma mensagem o processo enderece explicitamente o nome do processo receptor e transmissor

Pro cesso A Pro cesso B

Page 19: Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos.

Arq

uit

etu

ra d

e S

iste

mas

Opera

cionais

– M

ach

ado/M

aia

19

Troca de Mensagens

• Comunicação indireta – utiliza uma área compartilhada onde as mensagens podem ser colocados pelo processo transmissor e retiradas pelo receptor (mailbox,port)Pro cesso A Pro cesso B

M a ilb oxo u Po rt