Filosofos cenando++

15
FILOSOFOS CENANDO SISTEMAS OPERATIVOS - 2015

Transcript of Filosofos cenando++

Page 1: Filosofos cenando++

FILOSOFOS CENANDOSISTEMAS OPERATIVOS - 2015

Page 2: Filosofos cenando++

CENA DE LOS FILÓSOFOS• 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.

Page 3: Filosofos cenando++

CENA DE LOS FILÓSOFOS• Cinco filósofos se sientan

alrededor de una mesa y pasan su vida cenando y pensando.

• Cada filósofo tiene un plato de fideos y un palillo a la izquierda de su plato.

Page 4: Filosofos cenando++

CENA DE LOS FILÓSOFOS• ACCIONES:

– Comer, necesitan 2 palillos.

– Pensar.

Page 5: Filosofos cenando++

HAY CONDICIONES????

Page 6: Filosofos cenando++

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: • El filósofo que termina de comer debe

ceder los palillos para su posterior utilización.

Page 7: Filosofos cenando++

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 poder hacerlo en algún momento finito, o morirán.

Page 8: Filosofos cenando++

CÓMO LO SOLUCIONAMOS?

Page 9: Filosofos cenando++

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.

Page 10: Filosofos cenando++

• POR TURNO CÍCLICO

ANÁLISIS DE LA PROPUESTA 1

• Garantiza exclusión mutua.

• No resuelve el problema de interbloqueo.

Page 11: Filosofos cenando++

• VARIOS TURNOS

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.

Page 12: Filosofos cenando++

• El portero del comedor

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.)

Page 13: Filosofos cenando++

• COLAS DE PALILLOS

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.

Page 14: Filosofos cenando++

• Resolución de conflictos en colas de tenedores

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.

Page 15: Filosofos cenando++