Ugrás a tartalomhoz

shortest remaining time first

A Wikiszótárból, a nyitott szótárból


Főnév

shortest remaining time first (tsz. shortest remaining time firsts)

  1. (informatika) A Shortest Remaining Time First (SRTF) egy preemptív CPU ütemezési algoritmus, amely a Shortest Job First (SJF) algoritmus kiterjesztése. A SRTF a legkisebb hátralévő futási idővel rendelkező folyamatot futtatja, és ha új, rövidebb futási idejű folyamat érkezik, akkor a jelenlegi folyamatot megszakíthatja és a rövidebb idejű folyamatot indítja el.

Működési elv:

  • A rendszer mindig azt a folyamatot választja, amelyiknek a legkevesebb hátralévő végrehajtási ideje van.
  • Preemptív jellegű: Ha egy új folyamat érkezik, amelynek kisebb hátralévő futási ideje van, mint a jelenleg futó folyamatnak, akkor a jelenlegi folyamatot megszakítják, és az új folyamatot indítják el.

Hogyan működik a folyamatok ütemezése?

  1. A rendszer először a legkisebb hátralévő futási idővel rendelkező folyamatot választja ki.
  2. Ha egy új, rövidebb hátralévő futási idejű folyamat érkezik, akkor a rendszer megszakítja a jelenlegi folyamatot, és elindítja az új folyamatot.
  3. A folyamatok addig futnak, amíg be nem fejeződnek, vagy újabb, rövidebb idejű folyamatok nem érkeznek.

Előnyök:

  • Alacsony várakozási idő: A SRTF algoritmus minimalizálja az átlagos várakozási időt, mivel mindig a legkevesebb futási időt igénylő folyamatokat futtatja.
  • Jobb, mint a SJF: A SRTF a SJF-nél előnyösebb, mivel preemptív, így jobban képes alkalmazkodni a dinamikusan változó környezetekhez.

Hátrányok:

  • Starvation (Éhezés): Hosszú futási idejű folyamatok könnyen “éhezhetnek”, mivel folyamatosan előnyben részesítjük a rövidebb futási idejű új érkező folyamatokat.
  • Túl sok kontextusváltás: Mivel a rendszer gyakran megszakítja a futó folyamatokat, a kontextusváltások gyakorisága magas lehet, ami megnöveli a rendszer túlterheltségét és a végrehajtás költségeit.
  • Futási idők ismerete szükséges: Mint a SJF esetében, itt is szükség van a futási idők pontos ismeretére, ami nem mindig áll rendelkezésre.

Példa:

Tegyük fel, hogy három folyamatunk van, a következő hátralévő futási idők alapján:

Folyamat Hátralévő futási idő (S)
A 6
B 4
C 2
  1. Kezdetben a C folyamatot választja, mivel annak a legkevesebb hátralévő futási ideje van (2).
  2. Ha a C befejeződik, a B folyamat kerül futtatásra, mivel annak a hátralévő futási ideje 4, ami kevesebb, mint A (6).
  3. Végül A következik, mivel a hátralévő futási ideje 6.

Tehát az ütemezés sorrendje a következő lenne: C -> B -> A.

Összegzés:

A Shortest Remaining Time First (SRTF) algoritmus hatékony módja annak, hogy minimalizáljuk a várakozási időt a CPU ütemezésében, de figyelembe kell venni a starvation és a kontextusváltások gyakoriságát is. Mivel preemptív, dinamikusan alkalmazkodik a folyamatok futási idejéhez, azonban a hosszú ideig futó folyamatok esetében problémákat okozhat.