Fauna e Flora do do Rio dos Sinos Imagem:rio dos Sinos em Caraá Clicar com o mouse.
1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa [email protected].
Transcript of 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa [email protected].
![Page 1: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/1.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/2.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/3.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/4.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/5.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/6.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/7.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/8.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/9.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/10.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/11.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/12.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/13.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/14.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/15.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/16.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/17.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/18.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/19.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/20.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/21.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/22.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/23.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/24.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/25.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/26.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/27.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/28.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/29.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/30.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/31.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/32.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/33.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/34.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/35.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/36.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/37.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/38.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/39.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/40.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/41.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/42.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/43.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/44.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/45.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/46.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/47.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/48.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/49.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/50.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/51.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/52.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/53.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/54.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/55.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/56.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/57.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/58.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/59.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/60.jpg)
60
MonitoresMonitores- Hoare, 1974
![Page 61: 1 Aula 9 Concorrência Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/61.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/62.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/63.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/64.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/65.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/66.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/67.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/68.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/69.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/70.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/71.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/72.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/73.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/74.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/75.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/76.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/77.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/78.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/79.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/80.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/81.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/82.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/83.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/84.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/85.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022070311/552fc111497959413d8c6287/html5/thumbnails/86.jpg)
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