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

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Micskei Zoltán Előadások:

Hasonló előadás


Az előadások a következő témára: "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Micskei Zoltán Előadások:"— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Micskei Zoltán Előadások: dr. Kovácsházy Tamás kiegészítéseivel az Operációs Rendszerek (vimia219) tárgy fóliái alapján Operációs rendszerek alapjai (vimia024) Memóriakezelés a Windowsban

2 Copyright Notice  These materials are part of the Windows Operating System Internals Curriculum Development Kit, developed by David A. Solomon and Mark E. Russinovich with Andreas Polze  Microsoft has licensed these materials from David Solomon Expert Seminars, Inc. for distribution to academic organizations solely for use in academic environments (and not for commercial use)   © David A. Solomon and Mark Russinovich 2

3 Rejtvény Mennyi szabad memória van most a gépemen? 3

4 A Windows memóriakezelésének alapelvei  Virtuális tárkezelés o Lapszervezés (4KB / 2MB méretű lapok, 2/3/4 szintű) o Lapozófájl használata  Hatékonyság o Igény szerinti lapozás + clustering + prefetch o Memória megosztás, copy-on-write o Fájl cachelés memóriában (memory mapped file)  Biztonság o Minden folyamatnak külön címtartomány o Elérés leírókon keresztül (hozzáférési token) 4

5 Maximális fizikai memória (GB) x86 x64 64-bit IA bit Windows 7 Basic 48n/a Windows 7 Prof 4192n/a Server 2008 Standard 432n/a Server 2008 Enterprise n/a Itanium n/a 2048 Physical Address Extension (PAE) 36 címbit: CPU + OS támogatás Physical Address Extension (PAE) 36 címbit: CPU + OS támogatás 64 bit: lényegesen nagyobb memória 64 bit: lényegesen nagyobb memória 5 Itanium: Intel szerver architektúra, nem lett annyira elterjedt Itanium: Intel szerver architektúra, nem lett annyira elterjedt 32 biten max 4 GB címezhető meg (gyakorlati határ kevesebb!) 32 biten max 4 GB címezhető meg (gyakorlati határ kevesebb!)

6 32-bites x86 címtartomány 2 GB felhasználói folyamatnak 2 GB Rendszer tartomány 2 GB Rendszer tartomány 3 GB felhasználói folyamatnak 1 GB Rendszer 1 GB Rendszer Alapesetben /3GB kapcsoló 6

7 64-bites címtartomány  64-bit = 17,179,869,184 GB o x64-en jelenleg 48 bites cím támogatott = 262,144 GB 8192 GB (8 TB) Felhasználói folyamat tartománya 6657 GB Rendszer tartomány 6657 GB Rendszer tartomány x64 7

8 8 Felhasználó címtartomány : o A futó alkalmazás (.EXE és.DLL-ek) o Felhasználói módú verem minden szálnak o Alkalmazás adatstruktúrái Felhasználói módból is elérhető Csak védett módból érhető el } } Egyedi minden folyamatra Rendszerszinten közös Virtual Address Space (V.A.S.) 8

9 9 Felhasználói módból is elérhető Csak védett módból érhető el } Egyedi minden folyamatra Rendszerszinten közös Virtual Address Space (V.A.S.) Rendszer tartomány: o Executive, kernel és a HAL o Rendszerszintű adatstruktúrák o Laptáblák (virtuális → fizikai leképezés, folyamatonként különböző) o Executive heap-ek (pools) o Védett módú eszköz meghajtók o Védett módú verem minden folyamat minden szálának } 9

10 Folyamatok memóriafoglalása Két lépésben:  Reserve: virtuális címtartomány lefoglalása  Commit: virtuális memória lefoglalása Előny:  Csak annyit foglal, amennyi ténylegesen kell a folyamatnak 10

11 Logikai és fizikai címek közötti leképzés (ism.) Folyamat 1 Folyamat 2 Laptáblák Fizikai memória Lapozófájl 11

12 x86 címfordítás (PAE nélkül) 12 Kiegészítő anyag

13 x86 PAE címfordítás 13 Forrás: Intel 64 and IA-32 Architectures Software Developers Manual, Vol. 3A Kiegészítő anyag

14 x86 PAE esetén a PTE  64 bites, 24 bit a lap címének  Flagek: o P – present, A – access, D – dirty, U/S – user/system, R/W – read/write… 14 Kiegészítő anyag

15 x64 címfordítás Page table selector Page table selector Page table entry selector Page table entry selector Page Map Level 4 Page Tables Physical Pages (up to 2^40) PFN 0 Byte within page Page dir pointer Page map Level 4 Page Directories Page Directory Pointers CR Kiegészítő anyag

16 x64: PTE szerkezete 16 Kiegészítő anyag

17 DEMO  WinDbg, kernel debugging o folyamat kikeresése o BaseDir címének kikeresése o !vtop: címfordítás o !pte: laptábla elemeinek megnézése Címfordítás megfigyelése 17 Kiegészítő anyag

18 Munkakészlet (Working Set)  Working Set: o Egy folyamathoz tartozó fizikai memóriában lévő lapok o Ezeket éri el laphiba nélkül  Working set limit: o Ennyi fizikai memóriát birtokolhat egyszerre o Ha eléri, lapcsere kell NT 4.0: módosított FIFO algoritmus Windows 2000: Least Recently Used (UP rendszereknél) o Ha a szabad memória lecsökken: trimming 18

19 Fizikai memórialapok életciklusa Standby Page List Zero Page List Free Page List Process Working Sets (Active) page read from disk or kernel allocations demand zero page faults working set replacement Modified Page List modified page writer zero page thread “soft” page faults Bad Page List Private pages at process exit 19 Kiegészítő anyag

20 Lapozófájl (page file)  Mi kerül bele? o Csak a módosított adat, kód nem  Mikor kerül bele? o Ha van szabad memória, akkor is lehet o Folyamatok nem foglalhatnak bármennyi memóriát o Tartalék az új/többi folyamatnak  Meghajtónként egy darab o Ajánlott nem a rendszerlemezre rakni o De maradjon egy kicsi ott is a memory dumpnak  Ajánlott méret o 1 vagy 1,5-szer a fizikai memória (?), Fix méret (?) 20

21 DEMO  Process Explorer / System information o Paging Lists o Page Fault Delta  Lapozófájl méretének állítása o GUI o regedit  Perfmon: Lapozófájl kihasználtság (%) Fizikai memória, lapozófájl 21

22 Memória használat Egyszerűnek tűnő kérdés: Mi mennyi memóriát foglal a gépen? 22

23 Folyamat memória használat - 0  Feladatkezelő oszlopai  Frissítés gyakorisága 23

24 Folyamat memória használat Fizikai memória használat = munkakészlet (working set) megosztott lapok is megosztott lapok nélkül 2 Privát, lefoglalt virtuális memória (committed) megosztott lapok nélkül ez kerül bele a lapozófájlba

25 Folyamat memória használat - 2  Process Explorer: o Folyamat részletes adatai  Private Bytes  Working Set o Ebből mennyi a megosztott 25

26 DEMO  Sysinternals VMMap Folyamat memóriaterülete 26

27 A teljes rendszer memóriahasználata 1 Összes lefoglalt virtuális memória Ennyit kéne kiírni a lapozófájlba, de nem biztos, hogy ennyi van kiírva 2 Előjegyzési küszöb: összes fizikai memória + lapozófájlok aktuális mérete ~ Aktív memórialapok száma 4 4 Szabad memória kevés, inkább gyorsítótárban tartja 27

28 DEMO  Memórialapok állapotának gyors áttekintése:  Sysinternals RamMap: részletek Windows 7 – Resource Monitor 28

29 DEMO Meminfo / !memusage 29 Kiegészítő anyag

30 Egy optimalizáció: Prefetch (Windows XP)  Egy program indulásakor sok laphiba van  Mindig ugyanazokat kell betölteni  Prefetch: első tíz másodperc hozzáféréseit megjegyzi  Prefetch “trace file”: \Windows\Prefetch o Elnevezés:.EXE-.pf  Alkalmazás következő indulásakor o Hivatkozott lapok betöltése aszinkron módon  Bootolás figyelése is 30

31 Egy újabb: Superfetch (Vista)  8 Prioritás a memórialapokhoz o Standby listából 8 darab ennek megfelelően  Lapok használatának követése  Memória felhasználása esetén lassan visszahoz lapokat a standby listára, amik kellhetnek még 31

32 DEMO  Process Monitor: betöltéskor használt fájlok  Prefetch file-ok o C:\Windows\Prefetch  Layout.ini  Prefetch fájl tartalma: o strings.exe Prefetch 32

33 Address Space Load Randomization  Változás a Vistában  Biztonsági megfontolás  Rendszer EXE és DLL véletlenszerű helyre lesz betöltve 33

34 Olvasnivaló  Soczó Zsolt, Windows memóriakezelés, MS Technet HUN, 4 részes cikksorozatWindows memóriakezelés  Windows XP Kernel Improvements: Prefetch mechanizmus Windows XP Kernel Improvements  Inside the Windows Vista Kernel: Inside the Windows Vista Kernel o 1. rész: Multimedia Class Scheduler o 2. rész: Superfetch, Ready* 34 Kiegészítő anyag

35 Összefoglalás  Virtuális tárkezelés, lapszervezés  Többszintű optimalizáció  Memóriahasználat vizsgálata o Feladatkezelő: gyors áttekintés o Process Explorer, Perfmon, VMMap stb.: részletek 35


Letölteni ppt "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Micskei Zoltán Előadások:"

Hasonló előadás


Google Hirdetések