Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációs rendszerek Memória menedzselés. Vadász2 A program Memória, címtartomány fogalmak A címkötődés és címleképzés kérdései A tárcsere Memóriamenedzselési.

Hasonló előadás


Az előadások a következő témára: "Operációs rendszerek Memória menedzselés. Vadász2 A program Memória, címtartomány fogalmak A címkötődés és címleképzés kérdései A tárcsere Memóriamenedzselési."— Előadás másolata:

1 Operációs rendszerek Memória menedzselés

2 Vadász2 A program Memória, címtartomány fogalmak A címkötődés és címleképzés kérdései A tárcsere Memóriamenedzselési osztályok, valós MM Virtuális MM koncepció Lapozós rendszer Szegmentálós rendszer NT esettanulmány

3 Vadász3 A memória (tár) Erőforrás, amit –Igényelni (kérni, allokálni) kell (a processzek igénylik) –Védeni kell (ellenőrzött elérések legyenek) Címekkel rendelkező 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énhet A fizikai memória hierarchikus szintekbe szervezett: –Processzorbeli-processzor közeli gyorsítótár –Központi tár –Másodlagos tár

4 Vadász4 A címtartományok Miután a memória címekkel rendelkező rekeszek készlete, fontos fogalom a címtartomány fogalom A címtartomány a címek készlete (szemben a memóriával, ami rekeszek készlete) A címtartomány modelljeA memória modellje 0 1 n n-1 0. cella 1. cella n-1. cella n. cella

5 Vadász5 Logikai címtartományok A processzekhez logikai címtartományok tartoznak (Logical Address Space) –Az ő szemszögükből nézve van saját processzoruk, –van saját (logikai) memóriájuk. –A processzekhez egy lineáris, folytonos címtartományt szoktunk képzelni. Már a logikai címtartományokat is érdemes szakaszolni: –címek a kódnak, –az adatoknak, –a vermeknek.

6 Vadász6 A fizikai címtartományok A CPU a fizikai memóriából tud felhozni, letárolni A fizikai memóriához fizikai címtartományok tartoznak (Physical Address Space) –A címsín szélességétől függ, mekkora a fizikai címtartomány –Elképzelhető, hogy lehetséges fizikai címhez nem kötődik fizikai memória cella (fizikai címtartomány szakaszokhoz nem tartozik memória)

7 Vadász7 A címkötődés (Address Binding) Adott egy cím. Vajon tartozik-e hozzá cella? Melyik? – Kötődés a fordítás során: abszolút cím a tárgymodulokban –Kötődés a link során: abszolút cím a végrehajtható (betölthető) programokban –Kötődés a betöltés (load) során: abszolút címek a processz kontextusban –Kötődés a futás során (dinamikus kötődés): logikai címek a kontextusban. A logikai címek lehetnek 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 (mapping).

8 Vadász8 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 esetekben: –Nagyobb a memória, mint a címtartomány (korai rendszerekben 16 bites címzésnél gond volt) (A eset) –A logikai címtartomány és a fizikai címtartomány nem esik egybe (B eset) –A memória kisebb, mint a címtartomány (C eset) –(Természetesen a B eset a másik kettővel együtt is felléphet.)

9 Vadász9 A címleképzések 0 n c 0 n c A 0 n c k q B 0 n c 0 n h C A

10 Vadász10 A tárcsere (Swapping) Vegyük észre, a C esetben tárcserére van szükség (átfedés (overlay), virtuális memória). Tárcserére akkor is szükség lehet, ha különböző processzek (rutinok) felváltva használják ugyanazt a fizikai memória részt. 0 n c k q 0 n c

11 Vadász11 A memóriamenedzselés feladatai A memória allokálás A címleképzés segítése –Ezt kiegészítve az esetleges tárcsere (swapping out – swapping in, paging out – paging in) segítése

12 Vadász12 A memória allokálása Mivel a memória erőforrás, igényelni kell A processzek az igénylők (allokálók) –Ún. statikus allokálás: a processz születésekor, hogy a kontextusa számára legyen tárolási lehetőség –Ún. dinamikus allokálás: processz élete során bővíti a rendelkezésére álló memóriát Az allokálás (mind a statikus, mind a dinamikus) az MM alrendszer egyik fontos feladata

13 Vadász13 A címleképzés A mai rendszerekben a processzek kontextusában logikai címek vannak (többnyire virtuális címek) A logikai cím fizikai címre való leképzését, közben a cím kötődés megoldását a MM alrendszer a hardver MMU egységével együtt oldja meg –A címleképzés – kötődés során gondoskodnak a védelemről –Szükség esetén a ki-be mozgatásról (tárcseréről)

14 Vadász14 MM alrendszer osztályozások A virtuális címzés koncepciójú MM-től (lásd később) megkülönböztetve, vannak valós címzésű rendszerek –Fix partíciós és változó partíciós rendszerek Korai MM rendszerek, 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-, next fit) címzés védelme. Némely probléma ma is érdekes (lapozó eszköz foglaltság kezelés stb.) –A program-fejlesztő rendszerek által biztosított átfedési (overlay) technika a valós címzésű rendszerekben is megengedte a fizika memóriánál nagyobb logikai memória (logikai címtartomány) használatát

15 Vadász15 A virtuális memória koncepció Általános megoldást ajánl a címleképzés – kötődés problémára Lényege: –A processzek (meglehetésen nagy) virtuális címtartományt használhatnak Állhat több résztartománybó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ódon) A virtuális cellák tartalma másodlagos tárolón mindig megtalálható, szükség esetén a fizikai memóriában is –Mikor a processz egy virtuális címre hivatkozik, nem kell törődnie a címleképzéssel, sem a kötődéssel, sem a tartalom behozatalával.

16 Vadász16 Virtuális címtartomány - memória A lehetséges virtuális címtartományt a címzési mód határozza meg (pl. 32 bites címzéshez 4 Gbájt) Egy processz virtuális címtartománya ennél valószínűleg kisebb A lehetséges fizikai címtartomány a címsín szélesség adja, ez lehet nagy. A fizikai memória (a használható fizikai címtartomány) – bár egyre nő a gazdagépek memóriája – ennél is kisebb. Kisebb az összes processz virtuális memóriájánál.

17 Vadász17 A címkötődés A taszképítő (linker) a végrehajtható-betölthető programokba virtuális címeket épít A processzek a kontextusukban a virtuális címeket használják Dinamikus címleképzés van: V address Dynamic_Map R address Előfordulhat a leképzés során, hogy a leképzett cím nem érvényes (not valid): a virtuális cellához nincs fizikai cella kötve, az nincs a fizikai memóriában. –Ekkor ki-be mozgatás (tárcsere) szükséges

18 Vadász18 Lapozó rendszerek (Paging) Lapozós rendszerekben fix méretű blokkokban történik a címleképzés A virtuális címtartomány (vagy annak altartománya) fix méretű szakaszokra van osztva A virtuális memória fix méretű blokkokra van osztva: ez a lap (page) A fizikai memória ugyanolyan (fix) méretű lapkeretekre (page frame) van osztva. Lapozós rendszerekben a folytonos virtuális címtartománynak nem feltétlenül folytonos fizikai címtartomány fog megfelelni, nem folytonos címtartományra is lehet a leképzést végezni

19 Vadász19 Lapozó rendszerek (Paging) (Tegyük fel: egy processz V címtartománya egy régióba tartozik, ezen belül folyamatos (bájtban mérve: 0-n)) Egy virtuális cím formája: v = (p, o) ahol: p:a lap címe, (értéke 0 - n p közötti, ahol n p megmondja, hány lapból áll a processz); o:eltolás a lapon belül. (értéktartománya át kell fedje a lapot)

20 Vadász20 Lapozó rendszerek (Paging) 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ő!

21 Vadász21 A laptáblák (Page Map Table) Minden (egy dimenziós címtartományú, egy régiós) processz számára biztosított egy laptábla. (Több régiós processz: régiónkénti laptábla!) Ennek címe: egy regiszterben (több régiósnál regiszterekben). A laptáblának annyi bejegyzése van, ahány lapból áll a processz (egy bejegyzést a p lapcím indexel).

22 Vadász22 Egy laptábla bejegyzés Egy bejegyzés tartalma: –védelmi és állapot (state) bitek: védelmi maszk (rwx stb.); érvényességi (valid/present-absent) 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őben is).

23 Vadász23 Memória allokálás során Statikus allokálás: készül(nek) laptábla (laptáblák), a szükséges számú bejegyzéssel A bejegyzések tartalma kitöltődik –a kernel címtartományhoz tartozó bejegyzésekhez még a lapkeret címek is beíródhatnak, –a védelmi bitek és a másodlagos tároló leírók is kitöltődhetnek (leírók az image fájlra vonatkozhatnak, sok bejegyzésben not valid jelzi, nincs lapkeret rendelve a laphoz). Dinamikus allokálás során a laptábla "kiegészül", új bejegyzésekkel bővül (a címtartomány nő).

24 Vadász24 Címleképzés lapozós rendszerben b Base Address of Page Table Virtuális cím po f p Page Table + Fizikai cím fo b+p + Itt érthető meg a HW MMU szerepe! Az addíciók HW-esek kell legyenek!

25 Vadász25 A laphiba (Page Fault) Dinamikus címleképzés során a valid/present-absent bit jelzi: nincs a laphoz lapkeret rendelve. Klasszikus kivételes esemény (exeption condition). A kezelője (Page Fault Handler) működésbe lép. Keres szabad lapkeretet, kilapoz, ha szükséges, belapozza a kérdéses lapot, majd visszatér. Újra indulhat - most már sikeresen - a leképzés. A laphiba egész “normális jelenség“. A laphiba gyakoriság (Page Fault Rata) - jellemzője a processz életének.

26 Vadász26 Kérdések, megoldandó dolgok Mekkora kell legyen a laptábla? Hogy lehetne csökkenteni méretét? Hogy lehetne a címleképzést tovább gyorsítani? Meghatározandó a –belapozási stratégia mely lapokat, mennyit hozzunk be egyidejűleg? –mennyiségi stratégia egyidejűleg hány lapkerete legyen/lehet egy processznek? –kilapozási stratégia mely lapok legyenek esélyesek kilapozásra? –elhelyezési stratégia nem a fizikai memóriára, hanem a másodlagos tárolóra

27 Vadász27 Laptábla méret kezelés Méretét meghatározza a processz bájtban mért címtartománya és a lapméret hányadosa: a lapban mért címtartomány. Méretcsökkentés 1: lapméret növelése (HW korlát) Méretkezelés: maga a laptábla is kilapozható. VAX/VMS megoldás. Csökkentés 2.: többszintű laptáblák: Intel: 2 szintes, Sun SPARC, Alpha: 3 szint, AMD x64: 4 szint. Csökkentés 3.: Hasításos laptábla. IA64 Csökkentés 4.: invertált laptábla. HP, IBM System 38.

28 Vadász28 Többszintes laptáblák Virtuális cím p1p2o Első szintű laptábla Második szintű laptáblák + b p2 f

29 Vadász29 Hasításos (hashed) Hash függvény: hasító, szétosztó függvény, különböző p, q stb. lapcímeket ugyanarra a hash címre képez p o p f q r hash f o Virtuális címFizikai cím

30 Vadász30 Invertált laptábla Címzés bitszélesség növekedéssel nem tud versenyt tartani a laptábla méret csökkentés. Invertált tábla: bejegyzések lapkeretenként. Tartalmuk: –védelmi, módosítási maszk; –processz azonosító (pid); –a processz lapja (p). Leképzéshez: megnézni, adott processz adott lapja leképzett-e. Nem szekvenciális keresés: hash módszerek. Az ilyen rendszerekben asszociatív tár is!

31 Vadász31 Címleképzés gyorsítás asszociatív tárral Translation Lookaside Buffer a CPU-ban (TLB). Nem nagy méretű. Ennek egy bejegyzése: szinte ami a PMT egy bejegyzése. Párhuzamos keresés a TLB-ben: címleképzés igen gyors, ha van találat. Ha nincs találat: indul a normál laptáblás leképzés. (Ez eredményezhet laphibát. ) Az asszociatív tár tartalma frissítődik. Pl.: MIPS R2000 stb. processzorai (SGI), Intel stb.

32 Vadász32 Belapozási algoritmusok A processzek hivatkozási lánca (Reference String): lapok sorozata. Előre megmondani nehéz. Lehetséges behozási stratégiák (fetch policies): –Igény szerinti (Demand Paging). Egyszerű. laphiba esetén belapozzuk a kérdéses lapot eleinte magas laphiba ráta, később remélhető az "egyensúly" –Szükséges és még néhány ("szomszédos" lap) a "lokalitás elve" érvényesülhet –"Mohó" belapozás a szükséges és "sok" további. Megjósolható?

33 Vadász33 A mennyiségi stratégia Ha nincs stratégia: remélik az egyensúlyt A munkakészlet (Working Set) modell (Denis, 1970) –A processz munka-lapkészlete (munkahalmaz): egy időablakban a bennlévő lapjainak halmaza. –Nincs laphiba, ha minden lapja a “pillanatnyi” munkakészlethez tartozik. –A “pillanatnyi“ helyzet valójában: egy időablak a hivatkozási láncon. –A munkakészleten eredetileg lapkészletet értettek, ma már –a munkakészlet lapkeret készlet. –A munkakészletet a processz élete során "igazíthatjuk" (adjustment).

34 Vadász34 Globális - lokális stratégiák A munkakészlet modellel kapcsolatban a kilapozási problémák előjönnek: amikor belapozandó egy processz egy lapja, kilapozásra –a processz munkakészletéből válasszunk? (Lokális) –Más processzek munkakészletéből is? (Globális) Lokális kilapozáshoz: a munkakészlet nagyságát dinamikusan változtatják (határok között), a laphiba rátától függően. A processzek munkakészleteinek egyensúlyát remélik (ez a Balance Set).

35 Vadász35 Kilapozási algoritmusok Page Replacement Algorithms Amik befolyásolhatnak: –a bekövetkező lapigény nem jósolható igazán; –lapok belapozási ideje; –lapok belapozási sorrendje; –hivatkozások gyakorisága; –Lapok nem írhatósága – írhatósága, módosították-e; –magának az algoritmusnak a “költsége“.

36 Vadász36 FIFO algoritmus A belapozási sorrend a meghatározó: minél régebben lapoztak be egy lapot, annál esélyesebb a kilapozásra. Nyilvántartás egy láncolt listán: elejéről lapoznak ki, belapozott lap a végére. Anomália: a régen belapozott, de most is használt, a gyakran használt lapokra.

37 Vadász37 Második esélyes FIFO Körkörös láncolt listán a belapozott lapok. Laponként egy hivatkozás bit. “Óramutató“ mutatja a lista “elejét“. Kilapozáshoz: ha a “mutatott“ lap hivatkozás bitje bebillentett, akkor azt törlik, és a mutató tovább lép. Ha nem (nem volt hivatkozás rá), akkor kilapozzák. Mire az óramutató körbejár, újra bebillenhet a hivatkozás bit: kap egy második esélyt a lap. Ha nem billen, menthetetlenül kilapozódik. Belapozott lap felvevődik a körre. Ilyen a mach default memóriamenedzsere.

38 Vadász38 NRU (LRU) algoritmusok Not (Least) Recently Used Lokalitás elvből: a mostanában nem használatos lapok esélyesek a kilapozásra. Az “idő“ számít. Láncolt listás nyilvántartás költséges volna! Az “utolsó 8 idő-intervallum históriája“: –referencia bájt léptetés jobbra intervallumonként, –hivatkozott lapnál 1, nem hivatkozottnál 0 lép be. –A referencia bájtok rendezésre adnak lehetőséget: kisebb a bájt a kilapozásra esélyes lapoknál.

39 Vadász39 NFU (LFU) algoritmusok Not (Least) Frequently Used A hivatkozások gyakorisága számít, nem a hivatkozások ideje. Anomália: régen nagy gyakorisági frekvenciával használt lapok kiszorítják az újakat. Időszerűség is figyelembe veendő. Öregedés (aging) a számlálómezőre ezen javít. Költséges a megvalósítás, főleg a rendezés.

40 Vadász40 A szegmentálás “Többdimenziós“ címtartományok: –a kódnak, –az adat szekcióknak, –a veremnek, –az osztott kódnak, –kernel régiónak stb. A címleképzésben a blokkméret nem fix. A virtuális cím: v = (s,d) Processzenként szegmens tábla. Kevesebb bejegyzés. Ki-be söprés (swapping in-out), ha szükséges.

41 Vadász41 Szegmensenkénti címleképzés s szegmens szám s' szegmens cím d diplacement (eltolás) a cím a swap tárolón l szegmens hossz m státus (valid, rwx stb) b Base Address of Segment Table Virtuális cím sd s' s Segment Map Table + Fizikai cím s'd b+s + m a l

42 Vadász42 A stratégiák Allokációs stratégia –egyidejűleg szegmensnyit a fizikai memóriában Behozási stratégia –igény szerinti a szegmensre Kisöprési stratégia –LRU Elhelyezési stratégia –First vagy next fit

43 Vadász43 Szegmensenkénti leképzés vagy lapozás: lehetőségek Tiszta lapozó rendszerek (Pure Paging) Tiszta szegmentáló rendszerek. Szegmentáló és lapozó rendszerek. –Ekkor a “teljes“ kontextus ki-besöprődik, – szegmensekre külön laptáblák, –lapozás a szegmenseken belül. –Ma ezek gyakoriak.

44 Vadász44 A "swap" eszköz/fájl struktúra A mai rendszerekben lehet –swap/paging device (a másodlagos tároló partíció), –swap/paging file (a másodlagos tároló a fájl), –mindkettőt úgy foghatjuk fel, hogy lapméretű blokkok sora. Akár szegmensenkénti leképzés, akár laponkénti leképzés van: swap/paging eszközről/fájlról beszélünk. Ami érdekes lehet: hogy menedzselik a swap/paging eszközön a szabad területet.

45 Vadász45 Klasszikus Unix swap eszköz Adott a swap partíció, 0-n unitok (blokkok) Adott a szabad területek térképe (map, map-entries): in core (esetleg a 0-ik blokkon) –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ünteheti) Felszabadítás: szomszédos szabad területek összefűzésével –ha előtte + utána szabad: a 2 bejegyzésből 1-et csinál, –ha előtte vagy utána szabad: a bejegyzést igazítja Ne feledjük: csak az irható lapok/régiók számára foglanak helyet a swap eszközön/fájlon.

46 Vadász46 Linux swap eszköz A swap eszköz elején bájt hosszú bit-térkép ( : 'SWAP_SPACE' füzér). –Ebből: max 4086*8-1= lap menedzselhető egy eszközön. –Ez kicsi, ezért több swap eszköz lehet (ma max 8) Bebillentett bit kettős jelentése: –adott régió lapját ide lehet kilapozni, –újabb régió swap területe itt nem foglalható. Ne feledjük: csak az irható lapok/régiók számára foglanak helyet a swap eszközön/fájlon.

47 Vadász47 Az NT memóriamenedzselés Virtuális, lapozós; Virtual Address Descriptor-okat (VAD) használ; TLB-t is használ; Kétszintes laptáblás (osztott memóriához + 1 szint); Lapkeret adatbázist is használ; Munkakészletet használ; Önálló taszk a kilapozó; Igény szerinti belapozós.

48 Vadász48 Az NT MM virtuális 32 bites címzés: 2 32 lineáris címtartomány (4GB) –A felső 2GB rendszer címtartomány, kernel módban látható (Pentium 1GB). –Az alsó 2GB taszkonként egyedi címtartomány (Pentium 3GB). Vannak lefoglalt V címtartomány szakaszok. –Statikus allokálás: mikor a taszk készül, akkor foglalják ezeket a szakaszokat. –Dinamikus allokálás (alloc, malloc, stack bővítés stb.)

49 Vadász49 A Virtual Address Descriptorok A VAD a lefoglalt címtartományok leíróit (kezdő-végcím, néhány további adat) tartalmazza, bináris fa struktúrába rendezve (gyors keresés). Hol van szerepe? –A címleképzés elején: először a VAD struktúrát nézik, lefoglalt címterületre történt-e a hivatkozás. –A memória allokálásnál: új VAD leírót kell felvenni + VM-t hozzárendelni az új címtartományhoz. Ez súgja a 2 szintet: Először csak VAD leírót veszünk fel (alloc), Amikor tényleg használni akarjuk az új mem-et (committing), elkészítjük a laptábla bejegyzéseket stb. –Leképzett fájl (Mapped File) létrehozásánál (ld. később). –Nincs szerepe a lapozásnál (ez már nem a címtartomány síkja!)

50 Vadász50 A címleképzés Miután a VAD-on túl vagyunk, indul a TLB vizsgálat. –TLB: kisméretű asszociatív tár, 2 oszloppal egyikben a VA felső 20bitje (párhuzamos keresés ebben), másikban a laptábla rekord (ld. később). Találat esetén nyerő az ügy! Ha nincs találat: indul a “szokásos“ laponkénti leképzés. Ha változás van a Page Dir-ben vagy Page Table-kban, a TLB frissül.

51 Vadász51 Laponkénti 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 lapon 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,

52 Vadász52 Az NT 32 bites virtuális címe Page Dir IndexPage Table IndexOffset 10 bit 12 bit Page Dir (Lapkatalógus) Page Tables (Laptáblák) PT record PD record A lapméret Az offset szélesség: 12 bit 2 12 = 4KB A lapkatalógus méret (Taszkonként 1 db) 2 10 = 1024 bejegyzés Egy bejegyzése: 4 Byte Egy laptábla méret (Taszkonként szükséges számú laptábla van) 2 10 = 1024 bejegyzés Egy bejegyzése: 4 Byte

53 Vadász53 Egy laptábla bejegyzés tartalma Státusz bitek (érvényes, nem érvényes, prototípus laptábla index jelzésére) Védelmi bitek –Csak olvasható (read only) lap –Teljes jogú (r/w) lap –Csak futtatható (exec only) lap (spec. processzorhoz) –Figyelt (guarded) lap (elérése kivételt generál) –Tiltott lap (elérése kivételt generál) –Zárolt lap (nem kilapozható) –Módosításkor másolt (copy on write) lap (halogatott memória taktikához, ld. később) Címek

54 Vadász54 Laptábla bejegyzésben a címek Lapkeret cím Másodlagos tároló blokk cím Prototípus laptábla index. Osztott memória-használathoz (akár klasszikus, akár leképzett fájl) további szint a prototípus laptábla. Miután ugyanazt a lapkeretet kell használni, nem indexelhetjük közvetlenül. Pl. ha kilapozzák, minden laptáblába be kellene írni, hogy érvénytelen, s ki tudja, hány taszk használja. Ilyenkor a prototípus laptáblában rögzítettek az védelmi bitek! Szerencsére mindez transzparens!

55 Vadász55 Laponkénti leképzés Nincs találat a TLB-ben: Veszik a lapkatalógus címét (regiszterben), hozzáadják a VA felső 10 bites indexét: ez bemutat a katalógusba. Veszik ennek bejegyzését: ez egy laptábla cím. Hozzáadják a VA második 10 bites indexét: ez mutat egy laptábla rekordra. Veszik a tábla rekordját: –a státusból eldől: laphiba van-e. Indulhat a kezelője, ezt segíti a másodlagos tároló cím a rekordban... –Nincs laphiba: vehető a rekordból a keretcím (további szint a prototípus laptábla esetén). Keretcím és a VA offsettje adja a RA-t.

56 Vadász56 Halogatott gazdálkodási taktika Lehetnek módosításkor másolt lapbejegyzések. Osztott memóriahasználat halogató taktikája megvalósítható. –PL. POSIX taszk-kreációban a gyermek kontextusa (kezdetben az adatok is) megosztódnak a szülőjével: a lapjaik ilyen lapbejegyzéseket kapnak. Legtöbbször a gyermek nem módosítja az adatokat sem. –Ha bármelyik (szülő, gyermek) mégis módosít, az ilyen lapokat az MM lemásolja új lapkeretbe, és a laptábla bejegyzéseket frissíti (a copy on write bejegyzést törli, a módosítónál az új lapkeret-hivatkozást jegyzi fel, a másiknál meghagyja a régit.)

57 Vadász57 A leképzett fájl objektum Különleges memóriaallokáció! A fájl objektumot beillesztik a taszk címtartományába (VAD leíró készül, ez a címtartomány a nézet: view). A címtartományhoz lapkatalógus bejegyzés(ek), laptábla(k) készülnek, címezhetők majd lapkeretek, amikre a be- és kilapozás a kérdéses fájlra történnek (és nem a Paging File- ra). Mindezt az MM intézi majd. Ezen a címtartományon (a view-on) a taszk úgy látja a fájlt, mintha teljes egészében a memóriában volna! Több taszk leképezheti ugyanazt a fájlt: osztoznak rajta A klasszikus osztott memória pedig a leképzett fájl speciális esete: a leképzett fájl ilyenkor a Paging File.

58 Vadász58 A fizikai memória nyivántartása Létezik lapkeret adatbázis (Page Frame Database), annyi bejegyzéssel, ahány lapkeret van. Egy bejegyzés tartalma: –Érvényes (valid) keret: használatban van, benne egy lap. –Szabad (free) keret. Taszk exitjénél az MM a hozzá tartozó kereteket felszabadítja. –Nullázott (zeroed). Szabad és 0-kkal felülírt keretek. (A C2 biztonsági előírás követelménye). –Készenléti (standby) keret: már felszabadított, de még benne az érintetlenül hagyott adatok. Visszakérhetők belapozás nélkül, csak érvényesre kell állítani őket. Az átmeneti bit is bebillentett. –Módosított (modified) keret: írta a taszk, így ha ha lemond róla, elveszik tőle és ki akarják osztani másik taszknak, előtte ki kell írni! Az átmeneti bit (transition flag) is bebillentett. –Hibás (bad) keret: megbízhatatlanul működőre ráírja az MM. –Visszamutató a taszk laptábla bejegyzésére (ahol értelmes).

59 Vadász59 Keretállapotok és listák Egy taszk egy laptábla bejegyzése nemcsak a lapkeretet címezi, hanem a lapkeret adatbázis bejegyzést is! Nemcsak érvényes, hanem módosított és készenléti lapkeretre is mutathat. A visszamutató azért kell, mert ha az MM fel akar használni egy módosított vagy készenléti keretet, javítania kell a laptábla bejegyzést érvénytelenre. Az MM a kölönböző állapotú kereteket 5 láncolt listán nyilvántartja! Van szabad, készenléti, módosított, nullázott és hibás lista. A nullázott, a szabad és a készenléti lista elemei az ún. felhasználható keretek.

60 Vadász60 A módosított lapíró A Modified Page Writer egy állandóan futó rendszertaszk. Ha a felhasználható keretek száma egy határ alá esik, lemezre írja a módosított kereteket, és átteszi azokat a készenléti listára (növeli a felhasználható készletet). A lapkeret-adatbázis védelme Forgózárral (spinlock semaphor) védik. Többprocesszoros rendszernél is csak egy taszkot szolgál ki a VMM, sok processzornál sorbaállás van a VMM kezelőhöz. Ez a közös memória hátránya.

61 Vadász61 Laphiba kezelés Az érvénytelen laptábla bejegyzésig eljutott a címleképzés, bekövetkezett a laphiba. De ott van a másodlagos tároló cím: mit kellene belapozni. A kezelő először a nullázott kereteket használná. Ha nincs ilyen, akkor egy szabad keretet. Ha ez sincs, akkor készenléti keretet. Ha ez sincs: valamely keretet fel kell szabadítani. Az NT lokális, legrégebben betöltött (NRU) algoritmust használ. A felszabadított kereteket a handler nem lapozza ki, hanem a készenléti vagy módosított listára teszi! (Ezért akár rögtön vissza is kérhetők belapozás nélkül!)

62 Vadász62 Laphiba kezelés A kezelő kilapozás helyett csak “listára tesz” Készenléti sor Módosított sor Szabad sor Nullázott sor

63 Vadász63 A taszkok munkakészlete Minden taszk kap Working Set-et: ez lapkeret-készlet. Előírt max-min értéke van a készletnek, taszkonként ez változik. Ha a taszk eléri a max értékét, újabb memóriafoglalási kérelmek esetén „kilapoznak” a készletéből (akkor is, ha vannak szabad keretek: ne sajátítson ki sokat egy taszk!) Automatikus munkakészlet szabályozás (Workig Set Trimming) folyik: –a taszkok laphiba rátájától függően csökkentik vagy növelik (utóbbit ha vannak szabad keretek) a munkakészletük max. méretét. –Bizonyos esetekben a min. értékeket is.

64 Vadász64 Összefoglalva kilapozás Ha a VMM úgy találja, indítja a módosított-lap író taszkot. Ez kilapoz, csökkenti a módosított- és növeli a készenléti listát. Ha ez nem segít, nézi a taszkokat, és azok munkakészletét a min-re csökkenti. Ha ez sem segít, valamennyi taszk munkakészletét, annak min értékét csökkenti. Ha ez sem segít, akkor menjünk memóriát vásárolni! Ha a memória krízis megszűnik, a laphiba rátától függően készletnövekedés is lehet: beállhat újra az egyensúly.

65 Vadász65 A belapozás Tulajdonképpen igény szerinti belapozás (Demand Paging) van, de a szükséges lapot közrefogó néhány lapot is belapozzák (ha a munkakészlet megengedi). (Cachingnek nevezik)

66 Vadász66 A védelem Első szintje a VAD struktúrában: –a kernel és felhasználói címtartományok már itt szétválnak. A taszkok egymás felhasználói szintű címeiket azért nem érhetik el, mert saját laptábláik vannak. 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.

67 Vadász67 Megjegyzések még A gyorsítótárak –Ma már két szintű (L1 és L2 Cache), –külön ICache DCache. –Szerencsénkre ez tisztán hardveres és transzparens ügy! –Mindenestre ami Cache-ban van, az be is van lapozva!

68 Vadász68 Most már értjük, hogy az NT memóriamenedzselés Virtuális, lapozós; Virtual Address Descriptor-okat (VAD) használ; TLB-t is használ; Kétszintes laptáblás (osztott memóriához + 1 szint); Lapkeret adatbázist is használ; Munkakészletet használ; Önálló taszk a kilapozó; Igény szerinti belapozós.

69 Operációs rendszerek Memória menedzselés Vége


Letölteni ppt "Operációs rendszerek Memória menedzselés. Vadász2 A program Memória, címtartomány fogalmak A címkötődés és címleképzés kérdései A tárcsere Memóriamenedzselési."

Hasonló előadás


Google Hirdetések