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



Hasonló dokumentumok
Dr. Illés Zoltán

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

Programok, statikus linkelés

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

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

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

Szegmentálás. Memória kezelési stratégia mely a felhasználó nézőpontját támogatja Például:

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

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

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

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

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

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Operációs rendszerek II. jegyzet

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

9. Virtuális memória kezelés

7. Virtuális tárkezelés. Operációs rendszerek. Bevezetés. Motiváció 2. Motiváció A virtuális tárkezelés általános elvei

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

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

Szupermikroprocesszorok és alkalmazásaik

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

Cache, Cache és harmadszor is Cache

Operációs rendszerek III.

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

ADATBÁZISKEZELÉS ADATBÁZIS

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

8. Memória management

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

Operációs rendszerek MINB240 V kredit KF Nagyváradi Anett 0. előadás Bevezetés

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Digitális technika VIMIAA01

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

VirtualBox, Debian telepítés

Operációs rendszerek MINB240 V2+2+0

6. Háttértárak. Mágneses elvű háttértárak. Ezek az eszközök ki-, bemeneti perifériák, az adatok mozgása kétirányú.

Számítógép architektúrák. Tartalom. A memória. A memória

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

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

Programozás alapjai. 10. előadás

Az Oracle rendszer komponensei

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

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

Feladatok és megoldások a 4. hétre

Operációs rendszerek

Egyszerű programozási tételek

ADATBÁZIS-KEZELÉS ALAPOK I.

Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK

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

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/15. (Personal computer - From Wikipedia, the free encyclopedia)

Hálózati operációs rendszerek II. Novell Netware 5.1 Szerver

11. Gyakorlat. Az operációs rendszer szintje

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

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

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

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

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

DSP architektúrák dspic30f család

Operációs Rendszerek II. 5. előadás

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

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

1. Az adatbázis fogalma, fontosabb összetevÿi, felhasználási módjai

Adatbázisok biztonsága

3. Gyakorlat Ismerkedés a Java nyelvvel

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

2. fejezet Hálózati szoftver

A Számítógépek felépítése, mőködési módjai

1. ábra: Perifériára való írás idődiagramja

NEURONHÁLÓS HANGTÖMÖRÍTÉS. Áfra Attila Tamás

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

6. AZ EREDMÉNYEK ÉRTELMEZÉSE

Utolsó módosítás:

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

DB2 Connect Personal Edition telepítése és beállítása

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 mikroszámítógép felépítése.

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

1. oldal, összesen: 29 oldal

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

OPERÁCIÓS RENDSZEREK I. HÁTTÉRTÁRAK

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék

Mesterséges intelligencia, 7. előadás október 13. Készítette: Masa Tibor (KPM V.)

Helyzet: 1853, London, Soho, kolerajárvány, 700 halott Kérdés: honnan ered a járvány? Adatok: az elhunytak neve, lakhelye Megoldás dr.

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

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

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

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

Napfotók (webkamerás felvételek) képfeldolgozása

A számítógép alapfelépítése

Memóriakezelés (Memory management) folytatás Virtuális memória és kezelése

Divar 2 - Vezérlőközpont. Kezelési útmutató

386 processzor címzés

Jeltárolás. Monitorozás

Programozható logikai vezérlők

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

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

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

Operációs rendszerek. UNIX fájlrendszer

Memóriakezelés. Operációs rendszerek (vimia219) dr. Kovácsházy Tamás 8. anyagrész, Memóriakezelés. BME-MIT 2011, Minden jog fenntartva

Átírás:

Processzus Operációs rendszerek MINB40 5-6-7. előadás Memóriakezelés Egy vagy több futtatható szál Futáshoz szükséges erőforrások Memória (RAM) Program kód (text) Adat (data) Különböző bufferek Egyéb Fájlok, disk hely, nyomtató, stb. Operációs rendszerek MINB40 Operációs rendszerek MINB40 Operációs rendszer néhány célja Maximalizálja a CPU kihasználtságát Maximalizáljuk a memória kihasználtságát Minimalizáljuk a válaszidőt Fontos (prioritásos) processzusokat vegye előre Ellentmondó célok Ha maximalizáljuk a CPU kihasználtságát (minnél több processzus futtatásával) növeljük a válaszidőt Memória gazdálkodás Memory management Nyilvántartja, hogy mely memória foglalt illetve szabad Memóriát foglal a processzusok számára amikor szükséges Felszabadítja a memóriát végül Kezeli a memória hely átadást a memória és a diszk között Operációs rendszerek MINB40 3 Operációs rendszerek MINB40 4

Követelmények. Követelmények. Relokáció A programozó nem tudja, hogy a processzus hol lesz a memóriában amikor végrehajtódik Amíg egy processzus fut, lehet hogy áthelyeződik a diszkre A memória referenciákat át kell alakítani a kódban Operációs rendszerek MINB40 5 Operációs rendszerek MINB40 6 Védelem Követelmények. Egy processzus ne érhesse el egy másik processzus adatait Lehetetlen abszolút címet ellenőrizni, hiszen lehet hogy a processzus áthelyeződik Futás közben kell ez a védelem Követelmények 3. Megosztás Több processzus is el tudja érni ugyanazt a memória helyet Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 8

Követelmények 4. Memória hierarchia Logikai szerkezet A programokat modulokban írjuk Tipikus elérési idő Tipikus kapacitás A modulokat függetlenül írhatjuk és fordíthatjuk Különböző fokú védelemre lehet szükség (csak olvasható, csak futtatható) Fizikai szerkezet A program által igényelt memória nem biztos, hogy rendelkezésre áll < ns ns 0 ns 0 ms s Regiszterek Cache Memória (RAM) Mágneses diszk Mágneses szalag KB MB GB 00 GB GB, TB A programozó nem tudja, hogy mennyi hely fog rendelkezésre állni Operációs rendszerek MINB40 9 Operációs rendszerek MINB40 0 CPU Regiszter word Cache Cache block CPU és memória között és néhány ciklus 000 ciklus a RAM eléréshez Korábban elért adatot tartalmaz Gyorsabb elérés, mint a memóriához való hozzáférés Hardware kezeli Általában hierarchikus, on és off chip Memória Memória kezelő algoritmusok fő osztály Mozgatják a processzusokat a memória és a diszk között Swapping, paging (lapozás) És amelyek nem Egyszerű PC nem használja, de telefonokban, PDA-ban használják Operációs rendszerek MINB40 Operációs rendszerek MINB40

Kellenek-e a bonyolult algoritmusok? Monoprogramozás, csere és lapozás nélkül A memória növekedése nem ugyanolyan mint a processzoroké. Mindig lesz olyan alkalmazás, mely több memóriát igényel. Operációs rendszerek MINB40 3 Lásd multimédia Felhasználói program Operációs Rendszer, a RAM-ban 0xFFF 0 Régi nagyszámítógépes rendszerek, ma már ritka Operációs Rendszer, a ROM-ban Felhasználói program Eszköz meghajtó, a ROM-ban Felhasználói program Operációs Rendszer, a RAM-ban Kézi számítógépek, MS-DOS beágyazott rendszerek Operációs rendszerek MINB40 4 Monoprogramozás Megoldás Jó, ha csak egy processzust kell futtatni a szükséges memória egyenlő a rendelkezésre álló memóriával Egyébként Rossz CPU kihasználtság, ha I/O-ra kell várni Rossz memória kihasználtság, ha különböző munkák vannak Osszuk fel a memóriát, futtassunk több processzust Multiprogramozás, multitasking Operációs rendszerek MINB40 5 Operációs rendszerek MINB40 6

Hogyan osszuk fel a memóriát? Változó méretű, de rögzített partíciók Egyik megoldás: Osszuk fel a memóriát egyenlő részekre, partíciókra Processzus E A memória partíciókhoz processzus sorok (queue) tartoznak Operációs rendszer Ha egy processzus elfér, akkor bármelyik részbe betölthető Ha a teljes memóriánál kisebb, de egy résznél nagyobb, nem futhat Processzus D Processzus C Egy processzus a legkisebb, de a processzusnál nagyobb méretű partícióba kerül A kihasználatlan részeket elvesztegetjük Belső töredezettség (fragmented) Processzus B Processzus A Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 8 Változó méretű, de rögzített partíciók Változó méretű, de rögzített partíciók Probléma Egy sor Bizonyos partíciókat egyáltalán nem használunk Például: kis processzusokat használunk, de csak nagy partíciók állnak rendelkezésre hosszú lesz a várakozás Operációs rendszer Ha egy partíció kiürül, akkor az első processzus amelyik belefér betöltődik Akár kis processzus nagy partícióba Növekszik a belső töredezettség (fragmented) Operációs rendszer Operációs rendszerek MINB40 9 Operációs rendszerek MINB40 0

Változó méretű, de rögzített partíciók Dinamikus méretű partíciók Másik stratégia Az egész sorból kiválasztjuk azt a legnagyobb processzust, amelyik belefér a partícióba Hátrányosan kezeli a kis munkákat, pedig a kis munkák általában az interaktívak Egy kis partíció az interaktív munkáknak Egyetlen munka sem mellőzhető k-nál többször OS/360 IBM gépeknél ma már nem használják Operációs rendszer A partíciók változó méretűek A processzus pontosan annyi memóriát kap, amennyit igényel Feltételezzük, hogy a processzus tudja mennyi kell Operációs rendszerek MINB40 Operációs rendszerek MINB40 Dinamikus méretű partíciók Dinamikus méretű partíciók Operációs rendszer 8M Operációs rendszer 8M Operációs rendszer 8M Operációs rendszer 8M Operációs rendszer 8M Operációs rendszer 8M Processzus 0M Processzus 0M Processzus 0M Processzus 0M Processzus 0M 56M 36M Processzus 4M Processzus 4M 4M Processzus 4 8M 6M M Processzus 3 8M Processzus 3 8M Processzus 3 8M 4M 4M 4M Operációs rendszerek MINB40 3 Operációs rendszerek MINB40 4

Dinamikus méretű partíciók Töredezettség Külső töredezettség Operációs rendszer Processzus 4 Processzus 3 8M 0M 8M 6M 8M Operációs rendszer Processzus 5 Processzus 4 Processzus 3 8M 4M 6M 8M 6M 8M Hova??? Processzus 5 4M A lefoglalt memóriához képesti külső részeket vesztegetünk el Összmemória lehet, hogy elég, de szét van szórva Memóriatömörítés használható Belső töredezettség A lefoglalt memórián belüli részt vesztegetünk el 4M 4M Operációs rendszerek MINB40 5 Operációs rendszerek MINB40 6 Több probléma is van Egy processzusnak mennyi memóriát foglaljon? Ha rögzített a méret, akkor nem gond Mi van ha növekszik a memória igény Ha a processzus mellett van hely, nem gond Elmozgathatja a processzust ahol van hely Melyik szabad helyhez rendelje a processzust? Memóriakezelés láncolt listával Láncolt listába (linked list) fűzzük a szabad és foglalt memória szegmenseket Egy elem: cím, méret A címek növekvő sorrendjében Így könnyebb összevonni a szomszédos lyukakat Cím Cím Cím Cím Méret Méret Méret Méret Mutató Mutató Mutató Mutató Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 8

First-fit Memóriafoglalási stratégiák Addig keres a szegmensek listájában, amíg meg nem találja az első megfelelő méretű lyukat A leggyorsabb, a lehető legkevesebbet keres Nagy a külső töredezettség Sok kihasználatlan lyuk a lista elején Több nagy blokkot hagy a memória végén Next-fit Memóriafoglalási stratégiák First-fit egy változata, de a keresés, az utoljára sikeresen lefoglalt helytől kezdődik Bays bizonyította, hogy rosszabb teljesítményű, mint a first-fit Operációs rendszerek MINB40 9 Operációs rendszerek MINB40 30 Memóriafoglalási stratégiák Best-fit Az egész listát végigkeresi és a legkisebb alkalmas lyukat választja A first-fit és next-fit -nél több memóriát veszteget el, mivel sok kicsi használhatatlan lyukakat képes csinálni Utolsó foglalás Memóriafoglalási stratégiák first-fit best-fit 6 Mbyte foglalása esetén lefoglalt szabad next-fit Operációs rendszerek MINB40 3 előtte Operációs rendszerek MINB40 3 utána

Worst-fit Memóriafoglalási stratégiák Ha nem akarunk sok kis lyukat, választhatjuk a legrosszabb, legnagyobb lyukat Így a maradék lyuk is nagy lesz Megmutatták, hogy az előzőeknél rosszabb Memóriafoglalási stratégiák Előző négy algoritmus gyorsítható Ha külön listát tartunk fel a lyukaknak Nem kell végigkeresni a processzusokat is A probléma A foglalásnál be kell illeszteni a listába A felszabadításnál ki kell venni a listából A lyukak listája lehet nagyság szerint is rendezve Ekkor a best-fit gyorsabb lesz Operációs rendszerek MINB40 33 Operációs rendszerek MINB40 34 Quick-fit Memóriafoglalási stratégiák A leggyakrabban kért méretekhez külön lyuklistát készítünk Gyorsan talál megfelelő lyukat Nehéz ellenőrizni, hogy szomszédos lyukkal összevonható-e Memóriafoglalási stratégiák Összefoglalva First-fit és next-fit a legjobb módszerek, a többihez képest Ritkán használják ezeket manapság Helyette: Buddy rendszer Operációs rendszerek MINB40 35 Operációs rendszerek MINB40 36

Buddy rendszer Lefoglalandó memória mérete többszöröse x xmin - xmax Dönteni kell Felső határról: xmax (teljes mérete a memóriának) pl. 000K memória esetén x max =0 ekkor maximum 0 =04K memória foglalható egyszerre a többi (976K) csak kis darabokban Alsó határról: xmin legkisebb lefoglalható egység Operációs rendszerek MINB40 37 Buddy rendszer Kis külső töredezettséget eredményez Belső töredezettsége viszont nagy lehet Kezdetben: teljes memória szabad Foglaláskor: a rendszer fát épít fel, jelezve a memóriablokkok méretét Felszabaduláskor: ha két egymás mellet lévő blokk felszabadul, akkor összevonja magasabb szintre kerül Operációs rendszerek MINB40 38 Buddy rendszer Buddy rendszer, fa szerkezet x min =6 6 =64K, x max =0 0 =04K M memória áll rendelkezésre Operációs rendszerek MINB40 39 Operációs rendszerek MINB40 40

Slab foglalási rendszer Solaris, Linux használja Jeff Bonwick, SunOS Alapötlet Elég sok memória kell bizonyos fix méretű adatokhoz (objektumokhoz) File leírók, mutexek, szemaforok, stb Az objektum inicializálásához szükséges idő több mint a foglaláshoz vagy felszabadításhoz szükséges idő Így a memóriát nem kell felszabadítani, hanem az inicializált formájában tartsuk meg Operációs rendszerek MINB40 4 Slab foglalási rendszer Cache lista: kétszer kapcsolt lista Cache: három, kétszer kapcsolt lista Teljesen foglalt slab -ek listája Részben foglalt slab-ek listája Üres slab-ek listája Slab: folytonos memória darab azonos méretű objektumok csoportja Operációs rendszerek MINB40 4 Slab foglalási rendszer Slab foglalási rendszer Quick-fit -hez hasonló, mert azonos méretű objektumokat tartalmaz egy cache Memória felszabadítás könnyű Az üres slab listából lehet felszabadítani Memória foglalás könnyű A slab-ben levő memóriát használjuk A külső töredezettség kicsi Belső töredezettség minimális Az objektum éppen megfelelő méretű Slab mérettel befolyásolható Operációs rendszerek MINB40 43 Operációs rendszerek MINB40 44

Memóriakezelés bittérképpel Foglalt és szabad memóriát karban kell tartani Láncolt lista Bittérkép 0 : az egység szabad : az egység foglalt Memóriakezelés bittérképpel Allokációs egység mérete fontos Allokációs egység kicsi >> nagy bittérkép Allokációs egység nagy >> nagy lehet a belső töredezettség Általában jól használható A fő probléma a keresés n darab összefüggő 0 bitet kell keresnie Mivel átlóghat szóhatáron, nem egyszerű!!! Például: ha 5 memória egység kell a processzusnak Operációs rendszerek MINB40 45 0 0 0 0 0 0 Operációs rendszerek MINB40 46 Memória tömörítés Relokáció Csökkenthető a külső töredezettség Csak ha a processzusok áthelyezhetők Processzus E Processzus D Processzus E Logikai cím A programon belüli hely Amikor a program fut, egy valóságos fizikai cím kellene Process Control Block Program Általában hardveres támogatást igényel Processzus B Processzus D Processzus B A logikai címeket mikor rendeljük fizikai címhez? Adat Verem Processzus A Processzus A Operációs rendszerek MINB40 47 Operációs rendszerek MINB40 48

Relokáció Utasítások és adatok a memóriához rendelése Fordítási időben Memória hely előre ismert, abszolút címet lehet generálni Betöltési időben Áthelyezhető kód kell A betöltő (loader) végzi a hozzárendelést Végrehajtási időben Áthelyezhető kód, melynek futás közben is változhat a helye Hardware támogatás kell, bázis és határ regiszter Relokáció Operációs rendszerek MINB40 49 Operációs rendszerek MINB40 50 Relokáció, futási időben Relokáció Amikor a program betöltődik, meg kell határozni az aktuális (abszolút) memória címet A diszkre kiírás és visszaolvasás (swap) miatt is megváltozhat a memória cím Memória tömörítés is megváltoztathatja a memória címet Bázis regiszter Határ regiszter + < Relatív cím Abszolút cím Process Control Block Program Adat Verem Operációs rendszerek MINB40 5 Megszakítás az op. rsz. -nek, címzési hiba Operációs rendszerek MINB40 5

Bázis regiszter Relokáció A processzus kezdő címe Határregiszter A processzus végének címe Amikor egy processzus betöltődik, a regiszterek megfelelő értéket kapnak Relokáció A bázis regiszter értékét a relatív címhez adjuk hozzá, hogy egy abszolút memória címet kapjunk Az eredmény címet összehasonlítjuk a limit regiszterrel Ha az érték nincs határon belül megszakítás generálódik, a hiba kezeléséhez Operációs rendszerek MINB40 53 Operációs rendszerek MINB40 54 Relokáció Védelem Hátrányok A fizikai memória folyamatos kell legyen A teljes processzusnak a memóriában kell lennie Operációs rendszerek MINB40 55 Operációs rendszerek MINB40 56

Eddig feltételeztük, hogy a processzus mérete kisebb mint a memória Mi van, ha nagyobb a program mint a memória? Overlay Program rétegekre bontása Csak azokat az utasításokat és adatokat tartjuk a memóriában, melyekre szükség van Felhasználó implementálja Nincs szükség operációs rendszer támogatásra A program tervezése overlay-el nagyon komplex Operációs rendszerek MINB40 57 Operációs rendszerek MINB40 58 Virtuális memória Az egyszerű módszerekkel kapcsolatos problémák elkerülésére Két stratégia Lapozás (paging) Szegmentálás (segmentation) A lapozás a domináns stratégia manapság Hibrid rendszer is van Operációs rendszerek MINB40 59

Problémák Virtuális memória Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve A program rövid idő alatt csak kis részét használja a memóriának Biztonság A program nem nyúlhat ki a partíciójából Kezdetben nem tudhatjuk mennyi memória kell Dinamikus foglalás Operációs rendszerek MINB40 6 Operációs rendszerek MINB40 6 Megoldás A processzusok által látott memória terület különbözik a fizikailag létező memóriától Követelmények Minden program csak a saját memória területét látja, mintha az egész az övé volna Bármely címre lehet hivatkozni a saját területen belül A program ne vegyen észre semmit a megvalósításból A virtuális memória elérésének hatékonysága ne legyen rosszabb mint a fizikai memóriához való hozzáférés hatékonysága Operációs rendszerek MINB40 63 Lapozás (paging) A virtuális és fizikai memóriát egyenlő darabokra osztjuk fel Virtuális memóriában: lap (page) Fizikai memóriában: lapkeret (frame) A keretek száma kisebb mint a lapoké Egy lappal csak akkor tudunk dolgozni, ha keretbe helyezzük Operációs rendszerek MINB40 64

CPU MMU MMU CPU kártya Memory Management Unit MMU Memória A virtuális címeket fizikai címekké alakítja Lemez vezérlő sín 0-64K a virtuális címek A gépnek csak 3K memóriája van Csak a szükséges részek töltődnek be 4K a lapméret Lapozás A valós rendszerekben a lapméret 5 byte, K, 4K ( hatványa) MOV REG,0 Operációs rendszerek MINB40 65 66 Vannak lapok melyek nincsenek a fizikai memóriában Jelölés: jelenlét/hiány bit Mi lesz ha olyan címre hivatkozunk, mely egy be nem töltött lapon van? MOV REG, 3780 Lapozás MOV REG, 3780 Az MMU észleli a problémát és laphiba megszakítást generál az operációs rendszernek! Az operációs rendszer egy lapkeretet kiír a lemezre Betölti a kívánt lapot Módosítja a laptérképet a szükséges módon A megszakítást okozó utasítástól folytatja. Lapozás 67 68

Lapozás MMU Nincs külső töredezettség CPU kártya Kicsi belső töredezettség Támogatja a megosztást Lehetővé teszi hogy a memória fizikai felépítésétől elvonatkoztassunk CPU MMU Memória Lemez vezérlő A programozó csak a virtuális címmel foglalkozik MMU sín Memory Management Unit A virtuális címeket fizikai címekké alakítja Operációs rendszerek MINB40 69 Operációs rendszerek MINB40 70 CPU által generált cím: Címfordítás Lapszám (p) a laptábla indexe, amely a fizikai memória címet tartalmazza ez a bázis cím Lap offszet (d) a fizikai memória címmel kombinálva kapjuk a végleges címet Címfordítás Szám p d Bit m-n n m címtartomány és n lapméret esetén (m=6, n=) Címtartomány: 6 = 65535 64K n = bit m - n = 4bit Lapméret: = 4096 4K Lapok száma: 6- = 4 = 6 Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 7

MMU működése MMU működése, másképpen 6 db 4K lap esetén 4 bit: lapszám ( 4 = 6) bit: offszet (eltolás), = 4096 címet reprezentálhat Ezért használunk hatványa lapméretet Lap tábla bites eltolás közvetlenül másolódik Kimenő fizikai cím (4580) Virtuális lap számát a laptábla indexeként használjuk Jelenlét bit MMU Bejövő virtuális cím (896) 73 Operációs rendszerek MINB40 74 Laptábla A laptábla célja, hogy a lapokat lapkeretekre képezzük le Lényegében egy függvény argumentuma: a virtuális lapszám eredmény: a lapkeret száma Két probléma: A laptábla nagyon nagy lehet A leképezés gyors legyen A laptábla nagyon nagy lehet m címtartomány és n lapméret esetén Címtartomány: 3 = 4 94 967 96 4 GB Lapméret: = 4096 4 KB Lapok száma: 3- = 4 = 048 576 Több mint millió lap, melyekhez bejegyzés kell Minden processzusnak saját laptáblája van!! 64 bit esetén még több Operációs rendszerek MINB40 75 Operációs rendszerek MINB40 76

A leképezés gyors legyen Minden memóriahivatkozásnál végre kell hajtani a címfordítást Egy utasítás több memóriahivatkozást is eredményezhet Laptábla: Gyors hadrware regiszterekből álló tömb Amikor egy processzus elindul, a rendszer betölti a memóriából a processzus laptábláját a regiszterekbe Előny Legegyszerűbb Leképezés alatt nem kell a memóriához fordulni Hátrány Processzus váltásnál a laptábla regiszterekbe töltése csökkenti a teljesítményt Operációs rendszerek MINB40 77 Operációs rendszerek MINB40 78 Teljes laptábla a memóriában Egy regiszter mutat a laptáblára Processzus váltásnál csak egy regisztert kell átírni Hátrány Minden utasításnál több memóriahivatkozás 3 bites cím, két darab 0 bites mezőből és bites offszetbőláll. Kétszintű laptábla Felső szintű laptábla Második szintű laptábla lapok Operációs rendszerek MINB40 79 80

Pl.: Virtuális cím: 406596 Ez az adatszegmens 9-es bájtja. PT = ; PT = 3; Offset = 4 Kétszintű laptábla Felső szintű laptábla Második szintű laptábla Kétszintű laptábla, címfordítás PT = 4-8MB címek PT = 3-6MB címek Lapkeretszám megadható. Jelenlét bit 0 Felső szintű laptábla Második szintű laptábla Ha a lapkeret a memóriában van (jelenléti/hiány bit jelzi), akkor PT + Offset = fizikai cím 8 lapok Operációs rendszerek MINB40 8 Gyorsítótár letiltás Laptábla egy bejegyzése Hivatkozott Módosított Jelenlét/hiány bit Védelmi bitek Lapkeret száma Módosított bit: ha írtunk a lapra értéke lesz, ha értéke 0 nem kell kiírni a lemezre (dirty bit) Hivatkozott bit: ha olvastunk vagy írtunk értéke lesz; segít ha egy lapot ki kell dobni, akkor a használtat nem választjuk TLB A laptáblákat a memóriában tartjuk Sajnos nagyban befolyásolja a teljesítményt Hivatkozáslokalitás A legtöbb hivatkozás a lapok egy kis számára vonatkozik Megoldás: Hardware eszköz Translation Lookaside Buffer (címfordítási gyorsítótár vagy asszociatív memória) Operációs rendszerek MINB40 83 Operációs rendszerek MINB40 84

TLB MMU-ban található 8-64 bejegyzést tud tárolni érvényesség, virtuális lapszám, módosítási bit, védelmi kód, valós lapkeret szám MMU először a TLB-ben keresi a lapot, egyidejűleg (párhuzamosan)! Ha a művelet nem sérti a védelmet, azonnal kapjuk a lapkeret címet Ha sérti, védelmi hiba TLB Lapszám nincs a TLB-ben MMU a laptáblából keresi ki a lapot TLB-ből kidob egy bejegyzést Módosított bitet vissza kell írni a laptáblába Betölti a TLB-be az új lapot Minden adatot felül kell írni a TLB-ben 85 86 MMU működése TLB-vel Szoftveres TLB Modern rendszereknél a TLB feltöltése szintén az operációs rendszer része SPARC MIPS, HP PA, Power PC Ha egy lap nincs a TLB-ben, TLB hiba generálódik és az operációs rendszer kapja meg a vezérlést Nagyon kevés utasítással szabad végrehajtani! TLB hiba gyakoribb mint a lap hiba Sokféle módszerrel javítható a működése Operációs rendszerek MINB40 87 Operációs rendszerek MINB40 88

Invertált laptáblák 3 bites cím, 4KB lapok 3 /4.096=.048.576 Több mint millió bejegyzés Laptábla kb 4MB-os 64 bites cím, 4KB lapok 64 /4.096 Több mint 0 5 bejegyzés Egy bejegyzés 8 byte A laptábla kb. 30 millió GB!!! megoldás: invertált laptábla Operációs rendszerek MINB40 89 Invertált laptáblák A valós tár minden lapkeretéhez tartozik egy bejegyzés (a virtuális címtér minden lapja helyett) 64 bites címtér, 4 KB lapméret, 56 MB RAM Csak 65 536 bejegyzés kell Egy bejegyzés megadja: adott lapkeretet mely processzus mely lapja használja Nehezebb a virtuálisról a fizikai címre való fordítás pid processzus p lapja pid nem használható indexként Az (pid,p) párost kell megkeresni a laptáblában Operációs rendszerek MINB40 90 Invertált laptáblák Invertált laptáblák Itt is segíthet a TLB!!! vagy Keresésre használható hasító (hash) tábla Egy bejegyzés egy láncolt listát tartalmaz kulcs ütközés megoldására Nem hatékony keresés, legrosszabb esetben O(n) 9 Operációs rendszerek MINB40 9

fork, Copy-On-Write, COW fork: Processzus létrehozására használtuk Lemásolta a processzust, majd rögtön felülírtuk (execve) Nem hatékony Megoldás: Processzus összes lapját olvashatóra állítjuk Új processzus lapjait ugyanazokra a lapkeretekre képezzük, szintén csak olvashatóan Ha valamelyik processzus írni próbál egyik lapjára, kivétel generálódik és ekkor másolunk COW, C lap módosítása előtt Fizikai memória Processzus Processzus A Lap B Lap C Lap Operációs rendszerek MINB40 93 Operációs rendszerek MINB40 94 COW, C lap módosítása után Fizikai memória Processzus Processzus A Lap B Lap C Lap C Lap Laphiba Igény szerinti lapozás (demand paging) Egy lap csak akkor töltődik be, amikor szükség van rá A processzus nincs a memóriában Első utasítás, rögtön laphibát generál, és behozza a lapot Gyors további laphibák (verem, globális változók) Egy idő múlva minden szükséges lap a memóriában lesz Lap betöltés Ha referencia mutat a lapra Érvénytelen referencia >> megszakítás (abort) Nincs a memóriában >> betöltés (load) Operációs rendszerek MINB40 95 Operációs rendszerek MINB40 96

Laphiba, lemezre írás-beolvasás Érvényes-érvénytelen bit Minden laptábla bejegyzés tartalmaz egy bitet v: memóriában (érvényes, valid) i: nincs a memóriában (érvénytelen, invalid) Operációs rendszerek MINB40 97 Keret #. laptábla érvényes - érvénytelen bit v v v v i i i Ha címfordítás során a bit i akkor laphiba generálódik Operációs rendszerek MINB40 98 Érvényes-érvénytelen bit Laphiba, lépések. Utasítás egy új lapra hivatkozik. Megszakítás, operációs rendszer meghívódik 3. Lap a lemezen 4. Lap betöltése egy üres keretbe 5. Laptábla beállítása i-ről v-re 6. Utasítás ismételt végrehajtása!!!!! Operációs rendszerek MINB40 99 Operációs rendszerek MINB40 00

Nincs üres lapkeret Laphiba Ki kell dobni egy lapot Ha gyakran használt lapot dobunk ki, hamar vissza kell tölteni Melyiket dobjuk ki? A megoldás mindig erőforrás igényes, így minél kevesebbszer szeretnénk végrehajtani Lapcserélési algoritmusok Sokféle eljárás létezik A probléma felmerül a gyorsítótárak esetén is A lehető legkevesebb laphibát akarunk Operációs rendszerek MINB40 0 Operációs rendszerek MINB40 0 First-In-First-Out (FIFO) algoritmus 3 lapkeret esetén First-In-First-Out (FIFO) algoritmus 4 lapkeret esetén Kívánt lap: Kívánt lap: 3 4 5 3 4 5 3 4 5 3 4 5 4 4 4 5 5 5 5 5 5 5 5 5 5 4 4 3 3 3 5 3 3 3 4 4 3 3 3 3 3 3 laphiba generálódik 9 laphiba 4 4 4 4 4 4 3 3 3 0 laphiba Operációs rendszerek MINB40 03 Operációs rendszerek MINB40 04

Belady anomáliája Belady László, 969: Korábban azt hitték, ha több a lapkeret akkor csökken vagy azonos számú lesz a laphiba Optimális lapcserélési algoritmus Egyszerű leírni, de lehetetlen megvalósítani Azt a lapot cseréljük le, melyet a leghosszabb ideig nem használunk Sajnos nem látunk a jövőbe A laphiba idejében nem lehet megmondani, hogy mely lapokra lesz hivatkozás Szimulátorban első futtatás során nyomonkövetjük a hivatkozásokat Második futásnál használható az optimális algoritmus Bár több a lapkeret, mégis több a laphiba 05 Operációs rendszerek MINB40 06 Optimális lapcserélési algoritmus Not-Recently-Used (NRU) 4 lapkeret esetén Kívánt lap: 3 4 Jövőbe látás 5 3 4 5 Gyorsítótár letiltás Módosított Jelenlét/hiány bit Lapkeret száma 4 4 Hivatkozott Védelmi bitek 3 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 5 5 Módosított bit: ha írtunk a lapra értéke lesz, ha értéke 0 nem kell kiírni a lemezre (dirty bit) (M bit - modified bit ) 6 laphiba Hivatkozott bit: ha olvastunk vagy írtunk értéke lesz; segít ha egy lapot ki kell dobni, akkor a használtat nem választjuk (R bit referenced bit) Operációs rendszerek MINB40 07 Operációs rendszerek MINB40 08

Not-Recently-Used (NRU) Amikor egy processzus elindul, mindkét bitet (módosított, hivatkozott bit) nullázzuk Időnként (pl. minden órajelre) nullázzuk a hivatkozott bitet Így megkülönböztetjük azokat a lapokat, amelyekre nem hivatkoztunk az időben Not-Recently-Used (NRU) Négy csoportba sorolhatók a lapok 0. osztály: nem hivatkozott, nem módosított. osztály: nem hivatkozott, módosított. osztály: hivatkozott, nem módosított 3. osztály: hivatkozott, módosított Az algoritmus véletlenszerűen kiválaszt egy lapot a legkisebb sorszámú nem üres osztályból és ezt a lapot dobja ki a memóriából Operációs rendszerek MINB40 09 Operációs rendszerek MINB40 0 Második lehetőség lapcserélési alg. Second chance FIFO módosítása Ne dobjon ki gyakran használt lapot Ha ahivatkozott bit nulla: nem használtuk a lapot és eldobható egy: töröljük a bitet és a lapot a lista végére tesszük, úgy kezeljük, mintha most jött volna be a memóriába Olyan lapot keresünk, amelyre nem volt hivatkozás az utolsó időintervallumban Operációs rendszerek MINB40 Második lehetőség lapcserélési alg. Ha mindegyikre volt hivatkozás, akkor FIFO-ként működik Hiszen amikor a listán végigmentünk az első lapot nullás bittel kapjuk meg Elsőnek betöltött lap Betöltési idő Utoljára betöltött lap A-t úgy kezeljük mint egy újonnan betöltött lapot Operációs rendszerek MINB40

Óra lapcserélési algoritmus A második lehetőség algoritmus folyamatosan mozgatja a lapokat a listában Nem túl hatékony Hatékonyabb egy körkörös lista A mutató mindig a legrégebbi lapra mutat Óra lapcserélési algoritmus Laphibakor: a mutatónál lévő lapot vizsgáljuk Döntés hivatkozott (R) bit alapján: ha R=0 : kidobjuk a lapot ha R= : R bitet nullázzuk, mutató a következő lapra lép 3 Operációs rendszerek MINB40 4 Least-Recently-Used (LRU) Optimális algoritmus közelítése Az utoljára használt lapok valószínűleg újra kellenek Amikor laphiba történik akkor a legrégebben használt lapot dobjuk el Nehezen megvalósítható Egy láncolt listát készítünk a lapokból A lista elején van a legutoljára használt lap, végén a legrégebben használt lap A probléma, hogy a listát minden hivatkozásnál frissíteni kell Least-Recently-Used (LRU) Alternatív implementáció Rendeljünk egy számlálót minden laphoz Minden memóriahivatkozásnál növeljük a számlálót Laphiba esetén a legkisebb számlálóértékű lap lesz a legrégebben használt ezt a lapot választjuk Operációs rendszerek MINB40 5 Operációs rendszerek MINB40 6

LRU bitmátrix-al n lapkeret a gépben n x n mátrixot definiálunk (csupa nulla) k-adik lapra hivatkozunk k-adik sor csupa -es k-adik oszlop csupa 0 lesz Legkisebb bináris értékű sor tartozik a legrégebben használt laphoz LRU bitmátrix-al Hivatkozási sor a lapokra: 0,,,3,,,0,3,,3 0 3 0 3 3 Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 8 Tervezési szempontok Munkahalmaz modell A processzus által használt lapok halmaza a munkahalmaz (working set) Ha az egész munkahalmaz a memóriában van akkor a processzus laphiba nélkül fut Ha nem fér el a memóriában akkor sok laphibát generál Operációs rendszerek MINB40 9 Operációs rendszerek MINB40 0

Vergődés (thrashing) CPU kihasználtsága növekszik a multiprogramozással a processzusok számával Több processzus, kevesebb memória áll rendelkezésre Egyes processzusok munkahalmaza nem fér be a memóriába Növekvő laphiba Vergődés (thrashing) Egyre több processzusnak nincs elég memóriája Csökken a CPU kihasználtsága A rendszer I/O korlátozottá válik A rendszer nem számítással (hasznos tevékenységgel) hanem lapcserékkel van elfoglalva Operációs rendszerek MINB40 Munkahalmaz modell A vergődés elkerülése érdekében a sok lapozásos rendszer megpróbálja nyomon követni a processzusok munkahalmazát és a program indítása előtt betölteni előlapozás P.J.Denning, 970 Globális-lokális lapcsere Globális lapcsere A processzus az összes lapkeretből választhat lapcsere esetén Egy processzus elvehet lapkeretet egy másik processzustól Lokális lapcsere A processzus csak a saját lapkeret választékából választhat Operációs rendszerek MINB40 3 Operációs rendszerek MINB40 4

Globális-lokális lapcsere Globális lapcsere jobban működik A processzus munkahalmaz mérete a futás során változhat Lokális lapcsere esetén, ha nő a munkahalmaz vergődéshez vezet ha csökken a munkahalmaz memóriát vesztegetünk Foglalás Minden processzusnak kell egy minimum mennyiségű lapkeret Két foglalási stratégia Fix méretű Prioritásos A globális lapcsere algoritmusnak döntenie kell, hogy mennyi memóriát foglaljon a processzusnak Operációs rendszerek MINB40 5 Operációs rendszerek MINB40 6 Egyenlő méretű Fix méretű foglalás Minden processzus ugyanannyi lapkeretet kap 00 keret esetén, 5 processzus, 0 lapkeret mindegyik processzusnak Arányos méretű A processzus méretének megfelelő számú lapot foglal Prioritásos foglalás Arányos méretű foglalás, de a prioritás alapján Operációs rendszerek MINB40 7 Operációs rendszerek MINB40 8

Laphiba gyakorisági algoritmus - PFF Page Fault Frequency Megmondja, hogyan növeljük vagy csökkentsük a processzuslapok számát Nem adja meg, hogy laphiba esetén melyik lapot cserélje Lefoglalt laphalmaz méretét szabályozza Algoritmusok jósága Laphibák aránya csökken, ha több lapkeretet foglalunk le Elfogadhatatlan nagy laphiba arány Növelni kell a lapkeretek számát Processzusnak túl sok lapkerete van Csökkenteni kell a lapkeretek számát Lapkeretek száma Operációs rendszerek MINB40 9 Teherelosztás A PFF használata mellett is előfordulhat vergődés Néhány processzusnak kell lap De nincs processzus ami fel tudna adni lapot Megoldás Csökkentsük a memóriáért versenyző processzusok számát Program szerkezet int data [8,8]; Minden sor egy lap. program for (j = 0; j < 8; j++) for (i = 0; i < 8; i++) data[i][j] = 0; 8x8 =6385 laphiba. program for (i = 0; i < 8; i++) for (j = 0; j < 8; j++) data[i][j] = 0; 8 laphiba Operációs rendszerek MINB40 3 Operációs rendszerek MINB40 3

I/O és lapozás Néha szükség lehet arra, hogy ne engedjük egy lap eldobását, pl. I/O esetén Rögzíteni kell a lapot VM stratégia A virtuális memória rendszer működése és hatékonysága sok tényezőtől függ Laptábla kialakítása (több szintű, hasító táblás) Lapméret Lapcsere stratégia Betöltési stratégia Munkahalmaz mérete Globális-lokális foglalás 33 Operációs rendszerek MINB40 34 Lapméret Lapméret Általában választható érték Kis lap méret Előny Kisebb belső töredezettség Jobban használható különböző adatszerkezeteknél Hátrány Egy processzusnak sok lap kell Nagyobb laptábla Operációs rendszerek MINB40 35 Operációs rendszerek MINB40 36

Betöltési stratégia Meghatározza mikor töltsünk be egy lapot Szüksége szerinti betöltés Laphiba esetén Előtöltés Javítja az I/O-t, nagyobb egységben olvasunk Lapcsere stratégia Azt a lapot kell eltávolítani, melynél a legvalószínűbb, hogy a jövőben nem hivatkozunk rá Korlátok: Kernel kód Kernel adatszerkezetek I/O bufferek Operációs rendszerek MINB40 37 Operációs rendszerek MINB40 38 Szegmentálás Szegmentálás Memória kezelési stratégia, mely a felhasználó nézőpontját támogatja Például: Egy program szegmensekből áll függvény Mindegyik szegmens külön címtér Egy eljárás nullás címen kezdődik verem Újrafordításnál nem kell változtatni sqrt Operációs rendszerek MINB40 39 Különálló virtuális címterek main 40

Programozói nézőpont 3 4 Szegmentálás Memória 4 3 Szegmentált memória: Szegmentálás Több lineáris címtérből álló virtuális memória Egy processzus különböző részei külön szegmensekben helyezhetők el A részek külön-külön növekedhetnek, csökkenhetnek A szegmensek különböző típusúak lehetnek A szegmenseknek különböző lehet a védelme írható, olvasható, futtatható Operációs rendszerek MINB40 4 Operációs rendszerek MINB40 4 Szegmentált címzés A logikai cím két részből áll Szegmens szám s Offszet d Tiszta szegmentálás Lapok fix méretűek Szegmensek nem fix méretűek Operációs rendszerek MINB40 43 Operációs rendszerek MINB40 44

Külső töredezettség alakul ki Megszüntethető tömörítéssel Tiszta szegmentálás Operációs rendszerek MINB40 45 A programozó tudatában kell legyen a technikának? Hány lineáris címtartomány van? A teljes címtartomány meghaladhatja a fizikai címtartományt? Meg lehet-e különböztetni és külön védeni a programot és adatot? Változó méretű adatok könnyebben kezelhetők? Függvények megosztása felhasználók között lehetséges? Összehasonlítás Lapozás Nem Szegmentálás Igen Sok Igen Nem Nem Nem Igen Igen Igen Igen Operációs rendszerek MINB40 46 Összehasonlítás Miért találták ki a technikát? Lapozás Nagy lineáris memória területet kaphassunk, anélkül, hogy memóriát vennénk Szegmentálás A program el tudja különíteni a futtatható és adat részt logikailag különálló memória részre Támogassa a megosztást és védelmet Operációs rendszerek MINB40 47