From: Ricardo Markiewicz Date: Mon, 28 Nov 2005 21:03:27 +0000 (+0000) Subject: Agrego doc sobre la implementacion con semaforos. X-Git-Tag: darcs_import~14 X-Git-Url: https://git.llucax.com/z.facultad/75.59/filosofos.git/commitdiff_plain/0351f7f5952be861f971b50132d3db00591a9cef Agrego doc sobre la implementacion con semaforos. --- diff --git a/doc/filosofos2.txt b/doc/filosofos2.txt new file mode 100644 index 0000000..3153d7c --- /dev/null +++ b/doc/filosofos2.txt @@ -0,0 +1,27 @@ +Imprementación utilizando semáforos. + +Para esta implementación del problema se utilizaron cinco semáforos, uno +por cada palito. + +Cuando el programa inicia, crea los semáforos e inicializa a los comensales +diciendoles que palito tiene a su derecha y cual a su izquierda, numerados de +0 a N-1, siendo N la cantidad de comensales. + +Cuando un nuevo Filosofo es creado, éste comienza pensando un tiempo, y se +mantiene así hasta poder obtener los palitos que le corresponde. Eso hace que +como mínimo esté pensando entre 2 y 5 segundos (es un rango aleatoreo) y se +quede en ese estado hasta poder empezar a comer. + +La obtensión de palitos no es simultánea, es decir, primero trata de agarrar +el que tiene a su derecha (esperando que sea liberado en caso de estar en uso) +y luego obtiene el izquierdo. Recién cuando tiene ambos palitos comienza a comer +un tiempo aleatoreo de tiempo, y luego libera los palitos. + +NOTA MIA : cuando agarro el palido derecho, y no puedo agarrar el izquierdo +se sigue considerando que estoy pensando ??? o estoy "en tramite de comer :)" +Eso no me queda claro si esta bien, pero calculo que si :P. ESTE TEXTO HAY +QUE BORRARLO DE ACA :) + +Cuando un comensal ha podido comer cantidad suficiente de veces (especificada +por parámetro cuando se ejecuta el programa) el thread "muerte" y el programa +finaliza cuando todos los filosofos han completado su cena.