Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
1
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
2
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
espera durante un tiempo aleatorio e intenta de nuevo; en la práctica esta
solución funciona bien. Sin embargo, en algunas cuantas aplicaciones sería
preferible una solución que funcione siempre y que no pueda fallar debido a
una serie improbable de números aleatorios. Piense acerca del control de la
seguridad en una planta de energía nuclear.
Una mejora, que no tiene interbloqueo ni inanición es proteger las
cinco instrucciones que siguen de la llamada a pensar mediante un semáforo
binario. Antes de empezar a adquirir tenedores, un filósofo realizaría una
operación down en mutex. Después de regresar los tenedores, realizaría una
operación up en mutex. Desde un punto de vista teórico, esta solución es
adecuada. Desde un punto de vista práctico, tiene un error de rendimiento:
sólo puede haber un filósofo comiendo en cualquier instante. Con cinco
tenedores disponibles, deberíamos poder permitir que dos filósofos coman al
mismo tiempo.
La solución que se presenta en la figura 2 está libre de interbloqueos y
permite el máximo paralelismo para un número arbitrario de filósofos. Utiliza
un arreglo llamado estado para llevar el registro de si un filósofo está
comiendo, pensando o hambriento (tratando de adquirir tenedores). Un
filósofo sólo se puede mover al estado de comer si ningún vecino está
comiendo.
Los i vecinos del filósofo se definen mediante las macros IZQ y DER.
En otras palabras, si i es 2, IZQ es 1 y DER es 3. El programa utiliza un
arreglo de semáforos, uno por cada filósofo, de manera que los filósofos
hambrientos puedan bloquearse si los tenedores que necesitan están
ocupados. Observe que cada proceso ejecuta el procedimiento filosofo como
su código principal, pero los demás procedimientos (tomar_tenedores,
poner_tenedores y probar) son ordinarios y no procesos separados.
3
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
4
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
El problema de los lectores y escritores
5
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
suspendido hasta que no haya un lector presente. Si llega un nuevo lector,
por decir cada 2 segundos y cada lector requiere 5 segundos para hacer su
trabajo, el escritor nunca entrará.
6
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
7
Ingeniería Informática
Sistemas de Operación
Prof. Mayelin Coba UNIDAD III
Problemas de Comunicación entre procesos
punto tanto el cliente como el barbero están activos. Cuando el cliente libera
mutex, el barbero lo toma, efectúa sus labores y realiza el corte de pelo. Una
vez terminado el corte el cliente sale del procedimiento y deja la peluquería.
El barbero eta en un ciclo y trata de atender al siguiente cliente. Si hay uno
presente, realiza otro corte, de lo contrario se desactiva. Mientras el cliente
no está en un ciclo porque cada cliente recibe solo un corte.