Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El Problema de La Cena de Los Filosofos
El Problema de La Cena de Los Filosofos
Sistemas Operativos
Informática 1
2
Inventar un ritual que permita comer a los Filósofos
3
Exclusión mutua es la capacidad de prohibir a los demás
procesos realizar una acción cuando un proceso haya
obtenido el permiso.
4
Interbloqueo o deadlock es un Bloqueo permanente de un conjunto
de procesos que compiten por los recursos del sistema o bien se
comunican unos con otros)
En este caso todos los filósofos están hambrientos al mismo tiempo,
todos se sientan, todos toman el tenedor a su izquierda y todos
intentar tomar el otro tenedor que no estará.
P1: Proceso 1
P2: Proceso 2
R1: Recurso 1
R2: Recurso 2
Llega un punto en el que P1
ha adquirido el recurso R1 y
el proceso P2 ha adquirido el
recurso R2 y cada proceso
necesita el otro recurso
5
Es una situación similar al interbloqueo pero las causas son
diferentes.
6
Monitores:
Distinguir entre los tres estados en los que podría estar un
filósofo, Pensando, hambriento y comiendo
El programa utiliza un vector de semáforos, uno por filósofo, de forma que los
filósofos hambrientos puedan bloquearse si los tenedores necesarios están
ocupados. Observe que cada proceso ejecuta el procedimiento filósofo como
programa principal, pero los demás procedimientos, coger_tenedores,
dejar_tenedores y prueba, son procedimientos ordinarios y no procesos
separados.
7
Monitores:
Distinguir entre los tres estados en los que podría estar un filósofo, Pensando,
hambriento y comiendo
8
Turnos cíclicos: 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
9
Se trata de un problema de acceso a
un objeto compartido a la vez por
parte de dos tipos de procesos: los
escritores (modifican el contenido del
objeto) y los lectores (no modifican el
objeto).
10
El acceso al objeto
Exclusión mutua
Sincronización
11
Establecer prioridades de acceso a los datos
Prioridad escritores
Prioridad lectores
12
•Un lector sólo debe esperar si un escritor ya
ha obtenido permiso para escribir
Utilización de semáforos:
•El semáforo escritores para respetar la exclusión mutua: Mientras que un escritor
está accediendo a los datos compartidos, ningún otro escritor y ningún lector podrá
acceder.
El proceso lector también usa el semáforo escritores para respetar la exclusión mutua.
Sin embargo, para que se permitan varios lectores, hace falta que, cuando no haya
ninguno, el primer lector que lo intente tenga que esperar en semáforo escritores .
Cuando ya hay al menos un lector, los lectores posteriores no necesitan esperar antes
de entrar. La variable global contarlectores se utiliza para mantener el número de
lectores y el semáforo x se utiliza para asegurar que contarlectores se actualiza
correctamente.
13
•Si un escritor está esperando para acceder
al objeto, ningún lector debe empezar a leer
•Los escritores están sujetos a inanición: Se debe garantizar no permitir acceder a los datos a ningún
nuevo lector una vez que, al menos, un escritor haya declarado su deseo de escribir.
Para los escritores, se añaden los siguientes semáforos y variables a los ya definidos:
Un semáforo semáforo lectores que inhibe todas las lecturas mientras haya al menos un escritor que
desee acceder a los datos.
Para los lectores, se necesita un semáforo adicional. No debe permitirse que se construya una
cola grande sobre semáforo lectores, pues los escritores no serían capaces de saltarla. Por tanto,
sólo se permite a un lector ponerse en cola en semáforo lectores y todos los demás lectores deben
ponerse en cola en un semáforo z inmediatamente antes de esperar en semáforo lectores.
14
Sólo lectores en el sistema • Activar semaforo escritores
• Sin colas
Sólo escritores en el • Activar semaforo escritores y Semaforo lectores
sistema • Los escritores se encolan en semaforo escritores
Lectores y escritores con un • Semaforo escritores activado por un lector
lector primero • Semaforo lectores activado por un escritor
• Todos los escritores se ponen en cola en semaforo escritores
• Un lector se pone en cola en Semaforo lectores
• Los otros lectores se ponen en cola en z
15
El problema de la cena de los filósofos es útil para modelar
procesos que compiten por el acceso exclusivo a un número
limitado de recursos, como una unidad de cinta u otro
dispositivo de E/S.
16
Stallings, William. Sistemas Operativos. Prentice Hall, 2da Edición, 1997
17
18