Algoritmo de Peterson
O algoritmo de Peterson é um algoritmo de programação concorrente para exclusão mútua, que permite a dois ou mais processos ou subprocessos compartilharem um recurso sem conflitos, utilizando apenas memória compartilhada para a comunicação. Ele foi formulado por Gary L. Peterson em 1981.[1] Embora a formulação original de Peterson funcionasse apenas com dois processos, o algoritmo pode ser estendido para mais processos.[2]
O algoritmo
//flag[2] é booleana; e turn é um inteiro flag[0] = 0; flag[1] = 0; turn; | |
P0: flag[0] = 1; turn = 1; while (flag[1] == 1 && turn == 1) { // ocupado, espere } // parte crítica ... // fim da parte crítica flag[0] = 0; | P1: flag[1] = 1; turn = 0; while (flag[0] == 1 && turn == 0) { // ocupado, espere } // parte crítica ... // fim da parte crítica flag[1] = 0; |
Notas e referências
Portal das tecnologias de informação