Uma condição de corrida (Race condition) é uma falha num sistema ou processo, que pode ocorrer quando dois ou mais processo acessam um recurso compartilhado de maneira concorrente. Quando temos dois processos acessando um recurso compartilhado de maneira concorrente, o resultado final vai depender de qual processo executa o recurso primeiro. Conforme podemos visualizar no vídeo abaixo, a condição de corrida ocasiona um comportamento não-determinístico.
Para evitar o problema descrito no vídeo acima devemos definir as regiões críticas do processo e implementar uma forma de exclusão mútua. Com base no problema apresentado no vídeo, a figura 1 mostra um circuito onde o Led irá simular a região de exclusão mutua e os botões simularão dois processos que podem ligar e desligar o Led. Neste circuito, somente o botão que ligou o Led tem permissão para desligar o Led.
Figura 1. Circuito simulando Exclusão mútua usando Led e botões.. |
Para solucionar esse problema foi usado uma variável de bloqueio que controlará o acesso a região critica. Se quiser maiores informações, deixei uma mensagem aqui no blog.....
Nenhum comentário:
Postar um comentário