Ütemezés (Scheduling),



Hasonló dokumentumok
Ütemezés (Scheduling),

Operációs rendszerek II. Folyamatok ütemezése

Tartalom. Operációs rendszerek Bevezetés CPU ütemezés. Középtávú ütemezés. Hosszútávú ütemezés

Operációs rendszerek. Folyamatok ütemezése

Előadás_#03. Előadás_03-1 -

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Operációs rendszerek. 3. előadás Ütemezés

Operációs rendszerek MINB240

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Operációs rendszerek MINB240

Feladatok (task) kezelése multiprogramozott operációs rendszerekben

Operációs Rendszerek II.

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Informatikai rendszerek alapjai (Informatika I.)

A mai program OPERÁCIÓS RENDSZEREK. A probléma. Fogalmak. Mit várunk el? Tágítjuk a problémát: ütemezési szintek

Operációs rendszerek előadás Multiprogramozott operációs rendszerek. Soós Sándor ősz

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Párhuzamosság a modern operációs rendszerekben

Matematikai és Informatikai Intézet. 4. Folyamatok

(kernel3d vizualizáció: kernel245_graph.mpg)

Operációs rendszerek Folyamatok 1.1

Szenzorhálózatok programfejlesztési kérdései. Orosz György

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

OPERÁCIÓS RENDSZEREK. A mai program. Fogalmak. Ütemezés és a Context Switch

Előadás_#02. Előadás_02-1 -

Operációs rendszerek 1. kidolgozott tételsor Verzió: 1.0 (Build: )

Windows ütemezési példa

Operációs rendszerek feladatai

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Logisztikai szimulációs módszerek

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs Rendszerek II.

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

2. Folyamatok. Operációs rendszerek. Folyamatok. Bevezetés Folyamatkezelés multiprogramozott rendszerekben. Folyamatok modellezése

Rugalmas gyártórendszerek (FMS) termelésprogramozása (ismétlés DTFSZTIR)

Dr. Schuster György október 3.

VIHIMA07 Mobil és vezeték nélküli hálózatok. Forgalmi modellezés és tervezés

12. Másodlagos tár szerkezet

Balogh Ádám Lőrentey Károly

Dr. Illés Zoltán

Operációs rendszerek (I 1204)

Operációs rendszerek II. jegyzet

Megkülönböztetett kiszolgáló routerek az

Az interrupt Benesóczky Zoltán 2004

Operációs rendszerek I.

Operációs rendszerek. Bemutatkozás

Beágyazott rendszerek alapkomponensei II. : Software

Operációs rendszerek

Architektúra, megszakítási rendszerek

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Teljesítménymodellezés

UNIX ütemezése. Operációs rendszerek MINB240 UNIX, Windows NT ütemezése Holtpontkezelés. Algoritmus követelményei. UNIX ütemezés jellemzése

Operációsrendszerek. 2. elıadás. Standard ismeretek II.

MILYEN FELADATOKNÁL HASZNÁLHATÓ?

Operációs rendszerek - párhuzamos folyamatok.

Operációs rendszerek. 1. Bevezetö. Operációs rendszer: nincs jó definíció

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Az operációs rendszer szerkezete, szolgáltatásai

Konkurencia és energiakezelés integrálása eszközmeghajtókba. Vezeték nélküli szenzorhálózatok

Operációs rendszerek MINB240 UNIX, Windows NT ütemezése Holtpontkezelés. UNIX ütemezése. Algoritmus követelményei. 4.

Dr. habil. Maróti György

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Operációs rendszerek

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Operációs rendszerek. nem hivatalos jegyzet

9. Virtuális memória kezelés

Operációs rendszerek. Az NT folyamatok kezelése

Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve őszi félév első zhval bezárólag.

Operációs rendszerek

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Adatszerkezetek és algoritmusok

Operációs rendszerek Memóriakezelés 1.1

I.3 ELOSZTOTT FOLYAMATSZINTÉZIS BERTÓK BOTOND. Témavezetői beszámoló

Az informatika alapjai. 10. elıadás. Operációs rendszer

Operációs rendszerek MINB240

Az előadás magáncélra szabadon felhasználható. Köz- és felsőoktatásban felhasználható, csak előtte kérlek írj egy t nekem.

BEÁGYAZOTT RENDSZEREK ÉS PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK

Számítógépek felépítése, alapfogalmak

INFOKOMMUNIKÁCIÓS RENDSZEREK HATÉKONYSÁG- ELEMZÉSÉRE SZOLGÁLÓ ESZKÖZÖK

Teljesítménymodellezés

Elvonatkoztatási szintek a digitális rendszertervezésben

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Fábián Zoltán Hálózatok elmélet

Párhuzamosítás adatbáziskezelő rendszerekben

Digitális rendszerek. Digitális logika szintje

ÉRZÉKELŐK ÉS BEAVATKOZÓK II. 5. DC MOTOROK SZABÁLYOZÁS FORDULATSZÁM- SZABÁLYOZÁS

Elosztott rendszerek

Számítógépek felépítése, alapfogalmak

Új kompakt X20 vezérlő integrált I/O pontokkal

Magas szintű optimalizálás

OPERÁCIÓS RENDSZEREK. Elmélet

A felhőről általában. Kacsuk Péter MTA SZTAKI

Bánhelyi Balázs, Csendes Tibor, Palatinus Endre és Lévai. Szeptember 28-30, 2011, Balatonöszöd, Hungary

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Konkurens TCP Szerver

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Átírás:

1 Ütemezés (Scheduling), Alapfogalmak Ütemezési feltételek (kritériumok) Ütemezési algoritmusok Több-processzoros eset Algoritmus kiértékelése

2 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)

3 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

4 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 ).

5 Á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.

6 Ütemezési algoritmusok 1. Egyszerű algoritmusok 2. Prioritásos algoritmusok 3. Többszintű algoritmusok 4. Többprocesszoros ütemezések

7 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

8 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.

9 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.

10 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)

11 Példa:

12 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.)

13 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.

14 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.

15 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.