A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas Operacionais – Machado/Maia 1 Sincronização e Comunicação entre Processos Em uma situação concorrente é necessário que processos."— Transcrição da apresentação:

1 Arquitetura 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.

2 Arquitetura de Sistemas Operacionais – Machado/Maia 2 Aplicações Concorrentes Sincronização e comunicação entre processos

3 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

4 Arquitetura de Sistemas Operacionais – Machado/Maia 4 Especificação de Concorrência em Programas Concorrência em programas

5 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

6 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

7 Arquitetura de Sistemas Operacionais – Machado/Maia 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

8 Arquitetura de Sistemas Operacionais – Machado/Maia 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

9 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

10 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

11 Arquitetura de Sistemas Operacionais – Machado/Maia 11 Soluções de Hardware 2. 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);

12 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

13 Arquitetura de Sistemas Operacionais – Machado/Maia 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.

14 Arquitetura de Sistemas Operacionais – Machado/Maia 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;

15 Arquitetura de Sistemas Operacionais – Machado/Maia 15 Semáforos 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

16 Arquitetura de Sistemas Operacionais – Machado/Maia 16 Monitores 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

17 Arquitetura de Sistemas Operacionais – Machado/Maia 17 Troca de Mensagens É 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

18 Arquitetura de Sistemas Operacionais – Machado/Maia 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

19 Arquitetura de Sistemas Operacionais – Machado/Maia 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)


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

Apresentações semelhantes


Anúncios Google