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 dr. Micskei Zoltán Operációs.

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 dr. Micskei Zoltán Operációs."— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék dr. Micskei Zoltán Operációs rendszerek (vimia219) 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) Windows Windows 8 Pro 4512 Server 2008 Enterprise Server 2012 Enterprise 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 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 Alapesetben 6

7 64-bites címtartomány 64-bit => TB (jelenleg 48 bites címek => 256 TB) 8192 GB (8 TB) Felhasználói folyamat tartománya 8 TB Rendszer tartomány 8 TB Rendszer tartomány 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 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 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

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

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

15 x64 címfordítás 15

16 x64: PTE szerkezete 64 bites, 40 bit a lap címének Flagek: P – present, R/W – read/write, U/S – user/supervisor, A – accessed, D – dirty, XD – execute-disable… 16

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

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

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óriahasználat megfigyelése Egyszerűnek tűnő kérdés: Mi mennyi memóriát foglal a gépen? 22

23 Folyamat memóriahasználata - 0  Feladatkezelő oszlopai  Frissítés gyakorisága 23

24 Folyamat memóriahasználata 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óriahasználata - 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 27

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

29 További optimalizációk 29

30 Windows 8: memóriahasználat csökkentése  Memory combining o azonos tartalom keresése a háttérben  Szolgáltatások csökkentése o + „Start on demand” indítási mód  „Hot” és „cold” adatstruktúrák szétválasztása 30 Lásd: Reducing runtime memory in Windows 8, memory-in-windows-8.aspx

31 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 31

32 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 32

33 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 33

34 Olvasnivaló  Soczó Zsolt, Windows memóriakezelés, MS Technet HUN, 4 részes cikksorozatWindows memóriakezelés  Inside the Windows Vista Kernel: Inside the Windows Vista Kernel o 1. rész: Multimedia Class Scheduler o 2. rész: Superfetch, Ready* 34

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 dr. Micskei Zoltán Operációs."

Hasonló előadás


Google Hirdetések