Diferentemente da desabilitação de interrupções, a solução de variáveis do tipo trava é baseada em software e não em hardware.

A ideia se fundamenta na criação de uma variável que é iniciada com o valor 0. Sempre que um processo tem a necessidade de adentrar em sua região crítica, ele verifica o estado atual da variável e:

A estratégia de bloqueio de variáveis tem uma grande falha. Imagine, por exemplo, que um determinado processo verificou o estado da variável e este estava definido como “0”. Só que no milésimo de segundo entre a verificação do valor da variável e a sua alteração para 1, um outro processo teve a necessidade de também adentrar em sua região crítica e também efetuou uma consulta a variável de controle, obtendo o valor 0.

Nesta situação, os dois processos acessariam as suas regiões críticas ao mesmo tempo.

Copyright © 2014 AIEC.