Mi az a megelőző ütemezés?
A megelőző ütemezés egy ütemezési módszer, ahol a feladatokat többnyire a prioritásaikkal osztják ki. Néha fontos egy magasabb prioritású feladatot futtatni egy másik alacsonyabb prioritású feladat előtt, még akkor is, ha az alacsonyabb prioritású feladat még mindig fut.
Ekkor az alacsonyabb prioritású feladat egy ideig tart, és akkor folytatódik, amikor a magasabb prioritású feladat befejezi a végrehajtását.
Ebben az operációs rendszer bemutatóban megtudhatja:
- Mi az a megelőző ütemezés?
- Mi az a nem megelőző ütemezés?
- Különbség a megelőző és a nem megelőző ütemezés között az operációs rendszerben
- A megelőző ütemezés előnyei
- A nem megelőző ütemezés előnyei
- A megelőző ütemezés hátrányai
- A nem megelőző ütemezés hátrányai
- Példa a nem megelőző ütemezésre
- Példa az előzetes ütemezésre
Mi az a nem megelőző ütemezés?
Az ilyen típusú ütemezési módszerben a CPU-t egy meghatározott folyamathoz rendelték hozzá. Az a folyamat, amely a CPU-t elfoglalt tartja, feloldja a CPU-t kontextusváltással vagy leállítással.
Ez az egyetlen módszer, amely különböző hardverplatformokhoz használható. Ez azért van, mert nincs szüksége speciális hardverekre (például időzítőre), mint például a megelőző ütemezés.
A nem megelőző ütemezés akkor következik be, amikor egy folyamat önként belép a várakozási állapotba vagy leáll.
Különbség a megelőző és a nem megelőző ütemezés között az operációs rendszerben
Itt vannak a megelőző és a nem megelőző ütemezések az operációs rendszerben
Megelőző ütemezés | Nem megelőző ütemezés |
Egy processzor megelőlegezheti a különböző folyamatok végrehajtását az aktuális folyamatvégrehajtás közepette. | Amint a processzor megkezdi a végrehajtást, be kell fejeznie, mielőtt végrehajtaná a másikat. Középen nem lehet szüneteltetni. |
A CPU kihasználása hatékonyabb, mint a nem megelőző ütemezés. | A CPU kihasználtsága kevésbé hatékony az előzetes ütemezéshez képest. |
Az előzetes ütemezés várakozási ideje és válaszideje kevesebb. | A nem megelőző ütemezési módszer várakozási és válaszideje magasabb. |
A megelőző ütemezés elsőbbséget élvez. A legmagasabb prioritású folyamat egy folyamat, amelyet jelenleg használnak. | Amikor bármely folyamat belép a futás állapotába, a folyamat állapotát soha nem törlik az ütemezőből, amíg be nem fejezi a munkájá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: Először az első szolgálat, a legrövidebb munka, az elsőbbségi ütemezés stb. |
Előzetes ütemezési algoritmus előzhető meg, vagyis a folyamat ütemezhető | Nem megelőző ütemezési folyamat nem ütemezhető |
Ebben a folyamatban a CPU-t egy adott időtartamra rendelik hozzá a folyamatokhoz. | Ebben a folyamatban a CPU addig van lefoglalva a folyamathoz, amíg le nem áll vagy átáll a várakozási állapotba. |
A megelőző algoritmus feladata, hogy a folyamatot kész állapotból üzemállapotba kapcsolja és fordítva. | A nem megelőző ütemezésnek nincs ilyen költsége, ha a folyamatot kész állapotba kapcsolja. |
A megelőző ütemezés előnyei
Itt vannak a megelőző ütemezési módszer előnyei / előnyei:
- A megelőző ütemezési módszer erőteljesebb, megközelítésszerűbb, így egy folyamat nem monopolizálhatja a CPU-t
- A futási feladat választása minden megszakítás után átgondolandó.
- Minden esemény megszakítja a futó feladatokat
- Az operációs rendszer biztosítja, hogy a CPU-használat az összes futó folyamat során azonos legyen.
- Ebben a CPU használata megegyezik, vagyis az összes futó folyamat egyformán fogja használni a CPU-t.
- Ez az ütemezési módszer az átlagos válaszidőt is javítja.
- Az előzetes ütemezés akkor előnyös, ha a többprogramozású környezetben használjuk.
A nem megelőző ütemezés előnyei
Itt vannak a nem megelőző ütemezési módszer előnyei / előnyei:
- Alacsony ütemezésű rezsit kínál
- Hajlamos nagy átbocsátásra
- Fogalmilag nagyon egyszerű módszer
- Kevesebb számítási erőforrás szükséges az ütemezéshez
A megelőző ütemezés hátrányai
Itt vannak a megelőző ütemezési módszer hátrányai / hátrányai:
- Szüksége van korlátozott számítási erőforrásokra az ütemezéshez
- Az ütemezőnek hosszabb időre van szüksége a futó feladat felfüggesztésére, a kontextus váltására és az új bejövő feladat továbbítására.
- Az alacsony prioritású folyamatnak hosszabb ideig kell várnia, ha néhány kiemelt folyamat folyamatosan érkezik.
A nem megelőző ütemezés hátrányai
Itt vannak a nem megelőző ütemezési módszer hátrányai / hátrányai:
- Különösen a valós idejű feladatoknál éhezéshez vezethet
- A hibák miatt a gép lefagyhat
- Megnehezítheti a valós idejű és az elsőbbségi ütemezést
- Rossz reakcióidő a folyamatokhoz
Példa a nem megelőző ütemezésre
A nem megelőző SJF ü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=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Példa az előzetes ütemezésre
Tekintsük ezt a Round-Robin három folyamatának követésével
Folyamat sor | Burst time |
P1 | 4 |
P2 | 3 |
P3 | 5. |
1. lépés: A végrehajtás a P1 folyamattal kezdődik, amelynek 4-es tört ideje van. Itt minden folyamat 2 másodpercig fut. P2 és P3 továbbra is a várakozási sorban van.
2. lépés: A = 2 időpontban P1 hozzáadódik a sor végéhez, és P2 végrehajtani kezdi
3. lépés: Abban az időpontban, amikor = 4, a P2 meg van előzve és hozzáadódik a sor végén. A P3 végrehajtani kezdi.
4. lépés: A = 6 időpontban a P3 előzetes és a sor végén hozzáadódik. A P1 megkezdi a végrehajtást.
5. lépés: A = 8 időpontban a P1 sorozatfelvételi ideje 4. Befejezte a végrehajtást. A P2 megkezdi a végrehajtást
6. lépés) A P2 sorozatfelvételi ideje 3. Már végrehajtott 2 intervallumot. = 9 időpontban a P2 befejezi a végrehajtást. Ezután a P3 elindítja a végrehajtást, amíg be nem fejeződik.
7. lépés) Számítsuk ki a fenti példa átlagos várakozási idejét.
Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
FŐBB ELTÉRÉSEK
- Az előzetes ütemezésben a CPU-t egy adott időtartamra osztják ki a folyamatokhoz, és a nem megelőző ütemezésű CPU-t addig osztják be, amíg le nem áll.
- Az előzetes ütemezésben a feladatok prioritás alapján vannak kapcsolva, míg a nem megelőző ütemezés nem vált.
- A megelőző algoritmus feladata a folyamat kész állapotból futó állapotba történő átkapcsolása, míg a nem megelőző ütemezésnek nincs ilyen kapcsolási feje.
- Az előzetes ütemezés rugalmas, míg a nem megelőző ütemezés merev.