Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaZsigmond Horváth Megváltozta több, mint 10 éve
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: http://www.mit.bme.hu/~micskeizhttp://www.mit.bme.hu/~micskeiz 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) http://www.academicresourcecenter.net/curriculum/pfv.aspx?ID=6191 http://www.academicresourcecenter.net/curriculum/pfv.aspx?ID=6191 © 2000-2005 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-64 64-bit Windows 7 Basic 48n/a Windows 7 Prof 4192n/a Server 2008 Standard 432n/a Server 2008 Enterprise 642048n/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) 1 2 3 4 5 6 7 8 9 10 11 12 PFN 0 Byte within page Page dir pointer Page map Level 4 Page Directories Page Directory Pointers CR3 48 0 15 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 - 1 1 2 1 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 3 3 24
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 1 2 3 3 ~ 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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.