filsofos Haba una vez cinco filsofos que vivan juntos. La vida de cada filsofo consista principalmente en pensar y comer y, tras aos de pensar, todos los filsofos se haban puesto de acuerdo en que la nica comida que contribua a sus esfuerzos era el arroz.
Los preparativos de la comida eran
simples: una mesa redonda en la que haba cinco platos de arroz, uno para cada filsofo, y cinco palillos. Un filsofo que quisiera comer ira a su lugar asignado en la mesa y, usando los dos palillos de cada lado del plato, se comera el arroz.
El problema es el siguiente: inventar un
ritual (algoritmo) que permita comer a los filsofos. El algoritmo debe satisfacer la exclusin mutua (dos filsofos no pueden emplear el mismo palillo a la vez), adems de evitar el interbloqueo y la inanicin (en este caso, este ultimo trmino tiene un significado literal adems del algortmico).
Una primera solucin al problema de la
cena de los filsofos es:
Este algoritmo sugiere una solucin por
medio de semforos. Cada filosofo toma primero el palillo de su izquierda, y despus el de su derecha. Cuando un filosofo termina de comer, devuelve los dos palillos a la mesa.
Esta solucin, desafortunadamente,
produce nterbloqueo: si todos los filsofos estn hambrientos al mismo tiempo, todos se sientan, todos toman el palillo de su izquierda y todos intentan tomar el otro palillo que no estar. Esta solucin es poco decorosa, pues todos los filsofos pasan hambre.
Para superar el riesgo de nterbloqueo se
podran adquirir 5 palillos adicionales (una solucin mas saludable), o ensear a los filsofos a comer arroz con un solo palillo. Su misin: proponer una modificacin a este algoritmo libre de interbloqueo e inanicin.
Resolucin: 1.- Cena de los
filsofos: Existen varios algoritmos que permiten reducir la probabilidad de ocurrencia de interbloqueo, y otros que la eliminan por completo. En todos los casos los palillos son representados con objetos de exclusin mutua.
En el primer tipo de algoritmo tenemos el
siguiente: Cada proceso (filosofo) toma dos palillos (wait del semforo), uno a la vez pero el orden de cual palillo toma primero (izquierdo o derecho) se determina de forma aleatoria dentro del proceso. De esta manera se reduce, mas no se elimina la posibilidad de interbloqueo.
Una variante del algoritmo anterior es
aquel donde todos los procesos esperan por los semforos en un orden especifico e igual para todos, salvo un proceso, donde el orden de peticin de los palillos (semforos) es el inverso.
De esta manera se evita el interbloqueo.
La solucin que se mostrara a continuacin corresponde a otro algoritmo donde se utiliza la instruccin wait de dos objetos simultneamente. Con este algoritmo se elimina por completo el problema de interbloqueo e inanicin por completo. La explicacin aparece dentro del mismo cdigo.
Dominio de la Autofagia:: ¡Sigue los secretos de curación de la dieta de autofagia que muchos hombres y mujeres han aplicado para prevenir el envejecimiento y la pérdida de peso con el fin de tener un cuerpo más saludable, con ayuno de agua y ayuno intermitente!