Solução de peterson + instrução tsl

1074 palavras 5 páginas
Solução de Peterson
Durante muitos anos, a solução do problema de exclusão mútua não foi descoberta. O primeiro a tentar uma solução foi Dekker, solução que não foi aplicável na prática por ser complicada e dispendiosa em termos de tempo de computação.
Em 1981, Peterson descobriu uma solução bem simples, a qual é apresentada no programa a seguir:
Procedure entra_regiao(processo:interger); begin outro := vez; interessados[processo]= TRUE; vez := processo; while (vez= processo and interessado[outro]) (*espera*) do; end; procedure deixa_regiao(processo:interger); begin interessado[processo]= FALSE; end; A solução consiste em fazer com que um processo, antes de entrar na região crítica execute a rotina entra_regiao com o seu número. Ao terminar a utilização da região crítica o processo executa deixa_regiao.
É interessante estudar o funcionamento desta solução, para os diversos casos possíveis de interação entre dois processos que executam entra_regiao antes de entrar na região crítica e deixa_regiao ao sair da mesma. Como um exemplo, supõe-se que os dois processos executam as chamadas de entra_regiao praticamente ao mesmo tempo. Neste caso, ambos indicarão o seu interesse colocando a respectiva entrada do vetor interessados em TRUE. Após isto, um dos processos deixa em vez o seu valor(pois altera esta variável por último) e, portanto habilita o outro processo a continuar, aguardando até que o outro processo indique que não mais está interessado, executando

Relacionados

  • Inibição de interrupções
    2027 palavras | 9 páginas