86
1 Aula 9 Aula 9 Concorrência Concorrência Universidade do Vale do Rio dos S < Página da Disciplina > www.inf.unisinos.br/~barbosa www.inf.unisinos.br/~barbosa <Endereço do Professor > [email protected] [email protected]

1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa [email protected]

Embed Size (px)

Citation preview

Page 1: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

1

Aula 9Aula 9ConcorrênciaConcorrência

Universidade do Vale do Rio dos Sinos

< Página da Disciplina >

www.inf.unisinos.br/~barbosawww.inf.unisinos.br/~barbosa

<Endereço do Professor >

[email protected]@exatas.unisinos.br

Page 2: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

2

1 – Introdução

SumárioSumário

Page 3: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

3

1 – Introdução2 – Concorrência no nível de subprograma

SumárioSumário

Page 4: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

4

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos

SumárioSumário

Page 5: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

5

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores

SumárioSumário

Page 6: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

6

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens

SumárioSumário

Page 7: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

7

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA

SumárioSumário

Page 8: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

8

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA7 – Threads em Java

SumárioSumário

Page 9: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

9

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA7 – Threads em Java8 – Concorrência no nível de comando

SumárioSumário

Page 10: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

10

1 – Introdução - Tipos

SumárioSumário

Page 11: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

11

1 – Introdução - Tipos - Instrução - Comando - Unidade - Programa

SumárioSumário

Page 12: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

12

1 – Introdução - Tipos - Instrução - Comando - Unidade - Programa

SumárioSumário

Linguagens de Programação

Page 13: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

13

1 – Introdução - Tipos - Gênese da concorrência: Sistemas Operacionais

SumárioSumário

Page 14: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

14

1 – Introdução - Tipos - Gênese da concorrência: Sistemas Operacionais - Arquiteturas de Multiproc.: SIMD e MIMD

SumárioSumário

Page 15: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

15

1 – Introdução - Tipos - Gênese da concorrência: Sistemas Operacionais - Arquiteturas de Multiproc.: SIMD e MIMD - Categorias de concorrência

SumárioSumário

Page 16: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

16

1 – Introdução - Tipos - Gênese da concorrência: Sistemas Operacionais - Arquiteturas de Multiproc.: SIMD e MIMD - Categorias de concorrência

SumárioSumário

CooperaçãoCompetição

Page 17: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

17

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa

SumárioSumário

Page 18: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

18

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta

SumárioSumário

Page 19: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

19

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização

SumárioSumário

Page 20: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

20

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização

SumárioSumário

Page 21: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

21

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização

SumárioSumário

Cooperação

Competição

Page 22: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

22

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização

SumárioSumário

Cooperação

CompetiçãoConcorrência em Buffers

Page 23: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

23

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização

SumárioSumário

Cooperação

CompetiçãoConcorrência em Buffers

Exclusão Mútua

Page 24: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

24

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização - Mecanismos de sincronização

SumárioSumário

Page 25: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

25

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização - Mecanismos de sincronização

SumárioSumário

SemáforosMonitoresMensagens

Page 26: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

26

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização - Mecanismos de sincronização - Vivência / deadlock

SumárioSumário

Page 27: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

27

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização - Mecanismos de sincronização - Vivência / deadlock - Questões de projeto

SumárioSumário

Page 28: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

28

1 – Introdução2 – Concorrência no nível de subprograma - Tarefa - Tarefa disjunta - Sincronização - Tipos de sincronização - Mecanismos de sincronização - Vivência / deadlock - Questões de projeto

SumárioSumário

Page 29: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

29

Questões de projetoQuestões de projeto

- Como a sincronização de cooperação é fornecida ?

Page 30: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

30

Questões de projetoQuestões de projeto

- Como a sincronização de cooperação é fornecida ? - Como a sincronização de competição é fornecida ?

Page 31: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

31

Questões de projetoQuestões de projeto

- Como a sincronização de cooperação é fornecida ? - Como a sincronização de competição é fornecida ?

- Como e quando as tarefas iniciam e encerram a execução ?

Page 32: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

32

Questões de projetoQuestões de projeto

- Como a sincronização de cooperação é fornecida ? - Como a sincronização de competição é fornecida ?

- Como e quando as tarefas iniciam e encerram a execução ?

- As tarefas são estática ou dinamicamente criadas ?

Page 33: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

33

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos

SumárioSumário

Page 34: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

34

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos

SumárioSumário

Page 35: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

35

SemáforosSemáforos- Dijkstra, 1965 1) Variável inteira 2) Duas operações P e V 3) P e V são atômicas 4) P e V são suportadas pelo S. O.

Page 36: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

36

SemáforosSemáforos- Dijkstra, 1965 1) Variável inteira 2) Duas operações P e V 3) P e V são atômicas 4) P e V são suportadas pelo S. O. P se sem > 0 então sem = sem – 1 senão suspende o processo

Page 37: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

37

SemáforosSemáforos- Dijkstra, 1965 1) Variável inteira 2) Duas operações P e V 3) P e V são atômicas 4) P e V são suportadas pelo S. O. P V se sem > 0 então se um processo estiver suspenso sem = sem – 1 devido a P(sem) então senão reative-o suspende o processo senão sem = sem + 1

Page 38: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

38

SemáforosSemáforos- Sincronização de cooperação

Page 39: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

39

SemáforosSemáforos- Sincronização de cooperação

PRODUTOR CONSUMIDORBUFFER

Page 40: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

40

SemáforosSemáforos- Sincronização de cooperação

PRODUTOR CONSUMIDORBUFFER

var sem : semaforo = 0;

Page 41: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

41

SemáforosSemáforos- Sincronização de cooperação

PRODUTOR CONSUMIDORBUFFER

...

...

ARMAZENA DADO NO BUFFER;

V(sem);

...

...

var sem : semaforo = 0;

Page 42: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

42

SemáforosSemáforos- Sincronização de cooperação

PRODUTOR CONSUMIDORBUFFER

...

...

ARMAZENA DADO NO BUFFER;

V(sem);

...

...

...

...

P(sem);

CONSOME DADO DO BUFFER;

...

...

var sem : semaforo = 0;

Page 43: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

43

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

Page 44: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

44

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND

Page 45: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

45

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

Page 46: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

46

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

LOAD R,[X]INC RLOAD [X],R

Page 47: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

47

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

var sem : semaforo = 1;

Page 48: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

48

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

...

...

P(sem);

SEÇÃO CRÍTICA;

V(sem);

...

...

var sem : semaforo = 1;

Page 49: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

49

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

...

...

P(sem);

SEÇÃO CRÍTICA;

V(sem);

...

...

...

...

P(sem);

SEÇÃO CRÍTICA;

V(sem);

...

...

var sem : semaforo = 1;

Page 50: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

50

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

Page 51: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

51

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

sem : semaphore = 1;

Page 52: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

52

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

sem : semaphore = 1;

P(sem);

V(sem);

Page 53: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

53

SemáforosSemáforos- Sincronização de competição (exclusão mútua)

program exemplo;

var x : integer;

procedure soma; begin x := x + 1; end;

procedure diminui; begin x := x –1; end;

begin x := 0; soma; diminui; write(x); end.

PARBEGIN

PAREND Dijkstra

sem : semaphore = 1;

P(sem);

V(sem);

P(sem);

V(sem);

Page 54: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

54

Semáforos em SR (Semáforos em SR (Synchronizing ResourcesSynchronizing Resources))

Page 55: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

55

Semáforos em SR (Semáforos em SR (Synchronizing ResourcesSynchronizing Resources))

Gregory R. Andrews (década de 80)

Page 56: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

56

Semáforos em SR (Semáforos em SR (Synchronizing ResourcesSynchronizing Resources))

resource CS()

const N := 20

var x := 0

sem mutex := 1

process p (i := 1 to N) ... ... P(mutex) x := x + 1 V(mutex) ... ... end end

Page 57: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

57

Semáforos em SR (Semáforos em SR (Synchronizing ResourcesSynchronizing Resources))

resource CS()

const N := 20

var x := 0

sem mutex := 1

process p (i := 1 to N) ... ... P(mutex) x := x + 1 V(mutex) ... ... end end

Page 58: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

58

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores

SumárioSumário

Page 59: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

59

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores

SumárioSumário

Page 60: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

60

MonitoresMonitores- Hoare, 1974

Page 61: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

61

MonitoresMonitores- Hoare, 1974 1) “O semáforo é uma ferramenta de sincronização elegante para o programador ideal que jamais comete erro.” ( Per Hansen, 1973)

Page 62: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

62

MonitoresMonitores- Hoare, 1974 1) “O semáforo é uma ferramenta de sincronização elegante para o programador ideal que jamais comete erro.” ( Per Hansen, 1973) 2) Concurrent Pascal (Hansen, 1975)

Page 63: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

63

MonitoresMonitores- Hoare, 1974 1) “O semáforo é uma ferramenta de sincronização elegante para o programador ideal que jamais comete erro.” ( Per Hansen, 1973) 2) Concurrent Pascal (Hansen, 1975) 3) Baseado em TADs

Page 64: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

64

MonitoresMonitores- Hoare, 1974 1) “O semáforo é uma ferramenta de sincronização elegante para o programador ideal que jamais comete erro.” ( Per Hansen, 1973) 2) Concurrent Pascal (Hansen, 1975) 3) Baseado em TADs 4) Estrutura:

Variáveis Globais

Procedimentos

Código de inicialização

Page 65: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

65

MonitoresMonitores- Sincronização de competição (exclusão mútua)

program exemplo;

monitor regiao_critica; var x : integer; procedure soma; begin x := x + 1; end; procedure diminui; begin x := x –1; end; begin x := 0; end; begin parbegin; regiao_critica.soma; regiao_critica.diminui; parend; end.

Page 66: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

66

MonitoresMonitores- Sincronização de competição (exclusão mútua)

program exemplo;

monitor regiao_critica; var x : integer; procedure soma; begin x := x + 1; end; procedure diminui; begin x := x –1; end; begin x := 0; end; begin parbegin regiao_critica.soma; regiao_critica.diminui; parend end.

Page 67: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

67

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens

SumárioSumário

Page 68: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

68

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens

SumárioSumário

Page 69: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

69

MensagensMensagens- Hansen (1978) e Hoare (1978)

Page 70: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

70

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada

Page 71: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

71

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos?

Page 72: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

72

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos? 3) Mensagens síncronas e assíncronas

Page 73: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

73

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos? 3) Mensagens síncronas e assíncronas 4) Envio e recebimento devem possuir um modelo de sincronismo

Page 74: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

74

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos? 3) Mensagens síncronas e assíncronas 4) Envio e recebimento devem possuir um modelo de sincronismo 5) Linguagem deve suportar o modelo proposto

Page 75: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

75

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos? 3) Mensagens síncronas e assíncronas 4) Envio e recebimento devem possuir um modelo de sincronismo 5) Linguagem deve suportar o modelo proposto 6) Modelo do SR

Page 76: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

76

MensagensMensagens- Hansen (1978) e Hoare (1978) 1) Semáforos e monitores em memória compartilhada 2) Sistemas distribuídos? 3) Mensagens síncronas e assíncronas 4) Envio e recebimento devem possuir um modelo de sincronismo 5) Linguagem deve suportar o modelo proposto 6) Modelo do SR

Page 77: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

77

Modelo de Mensagens em SRModelo de Mensagens em SR

INVOCAÇÃO SERVIÇO EFEITO

call proc Chamada de procedimento call in rendezvous

send proc Criação de processo dinâmica

send in Passagem de mensagem assíncrona

Page 78: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

78

Modelo de Mensagens em SRModelo de Mensagens em SR

INVOCAÇÃO SERVIÇO EFEITO

call proc Chamada de procedimento

... ... CALL

... ...

PROC ... ... END

Page 79: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

79

Modelo de Mensagens em SRModelo de Mensagens em SR

INVOCAÇÃO SERVIÇO EFEITO

call proc Chamada de procedimento call in rendezvous

... ... CALL

... ...

... ... IN ... ... NI ... ...

Page 80: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

80

Modelo de Mensagens em SRModelo de Mensagens em SR

INVOCAÇÃO SERVIÇO EFEITO

call proc Chamada de procedimento call in rendezvous

send proc Criação de processo dinâmica

... ... SEND ... ... ... ... ...

PROC ... ... END

Page 81: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

81

Modelo de Mensagens em SRModelo de Mensagens em SR

INVOCAÇÃO SERVIÇO EFEITO

call proc Chamada de procedimento call in rendezvous

send proc Criação de processo dinâmica

send in Passagem de mensagem assíncrona ...

... SEND ... ... ... ... ...

... ... IN ... ... NI ... ...

Page 82: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

82

Exemplo de Exemplo de rendezvousrendezvous em SR em SRresource main() op f(x:int), g(u:real) returns v:real process p1 var y : int ... call f(y) ... end process p2 var w : real w := g(3.8) ... ... end process q var z : int in f(x) -> z := z + x [] g(u) returns v -> v := u * u – 9.3 ni ... ... endend

Page 83: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

83

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA

SumárioSumário

Page 84: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

84

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA7 – Threads em Java

SumárioSumário

Page 85: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

85

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA7 – Threads em Java - Classe Thread - Prioridades - Sincronização de competição (synchronized) - Sincronização de colaboração (Métodos wait/notify)

SumárioSumário

Page 86: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br

86

1 – Introdução2 – Concorrência no nível de subprograma3 – Semáforos4 – Monitores5 – Passagem de mensagens6 – Concorrência em ADA7 – Threads em Java8 – Concorrência no nível de comando

SumárioSumário