From 9cda9f255e35a07c6df1bb3f57321cc4ebdf299a Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Thu, 1 Dec 2005 15:51:08 +0000 Subject: [PATCH 1/1] Fix doc3 --- doc/filosofos3.txt | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/doc/filosofos3.txt b/doc/filosofos3.txt index db14dd3..01f240e 100644 --- a/doc/filosofos3.txt +++ b/doc/filosofos3.txt @@ -1,21 +1,24 @@ -Implementación utilizando Monitores. +Implementación utilizando Monitores Cuando el programa inicia, crea la clase Palitos, que es la encargada de administrar los palitos para comer. Esta clase garantinza la exclusión mutua utilizando Monitores. -La clase Palitos se tiene dos métodos, uno para obtener un palito y otro para soltarlo. -Ambos métodos utilizan un monitor. Cuando algun comensal pide un palito el Monitor -espera que que esé libre en un loop y llamando a wait() y al obtener finalmente el -palito lo setea en TRUE para indicar que está en uso. +La clase Palitos se tiene dos métodos, uno para obtener los palitos que le corresponden +a cada comensal y otro para soltarlos. +Ambos métodos utilizan el concepto de monitor. Cuando algun comensal pide sus palitos, +queda a la espera de que estén libre en un loop y llamando a wait(), que lo hace dormir. +Cuando es despertado y puede finalmente tomar ambos palitos, los setea en TRUE para indicar +que está en uso. La llamada a wait() hace que otro hilo pueda ingresar a la sección crítica, +bloqueando al proceso que llamó al wait. -El método solarPalito no hace un loop con el wait, ya que no hay manera de que -dos procesos llamen el método para liberar el mismo palito. Primero libera -el palito (seteandolo en FALSE) y luego hace una llamada a notify() para que -se despierte un thread que esté esperando por un palito. +El método solarPalitos no hace un loop con el wait, ya que no hay manera de que +dos procesos llamen el método para liberar los mismo palitos. Primero libera +los palitos (seteandolos en FALSE) y luego hace una llamada a notify() para que +se despierte un thread que esté esperando. La lógica de los filosofos, representada por la clase del mismo nombre, es similar a las demás. Empiezan pensando y luego trata de obtener los palitos y cuando lo hace pasa a comer. En todas las acciones siempre se queda un tiempo aleatoreo. -El programa principal crea primero el monitor de palitos y luego los N folósofos +El programa principal crea primero el monitor de palitos y luego los N filósofos pasándole por parámetro que palitos tiene a su lado y el Monitor. -- 2.43.0