Duda Planificacion

Duda Planificacion

de Fernando Ramon Alonso Cuadrado -
Número de respuestas: 2

Hola buenas tardes, si tengo en un planificador round-robin con un tiempo de 30 y tengo 2 casos que me generan duda:


1) un proceso que hace un procesamiento de 20 un v de 5 y otro porcesamiento de 10, se come los 30 del round-robin (haceindo el 1er procesamiento y el V) o corta al procesar los primeros 20?


2) un proceso que hace un procesamiento de 30 un v de 5 y otro procesamiento de 10, luego de procesar los 30, al salir y volver a entrar procesa 5 y corta o procesa los 15)

Espero se haya entendido

Gracias

En respuesta a Fernando Ramon Alonso Cuadrado

Re: Duda Planificacion

de Federico Rivero -

Fernando:

Cómo estás?

Entiendo que ambas preguntas están asociadas a qué sucede al ejecutar un V de un semáforo. La operación V resulta en una system call, la cual puede o no despertar otro proceso. Si se ejecuta el V y ningún otro proceso es despertado, entonces no se volverá a llamar al scheduler y por tanto continuará ejecutando el mismo proceso que estaba ejecutando. Si por el contrario, la ejecución del V despierta a otro proceso, entonces el sistema operativo llamará al scheduler para ver a quién le corresponde ejecutar a continuación*. 

En ambos puntos que planteás, al proceso que está ejecutando le queda quantum aún luego de finalizado el V, por lo tanto, si el algoritmo es round robin puro, el proceso continuará ejecutando. Si por el contrario, el algoritmo es por prioridad, el scheduler es expropiativo, y el proceso que se despierta tiene prioridad mayor, en ese caso el proceso que invocó el V perdería la CPU.

Es decir:

1)

- Ejecuta 20t
- Ejecuta el V de 5t [Se despierta otro proceso, se invoca al scheduler, se mantiene el mismo proceso en la CPU pues le quedan 5t de quantum]

- Ejecutar 5t.

- Se realiza un cambio de contexto al siguiente proceso en la lista de procesos listos.

2)

- Ejecuta 30t

- Se realiza un cambio de contexto al siguiente proceso en la lista de procesos listos.

...

...

- Eventualmente el proceso recupera la CPU y ejecutar el V (5t), pero mantiene la CPU pues le quedan 25t y luego procesa los 10t finales.

Saludos,

       Federico

* Nota: si el SO tiene un algoritmo de planificación puramente round robin, podría tener sentido no realizar esta invocación al scheduler.