Вы находитесь на странице: 1из 6

Gmez Paola, Lindao Lorena, Barzola Katherin3, Pullupaxi Mario, Reyes Washington 5

Facultad de Sistemas y Telecomunicaciones Universidad Estatal Pennsula de Santa Elena


La Libertad Ecuador
paogomez73@hotmail.com, lorena.lindao@hotmail.es, katita_barzola@hotmail.com3,
mario93_leo@hotmail.com4, Washington_5_@hotmail.com5
dquirumbay@upse.edu.ec

Sistemas Operativos

Algoritmo de PETERSON

Resumen
Esta investigacin contiene los conceptos de concurrencia, seccin critica, exclusin mutua,
interbloqueo, inanicin. el cual facilitara la comprensin y el uso del algoritmo de Peterson
como una optimizacin de algoritmo de Dekker, su cdigo y sus aplicaciones mediante un
ejercicio propuesto.

I Introduccin

3. Ejecuta Dejar_SC(), permitiendo


que entre uno de los procesos en

Algoritmo de Peterson

espera.

Segn (Aranda Joaquin, Cando D. Mara,De


la Cruz Jess,Dormido Sebastian, Maoso

Interbloqueo.- Considera dos procesos y

Carolina) Peterson (1981) proporciona una

dos recursos. Supn que cada proceso

posible estrategia.

En esta solucin se

necesita acceder a ambos recursos para

introduce una variable adicional, que

llevar a cabo una parte de su funcin. Cada

denominaremos turno, que solamente

proceso est esperando uno de los dos

resultar til cuando se produzca un

recursos. Ninguno liberar el recurso que

problema de peticin simultnea de acceso

posee hasta que adquiera el otro y realice

a la seccin crtica.

su tarea.

II Desarrollo

Inanicin.- Supn tres procesos que

Seccin crtica

acceden peridicamente a un recurso.


Considera que P1 posee el recurso y que P2

Segn

(Escuela

Universitaria

de

Informtica(Segovia)) Cada proceso tiene


un segmento de cdigo llamado seccin

y P3 estn esperando. Cuando P1 haya


ejecutado su seccin crtica tanto P2 como
P3 podrn solicitar el recurso.

crtica.
Segn (Aranda Joaquin, Cando D. Mara,De
No est permitido que ms de un proceso
estn simultneamente en su seccin
crtica.
Modelo de seccin crtica

la Cruz Jess,Dormido Sebastian, Maoso


Carolina) Un protocolo rige la forma de
entrar y salir de la seccin crtica.
Si solo uno de los procesos intenta acceder

Entrar_SC (esta_SC) /* Solicitud de ejecutar


esta_SC */
/* cdigo de esta_SC */
Dejar_SC (esta_SC) /* Otro proceso puede

a la seccin crtica lo podr hacer sin

ejecutar esta_SC */

pondr a

Fig. 1 Modelo de seccin critica

ningn problema. Sin embargo, si ambos


intentan entrar a la vez el valor de turno se
y

pero solo un valor de ellos

permanecer al escribirse sobre el otro,


permitiendo el acceso de un proceso a su

Es decir, cuando un proceso quiere entrar a


la seccin crtica:
1. Ejecuta Entrar_SC (), y si la seccin
crtica est ocupada el proceso
espera.
2. Ejecuta la seccin crtica.

seccin crtica.
El algoritmo permite resolver el problema
de la exclusin mutua y garantiza que
ambos

procesos

usaran

de

forma

consecutiva el recurso en el caso de que lo

soliciten a la vez y se impedir el cierre del


otro proceso.

Si, por ejemplo,

Si un proceso desea entrar

ha

en la seccin crtica, debe

entrado en su seccin critica bloqueando el

activar su seal y puede

acceso a

que tenga que espera a

, este entrar una vez que ha

finalizado aquel, ya que cuando

sale de

que llegue su turno.

su regin crtica desactiva su indicador,


permitiendo el acceso a

sale de su seccin crtica


ejecucin,

; si una vez que

proceso se encuentra esperando

no est en

en el while, entonces la seal y el

deber permanecer en

espera hasta que

turno del otro proceso estn

haya entrado y

activadas.

desactive su indicador. De esta manera se


evita que

Impide el interbloqueo ya que si un

El proceso que est

esperando entrar en su seccin

pueda quedar relegado por

crtica cuando la seal o el turno el

en el uso el recurso, es decir ambos gozan

otro se desactive.

de la misma prioridad en la utilizacin del


recurso.

Segn (Vallejo F. David,Gonzales M. Carlos,


Albusac J. Javier, 2014 ) Se aplica a los
procesos que van alternando la ejecucin

Proceso 0

while(cierto){
seal[0] = cierto;
turno = 1;
while (seal[1]
&& turno==1);
/*esperar*/
/*seccin
critica*/
seal[0] = falso;
..
}

Proceso 1

while(cierto){
seal[1] = cierto;
turno = 0;
while (seal[0] && turno==0);
/*esperar*/
/*seccin critica*/
seal[1] = falso;
.
}

restantes. Su solucin consiste en que los


procesos comparten tanto el array flag,
que determina los procesos que estn
listos para acceder a la seccin crtica,
como la variable turn, que sirve para
determinar el proceso que acceder a su
seccin crtica. Para entrar en la seccin
crtica, el proceso pi asigna true a flag [ ] y
luego asigna a turn el valor , de manera

Figura 2. Algoritmo de Peterson

de sus respectivas secciones crticas y

que si el proceso

desea entrar en su

Ms simple que el algoritmo de

seccin crtica, entonces puede hacerlo. Si

Dekker,

los dos procesos intentan acceder al mismo

garantiza

la

exclusin

mutua:

tiempo, a la variable turn se le asignarn


Cada proceso

tiene

su

los valores y (o viceversa) en un espacio

turno para entrar en la seccin

de

crtica.

prevalecer una de las asignaciones (la otra

tiempo

muy

corto,

pero

solo

se sobrescribir). Este valor determinar


que proceso acceder a la seccin crtica.

EJERCICIO DE EXCLUSIN MUTUA CON


ALGORITMO DE PETERSON
1. Existen 2 procedimientos llamados

do {

//SECCION DE ENTRADA
flag[i] true;
turn = j;
while (flag[1] && turn == j; //no hacer
nada.
// SECCIN CRTICA.

2. Ambos procedimientos deben intercalar


su ejecucin, ejecutndose una vez en cada
turno, excepto cuando se encuentre en su
seccin crtica en cuyo caso la accin del
procedimiento en seccin crtica deber
ejecutarse con exclusividad.

//...

3. Cada ejecucin de
tiene como
objetivo incrementar en una unidad y
mostrar en pantalla el valor de la variable
actualizada.

//SECCIN DE SALIDA
flag[i] = false;
// SECCIN RESTANTE.
}while (1);

4. Cada ejecucin de
tiene como
objetivo incrementar en dos unidades y
mostrar en pantalla el valor de la variable
actualizada.

Figura 3. Seccin crtica

Demostracin de que si
seccin crtica, entonces
suya.

est en su
no est en la

1. en SC
(premisa)
2. en SC flag[1] = true y (flag[2] = false o turn!=2)
(premisa)
3. flag [1] = true y (flag[2] = false o turn! = 2)
(MP 1.2)
4. flag [2] = false o turn! = 2 (A o B)
(EC 2)
Demostrando A
5. flag [2] = false

(premisa)

6. flag [2] = false en SC

(premisa)

7. en SR ( no SC)

(MP 5,6)

Demostrando B

Figura 4. Seccin crtica de los procesos

5. La seccin crtica de dura mientras el


valor de la variable esta entre 4 y 7. El
finaliza cuando la variable alcanza el
valor de 10.
6. La seccin crtica de
dura mientras el
valor de la variable esta entre 6 y 12. El
finaliza cuando la variable alcanza el
valor de 16.
7. En caso de que un procedimiento
termine antes que el otro, el que an no ha
terminado debe seguirse ejecutando hasta
su finalizacin.

el proceso no dar paso a los que

Secuencia
de
ejecucin

Procedimiento
ejecutndose

Valor
P1

P1

P2

P1

P2

P1

P2

P2

P2

10

Valor
P2
Observaciones

P2

12

10

P1

12

11

P1

12

12

P1

12

vienen atrs.

Los procesos con alta prioridad


sern tomados en cuenta ms que
los de baja prioridad as que debe
estar pendiente de ello, si necesita
utilizar

Inicia seccin
crtica de P2

un

proceso

de

baja

prioridad justo en un momento


determinado, y est ejecutndose
Finaliza
seccin crtica
de P2
Inicia seccin
crtica de P1

un proceso de alta y no sabe qu


tiempo acabara puede terminar la
tarea y as darle paso al que

13

P1

12

14

P2

14

15

P1

14

16

P2

16

17

P1

16

18

P1

10

16

necesita.
Finaliza
seccin crtica
de P1

Biografa Edsger Dijkstra Wybe

Finaliza P2

Finaliza P1

Figura 5. Secuencia de ejecucin


(Morales Miguel, 2012) Edsger Dijkstra
Wybe naci en mayo de 1930 en

III Conclusiones
En conclusin el algoritmo de Peterson es
un algoritmo de programacin concurrente
para exclusin mutua que nos permiten
realizar uno, dos o ms procesos de
ejecucin

tambin

compartir

recursos

de

nos

permiten

ejecucin

sin

conflictos, este algoritmo de Peterson es


una simplificacin del algoritmo de Dekker.
IV Recomendaciones

Tener en cuenta el tiempo de


espera, ya que si se demora mucho

Rotterdam, Holanda. Fue hijo de un


qumico y una matemtica. Estudi Fsica y
Matemticas en la Universidad de Leyden,
terminando en 1951. Ms tarde un
doctorado en fsica terica en la misma
universidad en 1956, seguido de un PhD
en 1959 en la Universidad de Amsterdan.
En 1952 comenz a trabajar en un centro
matemtico de Amsterdan donde aprendi
a

programar,

siendo

programador en Holanda.

el

primer

En 1962 pas a ser profesor de la

Finalmente, en 1984 acept la ctedra

Universidad Tecnolgica de Eindhoven

Schlumberger en la Universidad de Texas

hasta 1984. En paralelo, desde 1973 a 1984

at Austin, hasta que se jubil en 1999.

fue

investigador

para

Burroughs.

Bibliografa
Aranda Joaquin, Cando D. Mara,De la Cruz Jess,Dormido Sebastian, Maoso Carolina. (s.f.).
Sistemas Operativos teora y problemas. Madrid: Editorial Sanz y Torres.
Escuela Universitaria de Informtica(Segovia). (s.f.). Recuperado el 11 de Noviembre de 2015,
de http://www.infor.uva.es/~fjgonzalez/apuntes/Tema6.pdf
Morales Miguel. (09 de 09 de 2012). Optiizacion entera y dinamica. Recuperado el 13 de 11 de
2015, de http://optimizacioneydmiguelmd.blogspot.com/2012/09/biografia-deedsger-dijkstra-wybe.html
Valle Jose,Gutierrez James. (2005). www.monografias.com. Obtenido de dedinicion
arquitectura cliente/servidor:
http://gye.ecomundo.edu.ec/doc_aula_virtual_ecotec/documentacion/investigacione
s/docentes_y_directivos/articulos/5743_TRECALDE_00212.pdf
Vallejo F. David,Gonzales M. Carlos, Albusac J. Javier. (2014 ). Programacin concurrente y
tiempo real (2da. Edicion). Madrid: Edlibrix.

Вам также может понравиться