UFMG - Pós-graduação em Ciência da
Computação -
Programação Paralela
A seguir: A Solução Higiênica: Condições
Acima: The Drinking Philosophers Problem[#!Drinking!#]
Anterior: A Solução Higiênica: Preliminares
- R1
- Requisitando um garfo f:
hungry, reqf(f),  |
| send request token for fork f; |
| reqf(f) := false |
- R2
- Entregando um garfo f:
, reqf(f), dirty(f)  |
| send fork f; |
| dirty(f) := false; |
| fork(f) := false |
- R3
- Recebendo um request token por f:
receive(ReqToken(f))  |
| reqf(f) := true |
- R4
- Recebendo um garfo f:
receive(fork(f))  |
| fork(f) := true |
- R5
- Começando a comer:
hungry, all forks  |
| hungry := false; |
| eating := true; |
| dirty(f) := true for all f |
- R6
- Acabando de comer:
eating  |
| eating := false;
thinking := true; |
Osvaldo Carvalho