Real-time operációs rendszerek RTOS 2014. február 21.
Az ütemező (Scheduler) Az operációs rendszer azon része (kódszelete), mely valamilyen konkurens hozzáférés-elosztási problémát próbál implementálni. A használt ütemezési algoritmus karakterisztikája alapján rendelik az operációs rendszereket valós idejű, időosztásos illetve batch feldolgozást végző kategóriákba 1. Az ütemezők lehetnek: processz ütemezők, I/O ütemezők. 1 http://wiki.hup.hu/index.php/ütemező
Az ütemező (Scheduler) Real-time konkurens rendszerekben a scheduler az operációs rendszer talán legfontosabb része. Mivel a párhuzamos, vagy látszólag párhuzamos végrehajtás ezen rendszerek alapvető jellemzője, ezért az egész az operációs rendszer erre épül. Objektumok Taszkok Időzítők Várakozási sorok Események Üzenet sorok Mutexek Szemaforok Scheduler Egyéb objektumok Szolgáltatások: -idő kezelés -IT kezelés -memória kezelés -eszköz kezelés -stb.
Processz ütemezők Az ütemezők két alaptípusa: preemptív ütemezés, amikor a oprációs rendszer adott időszeleteket biztosít minden egyes taszknak. nem preemptív, vagy kooperatív ütemezés, ahol a taszkok döntik el, hogy mikor adják át a vezérlést.
Preemptív ütemezés taszk3 taszk2 taszk1 taszk0 T T T T T T T T Előnye, hogy nem hajlamos a lefagyásra. Hibás program esetén, pl. végtelen ciklus, a programtól az operációs rendszer mindenképpen elveszi a vezérlést. Hátránya, hogy az operációs rendszer bonyolult, mert a taszk kezelés nehezebb.
Nem preemptív ütemezés taszk3 taszk2 taszk1 taszk0 A programok saját maguk döntik el, hogy mikor mondanak le a processzorról, ha már megszerezték. Előnye, hogy az operációs rendszer egyszerűbb. Hátránya, hogy egy programhiba megállíthatja az egész rendszert.
Futási sorrend Ütemezési eljárások A futási sorrend a következő lehet: Fix prioritású a taszkok futási sorrendje rögzített. Shortest Job First az a taszk fut, amely várhatóan a legrövidebb idő alatt foglalja a processzort. Round-robin a taszkok egymás után gondolkodás nélkül futnak. Várakozási sor ha egy taszk futásra kész, akkor egyszerűen beáll egy várakozási sorba és vár a sorára. Vegyes az előző módszereket keverve használja.
Példa: preemptív, prioritásos rendszer taszk3 taszk2 taszk1 taszk0 T T T T T T T T
I/O ütemezés Ütemezési eljárások Az I/O ütemezés általános esetben a HD-k ütemezésével foglalkozik. Ezek az algoritmusok lehetnek: sorrendi ütemezés, lusta ütemezés, pásztázó ütemezés, előre tekintő ütemezés.
Sorrendi ütemezés Az I/O kiszolgálást a beérkezés sorrendjében szolgálja ki. Előnyei: egyszerű a megvalósítása, a válaszidő egyenletes és jósolható, nem valószínű a kiéheztetés. Hátrányai: hosszú válaszidő, nem törődik a prioritási kérdésekkel.
Lusta ütemezés A kéréseket a szükséges erőforrások minél rövidebb elérhetősége szerint állítja sorba. Pl.: HDD esetén a legkisebb fejmozgások alapján ütemez. Előnyei: a kiszolgálás sebessége nagy, a mechanikus egységeket kíméli. Hátrányai: a válaszidő erősen szór, a kiéheztetés előfordulhat.
Pásztázó (lift) ütemezés Tipikusan HDD ütemezés. A fej folyamatosan pásztáz és azt a kérést szolgálja ki, ahol éppen van. Előnyei: a kiszolgálás sebessége nagy, a kiéheztetés szinte kizárt. Hátrányai: a válaszidő erősen szór, nagy a mechanikai igénybevétel.
Előretekintő ütemezés Szintén HDD-k esetén használt ütemezés. A pásztázó ütemezés heurisztikus elven történő javítása. A olvasás után egy kicsit várakozik, ha azonos sávon van még olvasni való beolvassa, ha nincs továbblép. Előnyei: a kiszolgálás sebessége nagy marad, teljesen szekvenciális kérés esetén nincs várakozás és fölösleges fejmozgás, jobban kíméli a mechanikát, a kiéheztetés szinte kizárt. Hátrányai: nem szekvenciális esetben a válaszidő kicsit nőhet.