A program Operációs redszerek Memória meedzselés Memória, címtartomáy fogalmak A címköt dés és címleképzés kérdései A tárcsere Memóriameedzselési osztályok, valós MM Virtuális MM kocepció Lapozós redszer Szegmetálós redszer NT esettaulmáy Vadász 1 Vadász 2 A memória (tár) Er forrás, amit Igéyeli (kéri, allokáli) kell (a processzek igéylik) Védei kell (elle rzött elérések legyeek) Címekkel redelkez cellák (rekeszek: bájtok, szavak, rekordok) készlete, Egy-egy cella elérése (load-store) a címére való hivatkozással törtéhet A fizikai memória hierarchikus szitekbe szervezett: Processzorbeli-processzor közeli gyorsítótár Közpoti tár Másodlagos tár Vadász 3 A címtartomáyok Miutá a memória címekkel redelkez rekeszek készlete, fotos fogalom a címtartomáy fogalom A címtartomáy a címek készlete (szembe a memóriával, ami rekeszek készlete) A címtartomáy modellje A memória modellje 1-1. cella 1. cella -1. cella. cella Vadász 4 Logikai címtartomáyok A processzekhez logikai címtartomáyok tartozak (Logical Address Space) Az szemszögükb l ézve va saját processzoruk, va saját (logikai) memóriájuk. A processzekhez egy lieáris, folytoos címtartomáyt szoktuk képzeli. Már a logikai címtartomáyokat is érdemes szakaszoli: címek a kódak, az adatokak, a vermekek. A fizikai címtartomáyok A CPU a fizikai memóriából tud felhozi, letároli A fizikai memóriához fizikai címtartomáyok tartozak (Physical Address Space) A címsí szélességét l függ, mekkora a fizikai címtartomáy Elképzelhet, hogy lehetséges fizikai címhez em köt dik fizikai memória cella (fizikai címtartomáy szakaszokhoz em tartozik memória) Vadász 5 Vadász 6
A címköt dés (Address Bidig) Adott egy cím. Vajo tartozik-e hozzá cella? Melyik? Köt dés a fordítás sorá: abszolút cím a tárgymodulokba Köt dés a lik sorá: abszolút cím a végrehajtható (betölthet ) programokba Köt dés a betöltés (load) sorá: abszolút címek a processz kotextusba Köt dés a futás sorá (diamikus köt dés): logikai címek a kotextusba. A logikai címek lehetek relatív címek, vagy virtuális címek A logikai címek és a fizikai címek közötti megfeleltetés (átalakítás) a címleképzés (mappig). A címleképzések Vegyük észre, más-más a probléma (a címleképzés kiváltó oka) az alább esetekbe: Nagyobb a memória, mit a címtartomáy (korai redszerekbe 16 bites címzésél god volt) (A eset) A logikai címtartomáy és a fizikai címtartomáy em esik egybe (B eset) A memória kisebb, mit a címtartomáy (C eset) (Természetese a B eset a másik kett vel együtt is felléphet.) Vadász 7 Vadász 8 A címleképzések A tárcsere (Swappig) c A c c C c k q B Vegyük észre, a C esetbe tárcserére va szükség (átfedés (overlay), virtuális memória). Tárcserére akkor is szükség lehet, ha külöböz processzek (rutiok) felváltva haszálják ugyaazt a fizikai memória részt. c c k h q Vadász 9 Vadász 1 A memóriameedzselés feladatai A memória allokálás A címleképzés segítése Ezt kiegészítve az esetleges tárcsere (swappig out swappig i, pagig out pagig i) segítése A memória allokálása Mivel a memória er forrás, igéyeli kell A processzek az igéyl k (allokálók) Ú. statikus allokálás: a processz születésekor, hogy a kotextusa számára legye tárolási lehet ség Ú. diamikus allokálás: processz élete sorá b víti a redelkezésére álló memóriát Az allokálás (mid a statikus, mid a diamikus) az MM alredszer egyik fotos feladata Vadász 11 Vadász 12
A címleképzés A mai redszerekbe a processzek kotextusába logikai címek vaak (többyire virtuális címek) A logikai cím fizikai címre való leképzését, közbe a cím köt dés megoldását a MM alredszer a hardver MMU egységével együtt oldja meg A címleképzés köt dés sorá godoskodak a védelemr l Szükség eseté a ki-be mozgatásról (tárcserér l) Vadász 13 MM alredszer osztályozások A virtuális címzés kocepciójú MM-t l (lásd kés bb) megkülöböztetve, vaak valós címzés redszerek Fix partíciós és változó partíciós redszerek Korai MM redszerek, Felvetett problémáik: címköt dés késleltetése (áthelyezés lehet sége), partíció kiválasztási stratégia (best-, worst-, ext fit) címzés védelme. Némely probléma ma is érdekes (lapozó eszköz foglaltság kezelés stb.) A program-fejleszt redszerek által biztosított átfedési (overlay) techika a valós címzés redszerekbe is megegedte a fizika memóriáál agyobb logikai memória (logikai címtartomáy) haszálatát Vadász 14 A virtuális memória kocepció Általáos megoldást ajál a címleképzés köt dés problémára Léyege: A processzek (meglehetése agy) virtuális címtartomáyt haszálhatak Állhat több résztartomáyból (régióból, szakaszból) Az MM a virtuális címekhez virtuális rekeszeket biztosít (a processzek számára átlátszó módo) A virtuális cellák tartalma másodlagos tároló midig megtalálható, szükség eseté a fizikai memóriába is Mikor a processz egy virtuális címre hivatkozik, em kell tör die a címleképzéssel, sem a köt déssel, sem a tartalom behozatalával. Virtuális címtartomáy - memória A lehetséges virtuális címtartomáyt a címzési mód határozza meg (pl. 32 bites címzéshez 4 Gbájt) Egy processz virtuális címtartomáya eél valószí leg kisebb A lehetséges fizikai címtartomáy a címsí szélesség adja, ez lehet agy. A fizikai memória (a haszálható fizikai címtartomáy) bár egyre a gazdagépek memóriája eél is kisebb. Kisebb az összes processz virtuális memóriájáál. Vadász 15 Vadász 16 A címköt dés A taszképít (liker) a végrehajtható-betölthet programokba virtuális címeket épít A processzek a kotextusukba a virtuális címeket haszálják Diamikus címleképzés va: V Dyamic_Map address R address El fordulhat a leképzés sorá, hogy a leképzett cím em érvéyes (ot valid): a virtuális cellához ics fizikai cella kötve, az ics a fizikai memóriába. Ekkor ki-be mozgatás (tárcsere) szükséges Lapozó redszerek (Pagig) Lapozós redszerekbe fix méret blokkokba törtéik a címleképzés A virtuális címtartomáy (vagy aak altartomáya) fix méret szakaszokra va osztva A virtuális memória fix méret blokkokra va osztva: ez a lap (page) A fizikai memória ugyaolya (fix) méret lapkeretekre (page frame) va osztva. Lapozós redszerekbe a folytoos virtuális címtartomáyak em feltétleül folytoos fizikai címtartomáy fog megfeleli, em folytoos címtartomáyra is lehet a leképzést végezi Vadász 17 Vadász 18
Lapozó redszerek (Pagig) (Tegyük fel: egy processz V címtartomáya egy régióba tartozik, eze belül folyamatos (bájtba mérve: -)) Egy virtuális cím formája: v = (p, o) ahol: p: a lap címe, (értéke - p közötti, ahol p megmodja, háy lapból áll a processz); o: eltolás a lapo belül. (értéktartomáya át kell fedje a lapot) Lapozó redszerek (Pagig) Egy fizikai cím: r = (f, o) ahol: f a lapkeret címe, o az eltolás (offset). Az o eltolás bitszélessége a lap/lapkeret mérett l függ. A lap/lapkeret méret architektúra függ! Vadász 19 Vadász 2 A laptáblák (Page Map Table) Mide (egy dimeziós címtartomáyú, egy régiós) processz számára biztosított egy laptábla. (Több régiós processz: régiókéti laptábla!) Eek címe: egy regiszterbe (több régiósál regiszterekbe). A laptábláak ayi bejegyzése va, aháy lapból áll a processz (egy bejegyzést a p lapcím idexel). Egy laptábla bejegyzés Egy bejegyzés tartalma: védelmi és állapot (state) bitek: védelmi maszk (rwx stb.); érvéyességi (valid/preset-abset) bit; módosítás (dirty bit) jelz ; lapkeret cím, leíró a másodlagos tárolóhoz (cím és típus) (lehet ez a lapkeret cím mez be is). Vadász 21 Vadász 22 Memória allokálás sorá Címleképzés lapozós redszerbe Statikus allokálás: készül(ek) laptábla (laptáblák), a szükséges számú bejegyzéssel A bejegyzések tartalma kitölt dik a kerel címtartomáyhoz tartozó bejegyzésekhez még a lapkeret címek is beíródhatak, a védelmi bitek és a másodlagos tároló leírók is kitölt dhetek (leírók az image fájlra voatkozhatak, sok bejegyzésbe ot valid jelzi, ics lapkeret redelve a laphoz). Diamikus allokálás sorá a laptábla "kiegészül", új bejegyzésekkel b vül (a címtartomáy ). Base Address of Page Table b + p b+p Page Table f Virtuális cím p o + Fizikai cím f o Itt érthet meg a HW MMU szerepe! Az addíciók HW-esek kell legyeek! Vadász 23 Vadász 24
A laphiba (Page Fault) Diamikus címleképzés sorá a valid/preset-abset bit jelzi: ics a laphoz lapkeret redelve. Klasszikus kivételes eseméy (exeptio coditio). A kezel je (Page Fault Hadler) m ködésbe lép. Keres szabad lapkeretet, kilapoz, ha szükséges, belapozza a kérdéses lapot, majd visszatér. Újra idulhat - most már sikerese - a leképzés. A laphiba egész ormális jeleség. A laphiba gyakoriság (Page Fault Rata) - jellemz je a processz életéek. Vadász 25 Kérdések, megoldadó dolgok Mekkora kell legye a laptábla? Hogy lehete csökketei méretét? Hogy lehete a címleképzést tovább gyorsítai? Meghatározadó a belapozási stratégia mely lapokat, meyit hozzuk be egyidej leg? meyiségi stratégia egyidej leg háy lapkerete legye/lehet egy processzek? kilapozási stratégia mely lapok legyeek esélyesek kilapozásra? elhelyezési stratégia em a fizikai memóriára, haem a másodlagos tárolóra Vadász 26 Laptábla méret kezelés Többszites laptáblák Méretét meghatározza a processz bájtba mért címtartomáya és a lapméret háyadosa: a lapba mért címtartomáy. Méretcsökketés 1: lapméret övelése (HW korlát) Méretkezelés: maga a laptábla is kilapozható. VAX/VMS megoldás. Csökketés 2.: többszit laptáblák: Itel: 2 szites, Su SPARC, Alpha: 3 szit, AMD x64: 4 szit. Csökketés 3.: Hasításos laptábla. IA64 Csökketés 4.: ivertált laptábla. HP, IBM System 38. Vadász 27 b Virtuális cím p1 p2 o 1 1 12 Els szit laptábla 1 2 + 3... 123 p2 Második szit laptáblák 1 2 3... 123 1 2 3... 123 Vadász 28 f Hasításos (hashed) Ivertált laptábla Hash függvéy: hasító, szétosztó függvéy, külöböz p, q stb. lapcímeket ugyaarra a hash címre képez Virtuális cím p o hash Fizikai cím f o p f q r Címzés bitszélesség övekedéssel em tud verseyt tartai a laptábla méret csökketés. Ivertált tábla: bejegyzések lapkeretekét. Tartalmuk: védelmi, módosítási maszk; processz azoosító (pid); a processz lapja (p). Leképzéshez: megézi, adott processz adott lapja leképzett-e. Nem szekveciális keresés: hash módszerek. Az ilye redszerekbe asszociatív tár is! Vadász 29 Vadász 3
Címleképzés gyorsítás asszociatív tárral Traslatio Lookaside Buffer a CPU-ba (TLB). Nem agy méret. Eek egy bejegyzése: szite ami a PMT egy bejegyzése. Párhuzamos keresés a TLB-be: címleképzés ige gyors, ha va találat. Ha ics találat: idul a ormál laptáblás leképzés. (Ez eredméyezhet laphibát. ) Az asszociatív tár tartalma frissít dik. Pl.: MIPS R2 stb. processzorai (SGI), Itel stb. Belapozási algoritmusok A processzek hivatkozási láca (Referece Strig): lapok sorozata. El re megmodai ehéz. Lehetséges behozási stratégiák (fetch policies): Igéy szeriti (Demad Pagig). Egyszer. laphiba eseté belapozzuk a kérdéses lapot eleite magas laphiba ráta, kés bb remélhet az "egyesúly" Szükséges és még éháy ("szomszédos" lap) a "lokalitás elve" érvéyesülhet "Mohó" belapozás a szükséges és "sok" további. Megjósolható? Vadász 31 Vadász 32 A meyiségi stratégia Ha ics stratégia: remélik az egyesúlyt A mukakészlet (Workig Set) modell (Deis, 197) A processz muka-lapkészlete (mukahalmaz): egy id ablakba a belév lapjaiak halmaza. Nics laphiba, ha mide lapja a pillaatyi mukakészlethez tartozik. A pillaatyi helyzet valójába: egy id ablak a hivatkozási láco. A mukakészlete eredetileg lapkészletet értettek, ma már a mukakészlet lapkeret készlet. A mukakészletet a processz élete sorá "igazíthatjuk" (adjustmet). Globális - lokális stratégiák A mukakészlet modellel kapcsolatba a kilapozási problémák el jöek: amikor belapozadó egy processz egy lapja, kilapozásra a processz mukakészletéb l válasszuk? (Lokális) Más processzek mukakészletéb l is? (Globális) Lokális kilapozáshoz: a mukakészlet agyságát diamikusa változtatják (határok között), a laphiba rátától függ e. A processzek mukakészleteiek egyesúlyát remélik (ez a Balace Set). Vadász 33 Vadász 34 Kilapozási algoritmusok Page Replacemet Algorithms Amik befolyásolhatak: a bekövetkez lapigéy em jósolható igazá; lapok belapozási ideje; lapok belapozási sorredje; hivatkozások gyakorisága; Lapok em írhatósága írhatósága, módosították-e; magáak az algoritmusak a költsége. FIFO algoritmus A belapozási sorred a meghatározó: miél régebbe lapoztak be egy lapot, aál esélyesebb a kilapozásra. Nyilvátartás egy lácolt listá: elejér l lapozak ki, belapozott lap a végére. Aomália: a rége belapozott, de most is haszált, a gyakra haszált lapokra. Vadász 35 Vadász 36
Második esélyes FIFO Körkörös lácolt listá a belapozott lapok. Lapokét egy hivatkozás bit. Óramutató mutatja a lista elejét. Kilapozáshoz: ha a mutatott lap hivatkozás bitje bebilletett, akkor azt törlik, és a mutató tovább lép. Ha em (em volt hivatkozás rá), akkor kilapozzák. Mire az óramutató körbejár, újra bebillehet a hivatkozás bit: kap egy második esélyt a lap. Ha em bille, methetetleül kilapozódik. Belapozott lap felvev dik a körre. Ilye a mach default memóriameedzsere. NRU (LRU) algoritmusok Not (Least) Recetly Used Lokalitás elvb l: a mostaába em haszálatos lapok esélyesek a kilapozásra. Az id számít. Lácolt listás yilvátartás költséges vola! Az utolsó 8 id -itervallum históriája : referecia bájt léptetés jobbra itervallumokét, hivatkozott lapál 1, em hivatkozottál lép be. A referecia bájtok redezésre adak lehet séget: kisebb a bájt a kilapozásra esélyes lapokál. Vadász 37 Vadász 38 NFU (LFU) algoritmusok Not (Least) Frequetly Used A hivatkozások gyakorisága számít, em a hivatkozások ideje. Aomália: rége agy gyakorisági frekveciával haszált lapok kiszorítják az újakat. Id szer ség is figyelembe veed. Öregedés (agig) a számlálómez re eze javít. Költséges a megvalósítás, f leg a redezés. A szegmetálás Többdimeziós címtartomáyok: a kódak, az adat szekciókak, a veremek, az osztott kódak, kerel régióak stb. A címleképzésbe a blokkméret em fix. A virtuális cím: v = (s,d) Processzekét szegmes tábla. Kevesebb bejegyzés. Ki-be söprés (swappig i-out), ha szükséges. Vadász 39 Vadász 4 Szegmesekéti címleképzés A stratégiák Base Address of Segmet Table b + s b+s Segmet Map Table m a l s' Virtuális cím s d + Fizikai cím s' d s szegmes szám s' szegmes cím d diplacemet (eltolás) a cím a swap tároló l szegmes hossz m státus (valid, rwx stb) Vadász 41 Allokációs stratégia egyidej leg szegmesyit a fizikai memóriába Behozási stratégia igéy szeriti a szegmesre Kisöprési stratégia LRU Elhelyezési stratégia First vagy ext fit Vadász 42
Szegmesekéti leképzés vagy lapozás: lehet ségek Tiszta lapozó redszerek (Pure Pagig) Tiszta szegmetáló redszerek. Szegmetáló és lapozó redszerek. Ekkor a teljes kotextus ki-besöpr dik, szegmesekre külö laptáblák, lapozás a szegmeseke belül. Ma ezek gyakoriak. A "swap" eszköz/fájl struktúra A mai redszerekbe lehet swap/pagig device (a másodlagos tároló partíció), swap/pagig file (a másodlagos tároló a fájl), midkett t úgy foghatjuk fel, hogy lapméret blokkok sora. Akár szegmesekéti leképzés, akár lapokéti leképzés va: swap/pagig eszközr l/fájlról beszélük. Ami érdekes lehet: hogy meedzselik a swap/pagig eszközö a szabad területet. Vadász 43 Vadász 44 Klasszikus Uix swap eszköz Adott a swap partíció, - uitok (blokkok) Adott a szabad területek térképe (map, map-etries): i core (esetleg a -ik blokko) egy bejegyzés: addr+hossz pár, szabad területet jelez. Foglalás: first-fit startégiával, a szabad terület elejére, a bejegyzést "igazítja" (el is tüteheti) Felszabadítás: szomszédos szabad területek összef zésével ha el tte + utáa szabad: a 2 bejegyzésb l 1-et csiál, ha el tte vagy utáa szabad: a bejegyzést igazítja Ne feledjük: csak az irható lapok/régiók számára foglaak helyet a swap eszközö/fájlo. Liux swap eszköz A swap eszköz elejé 486- bájt hosszú bit-térkép (496-1: 'SWAP_SPACE' füzér). Ebb l: max 486*8-1=32 687 lap meedzselhet egy eszközö. Ez kicsi, ezért több swap eszköz lehet (ma max 8) Bebilletett bit kett s jeletése: adott régió lapját ide lehet kilapozi, újabb régió swap területe itt em foglalható. Ne feledjük: csak az irható lapok/régiók számára foglaak helyet a swap eszközö/fájlo. Vadász 45 Vadász 46 Az NT memóriameedzselés Virtuális, lapozós; Virtual Address Descriptor-okat (VAD) haszál; TLB-t is haszál; Kétszites laptáblás (osztott memóriához + 1 szit); Lapkeret adatbázist is haszál; Mukakészletet haszál; Öálló taszk a kilapozó; Igéy szeriti belapozós. Az NT MM virtuális 32 bites címzés: 2 32 lieáris címtartomáy (4GB) A fels 2GB redszer címtartomáy, kerel módba látható (Petium 1GB). Az alsó 2GB taszkokét egyedi címtartomáy (Petium 3GB). Vaak lefoglalt V címtartomáy szakaszok. Statikus allokálás: mikor a taszk készül, akkor foglalják ezeket a szakaszokat. Diamikus allokálás (alloc, malloc, stack b vítés stb.) Vadász 47 Vadász 48
A Virtual Address Descriptorok A VAD a lefoglalt címtartomáyok leíróit (kezd -végcím, éháy további adat) tartalmazza, biáris fa struktúrába redezve (gyors keresés). Hol va szerepe? A címleképzés elejé: el ször a VAD struktúrát ézik, lefoglalt címterületre törtét-e a hivatkozás. A memória allokálásál: új VAD leírót kell felvei + VM-t hozzáredeli az új címtartomáyhoz. Ez súgja a 2 szitet: El ször csak VAD leírót veszük fel (alloc), Amikor téyleg haszáli akarjuk az új mem-et (committig), elkészítjük a laptábla bejegyzéseket stb. Leképzett fájl (Mapped File) létrehozásáál (ld. kés bb). Nics szerepe a lapozásál (ez már em a címtartomáy síkja!) A címleképzés Miutá a VAD-o túl vagyuk, idul a TLB vizsgálat. TLB: kisméret asszociatív tár, 2 oszloppal egyikbe a VA fels 2bitje (párhuzamos keresés ebbe), másikba a laptábla rekord (ld. kés bb). Találat eseté yer az ügy! Ha ics találat: idul a szokásos lapokéti leképzés. Ha változás va a Page Dir-be vagy Page Table-kba, a TLB frissül. Vadász 49 Vadász 5 Lapokéti leképzés Lap (Page): a Virtual Address Space fix méret része, a Virtual Memory fix méret blokkja. Létezik (összetett) lapcím, létezik lapo belüli eltolás (offset), a kett adja a VA-t. Lapkeret (Page-frame): a RA-space fix méret része, a RM fix méret blokkja (belefér egy lap). Létezik lapkeret cím, a lapkeret cím és az eltolás (offset) adja a RA-t, Vadász 51 Az NT 32 bites virtuális címe 1 bit 1 bit 12 bit Page Dir Idex Page Table Idex Page Dir (Lapkatalógus) PD record Page Tables (Laptáblák) PT record Offset A lapméret Az offset szélesség: 12 bit 2 12 = 4KB A lapkatalógus méret (Taszkokét 1 db) 2 1 = 124 bejegyzés Egy bejegyzése: 4 Byte Egy laptábla méret (Taszkokét szükséges számú laptábla va) 2 1 = 124 bejegyzés Egy bejegyzése: 4 Byte Vadász 52 Egy laptábla bejegyzés tartalma Státusz bitek (érvéyes, em érvéyes, prototípus laptábla idex jelzésére) Védelmi bitek Csak olvasható (read oly) lap Teljes jogú (r/w) lap Csak futtatható (exec oly) lap (spec. processzorhoz) Figyelt (guarded) lap (elérése kivételt geerál) Tiltott lap (elérése kivételt geerál) Zárolt lap (em kilapozható) Módosításkor másolt (copy o write) lap (halogatott memória taktikához, ld. kés bb) Címek Laptábla bejegyzésbe a címek Lapkeret cím Másodlagos tároló blokk cím Prototípus laptábla idex. Osztott memória-haszálathoz (akár klasszikus, akár leképzett fájl) további szit a prototípus laptábla. Miutá ugyaazt a lapkeretet kell haszáli, em idexelhetjük közvetleül. Pl. ha kilapozzák, mide laptáblába be kellee íri, hogy érvéytele, s ki tudja, háy taszk haszálja. Ilyekor a prototípus laptáblába rögzítettek az védelmi bitek! Szerecsére midez traszpares! Vadász 53 Vadász 54
Lapokéti leképzés Nics találat a TLB-be: Veszik a lapkatalógus címét (regiszterbe), hozzáadják a VA fels 1 bites idexét: ez bemutat a katalógusba. Veszik eek bejegyzését: ez egy laptábla cím. Hozzáadják a VA második 1 bites idexét: ez mutat egy laptábla rekordra. Veszik a tábla rekordját: a státusból eld l: laphiba va-e. Idulhat a kezel je, ezt segíti a másodlagos tároló cím a rekordba... Nics laphiba: vehet a rekordból a keretcím (további szit a prototípus laptábla eseté). Keretcím és a VA offsettje adja a RA-t. Vadász 55 Halogatott gazdálkodási taktika Lehetek módosításkor másolt lapbejegyzések. Osztott memóriahaszálat halogató taktikája megvalósítható. PL. POSIX taszk-kreációba a gyermek kotextusa (kezdetbe az adatok is) megosztódak a szül jével: a lapjaik ilye lapbejegyzéseket kapak. Legtöbbször a gyermek em módosítja az adatokat sem. Ha bármelyik (szül, gyermek) mégis módosít, az ilye lapokat az MM lemásolja új lapkeretbe, és a laptábla bejegyzéseket frissíti (a copy o write bejegyzést törli, a módosítóál az új lapkeret-hivatkozást jegyzi fel, a másikál meghagyja a régit.) Vadász 56 A leképzett fájl objektum Külöleges memóriaallokáció! A fájl objektumot beillesztik a taszk címtartomáyába (VAD leíró készül, ez a címtartomáy a ézet: view). A címtartomáyhoz lapkatalógus bejegyzés(ek), laptábla(k) készülek, címezhet k majd lapkeretek, amikre a be- és kilapozás a kérdéses fájlra törtéek (és em a Pagig Filera). Midezt az MM itézi majd. Eze a címtartomáyo (a view-o) a taszk úgy látja a fájlt, mitha teljes egészébe a memóriába vola! Több taszk leképezheti ugyaazt a fájlt: osztozak rajta A klasszikus virtuális memória pedig a leképzett fájl speciális esete: a leképzett fájl ilyekor a Pagig File. A fizikai memória yivátartása Létezik lapkeret adatbázis (Page Frame Database), ayi bejegyzéssel, aháy lapkeret va. Egy bejegyzés tartalma: Érvéyes (valid) keret: haszálatba va, bee egy lap. Szabad (free) keret. Taszk exitjéél az MM a hozzá tartozó kereteket felszabadítja. Nullázott (zeroed). Szabad és -kkal felülírt keretek. (A C2 biztosági el írás követelméye). Készeléti (stadby) keret: már felszabadított, de még bee az éritetleül hagyott adatok. Visszakérhet k belapozás élkül, csak érvéyesre kell állítai ket. Az átmeeti bit is bebilletett. Módosított (modified) keret: írta a taszk, így ha ha lemod róla, elveszik t le és ki akarják osztai másik taszkak, el tte ki kell íri! Az átmeeti bit (trasitio flag) is bebilletett. Hibás (bad) keret: megbízhatatlaul m köd re ráírja az MM. Visszamutató a taszk laptábla bejegyzésére (ahol értelmes). Vadász 57 Vadász 58 Keretállapotok és listák Egy taszk egy laptábla bejegyzése emcsak a lapkeretet címezi, haem a lapkeret adatbázis bejegyzést is! Nemcsak érvéyes, haem módosított és készeléti lapkeretre is mutathat. A visszamutató azért kell, mert ha az MM fel akar haszáli egy módosított vagy készeléti keretet, javítaia kell a laptábla bejegyzést érvéytelere. Az MM a külöböz állapotú kereteket 5 lácolt listá yilvátartja! Va szabad, készeléti, módosított, ullázott és hibás lista. A ullázott, a szabad és a készeléti lista elemei az ú. felhaszálható keretek. A módosított lapíró A Modified Page Writer egy álladóa futó redszertaszk. Ha a felhaszálható keretek száma egy határ alá esik, lemezre írja a módosított kereteket, és átteszi azokat a készeléti listára (öveli a felhaszálható készletet). A lapkeret-adatbázis védelme Forgózárral (spilock semaphor) védik. Többprocesszoros redszerél is csak egy taszkot szolgál ki a VMM, sok processzorál sorbaállás va a VMM kezel höz. Ez a közös memória hátráya. Vadász 59 Vadász 6
Laphiba kezelés Az érvéytele laptábla bejegyzésig eljutott a címleképzés, bekövetkezett a laphiba. De ott va a másodlagos tároló cím: mit kellee belapozi. A kezel el ször a ullázott kereteket haszálá. Ha ics ilye, akkor egy szabad keretet. Ha ez sics, akkor készeléti keretet. Ha ez sics: valamely keretet fel kell szabadítai. Az NT lokális, legrégebbe betöltött algoritmust haszál. A felszabadított kereteket a hadler em lapozza ki, haem a készeléti vagy módosított listára teszi! (Ezért akár rögtö vissza is kérhet k belapozás élkül!) Laphiba kezelés A kezel kilapozás helyett csak listára tesz Módosított sor Készeléti sor Szabad sor Nullázott sor Vadász 61 Vadász 62 A taszkok mukakészlete Mide taszk kap Workig Set-et: ez lapkeret-készlet. El írt max-mi értéke va a készletek, taszkokét ez változik. Ha a taszk eléri a max. értékét, újabb memóriafoglalási kérelmek eseté kilapozak a készletéb l (akkor is, ha vaak szabad keretek: e sajátítso ki sokat egy taszk!) Automatikus mukakészlet szabályozás (Workig Set Trimmig) folyik: a taszkok laphiba rátájától függ e csökketik vagy övelik (utóbbit ha vaak szabad keretek) a mukakészletük max. méretét. Bizoyos esetekbe a mi. értékeket is. Összefoglalva, a kilapozás Ha a VMM úgy találja, idítja a módosított-lap író taszkot. Ez kilapoz, csökketi a módosított- és öveli a készeléti listát. Ha ez em segít, ézi a taszkokat, és azok mukakészletét a mi-re csökketi. Ha ez sem segít, valameyi taszk mukakészletét, aak mi értékét csökketi. Ha ez sem segít, akkor mejük memóriát vásároli! Ha a memória krízis megsz ik, a laphiba rátától függ e készletövekedés is lehet: beállhat újra az egyesúly. Vadász 63 Vadász 64 A belapozás Tulajdoképpe igéy szeriti belapozás (Demad Pagig) va, de a szükséges lapot közrefogó éháy lapot is belapozzák (ha a mukakészlet megegedi). (Cachigek evezik) A védelem Els szitje a VAD struktúrába: a kerel és felhaszálói címtartomáyok már itt szétválak. A taszkok egymás felhaszálói szit címeiket azért em érhetik el, mert saját laptábláik vaak. A közös memória a prototípus laptáblák segítségével mégis megoldható. Taszk saját memóriáját is védheti a laptábla védelmi bitjeivel. Vadász 65 Vadász 66
Megjegyzések még A gyorsítótárak Ma már két szit (L1 és L2 Cache), külö ICache, DCache. Szerecsékre ez tisztá hardveres és traszpares ügy! Mideestre ami Cache-ba va, az be is va lapozva! Most már értjük, hogy az NT memóriameedzselés Virtuális, lapozós; Virtual Address Descriptor-okat (VAD) haszál; TLB-t is haszál; Kétszites laptáblás (osztott memóriához + 1 szit); Lapkeret adatbázist is haszál; Mukakészletet haszál; Öálló taszk a kilapozó; Igéy szeriti belapozós. Vadász 67 Vadász 68 Operációs redszerek Memória meedzselés Vége Vadász 69