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.

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.
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.
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.
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.
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.
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.
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.
Step 7) A time=10 időpontban a P2 végrehajtódik, a P3 és P5 pedig a várakozási sorban vannak.
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.
Step 9) A 15 időpontban a P5 folyamat befejezi a végrehajtást.
Step 10) A 23 időpontban a P3 folyamat befejezi a végrehajtást.
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 |
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.
2 lépés) A =2 időpontban P1 hozzáadódik a sor végéhez, és P2 megkezdi a végrehajtást
Step 3) A time=4 időpontban a P2 megelőzve van, és hozzáadódik a sor végéhez. A P3 elindul.
Step 4) A time=6 időpontban a P3 megelőzve van, és hozzáadódik a sor végéhez. A P1 elindul.
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
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.
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