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