sábado, 27 de septiembre de 2008

Enque consiste el algoritmo de variable de cerradura?

Este algoritmo utiliza un flag. Al entrar a la sección crítica se fija si es uno o cero si es cero lo pone en uno y entra a la sección crítica; si es uno espera hasta que valga cero. Antes de salir de la sección crítica iguala el flag a cero.
Repeat
If (flag = 0) then {
Flag:=1
Seccion crítica
Flag:=0
Seccion no crítica}
Until 0 = 1
Este algoritmo si embargo no resuelve el problema de la sección crítica porque si hubiera una interrupción justo después de comprobar el estado del flag y se accediera a la memoria compartida antes de cambiar el flag, otro proceso podría acceder a la memoria compartida, cambiar el flag a uno y habrían dos procesos accesando la memoria compartida.

No hay comentarios: