A legrövidebb munka először (SJF): Megelőző, nem megelőző példa

Tartalomjegyzék:

Anonim

Mi a legrövidebb munka első ütemezése?

A Shortest Job First (SJF) egy olyan algoritmus, amelyben a legkisebb végrehajtási idővel rendelkező folyamatot választják ki a következő végrehajtásra. Ez az ütemezési módszer lehet megelőző vagy nem megelőző. Jelentősen lecsökkenti az egyéb végrehajtásra váró folyamatok átlagos várakozási idejét. Az SJF teljes formája a Legrövidebb munka.

Alapvetően kétféle SJF módszer létezik:

  • Nem megelőző SJF
  • Megelőző SJF

Ebben az operációs rendszer bemutatóban megtudhatja:

  • Mi a legrövidebb munka első ütemezése?
  • Az SJF ütemezés jellemzői
  • Nem megelőző SJF
  • Megelőző SJF
  • Az SJF előnyei
  • Az SJF hátrányai / hátrányai

Az SJF ütemezés jellemzői

  • Minden munkához a teljesítés időegységeként kapcsolódik.
  • Ez az algoritmus módszer hasznos a kötegelt típusú feldolgozásnál, ahol a munkák befejezésére való várakozás nem kritikus.
  • Javíthatja a folyamat áteresztőképességét azáltal, hogy gondoskodik arról, hogy először rövidebb feladatokat hajtsanak végre, és ezáltal rövid átfutási idővel bírjon.
  • Javítja a munka eredményét azáltal, hogy rövidebb állásokat kínál, amelyeket először végre kell hajtani, amelyek többnyire rövidebb átfutási idővel rendelkeznek.

Nem megelőző SJF

A nem megelőző ütemezésben, amint a CPU-ciklust kiosztják a folyamathoz, a folyamat addig tartja, amíg várakozási állapotba nem kerül vagy le nem áll.

Vegye figyelembe a következő öt folyamatot, amelyek mindegyikének megvan a maga egyedi sorozatfelvételi ideje és érkezési ideje.

Folyamat sor Burst time Érkezési idő
P1 6. 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4 4

0. lépés: A = 0 időpontban megérkezik a P4, és elindítja a végrehajtást.

1. lépés : Időben = 1 érkezik a P3 folyamat. De a P4 befejezéséhez még mindig 2 végrehajtási egységre van szükség. Folytatja a végrehajtást.

2. lépés: A = 2 időpontban megérkezik a P1 folyamat, és hozzáadódik a várakozási sorhoz. A P4 folytatja a végrehajtást.

3. lépés: A = 3 időpontban a P4 folyamat befejezi a végrehajtását. Összehasonlítjuk a P3 és a P1 törésidejét. A P1 folyamatot azért hajtják végre, mert annak tört ideje rövidebb a P3-hoz képest.

4. lépés: A = 4 időpontban megérkezik a P5 folyamat, és hozzáadódik a várakozási sorhoz. A P1 folytatja a végrehajtást.

5. lépés: Az időpontban = 5 a P2 folyamat megérkezik, és hozzáadódik a várakozási sorhoz. A P1 folytatja a végrehajtást.

6. lépés: A = 9 időpontban a P1 folyamat befejezi a végrehajtását. Összehasonlítjuk a P3, P5 és P2 törésidejét. A P2 folyamatot azért hajtják végre, mert annak tört ideje a legkisebb.

7. lépés: A = 10 időpontban P2 végrehajt, P3 és P5 pedig várakozási sorban van.

8. lépés: A 11 = időpontban a P2 folyamat befejezi a végrehajtását. Összehasonlítjuk a P3 és a P5 törésidejét. A P5 folyamatot azért hajtják végre, mert annak tört ideje alacsonyabb.

9. lépés: A = 15 időpontban a P5 folyamat befejezi a végrehajtását.

10. lépés: A = 23 időpontban a P3 folyamat befejezi a végrehajtását.

11. lépés) Számítsuk ki a fenti példa átlagos várakozási idejét.

Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Megelőző SJF

A megelőző SJF-ütemezésben a munkák kész állapotba kerülnek, amint jönnek. A legrövidebb sorozatidővel rendelkező folyamat megkezdi a végrehajtást. Ha még rövidebb sorozatidővel rendelkező folyamat is megérkezik, az aktuális folyamat eltávolításra kerül, vagy előbbre kerül a végrehajtás, és a rövidebb feladat CPU-ciklust kap.

Vegye figyelembe a következő öt folyamatot:

Folyamat sor Burst time Érkezési idő
P1 6. 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4 4

0. lépés: A = 0 időpontban megérkezik a P4, és elindítja a végrehajtást.

Folyamat sor Burst time Érkezési idő
P1 6. 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4 4

1. lépés : Időben = 1 érkezik a P3 folyamat. De a P4 rövidebb sorozatidővel rendelkezik. Folytatja a végrehajtást.

2. lépés: A 2-es időpontban a P1 folyamat = 6-os sorozatidővel érkezik. A sorozatidő meghaladja a P4-esét. Ezért a P4 folytatja a végrehajtást.

3. lépés: A = 3 időpontban a P4 folyamat befejezi a végrehajtását. Összehasonlítjuk a P3 és a P1 törésidejét. A P1 folyamatot azért hajtják végre, mert annak tört ideje alacsonyabb.

4. lépés: A = 4 időpontban megérkezik a P5 folyamat. Összehasonlítjuk a P3, P5 és P1 törésidejét. A P5 folyamatot azért hajtják végre, mert annak sorozatideje a legalacsonyabb. A P1 folyamat meg van előzve.

Folyamat sor Burst time Érkezési idő
P1 6-ból 5 maradt 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4 4

5. lépés: 5-ös időpontban megérkezik a P2 folyamat. A P1, P2, P3 és P5 törésidejét összehasonlítjuk. A P2 folyamatot azért hajtják végre, mert annak tört ideje legkevesebb. A P5 folyamat meg van előzve.

Folyamat sor Burst time Érkezési idő
P1 6-ból 5 maradt 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4-ből 3 maradt 4

6. lépés: A = 2 időpontban a P2 végrehajtja.

7. lépés) A = 2 időpontban a P2 befejezi a végrehajtását. Összehasonlítjuk a P1, P3 és P5 törésidejét. A P5 folyamatot azért hajtják végre, mert annak tört ideje rövidebb.

Folyamat sor Burst time Érkezési idő
P1 6-ból 5 maradt 2
P2 2 5.
P3 8. 1
P4 3 0
P5 4-ből 3 maradt 4

8. lépés: A = 5 időpontban a P5 befejezi a végrehajtását. Összehasonlítjuk a P1 és P3 törésidejét. A P1 folyamatot azért hajtják végre, mert annak tört ideje kevesebb.

9. lépés) A = 15 időpontban a P1 befejezi a végrehajtását. A P3 az egyetlen folyamat maradt. Megkezdi a végrehajtást.

10. lépés: A = 23 időpontban a P3 befejezi a végrehajtását.

11. lépés) Számítsuk ki a fenti példa átlagos várakozási idejét.

Wait timeP4= 0-0=0P1= (3-2) + 6 =7P2= 5-5 = 0P5= 4-4+2 =2P3= 15-1 = 14
Average Waiting Time = 0+7+0+2+14/5 = 23/5 =4.6

Az SJF előnyei

Íme az SJF módszer használatának előnyei / előnyei:

  • Az SJF-et gyakran használják hosszú távú ütemezéshez.
  • Csökkenti az átlagos várakozási időt a FIFO (First in First Out) algoritmus felett.
  • Az SJF módszer a legalacsonyabb átlagos várakozási időt adja meg egy adott folyamatkészlethez.
  • Megfelelő azok a kötegelt futtatású munkák, amelyeknél a futási idő előre ismert.
  • A hosszú távú ütemezés kötegelt rendszeréhez a sorozatidő becslése beszerezhető a munkaköri leírásból.
  • A rövid távú ütemezéshez meg kell jósolnunk a következő sorozatfelvétel idejét.
  • Valószínűleg optimális az átlagos átfutási idő szempontjából.

Az SJF hátrányai / hátrányai

Íme néhány hátrány / hátrány az SJF algoritmus számára:

  • A munka befejezési idejét korábban kell tudni, de nehéz megjósolni.
  • Gyakran kötegelt rendszerben használják hosszú távú ütemezéshez.
  • Az SJF rövid távon nem valósítható meg a CPU ütemezéséhez. Azért van, mert nincs konkrét módszer a közelgő CPU-burst hosszának előrejelzésére.
  • Ez az algoritmus nagyon hosszú átfutási időket vagy éhezést okozhat.
  • Szükség van ismeretekre, hogy egy folyamat vagy munka mennyi ideig fog futni.
  • Az éhezéshez vezet, amely nem csökkenti az átlagos átfutási időt.
  • Nehéz megtudni a közelgő CPU-kérés hosszát.
  • Az eltelt időt rögzíteni kell, ami több processzort jelent.

Összegzés

  • Az SJF egy olyan algoritmus, amelyben a legkisebb végrehajtási idővel rendelkező folyamatot választják ki a következő végrehajtásra.
  • Az SJF ütemezése az egyes munkákhoz időegységként társul.
  • Ez az algoritmus módszer hasznos a kötegelt típusú feldolgozásnál, ahol a munkák befejezésére való várakozás nem kritikus.
  • Alapvetően kétféle SJF módszer létezik: 1) nem megelőző SJF és 2) megelőző SJF.
  • A nem megelőző ütemezésben, amint a CPU-ciklust kiosztják a folyamathoz, a folyamat addig tartja, amíg várakozási állapotba nem kerül vagy le nem áll.
  • A megelőző SJF-ütemezésben a munkák kész állapotba kerülnek, amint jönnek.
  • Bár egy rövid sorozatidővel rendelkező folyamat megkezdődik, az aktuális folyamat eltávolításra kerül vagy megakadályozásra kerül, és a rövidebb feladatot az 1. végrehajtja.
  • Az SJF-et gyakran használják hosszú távú ütemezéshez.
  • Csökkenti az átlagos várakozási időt a FIFO (First in First Out) algoritmus felett.
  • Az SJF ütemezésében a munka befejezési idejét korábban kell tudni, de nehéz megjósolni.
  • Az SJF rövid távon nem valósítható meg a CPU ütemezéséhez. Azért van, mert nincs konkrét módszer a közelgő CPU-burst hosszának előrejelzésére.