Condição de Corrida - Resolvendo um problema de SO com Arduíno

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..
Resultado final da exclusão mutua pode ser vista acessando o Youtube clicando na imagem abaixo.

 Exclusão mutua com Arduíno

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.....


Não esqueça do like do video e de curtir nossa pagina no facebook no link abaixo:

Nenhum comentário:

Postar um comentário