YDS is a scheduling algorithm for dynamic speed scaling processors which minimizes the total energy consumption. It was named after and developed by Yao et al.[1] There is both an online and an offline version of the algorithm.
Definitions:
The algorithm then works as follows:
While J ≠ { } {\displaystyle J\neq \{\}} Determine the time interval I {\displaystyle I} of maximum density Δ I {\displaystyle \Delta _{I}} . In I {\displaystyle I} process the jobs of S I {\displaystyle S_{I}} at speed Δ I {\displaystyle \Delta _{I}} according to EDF Set J := J ∖ S I {\displaystyle J:=J\setminus S_{I}} . Remove I {\displaystyle I} from the time horizon and update the release times and deadlines of unscheduled jobs accordingly. end While
In other terms it's a recursive algorithm that will follow these steps until all jobs are scheduled:
For any Job instance, the algorithm computes an optimal schedule minimizing the total energy consumption.[2]