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 -

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

Dr. Illés Zoltán

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.

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

Windows ütemezési példa

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 Folyamatok 1.1

Operációs Rendszerek II.

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

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

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

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

Folyamatok. 6. előadás

(kernel3d vizualizáció: kernel245_graph.mpg)

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

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

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 MINB240 UNIX, Windows NT ütemezése Holtpontkezelés. UNIX ütemezése. Algoritmus követelményei. 4.

12. Másodlagos tár szerkezet

Operációs rendszerek MINB240

Matematikai és Informatikai Intézet. 4. Folyamatok

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

Példa. Job shop ütemezés

Balogh Ádám Lőrentey Károly

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

Dr. Illés Zoltán

Operációs rendszerek II. jegyzet

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

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

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

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

Programozási módszertan. Mohó algoritmusok

Konkurens TCP Szerver

Operációs rendszerek

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

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

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

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

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

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

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.

Termelő-fogyaszt. fogyasztó modell

Operációs rendszerek MINB240

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

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

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.

Ü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

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

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

DIALOG időkapcsoló PROGRAMOZÁSI ÚTMUTATÓ

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

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

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

Logisztikai szimulációs módszerek

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

Dr. habil. Maróti György

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

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

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

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

Operációs rendszerek

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

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

angolul: greedy algorithms, románul: algoritmi greedy

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

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

Podoski Péter és Zabb László

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

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

OE-NIK 2010/11 ősz OE-NIK ősz

UNIX: folyamatok kommunikációja

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

Operációs rendszerek (I 1204)

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

Osztott algoritmusok

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Dr. Schuster György október 3.

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

10. Exponenciális rendszerek

Optimista konkurenciavezérlés

Átírás:

Szemaforok Operációs rendszerek MINB24 3. előadás Ütemezés 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 1 2 Mutex 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 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 3 4

Klasszikus IPC problémák Folyamatok közötti kommunikáció -Inter Process Communication (IPC) Az étkező filozófusok probléma Az olvasók és írók probléma Az alvó borbély probléma É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 5 6 Étkező filozófusok probléma Nyilvánvaló megoldás, de hibás! Filozófusok száma Gondolkodik Probléma: ha egyszerre veszik fel a jobb villát Felveszi a jobb villát É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) Eszik Felveszi a másik villát Visszateszi az egyik majd a másik villát Végtelen ciklus -Gondolkodik - Megszerzi mindkét villát -Eszik -Visszateszi a villákat

Étkező filozófusok probléma Olvasók és írók 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 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 Egy filozófus csak akkor mehet át evés állapotba, ha egyik szomszédja Tesztel, sem megfelel-e eszik a feltételeknek 9 1 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 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 12

Az alvó borbély probléma A borbély alszik, ha nincs vendég Hajvágásra kész Hajvágás Ü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 Kritikus szekcióba lépés Ha van szabad szék Várakozó vendégek számának növelése Processzusra és szálakra egyaránt vonatkozhat Bornély felébresztése Vendég kiszolgálása Üzlet teli állapot esetén nem léphet be 13 Ü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 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 15 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 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 1 1 Ütemezési algoritmusok csoportosítása Ütemezési algoritmusok céljai 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 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 19 2

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.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 21 22 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 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 23 24

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 Kötegelt rendszerekben az ütemezés három szinten történik: Bebocsátó ütemező Memória ütemező CPU ütemező 25 26 Háromszintű ütemezés folyt. 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 2 2

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.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 29 3 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 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 31 32

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 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 33 34 2.3. Többszörös sorok folyt. Prioritási osztály N. prioritási osztály N-1.prioritási osztály N-2.prioritási osztály N-3.prioritási osztály 1 szeletig fut 2 szeletig fut 4 szeletig fut szeletig fut Ha egy processzus elhasználja a számára biztosított szeletet, egy osztállyal lejjebb kerül Időszelet 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 35

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.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 3 3 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 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 39 4

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 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ó 41 42 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) 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 43 44

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 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 45 46 III. Ütemezés valós idejű rendszerekben Algoritmusok Állandó arány algoritmus Legkorábbi határ először Lazaságon alapuló algoritmus 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 4 4

Felhasználói szintű szálak ütemezése Kernel csak processzust vált Kernel szintű szálak ütemezése Kernel processzust vagy szálakat vált 49 5 Ütemezési algoritmusok összehasonlítási szempontjai FCFS, SJF, RR összehasonlítása 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ő Példa: Processzus azonosító Érkezési CPU szükséglet 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) P1 2 1 51 52

FCFS Processzus azonosító P1 Érkezési CPU szükséglet SJF Processzus azonosító P1 Érkezési CPU szükséglet 2 1 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. Várakozó processzus Legrövidebb proc. P1 2 1 22 5 22 5 6 3 P1 2 1 22 32 22 32 6 2 21 ; ; - - Összes : 56 Átlag : 56 / 4 = Összes : 3 Átlag : 3 / 4 =,5 53 54 RR Összes : 44 Átlag : 44 / 4 = Időszelet: 1 Proc. az. Érk. CPU szükséglet Kezdő Bef. Vár. pont Időpont Processzus azonosító P1 Érkezési 2 Maradék CPU szükséglet 1 Várakozó proc. Ütemezés többprocesszoros rendszereknél 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 P1* * * * (1) 2 (32) (52) (62) 4 1 26 16 6 1 1 22 32 42 52 62 1 1 22 32 42 52 62 6 3 12 1 4 - - 26-16 6 - P1; P1; ; ; - 55 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

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