Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek



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

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

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

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

Dr. Illés Zoltán

Operációs rendszerek II. jegyzet

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Ütemezés (Scheduling),

Ü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

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

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar május 30.

Máté: Számítógép architektúrák

Operációs rendszerek

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

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

Operációs rendszerek MINB240

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

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

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Operációs rendszerek MINB240

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Számítógép Architektúrák

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar május 27.

2. fejezet Hálózati szoftver

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 1. kidolgozott tételsor Verzió: 1.0 (Build: )

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

Operációs Rendszerek II.

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications)

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Cache, Cache és harmadszor is Cache

5 HOZZÁFÉRÉS-VÉDELEM. A fejezet VIDEOTON fejlesztési dokumentációk felhasználásával készült

Operációs rendszerek. Holtpont

1. oldal, összesen: 29 oldal

int azt az elõzõ részbõl megtudtuk, a rétegeknek az a feladatuk, hogy valamiféle feladatot végezzenek

diagnosztika 48 autótechnika 2002/9

9. Virtuális memória kezelés

Bánsághi Anna 1 of 67

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE

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

6. Tárkezelés. Operációs rendszerek. Bevezetés A program címeinek kötése. A címleképzés. A címek kötésének lehetőségei

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Billenő áramkörök Jelterjedés hatása az átvitt jelre

Elektromos rásegítésû kerékpárok

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Tartalomjegyzék. MOK Ügyeletnyilvántartó rendszer használati kézikönyve v2.1

15. Programok fordítása és végrehajtása

Az üzemi méréstechnika hat szabálya

A TMS320C50 és TMS320C24x assembly programozására példák

E7-DTSZ konfigurációs leírás

3 Tápegységek. 3.1 Lineáris tápegységek Felépítés

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Általános rendszergazda Általános rendszergazda

Joachim Meyer. Bot. A vívás szabad lovagi és nemesi művészetének alapos leírása (1570) Fordította: Berki András

2-5 játékos számára 10 éves kor felett, játékidő 60 perc. Oleyli klán: A sárga klán mindenre és mindenkire irigy amivel nem rendelkezik.

6. AZ EREDMÉNYEK ÉRTELMEZÉSE

1. Az utasítás beolvasása a processzorba

Operációs rendszerek feladatai

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

A jogszabályok és a szabványok eltérő szerepköréből következően, a két dokumentumtípus között több fontos különbség is található:

JÁTSZÓTÉRI FIZIKA GIMNAZISTÁKNAK

SZOLGÁLTATÁSMARKETING. 2. segédanyag

Kvantumkriptográfia III.

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

GSP9700. Megoldja a kekerekkel kapcsolatos minden problémát, amit egy hagyományos kiegyensúlyozóval és futóműállítóval nem lehetséges

Minőségérték. A modellezés céljának meghat. Rendszer elemzés. Módszer kiválasztása. Modell megfelelőség elemzés. Működés szimuláció

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

Ritzelés körkéses ritzelőgépeken

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

Rendszerfelügyelet Logikai partíciók

III/1. Kisfeszültségű vezetékméretezés általános szempontjai (feszültségesés, teljesítményveszteség fogalma, méretezésben szokásos értékei.

I+K technológiák. Digitális adatátviteli alapfogalmak Aradi Szilárd

RÉTSÁG VÁROS ÖNKORMÁNYZATÁNAK KÉPVISELŐ-TESTÜLETE. ELŐTERJESZTÉS a képviselő-testület október 28-i rendes ülésére

CA Clarity PPM. Igénykezelés felhasználói útmutató. Release

Irányítószámok a közigazgatás szürke zónájában

A rádiólokációs információfeldolgozás folyamata

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.

Office Gyakori kérdések

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

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Az enyhe értelmi fogyatékos fővárosi tanulók 2009/2010. tanévi kompetenciaalapú matematika- és szövegértés-mérés eredményeinek elemzése

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

TomTom Bridge Referencia útmutató

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

SGS-48 FORGALOMTECHNIKAI SEGÉDLET

Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve

A FOGLAKOZÁS ADATAI: SZERZŐ. Vindics Dóra. Vezérelj robotot! A FOGLALKOZÁS CÍME A FOGLALKOZÁS RÖVID

MUNKAANYAG. Angyal Krisztián. Szövegszerkesztés. A követelménymodul megnevezése: Korszerű munkaszervezés

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

A TWAIN adatforrás használata

MAVIR ZRt. Transzformátor diagnosztika hazai és nemzetközi helyzete. CSÉPES GUSZTÁV

Hálózatkezelés Szolgáltatási minőség (QoS)

Windows ütemezési példa

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA

A szolgáltatásbiztonság alapfogalmai

Programozható logikai vezérlõk

Átírás:

Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Soós Sándor Nyugat-magyarországi Egyetem Faipari Mérnöki Kar Informatikai és Gazdasági Intézet E-mail: soossandor@inf.nyme.hu 2011. ősz Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 1 / 59

Tartalomjegyzék 1 Multiprogramozott operációs rendszerek 2 Emlékeztető kérdések

Hol tartunk? 1 Multiprogramozott operációs rendszerek 2 Emlékeztető kérdések

, I A multiprogramozás fogalma: Mikor alakult ki? Miért alakult ki? Mi a lényege? Milyen feltételei vannak? Manapság használjuk? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 4 / 59

, II A számítógépek 3. generációjának idején alakult ki az igény és a technikai lehetőség Használjuk ki a gyors processzort akkor is, amikor a lassú perifériás műveletek zajlanak Több program futtatása egyszerre Mit jelent az idézőjel? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 5 / 59

A multiprogramozás működési elve Egyszerre több program futhat (virtuálisan) Egy processzor egy adott pillanatban azonban csak egy feladaton dolgozhat (Napjainkban a többmagú processzorok ebből a szempontból több processzornak számítanak) Egy folyamat addig fut a processzoron, amíg várakozásra nem kényszerül, vagy le nem telik a számára kiosztott időszelet (preemptív rendszer) Ilyenkor a folyamat állapota mentésre kerül Amelyik folyamatnak teljesül a továbbfutási feltétele, az bekerül a választhatók listájába A processzor kiválasztja valamelyik folyamatot a listából, visszaállítja az eltárolt adatait, és továbbindítja Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 6 / 59

Mit kell megvalósítani ehhez? Választani kell a folyamatok közül CPU-ütemezés Több program osztozkodik a táron Tárgazdálkodás Meg kell osztani a rendszer erőforrásait a folyamatok között, szükség esetén garantálni kell az időbeli korlátok betartását (kölcsönös kizárás, randevú, sorrend), kezelni kell a holtponthelyzeteket Erőforrás-gazdálkodás Biztosítani kell, hogy a folyamatok ne zavarják egymást és a rendszer működését Védelem El kell rejteni a rendszer fizikai részleteit, felhasználóbarát kezelhetőség Virtuális gép Kommunikációs felület más számítógépek és programok felé Hálózatkezelés Mivel nem foglalkoztunk még ezek közül: CPU-ütemezés Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 7 / 59

Hol tartunk? 1 Multiprogramozott operációs rendszerek 2 Emlékeztető kérdések

Folyamatkezelés (emlékeztető) Folyamatmodell: Minden folyamatnak saját processzora és saját memóriája van A valós helyzet: Egyetlen processzor és egyetlen memória van a számítógépben Az operációs rendszer feladata: A valóságos környezet felhasználásával virtuális környezet biztosítása a folyamatok számára logikai processzor logikai memória Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 9 / 59

Logikai memória Amikor fut a folyamat, megkapja a fizikai memória egy részét Ebben helyezkedik el a kód és az adatok egy része, amennyi elfér A többi a háttértáron marad Amikor szükség van rá, akkor betöltődik a memóriába, de mivel ez sokáig tarthat, a folyamatnak várakoznia kell, közben más futhat helyette Kérdés: Hogyan oldjuk meg ezeket a cseréket, mi kerüljön ki és mi töltődjön be? Erről rendelkeznek a lapcserélési algoritmusok Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 10 / 59

Logikai processzor Párhuzamos futtatás A fizikai processzor felváltva futtatja a logikai processzorokat Ha elég gyakran és gyorsan történik a váltás, akkor úgy tűnik, mintha párhuzamosan működnének a logikai processzorok, és így futnának a folyamatok Megvalósítás: A valós processzorhoz kapcsolunk egy várakozási sort Amikor felszabadul a processzor, akkor ebből a sorból választjuk ki a következő futó folyamatot valamilyen algoritmus szerint Kérdések: Meddig futhat egy folyamat? Hogyan válasszuk ki a következőt? Erről rendelkeznek a CPU-ütemező algoritmusok Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 11 / 59

A folyamatok felépítése A folyamatok futása során kétféle tevékenység váltakozik 1 Processzorlöket (CPU-burst): processzor által végrehajtandó utasítássorozat 2 Be-/kiviteli löket (I/O-burst): a processzor nélkül, a perifériák által végrehajtandó utasítássorozat Amikor a folyamat I/O-lökethez ér, elindíthatunk egy másik folyamatot Az egyes folyamatok eltérő arányban tartalmazzák a löketeket, vannak CPU-intenzív és I/O intenzív folyamatok A rendszer eredő teljesítménye akkor a legjobb, ha a kétféle folyamat nagyjából egyelő arányban fordul elő Általában ezt nem tudjuk befolyásolni, de ha van rá mód, akkor érdemes figyelni erre Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 12 / 59

Állapotmodell Multiprogramozott operációs rendszerek Állapotmodell A folyamatok minden pillanatban három különböző állapot valamelyikében lehetnek: 1 Fut (mindig csak egy folyamat lehet ebben az állapotban) 2 Futásra kész 3 Várakozik Az állapotok meghatározott rend szerint válthatják egymást Ezt a rendet az állapot-átmenet diagrammal tudjuk ábrázolni Ezt az eszközt más esetekben is használhatjuk, pl. programozás közben Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 13 / 59

Állapot-átmenet diagram, I Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 14 / 59

Állapot-átmenet diagram, II Állapotátmenetek: Létrejön Elindul a folyamat, megkapja a logikai memóriát, betöltődik a kezdéshez szükséges kód és az adatok A folyamat futásra kész állapotba kerül CPU-t kap Az ütemező kiválasztotta a folyamatot, megkezdődik a végrehajtás A folyamat futó állapotba kerül CPU-t elveszik, vagy lemond Letelt a folyamat számára engedélyezett időszelet, vagy önként lemond a futásról, de bármikor folytatható a futása A rendszer elmenti a folyamat állapotát A folyamat futásra kész állapotba kerül Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 15 / 59

Állapot-átmenet diagram, III Várakozásra vezető rendszerhívás A folyamat végrehajtott egy olyan rendszerhívást, ami várakozást eredményez A rendszer elmenti a folyamat állapotát A folyamat várakozó állapotba kerül A várt esemény bekövetkezik Véget ért a várakozást kiváltó tevékenység A folyamat futásra kész állapotba kerül Befejeződik A folyamat befejeződött Végrehajtja az ekkor szükséges rendszerhívást Ez egy alapmodell, ennél bonyolultabb rendszerek is léteznek, több állapottal és átmenettel Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 16 / 59

, I A kernel része Állandóan a memóriában van Nagyon gyorsnak kell lennie, mert nagyon gyakran futnia kell Kétféle ütemező létezik: Preemptív: Megszakíthat egy éppen futó folyamatot Nem preemptív: Futó folyamatot nem szakíthat meg, a folyamat csak maga függesztheti fel magát Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 17 / 59

, II Mikor történik ütemezés? Az éppen futó folyamat befejeződik Az éppen futó folyamat várakozó állapotba kerül Egy folyamat futásra kész állapotba kerül A futó folyamat újraütemezést kér, vagy preemptív ütemezés esetén elveszti a futási jogot Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 18 / 59

, III Milyen elvárásaink vannak az ütemezővel szemben? Kezeljen prioritásokat Ne legyen éhezés Bármekkora terhelés esetén garantáljon felső korlátokat bizonyos paraméterekre, pl. várakozási idő, átfutási Engedje előre a nem használt erőforrásokat igénylő folyamatokat Minél kevesebb adminisztrációra legyen szükség Elegáns visszaesés (graceful degradation): a terhelés növekedésével legfeljebb lineárisan csökkenjen a teljesítmény, ne omoljon össze a rendszer Ezek a követelmények ellentmondanak egymásnak, nem lehet egyszerre kielégíteni ezeket Ezért van sok különböző ütemezési algoritmus a piacon Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 19 / 59

, IV Teljesítményelemzés, milyen szempontok szerint minősítjük az ütemező algoritmusokat? Processzor kihasználtság: hasznos_ido osszes_ido 100 [%] hasznos_ido: A teljes idő és a tétlenül töltött idő (adminisztráció és egyéb járulékos tevékenységek, overhead) különbsége Ma tipikusan 40 90% között van Átbocsátóképesség: elvegzett_munkak_szama ido [ 1 s, 1 min, 1 ] h Értéke tág határok között mozog Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 20 / 59

, V Körülfordulási (átfutási) idő: Várakozási idő: vegrehajtasi_ido + varakozasi_ido utemezesek_ideje + felfuggesztes_ideje + futasra_kesz_allapot_ideje + varakozas_ideje + egyeb_nem_hasznos_idok Mivel a végrehajtás ideje egy adott rendszerben állandó, ezért elég ezt figyelni Válaszidő: Időosztásos rendszerekben egy kezelői parancs kiadásától a válasz megérkezéséig eltelt idő Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 21 / 59

Egyszerű ütemezések, I Legrégebben várakozó (FCFS - First Come First Served) Nem preemptív Nagyon egyszerűen implementálható Nagy lehet az átlagos várakozási idő Konvoj hatás: egy hosszú folyamatot végig kell várni a többieknek a processzornál és a perifériáknál is Példa: csekkbefizetés a postán Körbeforgó (RR - Round Robin) Preemptív A folyamat legfeljebb egy adott ideig futhat, utána a sor végére állítjuk Kritikus kérdés az időszelet hosszának beállítása Ha túl hosszú: gyakorlatilag FCFS-sé válik Ha túl rövid: túl sok környezetváltás Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 22 / 59

Egyszerű ütemezések, II Gyakorlati ökölszabály: a folyamatok 80%-a legyen rövidebb az időszeletnél Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 23 / 59

Egyszerű ütemezések, III Prioritásos ütemezések A várakozók közül a legfontosabb (legmagasabb prioritású) folyamatot választjuk A prioritás lehet: külső (a kezelő adja), vagy belső (a rendszer adja) statikus (időben állandó), vagy dinamikus (időben változhat) A következő prioritásos algoritmusok esetében a processzorlöket hossza lesz a belső prioritási szempont Legrövidebb löketidejű (SJF - Shortest Job First) Nem preemptív A legrövidebb becsült löketidejű folyamatot választja a várakozók közül Becslésen alapszik a korábbi adatok, vagy a felhasználó állítása alapján Kiküszöböli a konvojhatást, az átlagos várakozási idő és a körülfordulási idő is optimális Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 24 / 59

Egyszerű ütemezések, IV Prioritásos ütemezések (folytatás) Legrövidebb hátralévő idejű (SRTF - Shortest Remaining Time First) Preemptív SJF Mikor egy folyamat felébred, újraütemez, és a legrövidebbet választja (figyelembevéve a környezetváltás plusz időigényét) Legjobb válaszarány (HRR - Highest Response Ratio) A prioritás meghatározása: loketido + k varakozasi_ido loketido k egy alkalmas konstans Öregíti a régebb óta várakozó folyamatokat, így elkerülve az éhezést Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 25 / 59

Többszintű ütemezések, I A különböző prioritási szintekhez külön-külön sorokat definiálhatunk Az egyes sorok más-más stratégiával működhetnek Statikus többszintű sorok (SMQ - Static Multilevel Queues) A folyamatok induláskor bekerülnek valamelyik várakozási sorba, és végig ott is maradnak Gond az éhezés! Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 26 / 59

Többszintű ütemezések, II Visszacsatolt többszintű sorok (MFQ - Multilevel Feedback Queues) Az éhezés kiküszöbölésére dinamikus prioritásokat használ, így a folyamatok mozoghatnak a sorok között A magasabb prioritású sorok egyre kisebb időszeletű RR (robin Round) ütemezést használnak, a legkisebb pedig FCFS-t Az új folyamatok a legnagyobb prioritású sorba kerülnek, de ha átlépik az időszeletet, akkor egy szinttel lejjebb kerülnek Később feljebb is kerülhetnek pl. az átlagos löketidő alapján A régóta bentlévő folyamatok prioritása növelhető Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 27 / 59

Többprocesszoros ütemezések Két különböző eset: heterogén, vagy homogén processzorok Heterogén (eltérő felépítésű) processzorok Minden folyamat csak a neki megfelelő processzoron futhat, másikon nem Ilyenkor egymás mellett futó egyprocesszoros rendszerekről van szó Homogén (azonos) processzorok Bármelyik processzoron futhatnak a folyamatok Közös várakozási sor kezeli az összes processzort és folyamatot Hogyan kezeljük ezt a közös sort? Aszimmetrikus rendszerekben van egy kitüntetett processzor, amelyik futtatja az ütemezést, szétosztja a feladatokat Szimmetrikus rendszerekben mindegyik processzoron fut ütemezés, a várakozási sort kölcsönös kizárással kezelik Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 28 / 59

Hol tartunk? 1 Multiprogramozott operációs rendszerek 2 Emlékeztető kérdések

, I Multiprogramozott operációs rendszerek Eddig a processzorokkal foglalkoztunk Ahhoz, hogy a processzor futtatni tudjon egy programot, annak kódját és a hozzá tartozó adatokat a memóriában kell tartani esetén több programnak is a memóriában kell lennie egyidőben Problémák: 1 A memória túl kicsi ahhoz, hogy mindig minden szükséges adat elférjen benne 2 A leggyorsabb háttértár (merevlemez) is nagyságrendekkel lassabb, mint a memória Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 30 / 59

, II Multiprogramozott operációs rendszerek Megoldás: Dolgozzunk a processzor keze alá Oldjuk meg azt, hogy mindig a szükséges adatok legyenek a memóriában, a már/még nem szükségeseket töröljük ki onnan Mindezt úgy oldjuk meg, hogy a processzornak ne kelljen várakoznia Milyen részfeladatokat kell megoldanunk ehhez Társzervezés Az a mód, ahogyan a memóriát megosztjuk a felhasználók között Tárkialakítási módszerek Hogyan szervezzük a memóriát? Virtuális tárkezelés A felhasználó elől elrejtjük, hogy mekkora a fizikai memória Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 31 / 59

Társzervezés, I A társzervezés az a mód, ahogyan a memóriát megosztjuk a felhasználók között A következő kérdésekre keresünk választ: Hány felhasználó férhet hozzá, egy vagy több? Több felhasználó esetén egyforma, vagy különböző méretű részeket (partíciókat) kapnak? A partíció mérete futás közben változhat-e? A terület egybefüggő, vagy darabokból állhat? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 32 / 59

Társzervezés, II Egypartíciós rendszer Csak egy felhasználói folyamat lehet a memóriában A folyamat az első szabad címtől kezdődően helyezkedhet el Az operációs rendszer védelme Egy regiszter mutatja a program által használható memória határát, ennek értéke csak rendszermódban változtatható Folyamatok váltása Probléma: Tárcserével (swapping) Nem hatékony a multiprogramozás megvalósítása Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 33 / 59

Társzervezés, III Többpartíciós rendszer Rögzített méretű partíciók Különböző, de rögzített méretű partíciók vannak a rendszerben Minden partíciót csak egy folyamat birtokolhat Csak olyan partícióba kerülhet bele a folyamat, amiben elfér A multiprogramozás fokát a partíciók száma korlátozza A folyamatok a nekik megfelelő méretű partíciókhoz rendelt várakozási sorokban várakoznak Védelem: alsó és felső határregiszter Probléma: belső tördelődés (nem használt terület a partíciók végén) Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 34 / 59

Társzervezés, IV Változó méretű partíciók Nincsenek előre rögzített partíciók Amikor betöltünk egy folyamatot, akkor kap egy megfelelő méretű partíciót, nem nagyobbat, így nincsen belső tördelődés Probléma: külső tördelődés (a partíciók közötti nem használt terület) Megoldás: szemétgyűjtés (garbage collection), azaz a szabad területek egyesítése (Lásd PROG2: Java) Probléma: a szemétgyűjtés nagyon idő- és erőforrásigényes Másik megoldás: ügyes tárfoglalási stratégiák Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 35 / 59

Társzervezés, V Tárfoglalási stratégiák A feladat: Egy adott pillanatban hogy néz ki a memória? Foglalt és szabad területek váltakoznak Mindegyik eltérő hosszúságú Ekkor kell helyet találni a következő folyamat számára Különböző szempontok alapján választhatunk Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 36 / 59

Társzervezés, VI Első megfelelő (First Fit) Gyors, de átlagosan a memória 30%-a kihasználatlan marad Következő megfelelő (Next Fit) Hasonló hatásfokú, mint a First Fit Legjobban megfelelő (Best Fit) A lyukakat próbálja minimalizálni, de lassabb Legkevésbé megfelelő (Worst Fit) A fennmaradó szabad területet maximalizálja A legrosszabb eredményt adja, az összmemória kb. fele kihasználatlan marad Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 37 / 59

Tárcsere, I Multiprogramozott operációs rendszerek Adatmozgatás a memória és a háttértár között (swapping) Egy folyamat teljes memóriaterületét kiírjuk a háttértárra, így helyet biztosítunk mások számára Vagy betöltjük a háttértárról egy szabad területre Időigényes, mert sok adatot kell mozgatni a gyors memória és a lassú háttértár között Optimalizálni kell a műveletet, minimalizálni kell a lapcserék számát Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 38 / 59

Tárcsere, II Multiprogramozott operációs rendszerek Optimalizálási lehetőségek: Olyan folyamatot válasszunk a futásra készek közül, amelyik éppen a memóriában van Ha olyan folyamatot írunk ki a háttértárra, aminek a memóriaképe nem változott a háttértárhoz képest, akkor nem kell másolni, elég törölni. Ehhez folyamatosan adminisztrálni kell a módosításokat Átlapolt lapcsere: A lapcserével ne várjuk meg, amíg véget ér az előző folyamat Miközben még fut a folyamat, írjunk ki egy másikat a háttértárra és olvassunk be egy másikat Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 39 / 59

Tárkialakítási módszerek, I 1 Szegmensszervezés A program különböző logikai részeit (szegmenseit) egy-egy blokknak feleltetjük meg (kódszegmens(ek), adatszegmens(ek), veremszegmens, stb. A szegmensek különböző méretűek lehetnek, ezért nincs belső tördelődés Blokktábla tárolja az egyes blokkok adatait: a blokk mérete egy bit mutatja, hogy a memóriában van-e hozzáférési információk, ki írhatja, olvashatja, hajthatja végre Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 40 / 59

Tárkialakítási módszerek, II 2 Lapszervezés Azonos méretű blokkokra (lap) osztjuk a memóriát Nincsen külső tördelődés, viszont van belső, átlagosan fél lap / folyamat A folyamatokat egy vagy több lapba töltjük a méretétől függően A laptáblában tartjuk nyilván a lapok adatait: melyik folyamathoz tartozik memóriában van-e hozzáférési információk Mekkora legyen a lap mérete? Ha nagy, akkor nagy a belső veszteség Ha kicsi, akkor csökken a veszteség, de nagyobb a laptábla, lassabb a címzés, és lassabb az adatmozgatás (mert kisebb blokkokban történik) A lap mérete mindig 2 hatvány, 512 bájt és 16 kilobájt között Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 41 / 59

Tárkialakítási módszerek, III 3 Kombinált szervezés Szegmensszervezés és lapszervezés együtt A szegmensekhez lapokat rendelünk A szegmenstábla laptáblák címeit tartalmazza A laptábla tartalmazza a lapok címeit Nincsen külső tördelődés Belső tördelődés szegmensenként van Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 42 / 59

Virtuális tárkezelés, I Az operációs rendszer gondoskodik róla, hogy a folyamatoknak csak az éppen szükséges része tartózkodjon a memóriában, mégis lehessen hivatkozni az egészre Az operációs rendszer megoldja, hogy ilyenkor automatikusan betöltésre kerüljenek a szükséges dolgok Miért van lehetőség erre? A programoknak vannak ritkán, vagy soha nem futó részeik A programozó gyakran a szükségesnél nagyobb memóriaterületet foglal Az egyes programrészek más-más időpontban futnak, nincs rájuk egyszerre szükség Lokalitási elv: Egy rövidebb időintervallumban általában egymáshoz közeli utasításokra és adatokra van szükség Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 43 / 59

Virtuális tárkezelés, II Miért jó a virtuális tárkezelés? A fizikai memóriánál nagyobb programok is futtathatók Nő a multiprogramozás foka, ezzel nő a rendszer teljesítménye Gyorsabb lehet a rendszer, mert egyszerre kevesebb adatot kell mozgatni Hogyan működik a virtuális tárkezelés? Ha olyan címre hivatkozik a folyamat, ami nincs a memóriában, akkor hibamegszakítás történik (hardvertámogatás) A rendszer felfüggeszti a folyamatot, elmenti az állapotát Ha a virtuális memória okozta a megszakítást, akkor elindítja a szükséges terület betöltését (ha kell, előtte helyet csinál) Újraütemez A betöltés végén ismét megszakítás történik Preemptív rendszer esetén azonnal, egyébként később újraütemez Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 44 / 59

A laphiba kezelésének folyamata

A virtuális tárkezelés működése, I Eldöntendő kérdések Mikor melyik lapot hozzuk be? Melyik lap helyére hozzuk be? Hány lapot kapjon egy folyamat? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 46 / 59

A virtuális tárkezelés működése, II Mikor melyik lapot hozzuk be? Igény szerinti lapozás: csak a kért lapot hozzuk be egyszerű gyors nem hoz be felesleges lapot gyakoribb a laphiba Előretekintő lapozás: több lapot hoz be jóslás alapján bonyolultabb több lapot mozgat felesleges lapokat is behozhat ritkább lehet a laphiba Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 47 / 59

A virtuális tárkezelés működése, III Melyik lapot vigyük ki? Amelyik a legkevésbé fog kelleni Amelyikre a legkésőbb lesz újra szükség Ötletek: Ha olyan lapot viszünk ki, akkor nem kell írni, elég törölni. Ezt jelzi a Modified bit Ha egy lap nemrég használatban volt, akkor valószínű, hogy újra szükség lesz rá. Ezt jelzi a Referenced bit. Ezt bizonyos esetekben törölni kell (egy idő után) Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 48 / 59

Lapcsere algoritmusok, I Optimális algoritmus A ténylegesen legkésőbb szükséges lapot választja ki Így lenne legkisebb a laphibák száma A gyakorlatban megvalósíthatatlan, mert előre végre kellene hajtani a programot Összehasonlítási alapnak jó, ehhez hasonlíthatjuk a gyakorlati algoritmusokat Legrégebbi lap algoritmus (FIFO - First In First Out) A legrégebben behozott lapot viszi ki egyszerű a gyakran használt lapokat is kiviszi Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 49 / 59

Lapcsere algoritmusok, II Újabb esély algoritmus (SC - Second Chance) FIFO elven működik, de figyeli a Referenced bitet is Ha 1 (használták a lapot), akkor a lista végére teszi (újabb esély) és törli a bitet Ha 0, akkor kiválasztja a lapot Így a gyakran használt lapok soha nem kerülnek ki Legrégebben nem használt algoritmus (LRU - Least Recently Used) Azt választja ki, amelyet a bentlévők közül a legrégebben használtak hardvertámogatás kell hozzá bonyolult ez közelíti legjobban az optimális algoritmust Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 50 / 59

Lapcsere algoritmusok, III Legritkábban használt algoritmus (LFU - Least Frequently Used) Alapelv: a nemrég használt lapokra várhatóan megint szükség lesz Minden laphoz rendelünk egy számlálót Időnként végignézzük a lapokat és a számlálóhoz hozzáadjuk a Referenced bitet, és töröljük a bitet Mindig a legkisebb számlálójú lapot választjuk A gyakori használatot még sokáig megjegyzi, ezen segíthet az öregítés (időközönként csökkentjük a számlálót, ha nem használtuk a lapot) Az új lapok számlálójának értéke kicsi Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 51 / 59

Lapcsere algoritmusok, IV Utóbbi időben nem használt algoritmus (NRU - Not Recently Used) Prioritási kategóriákat képez az R (Referenced) és az M (Modified) bit alapján A legkisebb prioritású csoportból választ véletlenszerűen Prioritás R M 3 1 1 hivatkozott, módosított 2 1 0 hivatkozott 1 0 1 módosított 0 0 0 érintetlen Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 52 / 59

Virtuális tárkezelés, I Mennyi lapot adjunk egy folyamatnak? Minél többet A folyamatok szempontjából jó, így kevesebb laphiba történik, gyorsabban futhatnak A rendszer szempontjából nem jó, mert kevesebb folyamat futhat, így nagyobb az esélye, hogy minden folyamat várakozik (erőforrásokra, vagy egymásra) és tétlen a processzor Minél kevesebbet A rendszer szempontjából jó, nagyobb a processzor kihasználtsága A folyamatok szempontjából rossz, mert nő a laphibák gyakorisága Folyamatossá válhatnak a lapcserék Ekkor a processzor tétlenné válik, ezért az ütemező egyre több folyamatot indít el,..., ördögi kör Ezt nevezzük vergődésnek (thrashing) Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 53 / 59

Virtuális tárkezelés, II A CPU-kihasználtságnak van egy optimuma a multiprogramozás foka függvényében, ezt szeretnénk megközelíteni Ehhez a laphiba gyakoriságát kell mérni és csökkenteni A lokalitási elv miatt érdemes a memóriában tartani a hivatkozott lap környezetében lévő lapokat is Előrelapozás (prepaging): Amikor lapcsere történik, akkor nem csak a hivatkozott lapot töltjük be, hanem a környezetében lévőket is Ezáltal nagy valószínűséggel megelőzzük a laphibákat egy időre Ha egy folyamat túl sok laphibát okoz, akkor adunk neki újabb lapokat Ha pedig bővében van a lapoknak, akkor elveszünk tőle, hogy más folyamatoknak tudjuk odaadni Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 54 / 59

A rendszeregyensúly biztosítása Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 55 / 59

Hol tartunk? 1 Multiprogramozott operációs rendszerek 2 Emlékeztető kérdések

Emlékeztető kérdések Emlékeztető kérdések, I 1 A multiprogramozás fogalma, működési elve 2 Hogyan kezeli az operációs rendszer a folyamatokat? 3 Mit jelent a logikai memória? 4 Mit jelent a logikai processzor? 5 Milyen tevékenységekből épülnek fel a folyamatok? 6 Milyen állapotokat vehet fel a folyamat a futása során? 7 Mit jelent és mire használható az állapot-átmenet diagram? 8 Hasonlítsa össze a preemptív és a nem preemptív ütemezőket! 9 Milyen elvárásokat támasztunk az ütemező algoritmusokkal szemben? 10 Milyen mérőszámokkal jellemezhetjük az ütemező algoritmusokat? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 57 / 59

Emlékeztető kérdések Emlékeztető kérdések, II 11 Mutassa be a különböző ütemező algoritmusokat! (egyszerű, prioritásos, többszintű és többprocesszoros ütemezések) 12 Mit értünk társzervezés alatt? 13 Milyen társzervezési módszereket ismerünk? 14 Milyen tárfoglalási stratégiákat használhatnak az operációs rendszerek? 15 Milyen tárkialakítási módszereket ismerünk? 16 Mit jelent a virtuális tárkezelés? Miért jó? Hogyan működik? 17 Mit jelent a laphiba? Hogyan kezelhető? 18 Milyen lapcsere algoritmusokat ismerünk? 19 Hogyan gazdálkodjunk a memórialapokkal? Mennyi lapot adjunk egy folyamatnak? 20 Hogyan biztosíthatjuk a rendszer egyensúlyát? Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 58 / 59

Multiprogramozott operációs rendszerek Emlékeztető kérdések Köszönöm a figyelmet! Soós Sándor OPRE1 8 - Multiprogramozott op. rendszerek 59 / 59