Duda sobre planificadores de procesos

Buenas,

Siento poner aquí el post, pero no sabia exactamente en qué subforo meterlo, y supuse que aquí sería el sitio dónde más gente podía echarme una mano. Al lio.

Tengo una duda sobre la planificación de procesos RR (Round Robin), supongamos que tenemos 4 procesos con las siguientes características:


Proceso Instante de llegada Tiempo CPU

P1                 0                      8
P2                 2                      4
P3                 5                      9
P4                12                     3


Según la planificación RR, con un cuanto de q=2, he hecho el paso a paso de los procesos. Primero P1 toma dos tiempos de CPU (t0 y t1), luego llega P2 y toma otros dos (t2 y t3), estando en la cola de preparados P1. Se vuelve a ejecutar dos veces P1 (t4 y t5). En t5 llega P3 y se inserta en la cola de preparados, junto a P2. Mi duda es: llegado este punto, ¿qué proceso entra en CPU? ¿P2 o P3? Tengo una gran confusión con eso y se me están atascando varios ejercicios por esa chorrada :P

Gracias de antemano, un saludo.
Creo que entraria P3 puesto que todavia no ha disfrutado de tiempo de CPU
Si no recuerdo mal los nuevos procesos van al final de la cola, o sea que supongo que debería entrar P2.

Un saludo.
Vaya vaya, está la cosa empatada :P
Supongo que P2 porque ya estaba esperando en la cola antes de que llegase el nuevo. Pero vamos, la cosa es tan básica que ya ni me acuerdo [+risas] a no ser que los nuevos tengan una especie de prioridad máxima tendría que ser P2.
Yo creo que P3 se quedaría en cola y que el proceso P2 entraría en CPU...

Pero lo dicho "creo", nadie puede afirmarlo? xD

PD: Putos algoritmos, ahora me has dejado rayado xD
Jaja eso está bien, hace pensar xD yo por intuición pensaba que era P2 el que entraba en CPU pero no lo tengo tan claro :S
Precisamente tengo examen el miércoles de Sistemas Operativos, y me entra planificación de CPU, así que, como lo tengo fresco, creo poder ayudar:

Contando que no hay ni prioridades ni operaciones de E/S:

P2 pasa a la cola de listos en t4. P3 entra en la cola de listos en t5. De modo que la solución es bien sencilla: el siguiente en ejecutarse sería P2, después P3.

Es decir: en t=6 se ejecuta P2; en t=8 se ejecuta P3; en t=10 se ejecuta P1...

Por cierto, un Quantum de 2 me parece bastante poco, pero bueno.

Un saludo.
El truco es dibujar la cola de listos en cada tiempo.

t0) listos: P1 <-- ejecuta (q1)
t1) listos: P1 <-- ejecuta (q2)
t2) listos: P1 P2 <-- ejecuta (q1)
t3) listos: P1 P2 <-- ejecuta (q2)
t4) listos: P2 P1 <-- ejecuta (q1)
t5) listos: P3 P2 P1 <-- ejecuta (q2)
t6) listos: P1 P3 P2 <-- ejecuta (q1)
.
.
.

Es decir, está claro que en t6 entra P2 si la secuencia es la anterior. Lo que no está tan claro es que en t3 entre P2 y no P1; depende de qué ocurra antes si la creación del proceso o la llamada al planificador. Dado que ambas cosas ocurren de forma asíncrona en un sistema operativo, o lo especifican, o la siguiente solución es, también, correcta:

t0) listos: P1 <-- ejecuta (q1)
t1) listos: P1 <-- ejecuta (q2)
t2) listos: P2 P1 <-- ejecuta (q1) [ejecuta P1 pues el planificador solo vió a P1 en la lista, P2 llegó tras ejecutarse este]
t3) listos: P2 P1 <-- ejecuta (q2)
t4) listos: P1 P2 <-- ejecuta (q1)
t5) listos: P3 P1 P2 <-- ejecuta (q2)
t6) listos: P2 P3 P1 <-- ejecuta (q1)
.
.
.

Como ves, en ninguno de los dos casos entra P3 puesto que cuando llega hay otro proceso esperando a ser ejecutado.

Por cierto, un quanta de 2 no es necesariamente pequeño... ¿por qué iba a serlo?

Saludos.
Gracias por las respuestas :)

Me suponia que sería P2 ya que es una cola de procesos preparados, y al aplicarle el algoritmo FIFO propio de las colas correspondería a P2, pero no lo tenía seguro.

Gracias de nuevo :)


P.D: En todos los ejercícios, el quantum mayor que hemos usado es de 5 tiempos.

Saludos.
P.D: En todos los ejercícios, el quantum mayor que hemos usado es de 5 tiempos.


Claro... sin saber a cuánto equivale una rodaja, es muy atrevido decir que 2 son muchos o pocos :)

Saludos.
Aún tengo pesadillas con algún que otro planificador xD
Hombre, yo lo decía porqué en un ejercicio con 26 tiempos, tener que parar cada 2 me parece mucho, no por nada más, pero supongo que metí la pata [+risas] .

Un saludo.
Esto a veces es difícil de ver... pero supón que t se mide en decenas de horas. Igual un quanto de 20 horas si parece algo más razonable :)

Este tipo de planificadores es típico en máquinas con ese tipo de carga.

Saludos.
13 respuestas