YDS-algoritm


YDS är en schemaläggningsalgoritm för dynamiska hastighetsskalningsprocessorer som minimerar den totala energiförbrukningen. Den är uppkallad efter och utvecklad av Yao et al. Det finns både en online- och en offlineversion av algoritmen.

Offline-algoritm

Definitioner:

  • Det finns en uppsättning av n jobb , där varje jobb har en releasetid , deadline och en bearbetningsvolym .
  • är ett visst tidsintervall.
  • Vi har också , arbetsdensiteten i .
  • Och slutligen är uppsättningen av jobb som måste bearbetas i , det betyder jobb med .

Algoritmen fungerar då enligt följande:

 Medan  Bestäm tidsintervallet  för maximal densitet  . I   bearbetar jobben för  med hastighet  enligt  EDF  Set  . Ta bort   från tidshorisonten och uppdatera releasetiderna och deadlines för oplanerade jobb därefter. avsluta medan  

Med andra ord är det en rekursiv algoritm som kommer att följa dessa steg tills alla jobb är schemalagda:

  1. Beräkna alla intensiteter för alla möjliga kombinationer av intervall. Detta innebär att arbetsintensiteten beräknas för varje kombination av starttid och sluttid. För detta läggs tiderna för alla jobb vars ankomsttid och deadline ligger inom intervallet och divideras med intervalllängden. För att påskynda processen behöver endast kombinationer av ankomsttider och senare deadlines beaktas, eftersom tider utan ankomst av en process eller deadline kan krympas till ett mindre intervall med samma processer, vilket ökar intensiteten, och negativa intervall är ogiltiga. Därefter väljs det maximala intensitetsintervallet. I fallet med flera lika intensiva intervall kan ett väljas efter behag, eftersom intensiteter av icke-överlappande intervall inte påverkar varandra, och att ta bort en del av ett intervall kommer inte att ändra intensiteten på resten, eftersom processer tas bort proportionellt.
  2. Processerna inom det här intervallet är schemalagda med hjälp av Earliest Deadline First, vilket innebär att jobbet inom detta intervall vars deadline kommer snarast schemaläggs först, och så vidare. Jobben utförs med ovan beräknade intensitet för att passa alla jobb inom intervallet.
  3. Intervallet tas bort från tidslinjen, eftersom inga fler beräkningar kan schemaläggas här. För att förenkla ytterligare beräkningar räknas alla ankomsttider och deadlines för kvarvarande jobb om för att utelämna redan upptagna tider. Antag till exempel ett jobb med ankomsttid deadline och en arbetsbelastning och ett jobb med , och . Antag att föregående intervall var från tid till . För att utelämna detta intervall måste tiderna för och arbetsbelastningar är opåverkade, eftersom inget arbete har utförts för varken eller . förblir densamma, eftersom den inte påverkas av senare utelämnanden. måste dock ändras till , eftersom . Detta är den tid som jobb har kvar innan dess deadline. Ankomsttiden blir , som den skulle ha varit inom det borttagna intervallet. blir också , eftersom tiden kvar efter det borttagna intervallet är . Det är dock viktigt att komma ihåg de faktiska ankomst- och deadlinetiderna för senare sammansättning av schemat.
  4. Upprepa steg 1-3 tills alla jobb har schemalagts.
  5. Montera jobb till slutlig schemaläggning enligt deras tilldelade tidsintervall. Kom dock ihåg att ett intervall kan delas i två av ett annat intervall som beräknats tidigare.

För alla Job-instanser beräknar algoritmen ett optimalt schema som minimerar den totala energiförbrukningen.

Se även