Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Ütemezés (Scheduling), Alapfogalmak Ütemezési feltételek (kritériumok) Ütemezési algoritmusok Több-processzoros eset Algoritmus kiértékelése
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
1
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Alapfogalmak A multiprogramozás célja: a CPU foglaltság (kihasználás) hatásfokának növelése/javítása A multiprogramozás lényege: egyidőben több folyamat is az operatív tárban helyezkedik el, készen állva a CPU kiszolgálására. Ha egy folyamatnak várnia kell (pl. I/O-műveletre), a CPU-t egy másik folyamat kapja meg. CPU Burst cycle – a CPU foglaltsági ciklus, „CPU löket”, amikor folyamatnak csak CPU-ra és operatív memóriára van szüksége. I/O Burst Cycle – az I/O műveleti ciklus, „Periféria löket”, amikor a folyamat perifériás átvitelt hajt végre, ilyenkor CPU-ra szükség nincsen. Rövid távú (short term) (vagy másképp CPU scheduling) ütemezőről van szó De van még Long-term scheduling (Hosszú távú, ezen a szinten születik az döntés melyik folyamt kerül a RAM-be) és Medium-term scheduling (Közép távú – a fő memória és a „page” memória közötti migrációért felelős) Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Rövid távú ütemezési döntéshelyzet áll elő, ha egy folyamat 1. futó állapotból várakozó állapotba kerül, vagy 2. futó állapotból készenléti állapotba kerül, vagy 3. várakozó állapotból készenléti állapotba kerül, vagy 4. megáll Az 1. és 4. esetben az ütemezés nem preemptív (nem beavatkozó: a processzus maga mond le a CPU-ról) – (MS Windows) Az 2. és 3. esetben az ütemezés preemptív (beavatkozó: a rendszer elveszik tőle a CPU-t) A Diszpécser (dispatcher) –egy módul A diszpécser adja át a vezérlést a rövid-távú ütemező (schedular) által kiválasztott folyamatnak. Ez magában foglalja: 1. a kontextus módosítását (átkapcsolást, switching) 2. user módba kapcsolást
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
3. a megfelelő című utasításra ugrást (PC beállítást) Diszpécser latencia (Dispatch latency): egy processzus megállításához és egy másik elindításához szükséges idő Mivel diszpécser feladata a folyamatok közötti átkapcsolás, nagyon gyorsan kell működnie.
Ütemezési feltételek (kritériumok) CPU kiszolgálás (CPU utilization) – a CPU az idő minél nagyobb részében legyen foglalt, azaz a CPU az idejének hány százalékát használja a folyamatok utasításainak végrehajtására. Kihasználtságot csökkenti: CPU henyél (idle), a rendszer-adminisztrációra fordított idő („rezsi”).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Átbocsátó képesség (throughput) – egységnyi idő alatt befejeződő processzusok száma, azaz az OS időegységenként hány munkát futtat le.. Végrehajtási (turnaround, fordulási) idő = a várakozás a memóriába kerülésre + készenléti sorban töltött idő + CPU-n töltött idő + I/O-val töltött idő. Várakozási idő (waiting time) – készenléti sorban (ready queue) töltött idő. Válaszidő (response time) – az OS reakció ideje, a „kérés benyújtásától” az első válasz megjelenéséig eltelt idő. (Interaktív rendszerekben a turnaround nem jó jellemző). Feladatok: „tisztességes” kiszolgálás, minimum, maximum, átlag optimalizálása, szórás optimalizálása, jósolhatóság.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Ütemezési algoritmusok 1. Egyszerű algoritmusok 2. Prioritásos algoritmusok 3. Többszintű algoritmusok 4. Többprocesszoros ütemezések
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
6
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Egyszerű algoritmusok 1. Igénybejelentési sorrend szerinti kiszolgálás (mint FIFO: First-Come,
First-Served = FCFS) A futásra kész folyamatok a várakozási sor végére kerülnek, az ütemező a sor elején álló folyamatot kezdi futtatni. – Nem preemptív. – Egyszerűen megvalósítható – Konvoj hatás (egy hosszú CPU-igényes folyamat feltartja a mögötte várakozókat) – Az átlagos várakozási idő nagy szórása
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Példa:
2. Körforgó (Round Robin, azaz RR, körleosztásos, körbejáró ütemezés)
Minden processzus sorban q ideig (q=10-100 millisec.) használhatja a CPU-t. Folyamatok időszeletet kapnak (time slice). a. Ha a CPU löket nagyobb mint az időszelet, akkor az időszelet végén az ütemező elveszi a CPU-t, a folyamat futásra kész lesz és beáll a várakozó sor végére. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
b. Ha a CPU löket rövidebb, akkor a löket végén a folyamatokat újraütemezzük. Preemptív algoritmus, az időosztásos rendszerek valamennyi ütemezési algoritmusainak az alapja. Időszelet meghatározása nehéz. – Nagy időszelet: FCFS algoritmushoz hasonló lesz. – Kis időszelet: folyamatok a CPU-t egyenlő mértékben használják, viszont a sok környezetváltás a teljesítményt rontja. Szabály: CPU löketek kb. 80% legyen rövidebb az időszeletnél.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Példa:
Prioritásos algoritmusok A futásra kész folyamatokhoz egy prioritást (rendszerint egy egész számot) rendelünk. A legnagyobb prioritású folyamat lesz a következő futtatandó folyamat. Prioritás meghatározása lehet belső (az OS határozza meg) vagy „külső” (az OS-en kívüli tényező (operátor, a folyamat saját kérése, stb.) határozza meg Prioritás lehet statikus (végig azonos) vagy dinamikus (az OS változtathatja) Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Példa:
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
11
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Prioritást sokszor a löketidő alapján határozzák meg. A löketidő szükséglet meghatározása: – a folyamat (felhasználó) bevallása alapján (a „hazugságot” az OS később bünteti) – előző viselkedés alapján (a korábbi löketidők alapján becslés) Kiéheztetés: A folyamat sokáig (esetleg soha) nem jut processzorhoz. Prioritásos algoritmusoknál kiéheztetés felléphet. Ennek kivédése a folyamatok öregítése (aging): – a régóta várakozó folyamatok prioritását növeljük Dinamikus prioritás: 1. Legrövidebb (löket) idejű - Shortest Job First, SJF (Nincs konvoj hatás, optimális körülfordulási idő, optimális várakozási idő.) 2. Legrövidebb hátralévő idejű – Shortest Remaining Time First, SRTF (A folyamat megszakítása és egy másik elindítása környezetváltozást igényel, ezt az időt is figyelembe kell vennünk.) Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
12
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
3. Legjobb válaszarány – Highest Response Ratio (az SJF algoritmus olyan változata, ahol a várakozó folyamatok öregednek)
Többszintű algoritmusok Futásra kész folyamatokat több külön sorban várakoztatják. A sorokhoz prioritás van rendelve. Egy kisebb prioritású sorból csak akkor indulhat el egy folyamat, ha a nagyobb prioritású sorok üresek. Az egyes sorokon belül különböző kiválasztási algoritmusok működhetnek. Statikus többszintű sorok - Static Multilevel Queue, SMQ. A folyamat élete során végig ugyanabban a sorban marad. Visszacsatolt többszintű sorok - Multilevel Feedback Queues, MFQ. A sorokhoz egy időszelet tartozik: minél nagyobb a prioritás, annál kisebb az időszelet. A folyamatok futásuk során átkerülhetnek másik sorokba.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Többprocesszoros ütemezések Napjainkban egyre jobban terjednek a többprocesszoros rendszerek, ahol felmerül az igény, hogy a futásra kész folyamatok a rendszer bármely processzorán elindulhassanak. Heterogén rendszerek esetében egy folyamat csak bizonyos processzorokon futhat. Homogén rendszerekben a futásra kész folyamatokat közös sorokban tárolja. Szimmetrikus multiprocesszoros rendszer. Minden CPU saját ütemezőt futtat, amely a közös sorokból választ. A sorok osztott használatához a kölcsönös kizárást biztosítani kell! Aszimmetrikus multiprocesszoros rendszer. Az ütemező modul egy dedikált CPU-n fut, ez osztja szét a folyamatokat a szabad CPU-k között. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Főiskola Matematika és Informatika Intézete
03
Algoritmus kiértékelése Analitikus értékelés Determinisztikus modellezés: Előre elkészített numerikus adatokkal vizsgáljuk az algoritmus viselkedését. Egyszerű, de az eredmények csak szűk körben érvényesek.
Sztochasztikus modellezés: Az adateloszlások paraméterei adottak Az algoritmusok matematikai eszközökkel vizsgálhatók - sorbanállás elmélete (queueing theory)
Szimuláció Korábbi tapasztalatok alapján meghatározott véletlen eloszlású számokkal vizsgáljuk az algoritmus működését. Az eredmények nagyban függnek az adatok helyességétől.
Implementáció A legmegbízhatóbb megoldás az algoritmusok implementálása és teljesítményük valós körülmények közötti mérése. Legköltségesebb megoldás.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
15