Az alábbiakban bemutatott összehasonlító táblázat segítségével röviden vitassuk meg az elővételi és a nem előjellegű ütemezés közötti különbségeket.
Összehasonlító táblázat
Az összehasonlítás alapja | Előzetes ütemezés | Nem elővásárlási ütemezés |
---|---|---|
Alapvető | Az erőforrásokat korlátozott ideig hozzárendelik egy folyamathoz. | Amint az erőforrások egy folyamathoz vannak hozzárendelve, a folyamat addig tart, amíg befejezi a felszakítási idejét, vagy átáll a várakozási állapotra. |
Megszakítás | A folyamat megszakítható. | A folyamatot nem lehet megszakítani, amíg véget nem ér vagy várakozási állapotba nem vált. |
Éhezés | Ha egy magas prioritású folyamat gyakran érkezik a kész sorba, az alacsony prioritású folyamat éheződhet. | Ha a folyamat hosszú futási idővel CPU-t futtat, akkor egy másik folyamat, amely kevesebb CPU-robbantási időt igényel, éheződhet. |
Felső | Az előzetes ütemezésben a folyamatok ütemezésének általános költségei vannak. | A nem előzetes ütemezés nem tartalmaz általános költségeket. |
Rugalmasság | Az előzetes ütemezés rugalmas. | A nem előzetes ütemezés merev. |
Költség | Az előzetes ütemezés költséggel jár. | A nem előzetes ütemezés nem költség-asszociatív. |
Az előzetes ütemezés meghatározása
Az előzetes ütemezés olyan körülmények között hajtható végre, amikor egy folyamat futó állapotból kész állapotba vagy várakozási állapotból kész állapotba vált . Itt az erőforrások (CPU-ciklusok) a folyamatra korlátozott ideig vannak hozzárendelve, majd elveszik, és a folyamat ismét visszaáll a kész sorba, ha még mindig fennáll a CPU-bontási idő. A folyamat készen áll a várakozási sorban, amíg a következő esélyt nem kapja.
Ha egy nagy prioritású folyamat érkezik a készenléti sorba, akkor nem kell várnia, amíg az aktuális folyamat befejezi a felszakítási időt. Ehelyett az aktuális folyamat megszakad a végrehajtás közepén, és a készenléti sorba kerül, amíg a nagy prioritású folyamat a CPU ciklusokat használja. Ily módon a kész sorban lévő folyamatok egy kis időt kapnak a CPU futtatására. Ez rugalmassá teszi az előzetes ütemezést, de növeli a folyamatot a futó állapotról a kész állapotra és a vise-versére.
Az előzetes ütemezéssel működő algoritmusok kerek Robin. A legrövidebb feladat első (SJF) és a prioritásütemezés előzetes ütemezés alatt állhat.
Vessünk egy példát az előzetes ütemezésre, nézzük meg az alábbi képet. Négy eljárásunk van P0, P1, P2, P3. Ebből P2 érkezik a 0. időpontban. Tehát a CPU a P2 folyamathoz van hozzárendelve, mivel nincs más folyamat a sorban. Közben P2 végrehajtott, P3 az 1. időpontban érkezett, most a P2 folyamat folyamatos ideje (5 milliszekundum), ami nagyobb, mint a P3 által igényelt idő (4 milliós). Tehát a CPU a P3 processzorhoz van rendelve.
A nem elővásárlási ütemezés meghatározása
A nem preemptív ütemezés olyan körülmények között alkalmazható, amikor egy folyamat befejeződik, vagy egy folyamat átkapcsol futásról várakozási állapotra . A nem elővásárlási ütemezésben, ha az erőforrások (CPU) egy folyamathoz vannak rendelve, a folyamat a CPU-t addig tartja, amíg meg nem szűnik, vagy eléri a várakozási állapotot.
A preemptive ütemezéssel ellentétben a nem előzetes ütemezés nem szakítja meg a CPU-t futtató folyamatot a végrehajtás közepén. Ehelyett arra vár, hogy a folyamat befejezze a CPU-sorozat felszakítási idejét, és ezután a CPU-t egy másik folyamathoz rendelheti.
A nem előzetes ütemezésben, ha egy folyamat, amely hosszú CPU-frekvenciájú időt futtat, akkor a másik folyamatnak sokáig várnia kell, ami növeli a folyamatok várakozási idejét a kész sorban. Azonban a nem preemptív ütemezés nem rendelkezik a folyamatok átkapcsolásával a kész sorból a CPU-ra, de ez megnehezíti az ütemezést, mivel a végrehajtás folyamatát még a magasabb prioritású folyamat számára sem lehet előfeltételezni.
Kulcsfontosságú különbségek az előzetes és a nem elővásárlási ütemezés között
- Az előzetes és nem előzetes ütemezés közötti különbség az, hogy a CPU előre meghatározott ütemezésben korlátozott ideig allokálódik a folyamatokhoz. A nem elővásárlási ütemezés során a CPU-t a folyamathoz rendezik, amíg meg nem szűnik vagy átáll a várakozási állapotra .
- A végrehajtási folyamat a preemptive ütemezésben megszakad a végrehajtás közepén, míg a végrehajtási folyamat a nem előzetes ütemezésben nem szakad meg a végrehajtás közepén.
- A preemptive Scheduling felülírja a folyamatot a kész állapotról a futó állapotra, a vise-versre és a készenléti sor fenntartására. Másrészről a nem előzetes ütemezés nem tartalmaz többletköltséget a folyamat futtatásától a kész állapotig.
- A preemptive ütemezésben, ha egy magas prioritású folyamat gyakran érkezik a kész sorba, akkor az alacsony prioritású folyamatnak hosszú ideig kell várnia, és lehet, hogy éhezni kell. Másrészről, a nem előjellegű ütemezésben, ha a CPU-t nagyobb ütési idővel osztják fel a folyamatra, akkor a kis felszakítási idővel rendelkező folyamatoknak lehetnek éheződni.
- A preemptive ütemezés nagyon rugalmas, mivel a kritikus folyamatok hozzáférhetnek a CPU-hoz, amikor beérkeznek a kész sorba, függetlenül attól, hogy milyen folyamatot hajt végre jelenleg. A nem preemptív ütemezés merev, még akkor is, ha egy kritikus folyamat belép a kész sorba, a CPU futó folyamat nem zavar.
- A Preemptive Scheduling költség-asszociatív, mivel meg kell őriznie a megosztott adatok integritását, ami nem a nem előzetes ütemezés esetében.
Következtetés:
Nem az, hogy a preemptív ütemezés jobb, mint a nem előzetes ütemezés vagy a vise-verse. Minden attól függ, hogy az ütemezés hogyan csökkenti a folyamatok átlagos várakozási idejét, és maximalizálja a CPU kihasználtságát.