1er parcial 2019 - Problema 2

1er parcial 2019 - Problema 2

de Marcio Rivas Masullo -
Número de respuestas: 4

Buenas, 

Estaba haciendo el ejercicio 2 de este parcial, y no logro entender cual es el criterio utilizado para que el hilo de P1 que comienza ejecutando sea H1. En la letra, en ningún momento habla de la existencia de un algoritmo de desempate, y a mi entender, en t=0, P1H1 y P1H2 se encuentran empatados. El planificador a nivel de kernel es RR q=10ms y a nivel de usuario es RR q=5ms.

Lo mismo me pasa del t=15 al t=20. Por lo que dice la solución, al bloquearse H1, se bloquea H2 también. Por ende, estarían en igualdad de condiciones (empatados). ¿Por que se decide ejecutar el H2?

Si alguien me puede dar una mano, un éxito. 

Solucion propuesta.

En respuesta a Marcio Rivas Masullo

Re: 1er parcial 2019 - Problema 2

de Bruno Agustin Garcia Baldassari -
Hola, fijate que en la letra dice "En el instante de tiempo inicial (t=0) la cola de listos contiene P1, P2 y P3 (en este orden)." Yo entiendo que al tener una cola de listos, con un orden especifico, no hay nada que desempatar, el primer listo es el que se ejecuta. Pensalo como FIFO.

Que me confirme algún profe si estoy en lo correcto.
Exitos
En respuesta a Marcio Rivas Masullo

Re: 1er parcial 2019 - Problema 2

de Manuel Freire -
Hola,

Además del comentario de Bruno en general si no hay criterio de desempate se hace de forma arbitraria. Sin embargo el caso de t = 15 es distinto porque en realidad los hilos no se encuentran empatados. A nivel de núcleo, como bien decís, el proceso es un todo y se bloquea completamente pero a nivel de usuario (como se ve en el diagrama) solo se bloquea el hilo que corresponda (H1) pero H2 sigue listo aunque nunca recibirá la CPU porque su proceso (P1) nunca la recibirá al estar bloqueado a nivel de núcleo. Sin embargo luego de que se desbloquee P1H1 (y con eso P1) a nivel de usuarios la cola de listo queda P1H2->P1H1 y es por eso que luego se le asigna la CPU 2 a él en t=20.

Espero que aporte.

Saludos!