1 Problema de los Caníbales

  • Una tribu cena en comunidad una gran olla que contiene M misioneros cocinados.
  • Cuando un miembro de la tribu quiere comer, él mismo se sirve de la olla un misionero, a menos que esté vacía. Los miembros de la tribu se sirven de la olla de uno en uno.
  • Si la olla está vacía, el que va a cenar despierta al cocinero y se espera a que esté llena la olla.
  • Desarrollar el código de las acciones de los miembros de la tribu y el cocinero usando semáforos.

Usa las siguientes variables:

olla :
Entero que indica el número de misioneros en la olla. Estará inicializada a M.
mutex :
Mutex para proteger la exclusión mutua sobre la variable olla. Inicializado a 1.
espera :
Semáforo utilizado para hacer que el que va a cenar se detenga hasta que el cocinero llene la olla cuando está vacía. Inicializado a 0.
coci :
Semáforo inicializado a 0 y usado para que el cocinero no haga nada cuando la olla no está vacía.

2 Entrega

  • Se realiza en pracdlsi en las fechas allí indicadas. Puedes entregar tantas veces como quieras, solo se corrige la ultima entrega.

  • Los documentos que entregues que sean de texto (UTF-8 preferiblemente) o PDF, no emplees otros formatos.

  • Crea una carpeta llamada p6 y dentro de ella estarán el código y archivos de texto o PDF donde contestas a las preguntas. Esta carpeta la comprimes en un archivo llamado p6.tgz p.e. así usando el terminal:

    tar cfz p6.tgz p6