algorithm - solicita - Tiempo promedio de espera en la programación de Round Robin
se solicita programar un algoritmo de planificación tipo round robin (2)
Has entendido mal lo que significa la fórmula por "tiempo anterior en la CPU". Esto realmente significa lo mismo que lo que usted llama "suma de todos los tiempos que gasta en el procesamiento". (Supongo que "hora anterior en la CPU" se supone que es la abreviatura de "tiempo total previamente utilizado en la CPU", donde "previamente" significa "antes del inicio final").
Aún necesita restar el tiempo de llegada porque obviamente el proceso no estaba esperando antes de que llegara. (En caso de que esto no esté claro: el "tiempo de llegada" es el momento en que el trabajo fue enviado al programador). En su ejemplo, el tiempo de llegada para todos los procesos es 0, por lo que no hace la diferencia allí, pero en el caso general, el tiempo de llegada debe tenerse en cuenta.
Editar: Si observa el ejemplo en la página web a la que se vinculó, el proceso P1 toma dos franjas horarias de cuatro unidades de tiempo antes de su inicio final, y su "tiempo anterior en la CPU" se calcula como 8, de acuerdo con la interpretación anterior.
El tiempo de espera se define como cuánto tiempo debe esperar cada proceso antes de que llegue el momento. En los algoritmos de programación tales como Shorted Job First y First Come First Serve, podemos encontrar ese tiempo de espera fácilmente cuando simplemente ponemos en cola los trabajos y vemos cuánto tiempo tuvo que esperar cada uno antes de recibir el servicio.
Cuando se trata de Round Robin o cualquier otro algoritmo preventivo, encontramos que los trabajos de ejecución prolongada pasan un poco de tiempo en la CPU, cuando son reemplazados y luego esperan a que sea ejecutado y en algún punto en su turno, se ejecuta hasta terminación. Quería encontrar la mejor manera de entender el "tiempo de espera" de los trabajos en dicho algoritmo de programación.
Encontré una fórmula que da tiempo de espera como:
Waiting Time = (Final Start Time - Previous Time in CPU - Arrival Time)
Pero no entiendo el razonamiento de esta fórmula. Por ejemplo, considere un trabajo A que tiene un tiempo de ráfaga de 30 unidades y round-robin sucede en cada 5 unidades. Hay dos trabajos más B (10) y C (15).
El orden en que estos serán atendidos sería:
0 A 5 B 10 C 15 A 20 B 25 C 30 A 35 C 40 A 45 A 50 A 55
Tiempo de espera para A = 40 - 5 - 0
- Elijo 40 porque, después de 40 A, nunca espera. Simplemente obtiene sus porciones de tiempo y sigue y sigue.
- Elija 5 porque A pasó en proceso previamente entre 30 y 35.
- 0 es la hora de inicio.
Bueno, tengo una duda en esta fórmula, ¿por qué no se tomó en cuenta 15 A 20
? Intuitivamente, no logro entender cómo nos está haciendo esperar a A, cuando solo contamos la penúltima ejecución y luego restamos la hora de llegada.
Según yo, el tiempo de espera para A debería ser:
- Hora final de inicio - (suma de todas las veces que se gasta en el procesamiento).
Si esta fórmula es incorrecta, ¿por qué?
Por favor, ayuda a aclarar mi comprensión de este concepto.
Última espera
valor- (tiempo cuántico × (n-1))
Aquí n
denota el número de veces que un proceso llega al diagrama de Gantt.