Algoritmo YDS
|
|
YDS es un algoritmo de programación dinámica velocidad escalar los procesadores que minimiza el consumo total de energía. Fue bautizada y desarrollado por Yao et al.[1] Hay una línea y una versión sin conexión del algoritmo.
Algoritmo offline
Definiciones:
- Hay un conjunto de trabajos n , donde cada trabajo tiene un tiempo de liberación , plazo y un volumen de procesamiento .
- es un cierto intervalo de tiempo.
- También tenemos , la densidad del trabajo en .
- Y por último es el conjunto de trabajos que deben ser procesados en , eso significa puestos de trabajo con .
El algoritmo funciona entonces como sigue:
-
Tiempo
-
Determinar el intervalo de tiempo de la densidad máxima .
-
En los trabajos de proceso a la velocidad Según EDF
-
Conjunto .
-
Quitar desde el horizonte temporal y actualización de los tiempos de liberación y los plazos de imprevisto empleos en consecuencia.
-
-
End While
En otros términos es un algoritmo recursivo que seguirá estos pasos hasta que todos los trabajos están programados:
- Calcular todas las intensidades de todas las posibles combinaciones de intervalos. Esto significa que para cada combinación de hora Inicio hora y al final se calcula la intensidad de trabajo. Para ello los tiempos de los puestos de trabajo cuya hora de llegada y fecha límite se encuentran dentro del intervalo son añadidos y divididos por la longitud del intervalo. Para acelerar el proceso, sólo las combinaciones de tiempos de llegada y plazos posteriores deben ser considerados, como tiempos sin la llegada de un proceso o el plazo pueden ser reducidos a un intervalo más pequeño con los mismos procesos, aumentando de intensidad, e intervalos negativos no son válidos. Entonces se selecciona el intervalo de intensidad máxima. En el caso de múltiples intervalos igualmente intensos, uno puede ser elegido en, como intensidades de intervalos no solapados no influyen mutuamente y la eliminación de una parte de un intervalo no se va a cambiar la intensidad del resto, como los procesos son removidos proporcionalmente.
- Los procesos dentro de este intervalo se programan utilizando primeros primero de plazo, lo que significa que el trabajo dentro de este intervalo cuyo plazo va a llegar lo más pronto posible está programado en primer lugar, y así sucesivamente. Los trabajos se ejecutan en la intensidad calculada anteriormente para caber todos los trabajos dentro del intervalo.
- El intervalo se retira de la línea de tiempo, como no hay cálculos pueden ser programados aquí. Para simplificar aún más los cálculos, se recalculan todos los horarios de llegada y los plazos de puestos restantes de omitir ya ocupado veces.
Por ejemplo, supongamos que un trabajo con hora de llegada , plazo y una carga de trabajo y un trabajo con , y . Asumir que el intervalo anterior era de tiempo Para . Para omitir este intervalo, los tiempos de y necesitan ser ajustadas; las cargas de trabajo se ven afectados, como no se ha hecho ningún trabajo para cualquiera o . sigue siendo el mismo, como tiene inafectado por omisiones más adelante. , sin embargo, necesita ser cambiado a , como . Este es el trabajo de tiempo ha dejado antes de su fecha límite. La hora de llegada se convierte en , pues habría sido dentro del intervalo quitado. también se convierte en , como el tiempo dejado tras el intervalo eliminado es . Sin embargo, es importante, para recordar los tiempos de llegada y fecha límite para el montaje posterior de la programación.
- Repita los pasos 1-3 hasta que todos los trabajos se han programado.
- Montar puestos de trabajo en programación final según los intervalos de tiempo asignado. Sin embargo, recuerda que un intervalo puede ser dividido en dos por otro intervalo calculado anteriormente.
Para cualquier instancia de trabajo, el algoritmo calcula un plan óptimo minimizando el consumo total de energía.[2]
Véase también
- EDF algoritmo
Referencias
- ^ F.F. Yao, A.J. Demers y S. Shenker. Un modelo de programación para energía reducida de CPU. Proc. 36 IEEE Symposium on Foundations of Computer Science, 374-382, 1995.
- ^ Susanne Albers, "Algoritmos para la escala de velocidad dinámico"