Problema de Fisolofos, comunicacion entre procesos
En mi Clase de sistema operativo, nos dieron una tarea, es el tipico ejemplo de los filosofos, donde hay 5 filosofos, y solamante 4 tenedores. la idea es optimizar la comunicacion entre los procesos y optimizalos. Cada filoso puede comer siempre y cuando tenga 2 tenedores asi que por logica, como maximo pueden haber 2 filosos comiendo, y el resto pensando, meditando o espera, como quieran llamarle. Aqui hay ejemplo en C, que encontramos muy bueno. #include <pthread.h> #include <semaphore.h> #include <stdio.h> #define N 5 /*num. de filosofos*/ #define IZQ (i-1)%N /*vecino izquierdo de i*/ #define DER (i+1)%N /*vecino derecho de i*/ #define PENSANDO 0 #define CON_HAMBRE 1 #define COME 2 pthread_t filos[N]; /*hilos que representan a los filósofos*/ sem_t mutex ; /*semáforo para la sección crítica*/ sem_t s[N]; /*semáforos para los filósofos*/ int estado [N] ; /*estado actual de cada filósosfo*/ /* el filos...