Algoritm de planificare EDF

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Cel mai devreme termen limită ( EDF ), în italiană înainte de cel mai apropiat termen , este un algoritm de planificare tipic sistemelor de operare în timp real . După cum sugerează și numele, programatorul selectează ca următor proces pentru a-l executa pe cel cu cea mai mică distanță de la termenul limită. EDF este un algoritm de prioritate dinamic , deoarece prioritatea atribuită proceselor se poate modifica la fiecare execuție a planificatorului și valoarea acestuia depinde numai de caracteristicile lor temporale (ora sosirii, termenul limită etc.) [1] .

Complexitatea algoritmului este în mod tradițional [2] , chiar dacă în literatura științifică este posibil să se găsească algoritmi care amortizează complexitatea a [3] .

Caracteristicile algoritmului

Definiția formală a algoritmului de planificare EDF poate fi scrisă ca [1] :

La fiecare moment t , jobul j este ales pentru a fi programat dacă expirarea acestuia este cea mai apropiată de timpul t .

Presupunând că fiecare proces pregătiți-vă la intervale de timp și că expirarea corespunde perioadei ( expirare implicită ), atunci este posibil să se calculeze analitic utilizarea sistemului ca:

unde este este cel mai rău timp de rulare. De sine , programul este admisibil.

Optimitatea EDF

EDF este un algoritm optim pe sistemele uniprocesor preventive : dacă nu există un program valid în EDF, nu va exista niciun alt algoritm care să îl poată găsi. [4]

Exemplu

Luați în considerare următoarele procese (presupuneți un termen implicit , adică echivalent cu perioada):

Proces Timpul de execuție Perioadă
P1 1 8
P2 2 5
P3 4 10

Planificatorul la momentul 0 va verifica distanța expirărilor proceselor, în acest caz prioritatea atribuită proceselor este :

Un posibil program al exemplului, presupunând absența preempțiunii

Notă

  1. ^ a b Sanjoy Baruah, Programarea sarcinilor în timp real: algoritmi și complexitate , Universitatea din Carolina de Nord la Chapel Hill.
  2. ^ Michael O'Boyle, Software încorporat - Lectura 6: Programare ( PDF ), la inf.ed.ac.uk. Adus la 23 noiembrie 2016 .
  3. ^ Jagbeer Singh, Un algoritm de reducere a complexității în timp a primului algoritm de planificare pentru primele termene în sistem în timp real , 2010.
  4. ^ Arezou Mohammadi, Selim G. Akl, Scheduling Algorithms for Real-Time Systems ( PDF ), School of Computing, Queen's University, 2005.