El documento describe el problema de los filósofos comensales, donde cinco filósofos comparten dos palillos cada uno para comer fideos de forma concurrente sin entrar en conflictos. Se proponen cinco soluciones al problema, analizándose cada una para ver si resuelve los problemas de exclusión mutua, interbloqueo e inanición. Finalmente, se pide implementar la solución en Java usando hilos.
Es un problema clásico de las ciencias de la computación propuesto por el científico Edsger Dijkstra para representar los inconvenientes que plantea la sincronización de procesos en un sistema operativo.
Objetivo: Caracterizar los mecanismos de sincronización y las necesidades que surgen en el interbloqueo, mediante la resolución de problemas de concurrencia, para llevar a cabo la instalación, configuración y mantenimiento de los sistemas operativos según requerimientos.
En esta presentación se presentan los siguientes temas:
Información, estado y formación de un proceso.
Concepto de hilo y su constitución.
Planificación de servicios POXIS.
Problemas clásicos en la comunicación de procesos.
Es un problema clásico de las ciencias de la computación propuesto por el científico Edsger Dijkstra para representar los inconvenientes que plantea la sincronización de procesos en un sistema operativo.
Objetivo: Caracterizar los mecanismos de sincronización y las necesidades que surgen en el interbloqueo, mediante la resolución de problemas de concurrencia, para llevar a cabo la instalación, configuración y mantenimiento de los sistemas operativos según requerimientos.
En esta presentación se presentan los siguientes temas:
Información, estado y formación de un proceso.
Concepto de hilo y su constitución.
Planificación de servicios POXIS.
Problemas clásicos en la comunicación de procesos.
Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales
Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales
2. CENA DE LOS FILÓSOFOS
Cinco filósofos se
sientan alrededor de
una mesa y pasan su
vida cenando y
pensando.
1
Cada filósofo tiene un
plato de fideos y un
palillo a la izquierda
de su plato.
3. CENA DE LOS FILÓSOFOS
ACCIONES:
Comer, necesitan 2
palillos.
Pensar.
1
4. CENA DE LOS FILÓSOFOS
Exclusión mutua:
Dos filósofos contiguos no
pueden comer a la vez.
Sincronización:
Si un filósofo está comiendo,
los contiguos no pueden
hacerlo hasta que termine.
Interbloqueo: 1
El filósofo que termina de
comer debe ceder los palillos
para su posterior utilización.
5. CENA DE LOS FILÓSOFOS
Interbloqueo (activo):
Si 2 filósofos contiguos van a
coger los palillos, uno de
ellos debe hacerlo.
Inanición:
Todos los filósofos que
quieran comer tienen que
1
poder hacerlo en algún
momento finito, o morirán.
6. CENA DE LOS FILÓSOFOS
¿COMO SOLUCIONAR EL PROBLEMA?
A continuación se muestran algunas propuestas
7. PROPUESTA 1
ANÁLISIS DE LA
PROPUESTA 1
•Garantiza exclusión mutua.
• No resuelve el problema
de interbloqueo.
8. PROPUESTA 2
ANÁLISIS DE LA
PROPUESTA 2
•Permitir como máximo que N-
1 filósofos actúen a la vez.
•Garantiza exclusión mutua.
•Resuelve problema de
interbloqueo.
9. PROPUESTA 3
ANÁLISIS DE LA
PROPUESTA 3
•Los filósofos cogen los
palillos sólo si ambos están
libres.
• Garantiza exclusión mutua.
• Resuelve problema de
interbloqueo.
• Basada en espera ocupada
(no eficiente.)
10. PROPUESTA 4
ANÁLISIS DE LA PROPUESTA
4
•Filósofo impar __ 1º Palillo
izquierdo y 2º Palillo derecho
•Filósofo par __ 1º Palillo
derecho y 2º Palillo izquierdo
•Garantiza exclusión mutua.
•Resuelve problema de
interbloqueo.
11. PROPUESTA 5
ANÁLISIS DE LA PROPUESTA
5
•Antes de coger su palillo
izquierdo, cada filósofo espera
un tiempo aleatorio.
• Garantiza exclusión mutua.
• Resuelve problema de
interbloqueo.
12. CENA DE LOS FILÓSOFOS
PRÁCTICA 3.
1. Explicar el porque del análisis de cada una de
las propuestas.
2. Realizar la implementación en java de los
filósofos comensales usando hilos.