[Examen Julio 2017] [Problema2]

[Examen Julio 2017] [Problema2]

de Maria Paz Cuturi Grignola -
Número de respuestas: 2

Hola, 

Haciendo la parte c) de este ejercicio no entiendo por qué P1 se bloquea a los 55ms.

Estoy de acuerdo que a los 45ms ejecuta el primer wait y a los 50ms ejecuta el segundo. No entiendo por qué se bloquea hasta que P3 termina.

Según la letra, wait() espera por la finalización de un único hijo y al momento de ejecutar los 2 wait, P2 (su otro hijo) ya había terminado.

Creo que no termino de entender cómo funcionan exactamente los wait.

Alguien me lo podría aclarar?

En respuesta a Maria Paz Cuturi Grignola

Re: [Examen Julio 2017] [Problema2]

de Santiago Iturriaga -

Hola María:


Efectivamente lo que pasa es que estas interpretando la letra de una forma diferente. Cada invocación a la función wait() espera por la finalización de un único hijo (este es el funcionamiento clásico de la función wait de Unix). Es decir que un proceso que invoque 2 veces a wait(), esperará necesariamente por la finalización de 2 hijos diferentes. Por eso el primer wait() espera por P2 y el segundo por P3.


Saludos,

Santiago.