Megelőző és nem megelőző ütemezés

Főbb különbségek a megelőző és a nem megelőző ütemezés között

  • A megelőző ütemezésben a CPU egy adott időtartamra van lefoglalva a folyamatokhoz, a nem megelőző ütemezésű CPU pedig le van foglalva a folyamathoz, amíg az le nem fejeződik.
  • A megelőző ütemezésben a feladatok prioritás alapján váltanak, míg a nem megelőző ütemezésben nem történik váltás.
  • A megelőző algoritmusnak a folyamat kész állapotból a futó állapotba való váltása, míg a nem megelőző ütemezésnek nincs ilyen váltási többlete.
  • A megelőző ütemezés rugalmas, míg a nem megelőző ütemezés merev.
Megelőző és nem megelőző ütemezés
Megelőző és nem megelőző ütemezés

Mi az a megelőző ütemezés?

A megelőző ütemezés egy olyan ütemezési módszer, ahol a feladatok többnyire prioritásaikkal vannak kiosztva. Néha fontos egy magasabb prioritású feladat futtatása egy másik alacsonyabb prioritású feladat előtt, még akkor is, ha az alacsonyabb prioritású feladat még fut.

Ekkor az alacsonyabb prioritású feladat egy ideig érvényben marad, és akkor folytatódik, amikor a magasabb prioritású feladat befejezi a végrehajtását.

Mi az a nem megelőző ütemezés?

Az ilyen típusú ütemezési módszerben a CPU egy adott folyamathoz van hozzárendelve. A CPU-t lefoglaló folyamat felszabadítja a CPU-t kontextusváltással vagy leállással.

Ez az egyetlen módszer, amely különféle hardverplatformokon használható. Ennek az az oka, hogy nincs szüksége speciális hardverre (például időzítőre), mint például a megelőző ütemezés.

A nem megelőző ütemezés akkor fordul elő, amikor egy folyamat önként várakozási állapotba lép vagy leáll.

Megelőző és nem megelőző ütemezés: Összehasonlító táblázat

Íme, a megelőző és a nem megelőző ütemezés közvetlen összehasonlítása. A fő különbségek a megelőző és a nem megelőző ütemezés között az operációs rendszerben a következők:

Megelőző ütemezés Nem megelőző ütemezés
A processzor bármely aktuális folyamatvégrehajtás közepette előzhető meg a különböző folyamatok végrehajtására. Miután a processzor elindítja a végrehajtást, be kell fejeznie a másik végrehajtása előtt. Nem lehet szüneteltetni a közepén.
A CPU-kihasználás hatékonyabb a nem megelőző ütemezéshez képest. A CPU kihasználtsága kevésbé hatékony a megelőző ütemezéshez képest.
A megelőző ütemezés várakozási és válaszideje rövidebb. A nem megelőző ütemezési módszer várakozási és válaszideje magasabb.
A megelőző ütemezés prioritást élvez. A legmagasabb prioritású folyamat a jelenleg használt folyamat. Amikor bármely folyamat futási állapotba kerül, a folyamat állapota soha nem törlődik az ütemezőből, amíg be nem fejezi a feladatát.
A megelőző ütemezés rugalmas. A nem megelőző ütemezés merev.
Példák: – Először a legrövidebb hátralévő idő, körmérkőzés stb. Példák: Aki kapja, marja, A legrövidebb munka az első, prioritási ütemezés stb.
A megelőző ütemezési algoritmus megelőzhető, vagyis a folyamat ütemezhető Nem megelőző ütemezésben a folyamat nem ütemezhető
Ebben a folyamatban a CPU egy adott időtartamra van hozzárendelve a folyamatokhoz. Ebben a folyamatban a CPU-t lefoglalják a folyamathoz mindaddig, amíg az le nem fejeződik vagy várakozási állapotba nem vált.
A megelőző algoritmus feladata a folyamat kész állapotból futó állapotba váltása és fordítva. A nem megelőző ütemezésnek nincs olyan többletköltsége, hogy a folyamatot kész állapotba kapcsolja.

A megelőző ütemezés előnyei

Íme a megelőző ütemezési módszer előnyei/előnyei:

  • A megelőző ütemezési módszer robusztusabb, így egyetlen folyamat nem tudja monopolizálni a CPU-t
  • A futó feladat kiválasztását minden megszakítás után újragondoljuk.
  • Minden esemény megszakítja a futó feladatokat
  • Az operációs rendszer gondoskodik arról, hogy a CPU-használat minden futó folyamatban azonos legyen.
  • Ebben a CPU-használat megegyezik, azaz minden futó folyamat egyformán használja a CPU-t.
  • Ez az ütemezési módszer az átlagos válaszidőt is javítja.
  • A megelőző ütemezés előnyös, ha többprogramozási környezetben használjuk.

A nem megelőző ütemezés előnyei

Íme a nem megelőző ütemezési módszer előnyei/előnyei:

  • Alacsony ütemezési rezsi költséget kínál
  • Általában nagy áteresztőképességet kínál
  • Elvileg nagyon egyszerű módszer
  • Less az ütemezéshez szükséges számítási erőforrások

A megelőző ütemezés hátrányai

A megelőző ütemezés hátrányai a következők:

  • Korlátozott számítási erőforrások szükségesek az ütemezéshez
  • Az ütemezőnek több időbe telik a futó feladat felfüggesztése, a környezet átváltása és az új bejövő feladat elküldése.
  • Az alacsony prioritású folyamatnak hosszabb ideig kell várnia, ha néhány magas prioritású folyamat folyamatosan érkezik.

A nem megelőző ütemezés hátrányai

Íme a nem megelőző ütemezési módszer hátrányai/hátrányai:

  • Ez éhezéshez vezethet, különösen a valós idejű feladatoknál
  • A hibák a gép lefagyását okozhatják
  • Valós idejű és prioritási ütemezés nehéz
  • Gyenge reakcióidő a folyamatokhoz

Példa nem megelőző ütemezésre

A nem megelőző SJF ütemezésben, ha a processzorciklust lefoglalták a folyamathoz, a folyamat addig tartja, amíg el nem éri a várakozási állapotot vagy le nem fejeződik.

Tekintsük a következő öt folyamatot, amelyek mindegyikének saját egyedi sorozatfelvételi ideje és érkezési ideje van.

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

Step 0) A 0 időpontban P4 érkezik és megkezdi a végrehajtást.

Példa nem megelőző ütemezésre

Step 1) Az időpont= 1, megérkezik a P3 folyamat. De a P4-nek még 2 végrehajtási egységre van szüksége a befejezéshez. Folytatja a végrehajtást.

Példa nem megelőző ütemezésre

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

Példa nem megelőző ütemezésre

Step 3) A 3 időpontban a P4 folyamat befejezi a végrehajtást. A P3 és P1 burst idejét összehasonlítjuk. A P1 folyamat végrehajtásra kerül, mert a sorozatfelvételi ideje rövidebb a P3-hoz képest.

Példa nem megelőző ütemezésre

Step 4) Amikor az időpont = 4, a P5 folyamat megérkezik, és hozzáadódik a várakozási sorhoz. A P1 folytatja a végrehajtást.

Példa nem megelőző ütemezésre

Step 5) Amikor az időpont = 5, a P2 folyamat megérkezik, és hozzáadódik a várakozási sorhoz. A P1 folytatja a végrehajtást.

Példa nem megelőző ütemezésre

Step 6) A 9 időpontban a P1 folyamat befejezi a végrehajtást. A P3, P5 és P2 burst idejét összehasonlítjuk. A P2 folyamat végrehajtásra kerül, mert a sorozatfelvételi ideje a legalacsonyabb.

Példa nem megelőző ütemezésre

Step 7) A time=10 időpontban a P2 végrehajtódik, a P3 és P5 pedig a várakozási sorban vannak.

Példa nem megelőző ütemezésre

Step 8) A 11 időpontban a P2 folyamat befejezi a végrehajtást. A P3 és P5 burst idejét összehasonlítjuk. A P5 folyamat végrehajtásra kerül, mert a sorozatfelvételi ideje alacsonyabb.

Példa nem megelőző ütemezésre

Step 9) A 15 időpontban a P5 folyamat befejezi a végrehajtást.

Példa nem megelőző ütemezésre

Step 10) A 23 időpontban a P3 folyamat befejezi a végrehajtást.

Példa nem megelőző ütemezésre

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

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

Példa a megelőző ütemezésre

Vegye figyelembe ezt a következő három folyamatot Körmérkőzés

Feldolgozási sor Burst time
P1 4
P2 3
P3 5

Példa a megelőző ütemezésre

Step 1) A végrehajtás a P1 folyamattal kezdődik, amelynek sorozatideje 4. Itt minden folyamat 2 másodpercig fut. A P2 és P3 még mindig várakozó sorban áll.

Példa a megelőző ütemezésre

2 lépés) A =2 időpontban P1 hozzáadódik a sor végéhez, és P2 megkezdi a végrehajtást

Példa a megelőző ütemezésre

Step 3) A time=4 időpontban a P2 megelőzve van, és hozzáadódik a sor végéhez. A P3 elindul.

Példa a megelőző ütemezésre

Step 4) A time=6 időpontban a P3 megelőzve van, és hozzáadódik a sor végéhez. A P1 elindul.

Példa a megelőző ütemezésre

Step 5) A time=8 időpontban P1 sorozatfelvételi ideje 4. A végrehajtás befejeződött. A P2 elindítja a végrehajtást

Példa a megelőző ütemezésre

Step 6) A P2 burst ideje 3. Már végrehajtotta a 2 intervallumot. A 9 időpontban P2 befejezi a végrehajtást. Ezután a P3 elindítja a végrehajtást, amíg be nem fejeződik.

Példa a megelőző ütemezésre

Step 7) Számítsuk ki a fenti példa átlagos várakozási idejét.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7