Documentación



NOMBRE

Programa que implementa el Algoritmo de Peterson


DESCRIPCIÓN

Permite comprobar una de las soluciones propuestas para la
concurrencia de procesos.
El Proceso Padre y el Proceso Hijo comparten una zona de memoria,
por lo que tienen que ponerse de acuerdo para no coincidir en la
petición de la misma. El problema se resuelve por medio de
variables de cierre que indican la intencion del proceso de entrar
en su seccion critica, y una variable que establece el orden de
entrada. El ultimo que haya ejecutado sus instrucciones cede el
turno, esperando mientras el otro proceso quiera entrar a su
seccion critica y tenga el turno correspondiente.
El numero de iteracciones para los procesos se da como argumento
por linea de comandos, asi como el nombre del fichero de salida de
los resultados.



FICHEROS

Para el desarrollo correcto del programa, necesitamos el fichero
rshmem.c.
Por linea de comandos se pasara como argumento el nombre del
fichero de salida de los resultados.



BUGS

El uso de memoria alineada trae problemas si se le pasa a la variable
turno una direccion de memoria impar, ya que al definirla como puntero
a int, precisa multiplos de cuatro. El error se produce en el bus.


DEPENDENCIAS

crearMemoria(), eliminarMemoria, fork().


AUTORAS

Cristina Merino Caballero
Marta Rodríguez Manchón

3º Curso de Estadistica. Universidad de Valladolid





NOMBRE

void incrementa(int *mem, int k)

ENTRADA

mem -> Puntero a entero, direccion de la memoria compartida.
k -> Entero, incremento de la memoria.


FUNCIONAMIENTO

1. Asigna la direccion de la memoria compartida a un entero.
2. Incrementa el entero.
3. Devuelve la posicion de memoria incrementada.

Hace uso de TP, un retardo aleatorio que alarga el tiempo de los
calculos.


Volver a la presentación