Programator de termen limită

Programatorul cu termen limită („scheduler on maturity” în franceză) este un programator de I / O pentru kernel-ul Linux scris de Jens Axboe .

Prezentare generală

Scopul programatorului cu termen limită este de a încerca să garanteze un timp de răspuns la o cerere. Acest lucru se realizează prin impunerea unui termen limită pentru fiecare operațiune de I / O pentru a evita o lipsă de resurse. Gestionează două cozi FIFO de termene în plus față de cozile de solicitare (una pentru citire, una pentru scriere). Cozile de scadență sunt sortate după data scadenței, în timp ce cozile de solicitare sunt sortate după numărul sectorului de pe discul de stocare.

Înainte de a procesa o solicitare, programatorul decide ce coadă să utilizeze. Cozile de citire au o prioritate mai mare, deoarece procesele așteaptă mai des operațiile de citire. Apoi, planificatorul verifică dacă prima cerere din linia de planificare a expirat și o procesează dacă este necesar. În caz contrar, programatorul procesează un grup de solicitări din lista aleasă. În ambele cazuri, programatorul procesează, de asemenea, un grup de solicitări în conformitate cu cea aleasă din listă. Acest lucru asigură cei mai buni timpi de răspuns la solicitări, în timp ce le grupați în funcție de sectoarele discurilor care trebuie atinse.

În mod implicit, cererile de citire au un termen limită de 500 de  milisecunde , iar cererile de scriere au 5  secunde .

Documentația kernel recomandă utilizarea acestui planificator pentru sistemele de baze de date , în special în cazul sistemelor de discuri de înaltă performanță sau utilizarea discurilor care acceptă tehnologia TCQ .

Setare

Fiecare coadă I / O are un set de setări de planificare asociate. Aceste setări controlează comportamentul planificatorului I / O. Aceste setări pot fi găsite în: presupunând că sysfs este montat pe . /sys/block/périphérique/queue/iosched/sys

Alte planificatoare I / O

Surse

Note

  1. Jens Axboe, acorduri de programare Deadline IO, 11 noiembrie 2002
  2. „  Linux IO Scheduler  ” (accesat la 10 august 2007 )