For faster navigation, this Iframe is preloading the Wikiwand page for YDS algorithm.

YDS algorithm

This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (July 2013) (Learn how and when to remove this message)

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.

Offline Algorithm

[edit]

Definitions:

  • There is a set of n Jobs , where each job has a release time , deadline and a processing volume .
  • is a certain time interval.
  • Also we have , the work density in .
  • And finally is the set of Jobs that must be processed in , that means Jobs with .

The algorithm then works as follows:

While 
  Determine the time interval  of maximum density .
  In  process the jobs of  at speed  according to EDF
  Set . 
  Remove  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:

  1. Calculate all intensities for all possible combinations of intervals. This means that for every start time and end time combination the intensity of work is calculated. For this the times of all jobs whose arrival time and deadline lie inside the interval are added and divided by the interval length. To speed up the process, only combinations of arrival times and later deadlines need to be considered, as times without arrival of a process or deadline can be shrunk to a smaller interval with the same processes, thus increasing intensity, and negative intervals are invalid. Then the maximum intensity interval is selected. In case of multiple equally intense intervals, one can be chosen at will, as intensities of non-overlapping intervals do not influence each other, and removing a part of an interval will not change the intensity of the rest, as processes are removed proportionally.
  2. The processes inside this interval are scheduled using Earliest Deadline First, meaning that the job inside this interval whose deadline will arrive soonest is scheduled first, and so on. The jobs are executed at the above calculated intensity to fit all jobs inside the interval.
  3. The interval is removed from the timeline, as no more calculations can be scheduled here. To simplify further calculations, all arrival times and deadlines of remaining jobs are recalculated to omit already occupied times. For example, assume a job with arrival time , deadline and a workload , and a job with , and . Assume the previous interval was from time to . To omit this interval the times of and need to be adjusted; workloads are unaffected, as no work has been done for either or . stays the same, as it's unaffected by later omissions. , however, needs to be changed to , as . This is the time job has left before its deadline. The arrival time becomes , as it would have been inside the removed interval. also becomes , as the time left after the removed interval is . It is important, however, to remember the actual arrival and deadline times for later assembly of the scheduling.
  4. Repeat steps 1-3 until all jobs have been scheduled.
  5. Assemble jobs into final scheduling according to their allotted time intervals. Remember, though, that an interval may be split in two by another interval calculated earlier.

For any Job instance, the algorithm computes an optimal schedule minimizing the total energy consumption.[2]

See also

[edit]

References

[edit]
  1. ^ F.F. Yao, A.J. Demers and S. Shenker. A scheduling model for reduced CPU energy. Proc. 36th IEEE Symposium on Foundations of Computer Science, 374–382, 1995.
  2. ^ Susanne Albers , "Algorithms for Dynamic Speed Scaling"
{{bottomLinkPreText}} {{bottomLinkText}}
YDS algorithm
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 ๐ŸŽ‰! the new version arrives on September 1st! Don't want to wait?