Está en la página 1de 9

UNIVERSIDAD NACIONAL

JORGE BASADRE GROHMANN

Algoritmo de Peterson
Docente: Mario Gauna Chino

Primeras aproximaciones a la solucin de los problemas de la


programacin concurrente

El A.D. resuelve el problema de la E.M. para dos


procesos pero con un programa complejo, difcil
se seguir y de probar sus correcciones. G.L.
Peterson descubri una forma mas sencilla y
elegante de resolver le mencionado problema
dando lugar al algoritmo de Peterson.
process Po
repeat
Co=quiereentrar;
turno=1;
while (C1=quiereentrar) and (turno=1) do
Seccin Critica
Co=restoproceso;
resto0
forever

process P1
repeat
C1=quiereentrar;
turno=0;
while (C0=quiereentrar) and (turno=0) do
Seccin Critica
C1=restoproceso;
resto1
forever

Primeras aproximaciones a la solucin de los problemas


de la programacin concurrente

Las V. compartidas por los procesos son las mismas


que el algoritmo anterior, cada proceso dispone su
propia variable, a travs de la cual indica su estado
con respecto a la seccin critica.
Cuando esta variable tiene el valor quiereentrar
significa que el proceso correspondiente esta
dentro o desea entrar en su seccin critica.
Cuando vale restoproceso el proceso no esta ni
quiere entrar en su seccin critica. Por otra parte
la variable turno resuelve conflictos de
simultaniedad.

C0=restoproceso, C1=restoproceso
Turno= 0 1 ( es indiferente)
Se verifica la Exclusin mutua: pues si Pi est en la
S.C. se cumple q Ci=quiereentrar por la primera
asignacion Pi no ha podido pasar del while mas extremo.
verifica la Condicin Proceso de Ejecucin: ya que
cuando un proceso quiere acceder a u seccin critica
entra si Pj no quiere entrar y si Pj quiere entrar entra
el primero que dio paso al otro a traves de la signacion
a la variable turno.
la espera es limitada: pues cuando Pi sale de la S.C.
pone su indicador Ci=restoproceso y Pj podra entrar.

Algoritmo Incorrecto de Hyman

Algoritmo Incorrecto de Hyman


Encontrar un solucin de software al
problema de exclusin mutua ha sido un
desafo

Las V. globales C0, C1 y turno deben


inicializarse de la Sgte. Manera.
C0 y C1 son inicializadas a restoproceso.
Turno es inicializada a 0 1 (es indiferente)

Algoritmo Incorrecto de Hyman


A primera vista el algoritmo parece
correcto, sin embargo se puede dar la sgte.
situacin.
1. turno = 0 P1 hace C1 0 quiereentrar y
encuentra C0 =restoproceso superando la
sentencia 1.3 y se para.
2. A continuacin Po hace C1=quiereentrar,
encuentra turno=0 y entra en la seccion
critica.
3. P1 hace turno=1 y entra tambin en la S.C.

También podría gustarte