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.
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:
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:
Ú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):
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.
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.
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..