Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
FAIN-ESIS
UNIVERSIDAD:
FACULTAD
INGENIERA
ESCUELA
CURSO
ALGORITMOS PARALELOS
AO
SEGUNDO A
TEMA
04
DOCENTES
ALUMNO
CODIGO
2012-39098
TURNO
MAANA
HORA
7:00 am -9:00 am
TACNA PERU
2014
FAIN-ESIS
Informe de Laboratorio N4
I)
OBJETIVOS
II)
FUNDAMENTO TERICO
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
III)
FAIN-ESIS
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
El cdigo en pascal es
Figura 2
FAIN-ESIS
FAIN-ESIS
Haciendo unas pequeas modificaciones, sustituimos el bucle repeatforever 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
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).
FIGURA 5
FAIN-ESIS
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)
ii)
FIGURA 7
FIGURA 8
FAIN-ESIS
FIGURA 9
FIGURA 10
FAIN-ESIS
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.