1. UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN
DOCENCIA EN INFORMÁTICA
INTEGRANTES: ALEXANDRA CLAVIJO
DIEGO JACHO
JAQUELINE NUÑEZ
2. EL PROBLEMA DE LA CENA DE LOS FILÓSOFOS
En 1965, Dijkstra planteó y resolvió un problema de sincronización
llamado el problema de la cena de los filósofos.
Dijkstra estudió física teórica en la Universidad de Leiden. Trabajó
como investigador para Burroughs Corporation a principios de los
años 1970. En la Universidad de Texas en Austin, Estados
Unidos, ocupó el Schlumberger Centennial Chair in Computer
Sciences. Se retiró en 2000.
3. Entre sus contribuciones a la informática está la solución del problema
del camino más corto, también conocido como el algoritmo de
Dijkstra, la notación polaca inversa y el relacionado algoritmo shunting
yard, THE multiprogramming system, el algoritmo del banquero y la
construcción del semáforo para coordinar múltiples procesadores y
programas. Otro concepto debido a Dijkstra, en el campo de la
computación distribuida, es el de la auto-estabilización, una vía
alternativa para garantizar la confiabilidad del sistema. El algoritmo de
Dijkstra es usado en la ruta más corta primero (SPF) que es usado en
el protocolo de enrutamiento Open Shortest Path First (OSPF).
También se le debe la autoría de la expresión "Crisis del
software", aparecida en su libro The Humble Programmer y usada
ampliamente en la famosa reunión de la OTAN de 1968 sobre
desarrollo del software. Recibió el Premio Turing en 1972.
4. Cinco filósofos se sientan a la mesa. Cada uno tiene un plato de
espagueti. El espagueti es tan escurridizo que un filósofo necesita
dos tenedores para comerlo. Entre cada dos platos hay un
tenedor.
5. La vida de un filósofo consta de periodos alternados de comer y
pensar. Cuando un filósofo tiene hambre intenta obtener un
tenedor para su manos izquierda y otro para su mano
derecha, alzando uno a la vez y en cualquier orden. Si logra
obtener los dos tenedores, come un rato y después deja los
tenedores y continúa pensando.
6. Análisis.
Debe haber el máximo número de filósofos comiendo, para aprovechar
los tenedores, este caso sólo dos porque se necesitan dos tenedores
por filósofo, y sólo tenemos cinco.
Debe tenerse cuidado de que dos filósofos contiguos no lleguen al
mismo tiempo a comer, ya que se generaría un bloqueo.
7. Planteamiento de la solución.
Se tiene un arreglo para ver el estado del filósofo.
Un filósofo sólo puede comer si sus vecinos no lo hacen.
Se utilizan semáforos para indicar si los filósofos necesitan un tenedor y
éste no está disponible, por que se procede a bloquearlo.
Se toma en cuenta el vecino derecho e izquierdo de cada filósofo.
Se usan generadores aleatorios.
8. POR TURNO CÍCLICO
Se empieza por un filósofo, que si quiere puede comer y después pasa su
turno al de la derecha. Cada filósofo sólo puede comer en su turno. Problema:
si el número de filósofos es muy alto, uno puede morir de hambre antes de su
turno.
COLAS DE TENEDORES
Cuando un filósofo quiere comer se pone en la cola de los dos tenedores que
necesita. Cuando un tenedor está libre lo toma. Cuando toma los dos
tenedores, come y deja libre los tenedores.
Visto desde el otro lado, cada tenedor sólo puede tener dos filósofos en
cola, siempre los mismos.
9. VARIOS TURNOS
Se establecen varios turnos. Para hacerlo más claro supongamos
que cada filósofo que puede comer (es su turno) tiene una ficha
que después pasa a la derecha. Si por ejemplo hay 7 comensales
podemos poner 3 fichas en posiciones alternas (entre dos de las
fichas quedarían dos filósofos).
Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos
se pasan las fichas (y los turnos) a la derecha.
En base al tiempo que suelen tardar los filósofos en comer y en
volver a tener hambre, el tiempo de turno establecido puede
hacer que sea peor solución que la anterior. Si el tiempo de turno
se aproxima al tiempo medio que tarda un filósofo en comer esta
variante da muy buenos resultados. Si además el tiempo medio
de comer es similar al tiempo medio en volver a tener hambre la
solución se aproxima al óptimo.