Examen 201912 ejercicio 2

Examen 201912 ejercicio 2

de Martin Aram Ghazarian Agemian -
Número de respuestas: 2

Tengo varias dudas que me surgen al ver la solución:


1) CPU-BURST: se toma el tiempo de ejecución hasta el próximo bloqueo?

En el siguiente ejemplo, 

Sería 10 (porque luego se bloquea) o 15 (porque es el total de ejecución)?

P1A

ejecuta 10ms

bloquea 10ms

ejecuta 5ms


2) CPU-BURST en proceso con varios HILOS

En P1 que tiene P1A y P1B, al inicio es 25ms (10 de A + 15 de B)

o sólo 10ms de P1A?


3) Cuando dice que suma 5 a su prioridad cada 5ms

Toma el cpu-burst y suma 5 cada vez que entra en listo sin importar cuanto haya sumado antes si ejecutó?, es decir si está en listo 15 ms => suma 15 a su cpu-burst, pero si luego se ejecuta y pasa a la lista de ready nuevamente empieza sumando 5 nuevamente no? (no me queda claro por los índices que se pusieron en la solución)

Gracias

En respuesta a Martin Aram Ghazarian Agemian

Re: Examen 201912 ejercicio 2

de Juan Gianello Garcia Labandera -

Hola, la resolución de este ejercicio está en la presentación del Ejercicio 20 del tema Planificación, está mas explicado que en la solución del examen. 

Me parece que es así si, se toma hasta el próximo bloqueo. Por ejemplo en el primer punto de la solución:

• t=0ms tenemos que P1 tiene prioridad de 15 (5ms de P1A + 5ms de P1B + 5ms de P1A)...

Se toma de a 5ms de cada hilo porque a nivel de hilos se ejecuta con planificador RR de quantum 5ms, y como luego de que P1A ejecuta sus 10ms se bloquea, ya no se sigue contando el CPU-Burst. 

En el caso de P2, tiene CPU-Burst 10 ya que ejecuta eso antes de bloquearse.

Otra cosa es que el CPU-Burst te dicen que es a nivel de proceso, por eso no tiene sentido calcularlo para P1A o P1B por separado ya que son hilos.

Sobre el tercer punto, yo lo entiendo como que entra a la cola de listos tomando como prioridad el CPU-Burst actual, y luego por cada 5 ms que está en la cola, aumenta en 5 su prioridad.

Por ejemplo, en t=0 el P2 ingresa con una prioridad de 10. Luego en t=5 su prioridad es de 15 (10 inicial + 5 por los 5ms que estuvo esperando). Después entre t=10 y t=35 el proceso ejecuta, se bloquea, y vuelve a ejecutar 5ms, por lo que le queda pendiente ejecutar los últimos 5ms. Por eso es que a partir de t=35 pasa a la cola de listos pero ahora con prioridad 5 (su CPU-Burst actual). En t=40 su prioridad es de 10, ya que se sumó 5 a la prioridad anterior por haber estado en la cola de listos, y en t=45 lo mismo.


En respuesta a Juan Gianello Garcia Labandera

Re: Examen 201912 ejercicio 2

de Manuel Freire -

Buenas,

Lo que comentó Juan está bien en términos generales. Agrego algunos aportes al respecto.

El CPU-Burst se puede pensar (informalmente) como "el tiempo que va a ejecutar si no hay expropiación". Supongo que la confusión puede venir del laboratorio (en el que en algún caso se usaba tiempo total como método de desempate) pero el concepto "CPU-burst" es justamente eso, lo que va a ejecutar hasta bloquearse (o terminar).

Como norma general cuando los hilos son a nivel de usuario cualquier cosa que se pregunte (tiempo de retorno, espera, etc) será sobre el proceso e involucrará a todos los hilos. Esto es porque a nivel de kernel no hay diferencia de hilos y se ve como un solo proceso con los hilos intercalados según la planificación a nivel de usuario. Usando esta lógica se pueden razonar la mayoría de las preguntas de este estilo. Nada de lo que dije es aplicable cuando son hilos a nivel de kernel.

Para el último punto estaba explicado en la letra (cuando entra a la cola lo hace con la prioridad igual a su CPU-Burst y se le va sumando de a 5). La lógica detrás de esta prioridad es evitar la posposición indefinida ya que si siempre llegan procesos con Burst "cortos" nunca ejecutaría uno muy largo, en las diapositivas de planificación hay más al respecto.

Saludos!