Algoritmo em Anel
Este algoritmo é o mais simples para garantir a exclusão mútua em um sistema distríbuido. Ele utiliza a topologia em Anel, onde cada processo P participante da computação precisa somente de um canal de comunicação com o processo seguinte. Deste modo, os processos formam um "laço" circular de comunicação, onde as mensagens são transmitidas de maneira unidirecional.
Seja P, um conjunto de processos Pi, com 0 ≤ i < n, onde n é o número de processos participantes da computação, cada processo Pi que deseja acessar a seção critica deve obter o token de acesso. Neste modelo o token fica sendo transmitido infinitamente de um processo para o outro no "laço". O processo pode acessar a seção crítica quando o token passar por ele. Ao acessar a seção crítica, a transmissão do token fica bloqueada no processo até ele terminar de acessá-la. Na imagem abaixo você consegue acompanhar quais componentes fazem parte deste algoritmo.
- Azul quando não deseja acessar a seção crítica.
- Verde quando deseja acessar a seção crítica.
- Laranja quando está acessando a seção crítica e o token está com sua movimentação bloqueada
Para o funcionamento do Algoritmo em Anel acompanhe a imagem abaixo. Os processos solicitam acesso á seção crítica aleatória enquanto o token é transmitido pelos canais de comunicação. Nela você consegue acompanhar todas as etapas do gerenciamento de token do algoritmo em anel. Aperte AVANÇAR para executa-lo iterativamente
A cada vez que apertar AVANÇAR o token será enviado para o processo seguinte. Neste modelo, não foi levado em consideração o tempo que o token permanece bloqueado no processo, pois a representação desse bloqueio não afetaria a dinâmica da animação. Logo, ao clicar em Avançar o algoritmo considera o momento onde o processo finaliza o acesso à seção crítica e libera o token para circular novamente.
No modelo seguinte, experimente modificar o algoritmo:
- Selecione um processo para solicitar acesso à seção crítica, ou cancelar o acesso.