Operációs rendszerek MINB240

Hasonló dokumentumok
Operációs rendszerek MINB240

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

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

Ütemezés (Scheduling),

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

Ütemezés (Scheduling),

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

Dr. Illés Zoltán

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 előadás Multiprogramozott operációs rendszerek

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

Operációs Rendszerek II.

Windows ütemezési példa

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

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

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.

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

Operációs Rendszerek II.

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

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

Operációs rendszerek Folyamatok 1.1

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

Operációs rendszerek

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ós rendszerek. Az NT folyamatok kezelése

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

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

(kernel3d vizualizáció: kernel245_graph.mpg)

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

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

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

Folyamatok. 6. előadás

Balogh Ádám Lőrentey Károly

Operációs rendszerek MINB240

12. Másodlagos tár szerkezet

Dr. Illés Zoltán

Példa. Job shop ütemezés

Matematikai és Informatikai Intézet. 4. Folyamatok

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

Operációs rendszerek II. jegyzet

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

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

Programozási módszertan. Mohó algoritmusok

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

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

Termelő-fogyaszt. fogyasztó modell

Operációs rendszerek

Előadás_# Az első ZH megírása

Architektúra, megszakítási rendszerek

Az interrupt Benesóczky Zoltán 2004

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

Konkurens TCP Szerver

Operációs rendszerek MINB240

Operációs rendszerek Folyamatközi kommunikáció 1.1

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

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

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Operációs rendszerek. Bemutatkozás

Operációs rendszerek be és kivitelkezelése, holtpont fogalma, kialakulásának feltételei, holtpontkezelési stratégiák, bankár algoritmus.

Utolsó módosítás:

Nyíregyházi Főiskola Matematika és Informatika Intézete. Holtpont (Deadlock) Alapfogalmak, példák, ábrázolás. Biztonságos és nem biztonságos állapot

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

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

Operációs rendszerek. Holtpont

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

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

Regiszter: Processzor védelmi szintek: Megszakítások: Feladat maszkolása Nem maszkolható feladatok Operációs rendszer: Kommunikáció a perifériákkal:

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

Logisztikai szimulációs módszerek

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

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

Dr. habil. Maróti György

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

Utolsó módosítás:

Adatszerkezetek I. 8. előadás. (Horváth Gyula anyagai felhasználásával)

OPERÁCIÓS RENDSZEREK. Elmélet

Algoritmusok és adatszerkezetek I. 1. előadás

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

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

Szálak szinkronizálása (Ro- Sincronizarea threadurilor)

Folyamatszálak. Folyamatszálak. Folyamat. Folyamatszál. Szálak felépítése. Folyamatszálak általános jellemzői

Operációs rendszerek

Podoski Péter és Zabb László

Tartalom. Operációs rendszerek. Precedencia. 3.2 Szinkronizáció. 3.1 Folyamatokból álló rendszerek. Együttműködő folyamatok használatának indokai

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Operációs rendszerek vizsga kérdések válaszokkal (ELTE-IK Prog.Terv.Mat 2005)

Operációs rendszerek (I 1204)

UNIX: folyamatok kommunikációja

értékel függvény: rátermettségi függvény (tness function)

Osztott algoritmusok

Dr. Schuster György október 3.

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

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Optimista konkurenciavezérlés

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Előadás_#06. Előadás_06-1 -

Programozási nyelvek és módszerek Java Thread-ek

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

angolul: greedy algorithms, románul: algoritmi greedy

Átírás:

Mutex Operációs rendszerek MINB24 3. előadás Ütemezés Bináris szemafor Szemaforváltozója csak két értéket vehet fel ( / 1; foglalt / szabad) Kölcsönös kizárásra 1 kezdőértékű mutex A kritikus szakaszba belépni kívánó folyamat down műveletet hajt végre A kilépő pedig up műveletet 1 3 Szemaforok Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1; Up: s := s + 1; A szemaforváltozó más utasításokkal nem érhető el Monitorok Speciális modulba gyűjtött eljárások, változók, adatszerkezetek együttese A processzusok bármikor hívhatják a monitorban levő eljárásokat Nem érhetik el közvetlenül a monitor belső adatszekezeteit a monitoron kívül deklarált eljárásokból Kritikus zóna implementációja 2 4 1 2

Klasszikus IPC problémák Folyamatok közötti kommunikáció -Inter Process Communication (IPC) Étkező filozófusok probléma Nyilvánvaló megoldás, de hibás! Filozófusok száma Probléma: ha egyszerre veszik fel a jobb villát Az étkező filozófusok probléma Az olvasók és írók probléma Az alvó borbély probléma Gondolkodik Felveszi a jobb villát Felveszi a másik villát Eszik Visszateszi az egyik majd a másik villát 5 Étkező filozófusok probléma Dijkstra (1965) Evéshez 2 villa szükséges Egy ben csak 1 villa vehető fel Gondolkodás; evés Hogy kerüljük el a holdpontot? Éheztetés Hatékonyság Étkező filozófusok probléma Filozófusok száma Szomszédok sorszáma Szemaforok az int speciális fajtája Speciális tömb a filozófus tevékenységének nyomonkövetésére (eszik, gondolkodik, éhes) Végtelen ciklus -Gondolkodik - Megszerzi mindkét villát -Eszik -Visszateszi a villákat 6 3 4

Étkező filozófusok probléma Belépés a kritikus szekcióba Rögzítjük, hogy éhes Megpróbál még egy villát szerezni Kilépés a kritikus szekcióból Ha nincs villaszerzés, blokkol A LEFT, RIGHT makrók definiálják a szomszédokat Egy filozófus csak akkor mehet át evés állapotba, ha egyik szomszédja Tesztel, sem megfelel-e eszik a feltételeknek 9 Olvasók és írók probléma Kizárólagos elérés beállítása rc-hez Író belépése, írás A következő olvasók csak az rc számlálót növelik Az első olvasó, aki hozzáfér az adatbázishoz, végrehajt egy down-t a db szemaforon Ha kilép az olvasó, akkor az rc számlálót csökkenti Az utolsó olvasó végrehajt egy up-ot a szemaforon Így lehetővé teszi a blokkolt írók belépését Olvasók és írók probléma Az adatbázisok hozzáférési problémáit modellező feladat több olvasó lehet a bázisban egyidejűleg de az írónak kizárólagos joga van a hozzáféréshez Hatékony egyidejűség Az alvó borbély probléma Egy processzus kiszolgál más processzusokat Ha nincs kiszolgálandó alszik Első érkező ébreszti Csak bizonyos számú processzus várakozhat Amíg az eljárás tart, más nem kerül sorra Ha vége az eljárásnak, a processzus befejeződik, új eljárás kezdődik (ha van) és új processzus léphet be 1 12 5 6

Az alvó borbély probléma A borbély alszik, ha nincs vendég Hajvágásra kész Hajvágás Kritikus szekcióba lépés Ha van szabad szék Várakozó vendégek számának növelése Bornély felébresztése Vendég kiszolgálása Ütemezés tulajdonságok Gyakran fut gyorsnak kell lennie (a CPU ne az ütemezéssel teljék) ezért: Része a kernelnek Állandóan a memóriában van Fajtái: Preemtív ütemezés: az op.rsz. elveheti a futás jogát az éppen futó folyamattól Nem preemtív: a futó folyamat addig birtokolja a CPU-t, míg állapotot nem vált Üzlet teli állapot esetén nem léphet be 13 15 Ütemezés Ha több processzus is képes futni de csak egy erőforrás áll rendelkezésre Op.rsz.-nek el kell döntenie, hogy melyik processzus fusson ütemezés Ütemezési algoritmus Processzusra és szálakra egyaránt vonatkozhat Processzusok viselkedése CPU dolgozik egy ideig Rendszerhívás I/O művelet befejezésére várakozik Ismét számol Sztámításigényes processzus I/O igényes processzus 16

Mikor ütemezzünk? Feltétlenül szükséges: 1. Processzus befejeződésekor 2. Processzus blokkolódása I/O művelet vagy szemafor miatt Ezen felül még ütemezésre kerül sor: 3. Új processzus létrejöttekor 4. I/O megszakítás esetén 5. Időmegszakítás esetén Ütemezési algoritmusok csoportosítása 1. Kötegelt Nincsenek felhasználók Nem megszakítható ütemezési algoritmusok 2. Interaktív Időnkénti megszakítás nélkülözhetetlen Különben egy processzus kizárhatná a többit Megszakításos ütemezés 3. Valós idejű Nem mindig van szükség megszakításos ütemezésre 1 19 Ütemezési algoritmusok Ütemezési algoritmusok céljai Időzítő-megszakítások kezelésének vonatkozásában lehetnek: Nem megszakítható ütemezés Addig engedi futni,a míg az nem blokkolódik, vagy le nem mond a CPU-ról Megszakítható ütemezés Csak egy előre meghatározott ideig futhat Minden rendszer Pártatlanság Elvek betartása Egyensúly II. Interaktív rendszerek Válasz Arányosság I. Kötegelt rendszerek Áteresztőképesség Áthaladási CPU kihasználtság III. Valós idejű rendszerek Határk betartása Adatvesztés elkerülése Előrejelezhetőség 1 2 9 1

I. Ütemezés kötegelt rendszerekben 1. Sorrendi ütemezés (FCFS) 2. A legrövidebb feladat először (SJF) 3. A legrövidebb maradék futási idejű következzen (SRTF) Megjegyzés: némelyik algoritmus kötegelt és interaktív rendszereknél egyaránt használatos 1.2. A legrövidebb feladat először SJF (Shortest Job First) Feltételezi, hogy a futási k előre ismertek Ha több egyformán fontos feladat van a bemenő sorban futásra készen Az ütemező a legrövidebb feladatot választja 21 23 1.1. Sorrendi ütemezés FCFS (First Come Firts Served) Olyan sorrendben osztja ki a CPU-t, ahogyan a processzusok kérik azt A futásra kész processzusok egyetlen várakozó soron állnak láncolt lista A kiválasztás a sor elejéről az első processzus levétele 1.2. A legrövidebb feladat először folyt. Bizonyíthatóan optimális algoritmus Pl.: Négyfeladatos eset, a,b,c,d futási kkel (4a + 3b + 2c + d) / 4 Megjegyzés: csak akkor optimális, ha a feladatok egyszerre a rendelkezésre állnak 24 12

1.3. A legrövidebb maradék futási idejű következzen Shortest Remaining Timem First (SRTF) A legrövidebb feladat először algoritmus megszakítható változata Szintén előre ismerni kell a futási ket Az ütemező azt a feladatot választja, melynek befejezéséig legkevesebb a megmaradt ideje Háromszintű ütemezés folyt. 25 2 Háromszintű ütemezés Kötegelt rendszerekben az ütemezés három szinten történik: Bebocsátó ütemező Memória ütemező CPU ütemező II. Ütemezés interaktív rendszerekben 1. Round Robin ütemezés 2. Prioritásos ütemezés 3. Többszörös sorok 4. Legrövidebb processzus következzen 5. Garantált ütemezés 6. Sorsjáték ütemezés. Arányos ütemezés 26 2 13

2.1. Round Robin ütemezés Minden processzusnak ki van osztva egy intervallum - szelet Ha az szelet letelte utána processzus még fut, akkor átadódik a vezérlés egy másik processzusra 2.2. Prioritásos ütemezés Minden processzushoz rendeljünk egy prioritást A legmagasabb prioritású futásra kész processzus futhasson A végtelen ideig történő futás megelőzésére: Ütemező minden óraütemben csökkentheti az éppen futó processzus prioritását Minden processzushoz hozzárendelhetünk egy szeletet amíg futhat Mikor ezt kihasználta; a köv. legmagasabb prioritású futhat 29 31 2.1. Round Robin ütemezés folyt. Környezetátkapcsolás (processzusátkapcsolás) Problémák: Időszelet túl kicsire választása túl sok processzus átkapsolást okoz csökken a CPU hatékonysága Időszelet túl nagyra állítása Rövid interaktív kérésekre gyenge válasz 2.2. Prioritásos ütemezés folyt. Prioritás hozzárendelés: Statikusan Dinamikusan Prioritási osztályba sorolás Osztályok között prioritásos ütemezés Osztályon belül round robin ütemezés 3 32 15 16

2.2. Prioritásos ütemezés folyt. Amíg van futtaható processzus egy osztályon belül, mindegyik egy szeletig fut Ha üres, akkor a következő szint processzusai futhatnak 2.3. Többszörös sorok folyt. Prioritási osztály Időszelet N. prioritási osztály 1 szeletig fut N-1.prioritási osztály 2 szeletig fut N-2.prioritási osztály 4 szeletig fut N-3.prioritási osztály szeletig fut Ha egy processzus elhasználja a számára biztosított szeletet, egy osztállyal lejjebb kerül 33 35 2.3. Többszörös sorok Multilevel Queues CPU igényes processzusok esetén hatékonyabb: ha nként nagy szeleteket adnak mintha gyakran adnak neki kicsit (sok lapcsere) De ha minden processzus kapna nagy szeletet: Gyenge válasz jelentkezne Megoldás: Prioritási osztályok felállítása 2.3. Többszörös sorok fajtái Statikus többszörös sorok - Static Multilevel Queues (SMQ) Minden folyamat indulásakor rendelünk egy prioritást Ez a folyamat élete során nem változik Hátrány: éheztetés Visszacsatolt többszörös sorok - Multilevel Feedback Queues (MFQ) Öregítés technika A folyamatokhoz dinamikus prioritás rendelődik 34 1 1

2.4. Legrövidebb processzus következzen A kötegelt rendszerekben minimális választ adó legrövidebb feladat először módszer alkalmazása interaktív processzusoknál Probléma: a párhuzamosan futtatható processzusok között melyik a legrövidebb 2.5. Garantált ütemezés Ígéret és betartása a teljesítményt illetőleg Ha n felhasználó van bejelentkezve, akkor a CPU teljesítmény kb. 1/n-ed részét fogod megkapni Nyomon kell követni, hogy egy processzus mennyi CPU t kapott létrehozása óta Számolható a neki járó mennyiség Aktuális / neki járó arány számolható A legkisebb arányszámmal rendelkező processzus futtatja az algoritmus 3 39 2.4. Legrövidebb processzus következzen folyt. Legrövidebb processzus kiválasztása: Becslés a múltbeli viselkedés alapján legkisebb becsült futási alapján futtatjuk Öregedés sorozat következő elemét úgy becsüljük, hogy vesszük az éppen mért értéknek és az előző becslésnek a súlyozott átlagát 2.6. Sorsjáték ütemezés A processzusok között másodpercenként meghatározott számú sorsjegyet (CPU egységet) oszt ki az ütemező A magasabb prioritású processzusok több sorsjegyet kapnak Együttműködő processzusok átadhatják egymásnak a sorsjegyeiket 3 4 19 2

2.. Arányos ütemezés Az ütemező figyelembe veszi, hogy ki a processzus tulajdonosa Pl.: ha két felhasználó van felesben lett előirányozva a CPU akkor ennyit fognak kapni függetlenül attól, hány processzust futtatnak III. Ütemezés valós idejű rendszerekben folyt. Valós idejű operációs rendszerekre jellemző: Kis méret Rövid megszakítási Gyors környezetcsere Rövid ideig tartó megszakítás Többszörös zítő kezelés (ezred és mikromásodperces nagyságrendben) 41 43 III. Ütemezés valós idejű rendszerekben Idő alapvető szerepet játszik Aktuális fizikai mennyiségek alapján valós n belül kell eredményt adniuk Fajtái: szigorú valós idejű rendszerek, abszolút határkkel lágy valós idejű rendszerek, ahol a határ elmulasztása tolerálható III. Ütemezés valós idejű rendszerekben folyt. Valósidejűség elérése: programokat rövid, megjósolható tartamú processzusokra osztjuk, melyek viselkedése előre ismert A valós idejű rendszerek programozható eseményei lehetnek periodikusak illetve aperiodikusak 42 44 21

III. Ütemezés valós idejű rendszerekben folyt. Pl.: legyen m periodikus eseményünk az i-dik esemény periódusa P i az egyes események kezelésének ideje C i A sorozat csak akkor kezelhető, ha: m i= 1 Ci P i 1 ütemezhető rendszer III. Ütemezés valós idejű rendszerekben Algoritmusok Állandó arány algoritmus Legkorábbi határ először Lazaságon alapuló algoritmus 45 4 III. Ütemezés valós idejű rendszerekben folyt. Valós idejű rendszerek ütemező algoritmusai: Statikusak Döntéseket a rendszer futásának megkezdése előtt hozza Csak akkor működik ha előzetes teljes ismereteink vannak a feladatokról és határkről Dinamikusak Ütemezési döntéseket futás közben hozza Nincs korlátozás a használatánál Szálütemezés Processzuson belül több végrehajtási szál - kétszintű párhuzamosság Kernel kiválaszt egy processzust/szálat és átadja neki a vezérlést egy szelet erejéig Fajtái: Felhasználói szintű» Processzuson belül nincs zítő Kernel szintű» A processzuson belül a szálütemező dönti el, hogy melyik szál fusson 46 4 23 24

Felhasználói szintű szálak ütemezése Kernel csak processzust vált Ütemezési algoritmusok összehasonlítási szempontjai A központi egység kihasználtság (CPU utilization): ΣCPU Σ( henyélés+ ad minisztáció) 1[%] ΣCPU Elvégzett munkák száma Átbocsátó képesség (throughput): Idő Körülfordulási (turnaround time): Σ (végrahajt ási + várakozási) Várakozási (waiting time): Σ (várakozó + futásra kész + felfüggesztett + hosszú távú ütemezésig eltelt ) Válasz (response time) 49 51 Kernel szintű szálak ütemezése Kernel processzust vagy szálakat vált Példa: FCFS, SJF, RR összehasonlítása P1 Processzus azonosító 2 Érkezési 1 CPU szükséglet 5 52 25 26

FCFS Processzus azonosító P1 Érkezési CPU szükséglet RR Összes : 44 Processzus azonosító P1 Érkezési CPU szükséglet 2 1 Időszelet: 1 Átlag : 44 / 4 = 2 1 Proc. azonosító Érkezési CPU szükséglet Kezdő pont Befejezési Időpont Várakozási Proc. az. Érk. CPU szükséglet Kezdő pont Bef. Időpont Vár. Maradék Várakozó proc. P1 2 1 5 5 6 3 Összes : 56 Átlag : 56 / 4 = 53 P1 P1* * * * (1) 2 (32) (52) (62) 4 1 26 16 6 1 1 32 42 52 62 1 1 32 42 52 62 6 3 12 1 4 - - 26-16 6 - P1; P1; ; ; - 55 SJF Processzus azonosító P1 Érkezési CPU szükséglet Ütemezés többprocesszoros rendszereknél Proc. az. Érk. CPU szükséglet Kezdő pont Bef. Időpont Vár. 2 Várakozó processzus 1 Legrövidebb proc. Heterogén rendszerek esetén: A rendszerbe építet CPU-k különböznek (utasításkészlet) A programok kötötten futhatnak P1 2 1 32 2 32 6 21 Összes : 3 Átlag : 3 / 4 =,5 ; ; - - 54 Homogén rendszerek esetén: CPU-k funkcionalitás szempontjából egyformák A futásra kész folyamatok a rendszer bármely szabad CPU-ján futhatnak Közös várakozási sor Kétféle ütemezési megközelítés: Szimmetrikus multiprocesszoros rendszer minden CPU-nak saját ütemezője Aszimmetrikus multiprocesszoros rendszer egyetlen ütemező egy kiválasztott processzoron 56 2 2

Következő előadás témája Ütemezés megvalósítási elvei MINIX UNIX Windows NT rendszerek esetén 5 29