Sei sulla pagina 1di 1

Programa 15 Problema de los cinco l osofos de E.

Dikjstra
Objetivo: El alumno aprender a a sincronizar hilos para proteger un recurso compartido utilizando monitores. Desarrollo: Realice los apartados que se muestran en este documento.

El Problema de la cena de los l osofos

Cinco l osofos se sientan alrededor de una mesa redonda para comer un plato de deos. Cada l osofo cuenta con un tenedor a la izquierda de su plato, pero para comer los deos se necesitan usar dos tenedores, pudiendo tomar cada l osofo s olo el tenedor que est a a su izquierda y derecha. Si cualquier l osofo tiene hambre coge un tenedor pero si el otro tenedor est a ocupado, se queda con el tenedor en la mano esperando a que su vecino termine de comer para poder coger el otro tenedor. Los l osofos comer an durante un determinado tiempo y luego de comer se sentir an llenos. Un l osofo lleno no come, sino que piensa hasta que le de hambre de nuevo, entonces intentar a tomar ambos tenedores y comer. El problema consiste en encontrar un algoritmo que permita que los l osofos nunca se mueran de hambre. Este problema es expansible hasta para n l osofos. Por cada l osofo habr a un plato de deos (de suministro innito) y un tenedor a la izquierda de su plato.

Especicaciones del programa


El programa acepta 1 argumento por l nea de comandos: el tiempo de ejecuci on en segundos. Si el par ametro ingresado por l nea de comandos no es un n umero o est a fuera del intervalo, se despliega la ayuda. Si no se proporciona argumento por l nea de comandos, el programa solicitar a el tiempo de ejecuci on entre 1 y 10. Si el tiempo de ejecuci on est a fuera de ese intervalo, la ejecuci on termina. Los losofos piensan durante un tiempo aleatorio entre 1000 y 8000 milisegundos. Los losofos comen durante un tiempo aleatorio entre 1000 y 2000 milisegundos. El programa debe mostrar a la salida el tiempo y cada acci on que ejecuta un l osofo y por cuanto tiempo la realizar a. 500ms fil osofo 5 come por 2300ms 503ms fil osofo 3 intenta comer. 520ms fil osofo 3 come por 1500ms (Opcional para punto extra) El programa acepta como argumento el n umero de l osofos que se sentar an a la mesa, con un m nimo de cinco y un m aximo de diez. Toma tenedor derecho 520ms fil osofo 4 piensa por 5600ms

Desarrolle un programa en C# que resuelva el problema de los cinco l osofos.

P agina 1 de 1

Potrebbero piacerti anche