Entradas

Mostrando las entradas etiquetadas como Universidad

Problema de Fisolofos, comunicacion entre procesos

Imagen
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...