Upload
guerreropiter
View
225
Download
0
Embed Size (px)
Citation preview
7/24/2019 2 Algoritmo de Peterson.pptx
1/9
lgoritmode
eterson
*Mara Miroslava Valdez Pintor
*Antonio Eduardo de la Cruz Hernndez
7/24/2019 2 Algoritmo de Peterson.pptx
2/9
e
Una solucin posible es la proporcionada por
Peterson (1981). En esta solucin se
introduce una variable adicional, que
denominaremos turno, que solamente
resultar til cuando se produca unproblema de peticin simultnea de acceso a
la re!in cr"tica.
7/24/2019 2 Algoritmo de Peterson.pptx
3/9
Cada proceso tiene un turno para entrar en la seccin critica Si un proceso desea entrar, debe activar su seal y puede que
tenga que esperar a que llegue su turno
Cuando dos o mas procesos secuenciales en cooperacin ejecutan todos
ellos asncronamente y comparten datos comunes se produce el problema
de la seccin critica.
Un proceso productor genera informacin que es utiliada por un proceso
consumidor. !ara que los procesos productores y consumidores ejecuten
concurrentemente, tenemos que crear un conjunto de buffers que puedan
ser alimentados por el productor y vaciados por el consumidor.
"l consumidor tiene que esperar si todos los buffers se encuentran vacos,
y el productor tiene que esperar si todos los buffers est#n llenos.Una solucin simple al problema de la seccin critica nos la proporciona
!eterson. "sta solucin es b#sicamente una combinacin del $lgoritmo que
asocia cada proceso con su variable de cerradura y de una pequea
modificacin del $lgoritmo de $lternancia "stricta.
7/24/2019 2 Algoritmo de Peterson.pptx
4/9
!ermite comprobar una de las solucione
propuestas para la concurrencia de
procesos.
"l proceso !adre y el proceso %ijo
comparten una ona de memoria, porlo que tienen que ponerse de acuerdo
para no coincidir en la peticin de la
misma. "l problema se resuelve por
medio de variables de cierre que
indican la intencin del proceso deentrada en su seccin critica, y una
variable que establece el orden de
entrada. "l ultimo proceso que &aya
ejecutado sus instrucciones cede el
turno, esperando mientras el otro
proceso quiere entrar a su seccin
critica y tenga el turno correspondiente.
"l numero de iteraciones para los
procesos se da como argumento por
lnea de comandos, as como el nombre
del fic&ero de salida de los resultados.
7/24/2019 2 Algoritmo de Peterson.pptx
5/9
#enta$as%'"s aplicable a cualquier numero de procesos con memoria
compartida tanto del monoprocesador como de
multiprocesador.'"s simple y f#cil de verificar.
'!uede usarse para varias secciones criticas.
&esventa$as %'(a espera activa consume muc&o tiempo de procesador.
'!uede producirse inanicin cuando un proceso abandona la
seccin critica y &ay procesos esperando.
')nterbloqueo* procesos de baja prioridad contra procesos de
alta prioridad
7/24/2019 2 Algoritmo de Peterson.pptx
6/9
E'clusin utua% olucin de Peterson
module"+clusion-utua!
var flag/,flag0* booleanturno* integer
procedure bloqueo1var miflag, suflag* boolean suturno*integer2
be!in
miflag *3 true
turno *3 suturno *+ile suflag and 1turno 3 suturno2 do end
end bloqueo
procedure desbloqueo1var miflag* boolean2
begin miflag *3 falseend desbloqueo
7/24/2019 2 Algoritmo de Peterson.pptx
7/9
process !/
begin
loop
bloqueo1flag/,flag0,02 14Uso del recurso Seccin Crtica42
desbloqueo1flag/2
145esto del proceso42
end
end !/
process !0
be!in
loop
bloqueo1flag0,flag/,/2 14Uso del recurso Seccin Crtica42
desbloqueo1flag02
145esto del proceso42
endend !0
be!in 14"+clusion-utua!42
flag/ *3 6$(S"
flag0 *3 6$(S"
cobe!in
!/
!0
coend
end "+clusion-utua!.
7/24/2019 2 Algoritmo de Peterson.pptx
8/9
Si slo uno de los procesos intenta acceder a la seccin crtica lo
podr# &acer sin ning7n problema. Sin embargo, si ambos
intentan entrar a la ve el valor de turno se pondr# a / y 0 pero
slo un valor de ellos permanecer# al escribirse sobre el otro,permitiendo el acceso de un proceso a su regin crtica.
"l algoritmo permite resolver el problema de la e+clusin mutua y
garantia que ambos procesos usar#n de forma consecutiva el
recurso en el caso de que lo soliciten a la ve y se impedir# el
cierre del otro proceso. Si, por ejemplo, !/ &a entrado en su
seccin crtica bloqueando el acceso de !0 8ste entrar# una ve
&aya finaliado aqu8l, ya que cuando !/ sale de su regin crtica
desactiva su indicador, permitiendo el acceso de !0 si una ve
que !/ sale de su seccin crtica !0 no est# en ejecucin, !/deber# permanecer en espera &asta que !0 &aya entrado y &aya
desactivado su indicador. 9e esta manera se evita que !0 pueda
quedar relegado por !/ en el uso del recurso, es decir ambos
goan de la misma prioridad en el uso del recurso.
7/24/2019 2 Algoritmo de Peterson.pptx
9/9
Gracias por su
atencin!Alguna pregunta?