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

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

Arquitetura de Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Sistemas Operacionais"— Transcrição da apresentação:

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

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

3 Aplicações Concorrentes
Sincronização e comunicação entre processos

4 Especificação de Concorrência em Programas

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

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

8 Exclusão Mútua Região crítica Protocolos de acesso BEGIN .
Entra_Regiao_Critica; Regiao_Critica; Sai_Regiao_Critica; END.

9 Exclusão Mútua Soluções de hardware Desabilitação de interrupções
BEGIN . Desabilita_Interrupcoes; Regiao_Critica; Habilita_Interrupcoes; END.

10 Exclusão Mútua Soluções de hardware Instrução Test-and-Set
Test-and-Set (X,Y);

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

12 Sincronização Condicional
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. 

13 Sincronização Condicional
PROCEDURE Produtor; BEGIN REPEAT Produz_Dado (Dado); WHILE (Cont = TamBuf) DO (* Nao faz nada *); Grava_Buffer (Dado, Cont); UNTIL False; END; PROCEDURE Consumidor; WHILE (Cont = 0) DO (* Nao faz nada *); Le_Buffer (Dado); Consome_Dado (Dado, Cont);

14 Semáforos Exclusão mútua utilizando semáforos
Sincronização condicional utilizando semáforos Problema dos Filósofos Problema do Barbeiro

15 Semáforos Semáforo binário na exclusão mútua

16 Monitores Estrutura do monitor

17 Monitores Estrutura do monitor com varáveis de condição

18 Troca de Mensagens Transmissão de mensagem

19 Troca de Mensagens Comunicação direta

20 Troca de Mensagens Comunicação indireta

21 Deadlock Espera circular

22 Deadlock Condições necessárias Mecanismos Exclusão mútua
Espera por recurso Não-preempção Espera circular Mecanismos Prevenção Detecção Correção


Carregar ppt "Arquitetura de Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google