Különbség a megelőző és a nem megelőző ütemezés között az operációs rendszerekben

A processzor ütemezése (vagy CPU ütemezése) meghatározza, hogy mely folyamatok vannak hozzárendelve és eltávolítva a CPU-ból, olyan ütemezési modellek alapján, mint a Elővásárlási és Nem megelőző ütemezés (más néven Szövetkezeti ütemezés).

A régebbi rendszerek egyszerű önálló módban működhetnek, de a reagáló, rugalmas rendszerek, valamint a virtualizáció egyre növekvő igénye mellett a multi-feldolgozás hatékony kezelése gyors válaszokat ad az összes feladatfeldolgozási igényre.

Az ütemezési egységeket gyakran a feladat és az Ütemező feladata ezeknek a feladatoknak a futtatása és kezelése, amikor szükséges; az Ütemező kiválasztja az eltávolítandó feladatot, és a feldolgozáshoz hozzárendelte a CPU-hoz, az alkalmazott ütemezési modell szerint.

Hogyan tudja az Ütemező, hogy mely feladatok vannak prioritással??

Az ütemezőnek tisztességes és hatékony kiválasztási folyamatot kell futtatnia, figyelembe véve a változó, dinamikus feldolgozási igényeket, és a legtöbbet kihozva a CPU-ciklusokból.

A feladatok feldolgozása során két állapotban lehetnek:

  1. A CPU Burst ahol a CPU számításokat végez a feladat feldolgozása érdekében (a CPU-sorozat idõtartama feladatonként és programonként változik).
  2. Egy Bemeneti / kimeneti (I / O) sorozat az adatok vételére vagy küldésére vár a rendszerről.

Ha a CPU tétlen, az Ütemező beolvassa a Készen áll a sor, és kiválasztja a következő futtatandó feladatot. Akkor ez a diszpécser amely megadja a CPU kiválasztott feladat-vezérlését, tehát gyorsnak kell lennie! A diszpécsere által igénybe vett bármilyen idő neve Küldési késés.

Különböző struktúrák és egyedi paraméterek vannak a Készen áll a sor, valamint számos olyan módszer, amely felhasználható az ütemezési folyamat összetettségeinek kezelésére.

Általában a CPU kihasználtságának, átviteli sebességének stb. Optimalizálásáról és maximalizálásáról szól.

Az Ütemezőnek a következő szakaszok egyikében kell döntést hoznia:

  1. Amikor a Feladat megváltozik a Futó a Várakozó állam (például vár egy I / O kérés alatt).
  2. Amikor a Feladat megváltozik Futó nak nek Kész (például válaszol egy megszakításra).
  3. Amikor a Feladat megváltozik Várakozás nak nek Kész (például egy I / O kérés teljesült).
  4. Amikor az Feladat

Új feladatot kell választani, ha az 1. vagy a 4. szakasz megtörténik a CPU teljes kihasználásának biztosítása érdekében, és mind a 2., mind a 3. szakaszban a feladat futhat, vagy újat választhat ki.

Miután megértette egy feladat feldolgozását, nézzünk meg két ütemezési modellt, amelyek a CPU megszakításokkal foglalkoznak.

Mindkettő hasonló funkciókkal rendelkezik a feladatokkal, a feladatállapotokkal, a sorokkal és a prioritásokkal (statikus vagy dinamikus):

  • Nem megelőző ütemezés amikor egy feladat addig fut, amíg le nem áll (önként) vagy befejeződik. A Windows® nem-megelőző ütemezést kapott a Windows 3.x-ig, majd a Windows 95-ről Preemptive-re változott.
  • Preventív ütemezés itt egy feladat kényszerítő módon felfüggeszthető egy CPU-megszakítással, ellentétben a nem-megelőzővel, ahol a feladat addig fut, amíg elengedi a CPU-t..

Nem megelőző ütemezés

A nem-megelőző rendszeren belüli feladatok a teljesítésig futnak.

Az Ütemező ezután ellenőrzi az összes feladat állapotát, és a gombbal ütemezi a következő legmagasabb prioritású feladatot Kész állapot.

A nem-megelőző ütemezésnél, ha egy feladatot a CPU-hoz rendelték, akkor azt nem lehet elvenni, még akkor sem, ha a rövid feladatoknak hosszabb feladatok elvégzésére kell várniuk.

Az összes feladat ütemezéskezelése „tisztességes”, és a válaszidők kiszámíthatók, mivel a magas prioritású feladatok nem tudják a várakozási feladatokat tovább bontani a sorban..

Az Ütemező gondoskodik arról, hogy minden feladat megkapja a CPU-ra eső részét, elkerülve az esetleges késleltetéseket bármilyen feladattal. A CPU-nak elkülönített „időtartam” nem feltétlenül egyenlő, mivel attól függ, hogy mennyi időt vesz igénybe a feladat.

Preventív ütemezés

Ez az ütemezési modell lehetővé teszi a feladatok megszakítását - ellentétben a nem-megelőző ütemezéssel, amelynek „futás-befejezés” megközelítése van..

A megszakítások, amelyeket külső hívásokból kezdeményezhetnek, felhívja az Ütemezőt, hogy szüneteltessen egy futó feladatot egy másik, magasabb prioritású feladat kezelése érdekében - így megelőzhető a CPU vezérlése..

A legfontosabb feladat a Kész az állapot végrehajtódik, lehetővé téve a gyors reagálást a valós idejű eseményekre.

A Preventív Ütemezés néhány hátránya az erőforrások általános költségeinek növekedésével jár, amikor megszakítások történnek, és problémák merülhetnek fel két adatmegosztó feladattal, mivel az egyik megszakadhat a megosztott adatszerkezetek frissítése közben, és negatívan befolyásolhatja az adatok integritását..

Másrészről praktikus, ha képes szüneteltetni egy feladatot egy másik feladat kezeléséhez, amely kritikus lehet.

Összefoglalva

Számos eltérés és függőség határozható meg a különböző politikákban, például az a használatával „Kerek vörösbegy-politika [i]” ahol minden feladat (azonos prioritással) egyszer fut, majd a sor végére kerül a következő ciklusra.

Egyéb irányelvek közé tartozik First-In-First-Out, Minimum-Job-First, Minimum-Job-Next, A legrövidebb idő, stb..

A történeti adatok elemzése információt nyújthat olyan aspektusokról, mint például az új feladatok érkezési sebessége, a CPU és az I / O betörések stb., Így a valószínűségi eloszlások kiszámíthatják a feladatok várakozási idejének jellemzőit, így az adminisztrátorokat releváns adatokkal ébresztik az ütemezési modellek meghatározására..