2010-12-22 47 views
6

El tiempo de espera se define como el tiempo que cada proceso tiene que esperar antes de que llegue su porción de tiempo. En algoritmos de planificación como en corto de empleo En primer orden de llegada, podemos encontrar que el tiempo de espera fácilmente cuando acabamos de poner en cola los trabajos y ver el tiempo que cada uno tenía que esperar antes de que llegara al servicio técnico.Tiempo medio de espera en el Round Robin programar

Cuando se trata de Round Robin o cualquier otro algoritmo preventivo, encontramos que los trabajos de larga ejecución pasan un poco de tiempo en la CPU, cuando son apropiadamente y luego esperan a que sea ejecutado y en algún punto en su turno , se ejecuta hasta que se complete. Quería encontrar la mejor manera de entender el "tiempo de espera" de los trabajos en dicho algoritmo de programación.

encontré una formula que da el tiempo de espera como:

Waiting Time = (Final Start Time - Previous Time in CPU - Arrival Time) 

Pero no entiendo el razonamiento para esta fórmula. Por ej. 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 el que serán atendidos estos serían:

0 A 5 B 10 C 15 A 20 B 25 C 30 A 35 C 40 A 45 A 50 A 55 

El 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 el proceso anterior entre 30 y 35.
  • 0 es la hora de inicio.

Bueno, tengo una duda en esta fórmula, ¿por qué 15 A 20 no se ha tenido en cuenta? Intuitivamente, yo no puede conseguir cómo esto nos lleva a los tiempos de espera para A, cuando se nos acaba de dar cuenta de las penúltima ejecución solamente y luego restando el tiempo de llegada.

Según yo, el tiempo de espera para A debe ser:

  • Hora de inicio Final - (suma de todos los tiempos que pasan en el procesamiento).

Si esta fórmula está mal, ¿por qué es?

Por favor, ayúdenme a aclarar mi comprensión de este concepto.

+0

No es el tiempo de espera el tiempo de finalización, el tiempo de llegada, el tiempo que tardaría si se ejecutara solo. Es decir, el tiempo extra que se toma en comparación con la situación en la que es el único trabajo en el sistema. –

+0

@Keith, eso daría la respuesta correcta también. tmtowtdi como una fórmula simple. –

Respuesta

5

Usted ha entendido mal lo que significa que la fórmula de "tiempos antiguos de 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 la llegada tiempo porque el proceso obviamente 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 vinculada, el proceso P1 toma dos franjas horarias de cuatro unidades de tiempo cada una antes de su inicio final, y su "tiempo anterior en la CPU" se calcula como 8, coherente con la interpretación anterior.

+0

Gracias Marti B. Eso me lo aclara. –

0

Última esperando

de valor (× cuanto de tiempo (n-1))

Aquí n indica la no de veces que un proceso llega en el diagrama de Gantt.

+0

Por favor, agregue algunas aclaraciones a su publicación. – Rob

Cuestiones relacionadas