Cambio de prioridad en multilevel feedback queue

Cambio de prioridad en multilevel feedback queue

de Bruno Federico Bradach Garcia -
Número de respuestas: 4

Buenas! En un sistema con una planificacion basada en una cola de procesos listos con niveles de prioridad y retroalimentacion, con un criterio que si un proceso no uso la cpu en los ultimos 100ms, sube su prioridad.

Si un proceso está bloqueado por mas de 100ms, tiene que cambiar su prioridad estando bloqueado? o lo hace cuando pase a estar listo de nuevo?

Gracias!

En respuesta a Bruno Federico Bradach Garcia

Re: Cambio de prioridad en multilevel feedback queue

de Miguel Orlando Da Silva Maciel -

Pienso que el cambio de prioridade ocurre cuando el proceso pasa a listo. Si está bloqueado es porque está esperando alguna acción (por ejemplo, entrada/salida) y no está listo. Entonces, no participa de procesos prontos para ser ejecutados, así que el planificador no lo tendría en cuenta.

Cuando pase a listo, su prioridad cambia.

Que les parece?

Saludos.

Em 04/05/2016 20:35, "Mensajes EVA-FING" <noreply@fing.edu.uy> escreveu:
Imagen de Bruno Federico Bradach Garcia
Cambio de prioridad en multilevel feedback queue
de Bruno Federico Bradach Garcia - miércoles, 4 de mayo de 2016, 20:01
 

Buenas! En un sistema con una planificacion basada en una cola de procesos listos con niveles de prioridad y retroalimentacion, con un criterio que si un proceso no uso la cpu en los ultimos 100ms, sube su prioridad.

Si un proceso está bloqueado por mas de 100ms, tiene que cambiar su prioridad estando bloqueado? o lo hace cuando pase a estar listo de nuevo?

Gracias!


Puede responder al mensaje mediante email.

En respuesta a Bruno Federico Bradach Garcia

Re: Cambio de prioridad en multilevel feedback queue

de Martin Pacheco -

Segun la solucion del parcial al que te estas refiriendo. El cambio a la cola de alta prioridad se produce incluso cuando está bloqueado.
Si ves, en la soluciones indican que de los 120ms que pasa bloqueado, los primeros 100ms está bloqueado y en cola baja de prioridad (en realidad no está en la cola pero si se desbloqueara en ese marco de tiempo, iría a parar a esa cola) y a partir de los 100ms y hasta los 120ms sigue bloqueado pero en la cola de prioridad alta, y justamente luego va a esa cola y lo despachas eventualmente si gana en el algoritmo SJF.

Yo tuve la misma duda, si se empezaba a contar los 100ms a partir de que estaba listo o a partir de que perdia el CPU (porque por ejemplo, cuando te piden calcular el tiempo de espera de un proceso, justamente no contas el tiempo que estuviste bloqueado, porque es inevitable estar bloqueado ese tiempo y solo importa el "tiempo extra" que tuviste que esperar).

En respuesta a Martin Pacheco

Re: Cambio de prioridad en multilevel feedback queue

de Bruno Federico Bradach Garcia -

Yo pensé lo que dijo Miguel e hice el ejercicio así, pero después vi que en la solución cambian la prioridad cuando está bloqueado aunque no esté en la cola de procesos listos. Ahí me surgió la duda.

Yo empecé a contar los 100ms desde que deja la cpu, pero el cambio de prioridad lo hago cuando entra a la cola al despertarse.

Capaz que da lo mismo, al menos yo no le encuentro que cambie en algo.

Gracias!

En respuesta a Bruno Federico Bradach Garcia

Re: Cambio de prioridad en multilevel feedback queue

de Martin Pacheco -

En si no cambia nada porque el resultado es el mismo.

Y en realidad, "si le cambias la prioridad" estando bloqueado o cuando salga de estar bloqueado, va dar igual, porque lo unico que te importa a vos es que si pasó 100ms sin tener CPU (sin importar en que estado esté) cuando esté listo, lo tengas en la cola de alta prioridad.

Poniendose mas finos, como llevas control de que prioridad tiene? Tenes algo que guarda por algun lado el tiempo en el que dejó el cpu y te fijas si la diferencia con el tiempo actual es 100ms o mas?
Creo que como trabajamos un poco abstractos este tema, esos detalles no importan tanto, creo.