1 / 69

Operációs rendszerek

Operációs rendszerek. Memória menedzselés. 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. A memória (tár). Erőforrás, amit

eris
Télécharger la présentation

Operációs rendszerek

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Vadász

  3. 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 Vadász

  4. 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 modellje • A memória modellje 0 0. cella 1 1. cella n-1 n-1. cella n n. cella Vadász

  5. 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. Vadász

  6. 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) Vadász

  7. 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). Vadász

  8. 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.) Vadász

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

  10. A tárcsere (Swapping) 0 0 c c k n n q • 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. Vadász

  11. 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 Vadász

  12. 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 Vadász

  13. 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) Vadász

  14. 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 Vadász

  15. 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. Vadász

  16. 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. Vadász

  17. 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: VaddressDynamic_Map Raddress • 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 Vadász

  18. 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 Vadász

  19. 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 - np közötti, ahol np megmondja, hány lapból áll a processz); o: eltolás a lapon belül. (értéktartománya át kell fedje a lapot) Vadász

  20. 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ő! Vadász

  21. 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). Vadász

  22. 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). Vadász

  23. 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ő). Vadász

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

  25. 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. Vadász

  26. 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 Vadász

  27. 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. Vadász

  28. Többszintes laptáblák 0 1 2 3 ... 1023 0 1 2 3 ... 1023 Virtuális cím Második szintű laptáblák p1 p2 o 10 10 12 Első szintű laptábla b + 0 1 2 3 ... 1023 p2 f Vadász

  29. Hasításos (hashed) p o f o p f q r hash • 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 Virtuális cím Fizikai cím Vadász

  30. 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! Vadász

  31. 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. Vadász

  32. 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ó? Vadász

  33. 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). Vadász

  34. 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). Vadász

  35. 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“. Vadász

  36. 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. Vadász

  37. 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. Vadász

  38. 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. Vadász

  39. 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. Vadász

  40. 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. Vadász

  41. Szegmensenkénti címleképzés Base Address of Segment Table Virtuális cím s d b Segment Map Table + s Fizikai cím s' d m a l s' + b+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) Vadász

  42. 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 Vadász

  43. 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. Vadász

  44. 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. Vadász

  45. 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. Vadász

  46. Linux swap eszköz • A swap eszköz elején 4086- bájt hosszú bit-térkép (4096-10: 'SWAP_SPACE' füzér). • Ebből: max 4086*8-1=32 687 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. Vadász

  47. 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. Vadász

  48. Az NT MM virtuális • 32 bites címzés: 232 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.) Vadász

  49. 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!) Vadász

  50. 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. Vadász

More Related