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



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

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

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

Operációs rendszerek III.

9. Virtuális memória kezelés

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

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

Dr. Illés Zoltán

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

CPU regiszterei. Átmeneti tár / Gyorsító tár / Cache memória (Oprendszer vezérelt) Központi memória

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

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

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

Operációs rendszerek II. Tárkezelés

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

Operációs rendszerek. Az NT memóriakezelése

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

elektronikus adattárolást memóriacím

8. Memória management

Utolsó módosítás:

Operációs rendszerek feladatai

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

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

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

Memóriakezelés (Memory management)

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

386 processzor címzés

Programok, statikus linkelés

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

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

Magas szintű optimalizálás

Operációs Rendszerek MindMap Kidolgozás

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

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

Memória és perifériák virtualizációja. Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

12. Másodlagos tár szerkezet

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

A számítógép egységei

Operációs rendszerek. UNIX fájlrendszer

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

OPERÁCIÓS RENDSZEREK. Elmélet

Operációs rendszerek

Operációs Rendszerek II.

Az interrupt Benesóczky Zoltán 2004

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

Programozás alapjai II. (7. ea) C++

IT - Alapismeretek. Feladatgyűjtemény

Operációs rendszerek. A program. A memória (tár) Memória menedzselés

Adatszerkezetek 1. Dr. Iványi Péter

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

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

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

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

Architektúra, megszakítási rendszerek

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.

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

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

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

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Utolsó módosítás:

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

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

Adatszerkezetek 2. Dr. Iványi Péter

Informatika érettségi vizsga

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

Fájl rendszer (implementáció) Fájl rendszer struktúra Allokációs módszerek Szabad hely kezelése Directory implementáció Helyreállítás

Egyirányban láncolt lista

Bevezetés az informatikába

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

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

Előadás_#12. Előadás_12-1 -

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Adatelérés és memóriakezelés

Teljes függvényvizsgálat példafeladatok

Matematikai és Informatikai Intézet. 4. Folyamatok

A 32 bites x86-os architektúra regiszterei

LabView Academy. 4. óra párhuzamos programozás

Utolsó módosítás:

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

(kernel3d vizualizáció: kernel245_graph.mpg)

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

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

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

Mutatók és mutató-aritmetika C-ben március 19.

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

Digitális rendszerek. Utasításarchitektúra szintje

Operációs rendszerek. UNIX/Linux fájlrendszerek

Mikrorendszerek tervezése

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16.

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. Bemutatkozás

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

Átírás:

Operációs rendszerek (vimia9) Memóriakezelés dr. Kovácsház Tamás 8. anagrész, Memóriakezelés Budapesti Műszaki és Gazdaságtudománi Egetem Méréstechnika és Információs Rendszerek Tanszék BME-MIT, Minden jog fenntartva

Tárolóeszközök hierarchia ma CPU regiszterek Méret Sebesség Ár (pl. Ft/Bte) Átmeneti/gorsító tár Központi memória Permanens tár Növekszik Növekszik Növekszik Külső tár Biztonsági másolat BME-MIT, Minden jog fenntartva. lap

Tárolóeszközök hierarchia korábban CPU regiszterek Átmeneti/gorsító tár Központi memória Mágneses diszk Optikai tároló Mágnesszalag Flash memória (Pendrive, SSD) miatt nem igaz már! Eltűnőben, Internet, hordozható HDD, pendrive! Eltűnőben, HDD alapú mentés! BME-MIT, Minden jog fenntartva. lap

CPU regiszterek Típus: jellegzetesen D tároló. o - gépi szó. x86 architektúrában kis számú. o Nem általános felhasználású eg része (PC, szegmens reg., stb.). Sebesség: Ár: o Az utasítás végrehajtása alatt akár többször elérhető. Pl. Összeadás (ADD) utasítás. o Nehezen értelmezhető, architektúra függő... Felejtő memória (tápfeszültség) BME-MIT, Minden jog fenntartva 4. lap CPU regiszterek Átmeneti/gorsító tár Központi memória Permanens tár Külső tár Biztonsági másolat

Átmeneti/gorsító tár (Cache) Típusa: jellegzetesen SRAM o Többnire többszintű. o. szint 64-8 Kbte (I+D). o. szint -8 Mbte. o. szint 4- Mbte (ha van). Sebesség: Ár: o Sávszélesség: n* Gbte/s. o. szint: Eg vag néhán órajel ciklus. o. és. szint: n* órajel ciklus. o Magas, az SRAM cella nag félvezető területet foglal. Felejtő memória (tápfesz. nélkül) CPU regiszterek Átmeneti/gorsító tár Központi memória Permanens tár Külső tár Biztonsági másolat BME-MIT, Minden jog fenntartva 5. lap

Központi (fizikai) memória Típusa: jellegzetesen DRAM n* Mbte n* Gbte Sebesség: Ár: o Memor wall (és okai). o Max. és random access más. A véletlen hozzáférés lassabb o Max.: n* Gbte/s Gbte/s. o Késleltetés: n* ns (worst case) o Erősen sebesség, méret, technológia, és piac függő. Felejtő memória: tápfesz. + idő o Frissíteni kell... CPU regiszterek Átmeneti/gorsító tár Központi memória Permanens tár Külső tár Biztonsági másolat BME-MIT, Minden jog fenntartva 6. lap

Permanens/háttér tár (HDD, Flash). Típusa: o HDD (mágneses diszk). o Flash memória (pendrive, SSD, stb.). o Méret:n* Mbte (Flash) n* Tbte. Fájl alapú elérés o Blokk elérésű eszköz. o Fájl-ként látjuk a tartalmat, kivéve NOR Flash). Sebesség: o Max. és random access más. Véletlen hozzáférés más HDD esetén o Olvasás és írás eltérő. o Max.: n* Mbte/s (olcsó pendrive) n* Gbte/s (RAID). o Késleltetés: n* ns (Flash) kb. ms CPU regiszterek Átmeneti/gorsító tár Központi memória Permanens tár Külső tár Biztonsági másolat BME-MIT, Minden jog fenntartva 7. lap

Permanens/háttér tár (HDD, Flash). Ár: Erősen sebesség, méret technológia, és piac függő. Nem felejtő de meghibásodhat: o HDD: MTBF o Flash: Véges alkalommal írható (wear) CPU regiszterek Átmeneti/gorsító tár Központi memória Permanens tár Külső tár Biztonsági másolat BME-MIT, Minden jog fenntartva 8. lap

További lépések Központi memória kezelése. o Fizikai, logikai, és virtuális memória fogalma. o Ezeknek a megfeleltetése és kezelése. Permanens tár kezelése. o A virtuális tárkezelésen keresztül kapcsolódik majd a központi memória kezeléséhez. o A permanens tár kezelése, szerkezete, partíció, fájlrendszer, fájl fogalma. o RAID, NAS, SAN. BME-MIT, Minden jog fenntartva 9. lap

A CPU használja: Memória o Utasítások betöltése. o Adatok olvasása és írása. Egmás után következő memória műveletek folamáról van szó. o Olvasások és írások adott sorrendben. o Ahog ezt a program kód előírja. Folamat támogatás (szeparáció). Tekintsünk el a átmeneti tártól (cache)! o Csak a hozzáférés sebességét befolásolja. BME-MIT, Minden jog fenntartva. lap

Logikai és fizikai cím Logikai cím (logical address): o A központi egség (CPU) generálja a folamat futása közben. o Logikai címtartomán (logical address space): Eg adott folamathoz tartozó logikai címek összessége. Fizikai cím (phsical address): o Eg adott memória elem címe, ahog az a fizikai memória buszon megadásra kerül a memória vezérlő által. o Fizikai címtartomán (phsical address space): Eg adott folamathoz tartozó fizikai címek összessége. Ha ezek eltérnek: o A logikai címet virtuális címnek (virtual address) hívjuk. o Ebben az esetben a futási idejű leképzést az MMU valósítja meg (volt már róla szó). BME-MIT, Minden jog fenntartva. lap

Címképzés (address binding). Mikor történik meg a logikai és a fizikai címek közötti leképzés? Fordítási idejű (compile/link time) o Ismert a betöltés hele. o Abszolút címzés. o A program fizikai címeket tartalmaz. o Pl. Egszerű beágazott rendszerek firmware-je, BIOS/EFI és OS kernel legalapvetőbb része, DOS *.com programok. Betöltési idejű (load time) o Áthelezhető kód (relocatable code). o Betöltés során oldódik fel a leképzés. o A program fizikai címeket használ. BME-MIT, Minden jog fenntartva. lap

Futási idejű címképzés (execution time). Futási időben is változhat a leképzés. o A folamat számára transzparens módon más fizikai címterületre kerülhet. o Speciális HW szükséges ehhez (MMU). Megfelelő sebességű végrehajtáshoz. o A folamat nem látja (láthatja), hog milen fizikai címeken található a memória, amit elér. Mindig logikai/virtuális címeket használ. A fizikai címekhez kötött logikai címek használata alapvető a modern operációs rendszerek működése szempontjából. BME-MIT, Minden jog fenntartva. lap

Dinamikus betöltés (Dnamic loading) Bizonos funkciók nem töltődnek be, amíg nem használják őket. o Gors program indulás. o Alacsonabb memória használat. o A program feladata a dinamikus betöltés megvalósítása. Az operációs rendszer nem tud róla, nem támogatja azt. BME-MIT, Minden jog fenntartva 4. lap

Dinamikus kapcsolatszerkesztés Dnamic linking A dinamikus betöltés operációs rendszer támogatással. o Dnamicall linked/loaded librar (Windows *.dll). o Shared Object (UNIX/Linux *.so). o A dinamikusan beszerkesztett programkönvtárak több program számára is elérhetőek (code sharing). Megvalósítás: o A program csak eg csonkot (stub) tartalmaz. o A csonk feladata a dll/so megtalálása vag betöltése az OS felhasználásával. o Eg adott funkciójú dll/so több eltérő verzióban is jelen lehet a rendszerben. Melik töltődik be? UNIX: LD_LIBRARY_PATH körnezeti változó BME-MIT, Minden jog fenntartva 5. lap

Alapmegoldás (Változó méretű partíciók) Minden eges folamat eg összefüggő, statikus, előre kiválasztott fizikai címtartománba kerül. o Báziscímtől kezdődik (Bázis). o Adott méretű (Méret). o Bázisrelatív címzése A folamatnak ebbe a memória területbe kell beférnie élettartama során. Nem túl hatékon megoldás, de első iterációnak jó. OS Process. Process. Process. Szabad memória Bázis Bázis + Méret BME-MIT, Minden jog fenntartva 6. lap

Egszerű megvalósítás Méret Bázis True CPU < Fizikai memória False + address error kivétel Implementációhoz szükséges: o Folamatonként védett (kernel) módban állítható regiszter. o összeadás, és eg vizsgálat. Ha a folamat kicímez a rendelkezésre álló memóriából, akkor kivétellel jelezzük a CPU-nak. o Azt kernel módban kezeli a CPU. BME-MIT, Minden jog fenntartva 7. lap

o Problémák. Külső tördelődés (external fragmentation): Process. kilép. OS Process. Bázis Process. Process. Bázis + Méret Szabad memória BME-MIT, Minden jog fenntartva 8. lap

Problémák. Külső tördelődés (external fragmentation): o Process. kilép. o A hele felszabadul. OS Process. Szabad memória Process. Szabad memória BME-MIT, Minden jog fenntartva 9. lap

Problémák. Külső tördelődés (external fragmentation): o Process. kilép. o A hele felszabadul. o Helére eg kisebb Process 4. töltődik. OS Process. Process 4. Szabad memória Bázis Bázis + Méret Process. Szabad memória BME-MIT, Minden jog fenntartva. lap

Problémák. Külső tördelődés (external fragmentation): o Process. kilép. o A hele felszabadul. o Helére eg kisebb Process 4. töltődik. o Process 4. és Process. közötti memória terület nem használható mérete miatt. Nem fér bele folamat. Lénegében elveszik az OS számára. OS Process. Process 4. Szabad memória Process. Szabad memória Bázis Bázis + Méret BME-MIT, Minden jog fenntartva. lap

Problémák. Belső tördelődés (internal fragmentation): o Ugan az a folamat, mint a külső tördelődés, de... o Process 4. és Process. közötti kisméretű memória terület túl kicsi lehet. o Odaadjuk Process 4-nek. Nem érdemes nilvántartani. A folamatok által lefoglalt területen belül biztosan van nem használt (elvesző) memória terület OS Process. Process 4. Not used Process. Szabad memória BME-MIT, Minden jog fenntartva. lap Bázis Bázis + Méret

o o Problémák. A programok által igénelt memória dinamikusan változik, nehéz eg felső korlátot adni. A programok rendelkeznek az alábbi tulajdonságokkal: A programkód kis része használja az adatok kis részét az idő nag részében (lokalitás). Eges részek soha nem kerülnek felhasználásra. Pl. vizsgálatok szerint az MS Office funkcióinak 9%-át a felhasználók 9% soha nem használja. Dinamikus kapcsolatszerkesztés, csak a ténlegesen használt kódrészleteket töltjük be, rendszerszinten eg példánban. BME-MIT, Minden jog fenntartva. lap

Foglalási (allokációs) stratégiák Első megfelelő (First fit): o A tár elejéről indulva az első elégséges méretű területet allokálja. Következő megfelelő (Next fit): o Nem a tár elején kezdi a keresést, hanem a legutolsóra allokált terület után. Legjobban megfelelő (Best fit): o A legkisebb szabad hellel járó helre teszzük be. o Minimális külső tördelődés. A legrosszabban illeszkedő (Worst fit): o A legnagobb szabad hellel járó helre tesszük be. o Talán a maradék helre még befér majd valami. BME-MIT, Minden jog fenntartva 4. lap

Foglalási stratégiák értékelése A külső tördelődést befolásolják. Első/Következő/Legjobban megfelelő kb. a teljes memória terület %-át, a használt memória 5%- át nem tudja allokálni, az kihasználatlanul marad. A Legrosszabban illeszkedő algoritmus esetén a teljes memória 5%-a kihasználatlan marad. Első/Következő megfelelő a legkevésbé erőforrás igénes, a másik kettő a teljes lista végignézését igénli. Ilen példa lehet a ZH vag a vizsga sorban. BME-MIT, Minden jog fenntartva 5. lap

Példa Magarázza el a változó méretű memória partíciók lefoglalásánál használt a, first fit b, next fit c, best fit d, worst fit algoritmusokat. Eg rendszerben az adott pillanatban K, 64K, K, 8K, K, 5K és 4K méretű szabad területek vannak. Hogan fog a fenti nég algoritmus sorrendben a 65K, K, 48K, K, 6K méretű memória igénnek helet foglalni? BME-MIT, Minden jog fenntartva 6. lap

Megoldás első megfelelő algoritmusra Foglalások: 65K, K, 48K, K, 6K Szabad helek:. K, 64K, K, 8K, K, 5K és 4K (65K foglal). K, 64K, K, 5K, K, 5K és 4K (K foglal). K, 64K, K, 5K, K, 5K és 4K (48K foglal). K, 6K, K, 5K, K, 5K és 4K (K foglal) 4. K, K, K, 5K, K, 5K és 4K (6K foglal) Nem lehetséges, nincs szabad terület... BME-MIT, Minden jog fenntartva 7. lap

Megoldás legjobban megfelelő algoritmusra Foglalások: 65K, K, 48K, K, 6K Szabad helek:. K, 64K, K, 8K, K, 5K és 4K (65K foglal). K, 64K, K, 5K, K, 5K és 4K (K foglal). K, 64K, K, 5K, K, 5K és 4K (48K foglal). K, 64K, K, 5K, K, K és 4K (K foglal) 4. K, 64K, K, K, K, K és 4K (6K foglal) 5. K, K, K, K, K, K és 4K Az igének kielégíthetőek BME-MIT, Minden jog fenntartva 8. lap

Szabad helek tömörítése Compaction, Garbage collection. Megoldja a külső és belső tördelődést. o Átrendezi a futó folamatokat az optimális memória használat elérésére. o Eg, összefüggő szabad területet hoz létre. Nagon erőforrás igénes. o Át kell állítani a bázis címeket. o A fizikai memóriát másolni kell. BME-MIT, Minden jog fenntartva 9. lap

További lehetőségek A fizikai memória kezelését általánosabban és hatékonabban kell megvalósítani. o Különösen kritikus volt ez a korai (7-es évek) számítógépekre jellemző n* kbte fizikai memóriákkal. o De a mai n*gbte méretű memóriák esetén sem tűnt el a probléma. Tárcsere (swapping) Szegmens szervezés Lapszervezés BME-MIT, Minden jog fenntartva. lap

Tárcsere (swapping) A teljes folamat háttértárolóra is kiírható: o Ha nincs futó állapotban és nincs folamatban lévő I/O művelet (DMA sem a területre). Kivéve az OS területén lefoglalt pufferekbe/pufferekből végzett I/O. o Ha a címképzés futási időben történik: Akár még más fizikai címre is kerülhet a visszatöltött folamat. o A tárcserével összekapcsolt kontextus váltás nagon időigénes (a háttértár lassú a memóriához képest). A teljes folamatot ki kell írni majd visszaolvasni! BME-MIT, Minden jog fenntartva. lap

Lapszervezés (paging) A folamathoz tartozó fizikai memória terület lehet nem foltonos is. A fizikai memóriát keretekre (frame) osztjuk. A logikai memóriát lapokra (page) osztjuk. Minden eges logikai címet két részre oszthatunk.. Lap szám (page number, p).. Lap eltolás (page offset, d). o A lap szám a laptábla indexelésére szolgál A laptábla az eges lapokhoz tartozó fizikai báziscímet tárolja (f). A keret tábla (frame table) tartja nilván az üres kereteket. BME-MIT, Minden jog fenntartva. lap

Címtranszformáció laptáblával Logikai cím Fizikai cím CPU m-n bit p d f d n bit Fizikai memória f laptábla BME-MIT, Minden jog fenntartva. lap

Lapszervezés tulajdonságai A leképzést hardver végzi Szeparáció megvalósul (folamat létrehozható). o A folamat által látott logikai címtartomán, és a ténlegesen használt fizikai címtartománok teljesen elkülönülnek. o A folamatok nem férnek hozzá egmás lapjaihoz. o Az operációs rendszer kezelheti a lap- és kerettáblát (kernel mode). Külső tördelődés nincs. Belső tördelődés átlagosan fél lapni (kis lapméret lenne jó). A modern gépekben sok memória van (nag lapméret lenne jó): o Mert egszerűsödne az adminisztráció. o Kisebb lehetne a lap- és kerettábla (kevesebb bejegzés). BME-MIT, Minden jog fenntartva 4. lap

Keresés a laptáblában. A lap- és kerettábla nag lehet a modern OS-ekben: o 4Kbte-os lapok esetén bites címzésnél bejegzés van a laptáblában, ami 4MBte memóriát igénel minimum. o Többféle lapméret támogatása (a folamat memória igénének megfelelően). Megoldás: o Többszintű laptáblák (hierarchical paging). o Hash-elt laptáblák (hashed page table) o Inverted page table A keresés a laptáblában lassú: o x anni idő (laptábla indexelés és olvasás majd adatelérés). o Asszociatív lekérdezés (Translation look-aside buffer, TLB) kombinálva a laptábla használatával. BME-MIT, Minden jog fenntartva 5. lap

Asszociatív leképzés CPU p d p f TLB találat (hit) f d Fizikai memória TLB TLB találat nincs (miss) f laptábla BME-MIT, Minden jog fenntartva 6. lap

Asszociatív leképzés TLB miss CPU után TLB p update! d p f Kontextus váltáskor teljes csere. TLB TLB találat (hit) f d Fizikai memória TLB találat nincs (miss) f laptábla BME-MIT, Minden jog fenntartva 7. lap

TLB hatása A kérdés a találati arán (hit ratio)? o A TLB méretétől és a végrehajtott kódtól függ. Hán lapra és milen sorrendben hivatkozunk a lapokra. A lapok milen aránban férnek be a TLB-be, és milen a TLB frissítési algoritmusa (új bejegzés milen régi bejegzés helére kerül). o Tipikusan 8-9% körül van. Hatása a teljesítménre: AMD Phenom (7) o A TLB hibás, a BIOS-ból kikapcsolható, eltérés: % teljes (memória benchmark is), 4% alkalmazás Memória benchmarkok esetén akár 5% is. http://techreport.com/articles.x/74/4 BME-MIT, Minden jog fenntartva 8. lap

Egéb információk a laptáblában Kiegészítő bitek a laptáblában: o Valid/invalid bit Benne van-e az adott lap a fizikai memóriában. Ha nem, be kell hozni. o Read/read-write bit, execute bit, stb. Végrehajtható memória műveleteket ad meg. Pl. No Execute : Buffer túlcsordulás ellen az adatokra. o Referenced/Used bit Memóriaművelet esetén az MMU beállítja A HW (MMU) beállítja/ellenőrzi, ha a szabálokkal ellentétes használatot talál, akkor kivételt generál, amit az OS kezel. Az OS is felhasználja ezeket. BME-MIT, Minden jog fenntartva 9. lap

Lapok megosztása Folamatok memória tekintetében szeparálva vannak egmástól. De teljesítmén okokból nem teljes a szeparáció. Kontrollált (OS által) módon megosztható a memória: o Közös kód lapok (read onl, pl. DLL/SO). o Cop on Write (COW): Szülő-germek kapcsolatban lévő folamatok esetén. A két folamat először eg közös fizikai lapot használ. Ha azt bármelik írni próbálja, akkor a germeknek létrejön eg saját lap, az írási kísérlet előtti tartalommal. o Közösen olvasható és írható lapok. UNIX Sstem V Shared memor. HW (MMU) támogatás szükséges a megvalósításukhoz! BME-MIT, Minden jog fenntartva 4. lap

Megjegzés A magar nelvű könv 7. oldalán az újrahívhatósággal (reentrant code) kapcsolatos megjegzés sajnos hibás. o Az itt megadott feltételek szükségesek az újrahívhatósághoz, de nem elégségesek. Az újrahívhatóság elsősorban a függvén/metódus által használt adatszerkezetekre vonatkozik (kölcsönös kizárás). o Itt tulajdonképpen a könv önmódosító kódról beszél (annak a használatát zárja ki). o Az ilen osztott kód lapok mindig read-onl hozzáféréssel kell hog legenek belapozva. o Ha nem, az súlos biztonsági rés a rendszerben!!! Arbitrar code injection and privilege escalation. BME-MIT, Minden jog fenntartva 4. lap

Szegmensszervezésű memória. A programozó: o Adat, kód, bizonos programkönvtárak, stack, heap, stb. o Nem eg összefüggő lineáris memória területben gondolkozik... A szegmensszervezésű (segmentation) memória ennek az elképzelésnek felel meg. o A logikai címtartomán szegmensekre van osztva. o A programozó eg szegmenst (segment name/id) és azon belül eg szegmens ofszetet (segment offset) ad meg. A lapozásnál eg címet ad meg, és azt a HW bontja ketté! Itt két részt ad meg, és azt a HW rakja össze! BME-MIT, Minden jog fenntartva 4. lap

Szegmensszervezésű memória. A szegmensek mérete adott, azt is tárolni kell! o Adott szegmensen kívüli címzés esetén segment overflow fault kivétel. A szegmensek foltonosan tárolhatók, belső tördelődés nincs (meg lehet csinálni tördelődés nélkül). A szegmenseket a fordító és linker állítja össze, és adja meg a programot betöltő loader-nek. BME-MIT, Minden jog fenntartva 4. lap

Megvalósítás Logikai cím s szegmens tábla Méret Bázis CPU s d True < Fizikai memória False + segment overflow fault kivétel BME-MIT, Minden jog fenntartva 44. lap

Szegmens és lapszervezés egütt Eges rendszerek (pl. PC) mind a kettőt támogatják. Az angol nelvű könvben a PC architektúra részletesen bemutatásra kerül (nem foglalkozunk vele idő hiánában). A szegmensszervezést minimálisan használják a x86 HW-ét támogató OS-ek. o Pl. Linux esetén 6 szegmens: kernel kód/adat, user kód/adat, Task state segment, default local descriptor table. A lapozás viszont alapvető CPU szolgáltatás. o x86 HW esetén 4KBte ( szintű tábla) és 4Mbte-os lapok ( szintű tábla). o A Linux szintű laptáblát használ, ebből a középső üres x86 HW esetén. Logical address Linear address Phsical address CPU Segmentation unit Paging unit Phsical memor BME-MIT, Minden jog fenntartva 45. lap

Virtuális tárkezelés (Virtual memor) Korábban beszéltünk virtuális címről (logikai cím fizikai cím). o Itt nem erről van szó. Ezt sokszor össze szokták keverni a swapping-gel. o Itt erről sincs szó. A korábban ismertetett memória menedzsment módszerek alapján kidolgozott komplex memória menedzsment megoldás a virtuális tárkezelés. BME-MIT, Minden jog fenntartva 46. lap

Alapgondolat, megfigelések A folamatok fizikai memóriában történő végrehajtása: o o Szükségesnek és célszerűnek tűnik. Uganakkor komol és kellemetlen következménekkel jár.. A teljes folamat nem szükséges annak a végrehajtásához, többnire az aktuális utasítás számláló körnezete, és az éppen használt adatszerkezetek elégségesek (lokalitás).. A folamatok kódrészleteinek nag részét soha nem hajtjuk végre vag nagon ritkán hajtjuk végre (error handling, software/feature bloat).. A folamatok elindulásához nem szükséges a teljes program ténleges betöltése. 4. Eges kódrészletek, erőforrások megoszthatóak a folamatok között (pl. ugan azt a kódot, adatot használják). 5. A párhuzamosan futó folamatok eges, már használt kódrészleteire sokáig vag akár soha többé nincs szükségünk, míg más folamatoknak nem elég a memória. BME-MIT, Minden jog fenntartva 47. lap

Elvárások Jó lenne nagobb memóriát használó folamatokat futtatni, mint amenni fizikai memória rendelkezésre áll. o Virtuális memória, a programozónak nem kell foglalkoznia a rendelkezésre álló memóriával. o Persze ez eg architektúra függő határig lehetséges. o Vannak következménei: komplexitás és sebesség. Ha a folamataink csak a ténleg szükséges fizikai memóriát tartják a fizikai memóriában, több folamatot tudunk eg időben betölteni. A programok gorsabban induljanak el, csak a szükséges kódrészleteket töltse be az operációs rendszer. Képesek legenek osztozni a közös kód és adatszerkezeteken, erőforrásokon. BME-MIT, Minden jog fenntartva 48. lap

Az alapja a lapozás. Virtuális tárkezelés o A foltonos virtuális címteret eg tábla (memor map, page table, laptábla) képzi le. Nem direkt módon fizikai memóriára történik a leképzés, hanem: o Részben fizikai memóriára. o Részben a permanens táron (HDD, Flash tár) kialakított speciális területre. Pagefile (Windows), vag swap file (UNIX/Linux), a UNIX/Linux esetén a név történelmi örökség, nem swappingről van szó. A folamat eg összefüggő virtuális címteret lát! BME-MIT, Minden jog fenntartva 49. lap

Virtuális tárkezelés ábra Page Page Page Page laptábla Page N Virtuális memória Fizikai memória pagefile BME-MIT, Minden jog fenntartva 5. lap

Egéb tulajdonságok Folamatok megoszthatnak memóriaterületeket olvasás vag akár írás és olvasás hozzáféréssel. o Hozzáférési jogosultságok. o Az ilen memória területek több folamat virtuális címtartománába vannak belapozva. Módosítás nilvántartása (modified/dirt bit): o Minden laphoz tartozik eg HW által kezelt bit (pl. a laptáblában). Betöltéskor törlik, módosításkor beállítják. Hivatkozások nilvántartása (referenced/used bit): o OS adott időnként és/vag adott eseménekre törli. o Használat esetén beállítják. BME-MIT, Minden jog fenntartva 5. lap

Következmének A folamat virtuálisan összefüggő memóriát lát (virtuális memória). Valójában az összefüggő memóriaterület ritka (sparse address space). o Nag része mögött nincs fizikai memória vag pagefile bejegzés. o Ha az szükséges, akkor dinamikusan kerül mögé fizikai memória, amit a folamat elérhet. Verem (stack) Szabad memória (free memor) Halom (Heap) Adat Kód Folamat a memóriában BME-MIT, Minden jog fenntartva 5. lap

Működés Ha eg éppen használt (pl. eg utasításban) virtuális memória lapon található cím bent van a fizikai memóriában, akkor a kód végrehajtható. Ha nincs benn (valid/invalid bit)? o Laphiba ( page fault ) kivételt generál az MMU. Érvénes, de éppen nem fizikai memóriában lévő lap. Nem hiba, normális működés! o Az operációs rendszer ezt kezeli, lehetőségek: HDD-re ki van írva: be kell hozni a pagefile-ból. Soha nem lett betöltve: be kell tölteni. Kérdés: Hová, főleg ha tele van a fizikai memória? o Az OS visszaadhatja a vezérlést a megszakított folamatnak. o A hozzárendelés során a folamat passzívan várakozik. BME-MIT, Minden jog fenntartva 5. lap

Lapozási stratégiák (fetch strateg) Igén szerinti lapozás (demand paging): o Csak laphiba esetén, és csak a laphibát megszüntető lapot hozza be a fizikai memóriába. o Csak a szükséges lapok vannak a fizikai memóriában. o Új lapra vonatkozó hivatkozás mindig hosszú várakozást eredménez (be kell hozni). Előretekintő lapozás (anticipator paging): o Előre tekintve (becslés) az OS megpróbálja kitalálni, hog mel lapokra lesz szükség, és azokat is behozza. o Feltétel: szabad erőforrások (CPU, HDD, fizikai memória). o Ha a behozott lapokra ténleg szükség lesz (sikeres a becslés), akkor csökken a laphibák száma. o Ha nem, akkor feleslegesen használunk erőforrásokat. BME-MIT, Minden jog fenntartva 54. lap

Működés laphiba esetén. OS page fault kivétel Load M hivatkozás V/I laptábla fizikai memória BME-MIT, Minden jog fenntartva 55. lap

Működés laphiba esetén. OS page fault kivétel Load M V/I laptábla fizikai memória BME-MIT, Minden jog fenntartva 56. lap

Működés laphiba esetén. OS lap a permanens tárolón Load M V/I laptábla fizikai memória BME-MIT, Minden jog fenntartva 57. lap

Működés laphiba esetén 4. OS Load M V/I free laptábla fizikai memória lap behozása eg szabad fizikai keretbe BME-MIT, Minden jog fenntartva 58. lap

Működés laphiba esetén 5. OS laptábla beállítása Load M V/I laptábla fizikai memória BME-MIT, Minden jog fenntartva 59. lap

Működés laphiba esetén 6. OS végrehajtás Load M V/I laptábla fizikai memória BME-MIT, Minden jog fenntartva 6. lap

Lapcsere stratégiák (replacement strategies) Tele van a fizikai memória, és laphiba történik. o Ki kell választani a permanens tárra kikerülő lapot. Áldozat kiválasztás (victim selection). o Ennek a helére kerül be a lap a permanens tárról. Algoritmusok: o Optimális algoritmus. o Legrégebbi lap (FIFO). o Újabb esél algoritmus (Second chance). o Legrégebben nem használt (Least recentl used, LRU). o Legkevésbé használt (Least frequentl used, LFU). o Utóbbi időben nem használt (Not recentl used, NRU). BME-MIT, Minden jog fenntartva 6. lap

Optimális algoritmus Előre néz, és teljes információval rendelkezik a jövőben használt lapokról. o Nem realizálható, de jó összehasonlítási alap. BME-MIT, Minden jog fenntartva 6. lap

FIFO A behozott lapokat eg FIFO-ba rendezi, és mindig a legrégebben behozott lapot cseréli le. o Egszerű, a múlt alapján dönt, hátranéz. o Azokat a lapokat is lecseréli, ameleket a folamatok gakran használnak. Nem nézi a ténleges használatot. Csak a behozás sorrendjét. o Bélád anomália (Bélád László, BME hallgató volt, 56- ban hagta el az országot, az IBM-nél dolgozott): Növeljük a folamatnak adott memória keretek számát (fizikai memória). Nő a laphibák gakorisága. Anomális: Nem úg működik, ahog várnánk... BME-MIT, Minden jog fenntartva 6. lap

Újabb esél algoritmus, SC A sor elején lévő lapot csak akkor cserélik le, ha arra nem hivatkoztak (referenced/used bit). o A referenced bitet az MMU állítja be, ha a lapot használják! o A reference bit-et törli, ha az be van állítva: Ezért újabb esél a neve. Ezek után a lapot a sor végére rakja (FIFO jellegű a sor ebben az esetben is). Egébként végtelen ciklusba kerülhetne! o Bonolultabb, mint a FIFO, de alapvetően egszerű algoritmus. o Hátra néz, és a behozás sorrendje, és a használat alapján dönt. Figelembe veszi a program lokalitását. BME-MIT, Minden jog fenntartva 64. lap

Legrégebben nem használt, LRU Megoldás: o Bonolult, de jól közelíti az optimális algoritmust. A lokalitás miatt jó a közelítés. o Hátrafelé néz. o Megvalósítás: Számláló: Minden laphoz eg last used timestamp kerül. Láncolt lista: A lista végére kerül a legutoljára használt. Kétdimenziós tömb: NxN-es mátrix, ahol N a lapok száma. o Sokszor a közelítéseit szokták használni. BME-MIT, Minden jog fenntartva 65. lap

Legkevésbé használt, LFU A közelmúltban gakran használt lapokat a lokalitás miatt nag valószínűséggel újra fogjuk használni. o A ritkán használtakat kis valószínűséggel fogjuk használni. o Az R bit értékét hozzáadja időnként eg laphoz tartozó számlálóhoz, és törli az R bitet. o A kisebb számláló értéket tartalmazó lapokat cseréljük le. o Az algoritmus nem felejt... o Az algoritmus a frissen behozott lapokat fogja lecserélni ( vag kicsi számláló érték). Azokat be kell fagasztani a memóriába eg időre. BME-MIT, Minden jog fenntartva 66. lap

Utóbbi időben nem használt, NRU A hivatkozott és módosított biteket is használja. R törölhető, M-et viszont meg kell őrizni. Prioritást rendel a lapokhoz R és M alapján. o. prioritás: R=, M= (legalacsonabb) o. prioritás: R=, M= o. prioritás: R=, M= o. prioritás: R=, M= (legmagasabb) Mindig a legkisebb prioritású csoportból választ, ahol még van lap. BME-MIT, Minden jog fenntartva 67. lap

Lapcsere szempontok Globális lapcsere: A teljes fizikai memória potenciálisan lecserélhető. Lokális lapcsere: A folamat által használt fizikai memória lapok között történik a csere. Lapok tárba fagasztása (lock bit): o I/O műveletek hivatkoznak rá. Ott fizikai címet kell használnunk! Lehet kernel szinten pufferelni, és akkor ez is megkerülhető. o LFU algoritmus frissen behozott lapjai (nem voltak használva, elsőrangú áldozatok). BME-MIT, Minden jog fenntartva 68. lap

Példa Az algoritmusokkal ismerkedjünk meg eg példán keresztül. Ilen is lehet vizsgán. BME-MIT, Minden jog fenntartva 69. lap

Példa Eg igén szerinti lapozást használó rendszerben vag 4 fizikai memórialap áll eg folamat rendelkezésére. A futás folamán sorban a következő virtuális lapokra történik hivatkozás:,,,,,, 4,,,,, 4,, Hán laphiba következik be a rendszerben a következő algoritmusok esetén, ha kezdetben a vag 4 lap üres? o Legrégebbi lap (FIFO) algoritmus alkalmazásánál vag 4 fizikai memória lap esetén o Legrégebben nem használt (LRU) algoritmus alkalmazásánál és 4 fizikai memória lap esetén o Újabb esél (SC) algoritmus alkalmazásánál és 4 fizikai memória lap esetén Röviden magarázza meg az eredméneket! BME-MIT, Minden jog fenntartva 7. lap

FIFO megoldás memória kerettel Laphivatkozások FIFO memória kerettel 4 4 4 4 4 4 4 4 Laphibák i i i i i i i i i i i BME-MIT, Minden jog fenntartva 7. lap

FIFO megoldás 4 memória kerettel Laphivatkozások FIFO 4 memória kerettel 4 4 4 4 4 4 4 4 4 Laphibák i i i i i i i i i i i i BME-MIT, Minden jog fenntartva 7. lap

LRU megoldás memória kerettel 4 4 4 4 4 Laphivatkozások LRU memória kerettel BME-MIT, Minden jog fenntartva 7. lap 4 4 4 i i i i i i i i i i i i Laphibák

LRU megoldás 4 memória kerettel 4 4 4 4 4 4 4 4 4 Laphivatkozások LRU 4 memória kerettel BME-MIT, Minden jog fenntartva 74. lap 4 4 4 4 4 4 4 4 4 4 5 6 4 i i i i i i i i i i Laphibák

SC megoldás memória kerettel 4 4 4 4 4 n n n 4 n n Laphivatkozások SC memória kerettel Igén szerinti lapozás, behozza és hozzá is fér! Igén szerinti lapozás, behozza és hozzá is fér! BME-MIT, Minden jog fenntartva 75. lap n n n 4 n n n n n n 4 n 4 n n i i i i i i i i i i i Laphibák Igén szerinti lapozás, behozza és hozzá is fér! Igén szerinti lapozás, behozza és hozzá is fér!

SC megoldás 4 memória kerettel 4 4 4 4 n 4 n 4 Laphivatkozások SC 4 memória kerettel BME-MIT, Minden jog fenntartva 76. lap n 4 n 4 n n 4 n n 4 n n n 4 n n n i i i i i i i i i i i i Laphibák

Példa értékelése FIFO és SC és 4 memória kerettel: o 4 keretre rosszabb, mint keretre. o Bélád anomália. LRU keretre rosszabb, mint FIFO v. SC keretre: o A lapsorozatra nem teljesül a lokalitás feltétel, ezért rosszabb. 4 keret esetén a legjobb az LRU. Statisztikai vizsgálatok alapján lehet értékelni az algoritmusokat. o Ezek a számok úg lettek kitalálva, hog megjelenjenek a jellegzetességek. BME-MIT, Minden jog fenntartva 77. lap

Virtuális memória teljesítméne. Fizikai memória sebessége: o n* Gbte/s adatátviteli sebesség. o n* ns késleltetés. o Ha cache-elve van, akkor még gorsabb... Permanens tároló sebessége: o Tipikusan Mbte adatátviteli sebesség, de random elérés esetén és sok párhuzamos felhasználó esetén nagságrendekkel lassabb. o ms legrosszabb hozzáférési idő (fejmozgás). o Flash esetén az írás (törlés) lassú és problémás. Hamar tönkremeg (pagefile-t sokat írja a rendszer) o Több nagságrend a különbség. BME-MIT, Minden jog fenntartva 78. lap

Virtuális memória teljesítméne. Ha eg lap nincs bent a fizikai memóriában: o Több nagságrenddel lassabb a permanens tárolón lévő lapok elérése (betöltése), mint eg fizikai memóriában lévő lap elérése. Az elérhető sebességet alapvetően a laphibák gakorisága befolásolja. o A gakori laphibák a rendszer teljesítménét drasztikusan csökkenthetik... o Sikeres előretekintő lapozás javíthat a teljesítménen. BME-MIT, Minden jog fenntartva 79. lap

Vergődés (Thrashing) Hogan válasszuk meg, hog eg folamathoz hán memória keretet rendeljünk a fizikai memóriában? o Kevés: Nagszámú/állandó laphiba (trashing). o Sok: Más feladatnak nem marad memória. DEF: A gakori laphibák által okozott rendszer teljesítmén csökkenést vergődésnek (trashing) nevezzük. o A laphiba kezelése során újabb laphiba jelenik meg. o A laphibák felgűlnek a háttértár várakozási sorában. o A CPU a laphibák megoldására vár. o A hosszú távú ütemező (ha van), ezt I/O intenzív folamatként is értelmezheti, újabb folamatokat beengedve a rendszerbe... A helzet még rosszabbá válhat. BME-MIT, Minden jog fenntartva 8. lap

Vergődés (ábra) CPU kihasználtság (%) vergődés maximum optimum Multiprogramozás foka (párhuzamos feladatok száma) BME-MIT, Minden jog fenntartva 8. lap

Vergődés elkerülése Cél: alacson laphiba gakoriság (Page Fault Frequenc, PFF). Eg laphiba kezelése során ne jöjjön létre újabb laphiba: o A háttértár várakozási sora csak csökkenhet... Lokális lapcsere stratégia: o A folamatok nem tudják egmástól elvenni a fizikai memória kereteket. o Nem terjedhet át a hatás más feladatokra. o Csökkenti a problémát, de nem oldja meg. Hán keretre van szüksége a fizikai memóriában eg folamatnak a hatékon futáshoz? BME-MIT, Minden jog fenntartva 8. lap

Lokalitás Statisztika: Eg időintervallumban a folamatok a címtartománuk csak eg kis részét használják. o Időbeli. o Térbéli. Vergődés: o Megfelelő számú fizikai memória keret allokálása. Nincs vergődés. Laphibák a lokalitás váltásakor. o Ennél kisebb: vergődés BME-MIT, Minden jog fenntartva 8. lap

Munkahalmaz (Working-set) A lokalitáson alapul. A folamat azon lapjainak halmaza, amelekre eg időintervallumban (munkahalmaz-ablak) a folamat hivatkozik. A munkahalmaz alapján megadható az adott folamat munkahalmaz mérete (WSS). A futó folamatok teljes fizikai memória keret igéne számítható (D). D WSSi BME-MIT, Minden jog fenntartva 84. lap

Alkalmazása Az OS méri a WSS-t folamatonként. o Ha van szabad memória keret: Akkor az igének kielégíthetőek. Új folamatok engedhetőek be a rendszerbe. o Ha nincs szabad memóriakeret: Akkor ki kell választani eg áldozat folamatot. Azt fel kell függeszteni (suspend, ténleges swap out). Az áldozat folamat fizikai memória kereteit fel lehet használni. A vergődés elkerülhető a multiprogramozás fokát közel optimálisan tartva. A gakorlatban erőforrás igénes a megvalósítása: o Más megoldást kell találni... BME-MIT, Minden jog fenntartva 85. lap

PFF alapú optimalizáció Vergődés: magas PFF érték... Folamatonként egszerűen mérhető a PFF. o Alacson: túl sok fizikai memória keret. o Magas: túl kevés memória keret. Felső és alsó PFF határérték megadása. o Felső határérték túllépés: kap eg fizikai memória keretet. o Alsó határérték túllépése: eg fizikai memória keret elvonása. Esetleg csak akkor, ha nincs szabad fizikai memória keret a rendszerben. Ha nincs fizikai memória: eg folamat felfüggesztése BME-MIT, Minden jog fenntartva 86. lap

Beágazott rendszerek A beágazott rendszerekben nagon eltérő a memória kezelése (nem foglalkozunk vele). o A beágazott rendszerek CPU-inak eg részében nincs MMU (vag nem használják): Lapozás, virtuális memória kezelés, szeparáció, stb. eleve ki van zárva. o Ha van MMU, és használják: A háttértár korlátos, a pagefile-nak nincs hel sem. Pl. virtuális memória alkalmazása valós idejű rendszerekben gakorlatilag kizárható/értelmetlen. Laphiba esetén a végrehajtás idejére hogan adható felső korlát? Elsősorban a folamatok szeparációja és virtualizáció a feladat. BME-MIT, Minden jog fenntartva 87. lap