Vous êtes sur la page 1sur 11

Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN



















UNIVERSIDAD: JORGE BASADRE GROHMANN

FACULTAD : INGENIERA

ESCUELA : ACADMICO PROFESIONAL DE INGENIERA EN INFORMTICA Y
SISTEMAS

CURSO : ALGORITMOS PARALELOS

AO : SEGUNDO A

TEMA : ALGORITMOS DEKKER Y PETERSON

N : 04

DOCENTES : ING.HUGO BARRAZA VIZCARRA / ING. ANA CORI MORN

ALUMNO : JIMENEZ FLORES, VICTOR JUAN

CODIGO : 2012-39098

TURNO : MAANA

HORA : 7:00 am -9:00 am



TACNA PERU
2014

Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS
Informe de Laboratorio N4
I) OBJ ETIVOS

Conocer el funcionamiento de los algoritmos de Dekker y Perterson.
Analizar la forma en que los algoritmos de Dekker y Peterson superan el
problema de exclusin mutua.
Resolver un problema real, utilizando el algoritmo de Dekker y Peterson.

II) FUNDAMENTO TERICO
Un problema inherente a la programacin concurrente es la exclusin mutua y
su solucin, por tanto, se fueron dando versiones que poco a poco fueron
pulindose hasta pasar de simples intentos a solucionar la exclusin mutua para
2 procesos y luego para n procesos. As, a continuacin se muestran algoritmos
que satisfacen la solucin a dicho problema.
Algoritmo de Dekker
El problema de exclusin mutua entre 2 procesos, fue estudiado por Dijkstra a
principios de los aos 60 y estableci las condiciones de cualquier solucin
satisfactoria al problema. En 1965 Dijkstra present un algoritmo de exclusin
mutua para los procesos que dise el matemtico holands Dekker al que
denomin algoritmo de Dekker. (Palma Mendez, 2002)
En realidad, hubo 4 intentos antes de llegar al algoritmo original, los cuales son
detallados a continuacin:
Intento 1: Garantiza la exclusin mutua, pero su diseo hace que exista una
sincronizacin forzada, lo que hace que los procesos lentos atrasen a los
rpidos.
Intento 2: Existe una falta de exclusin y no se da una alternancia, lo que puede
generar un bucle infinito.
Intento 3: Se da un interbloqueo, adems no se garantiza la exclusin mutua.
Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS
Intento 4: Se puede dar el caso de que los procesos esperen un evento que no
suceder.
Algoritmo de Peterson
Combinando la idea de turnarse con la idea de variables de bloqueo y variables
de advertencia, un matemtico holands, T. Dekker, fue el primero en hallar una
solucin en software para el problema de la exclusin mutua que no requiere
alternancia estricta. En 1981, G.L. Peterson descubri una forma mucho ms
sencilla de lograr exclusin mutua, lo que volvi obsoleta la solucin de Dekker.
(Tanenbaum,2003)
Bsicamente, lo que se introduce es una variable adicional turno, la cual ser til
cuando se produzca un problema de peticin simultnea a la seccin crtica.
Algoritmo de Lamport
Los algoritmos anteriores slo se pueden ejecutar en un entorno centralizado
(con memoria comn) ya que usan variables globales que son modificadas por
los procesos. Los algoritmos adecuados para entornos distribuidos (sin memoria
comn) son aquellos que permiten que cualquier proceso pueda consultar todas
las variables comunes, pero slo pueda modifcar las suyas propias. (Palma
Mendez, 2002)
En s, lo que hace este algoritmo es dar solucin al problema de exclusin mutua
para n procesos, y se pueden dar en entornos distribuidos con un acceso slo
de lectura a la memoria de otro proceso.
Algoritmo de Hyman
Encontrar una solucin software al problema de la exclusin mutua ha sido un
desafo para los investigadores de la ciencia de la computacin desde los aos
60, conduciendo a muchas soluciones falsas. (Palma Mendez.2002)
El algoritmo de Hyman es una solucin errnea al problema de exclusin mutua,
pero clarifica lo que hay que hacer y se usa con fines educacionales.
Algoritmo de Eisenberg McGuire

Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS


III) PROCEDIMIENTO
Algoritmo de Dekker
Primeramente implementamos el algoritmo de Dekker. Para ello necesitamos el
pseudocdigo que est en la literatura de programacin concurrente.
La pizarra (C1) primer proceso debe inicializarse con el valor true y la pizarra
(C2) del segundo proceso debe inicializarse con el valor false. El valor de turno
debe inicializarse con 2

Figura 1











Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS



El cdigo en pascal es


























Figura 2



Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS
Haciendo unas pequeas modificaciones, sustituimos el bucle repeat-
forever por un for con el fin de contar el nmero de veces que se realiza
cada proceso. En pascal FC quedara de la siguiente manera:


FIGURA 3







Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS
Algoritmo de Peterson
El pseudocdigo del algoritmo es
FIGURA 4

Ambas pizarras deben inicializarse con valor false. El valor de turno no tiene
relevancia (puede inicializarse con 1 o 2).

El cdigo fuente el Pascal FC es el siguiente




















FIGURA 5
Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS
Haciendo las respectivas modificaciones, como en el caso anterior, para
que nos muestre el nmero de veces que se ejecuta el programa, aadimos
un contador y un bucle for.

FIGURA 6
Ejercicio Del Banco
Supongamos que un banco que tiene 20 cuentas, enumeradas del 1 al 20, y
cada cuenta tiene, inicialmente, S./100 de saldo. Por lo tanto el banco tiene 2000
soles. El banco realiza 2 operaciones
i) Contabiliza los saldos de todas las cuentas
ii) Traspasos de una cuenta a otra
La implementacin de este ejercicio en pascal FC quedara de la siguiente
manera usando el bucle for de i=1 hasta 25:
Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS

FIGURA 7








FIGURA 8
Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS

Implementacin usando Repeat Forever







FIGURA 9







FIGURA 10
Universidad Nacional Jorge Basadre Grohomann FAIN-ESIS

Para resolver el problema del banco, primero se procedi a usar un array que
guarde el saldo existente en cada cuenta, 2 variables que actualizen la
informacin de la cuenta inicial y la cuenta final a la cual se transferir un monto
y un total que almacena la suma de total de saldo de las cuentas. Adems, se
necesito de variables aleatorias que en Pascal FC son definidas mediante la
funcin RANDOM.


IV) CONCLUSIONES
Con la programacin de los algoritmos de Dekker y Peterson en pascal
FC, se clarific la funcin de cada parte del algoritmo, por lo que puede
ser base para generar nuevas ideas e ir mejorando o puliendo detalles
sobre los mismos.
Al momento de la programacin, naturalmente el algoritmo de Peterson
fue mucho ms fcil de implementar, y aunque ambos solucionen el
problema de exclusin mutua, el algoritmo de Peterson lo hace de una
manera ms ptima y sencilla.
Con el ejercicio del banco, se pudo clarificar an ms las funciones de los
algoritmos de Dekker y Peterson respectivamente, puesto que fue
aplicado a un problema real y al funcionar, se comprob su veracidad.

V) BIBLIOGRAFA
Mndez, J. T. (2003). Programaci Concurrente. Espaa : Parainfo.
Tanenbaum, A. S. (2003). Sistemas operativos modernos. Mexico:
Pearson Educacin.

Vous aimerez peut-être aussi