ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Filosofos Comensales


Enviado por   •  17 de Octubre de 2013  •  270 Palabras (2 Páginas)  •  682 Visitas

Página 1 de 2

Elaborar una solución para el problema de los Filósofos comensales utilizando Regiones Críticas con OpenMP.

Condiciones del problema:

- Cinco filósofos.

- Mesa redonda con cinco platos.

- Cinco tenedores, cada uno entre los platos.

- Estados de los filósofos: Pensando, hambriento y comiendo.

- Para que un filósofo pueda comer necesita tomar los dos tenedores.

- Solo dos filósofos pueden estar comiendo al mismo tiempo.

- Evitar que algún filósofo se quede sin comer.

- Puede basarse en el programa de ejemplo que se encuentra en Link Sharing, dentro de esta plataforma. Este programa está incompleto y deberá complementarlo para que cumpla con los requierimientos.

Criterios de evaluación:

- Debe cumplir con los todos los requisitos establecidos.

- Individual.

- Fecha de entrega: 1 de octubre del 2013. Se revisará durante la clase.

#include "stdafx.h"

#include <omp.h>

#include <time.h>

#include <cstdlib>

#define N 5

#define LEFT (i-1)%N

#define RIGHT (i+1)%N

#define THINKING 0

#define HUNGRY 1

#define EATING 2

int state[N],x;

void verificarTenedores(int i){

if(i>0 && i<4)

{

if(state[i]==HUNGRY && state[i-1]!= EATING && state[i+1]!=EATING)

state[i]=EATING;

}

Else

if(i==0)

{

if(state[i]==HUNGRY && state[4]!= EATING && state[1]!=EATING

state[i]=EATING;

}

else

{

if(i==4)

if(state[i]==HUNGRY && state[3]!= EATING && state[0]!=EATING)

state[i]=EATING;

} }

void sleep(unsigned int mseconds)

{

clock_t goal = mseconds + clock();

while (goal > clock());

...

Descargar como (para miembros actualizados)  txt (2.7 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com