From: Ricardo Markiewicz Date: Thu, 1 Dec 2005 15:51:08 +0000 (+0000) Subject: Fix doc3 X-Git-Tag: darcs_import X-Git-Url: https://git.llucax.com/z.facultad/75.59/filosofos.git/commitdiff_plain/9cda9f255e35a07c6df1bb3f57321cc4ebdf299a Fix doc3 --- 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.