SlideServe
Menu
Préférences
© SlideServe · v2026

Windows Kernel Internals Advance Virtual Memory

adamma avatar
19 diapositives · 410 Views · Nov 07, 2012

Windows Kernel Internals Advance Virtual Memory. *David B. Probert, Ph.D. Windows Kernel Development Microsoft Corporation. PFN: Working Set Page. PFN: Free Page. PFN: Standby Page. PFN: Transition page. PFN Fields. PteAddress: VA of PTE referencing page

Windows Kernel Internals Advance Virtual Memory - slide 1
01 / 19Windows Kernel Internals Advance Virtual Memory
1 / 17

Télécharger la présentation

Windows Kernel Internals Advance Virtual Memory
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Windows Kernel InternalsAdvance Virtual Memory *David B. Probert, Ph.D. Windows Kernel Development Microsoft Corporation © Microsoft Corporation

  2. PFN: Working Set Page © Microsoft Corporation

  3. PFN: Free Page © Microsoft Corporation

  4. PFN: Standby Page © Microsoft Corporation

  5. PFN: Transition page © Microsoft Corporation

  6. PFN Fields PteAddress: VA of PTE referencing page RefCount: count of WS or IO locks OriginalPte: PTE to restore on soft-fault PteFrame: PageFrame for PteAddress Flags: PageColor : 4 PageLocation : 3 RemovalRequested : 1 CacheAttribute : 2 Modified : 1 ReadInProgress : 1 WriteInProgress : 1 PrototypePte: 1 © Microsoft Corporation

  7. Page Table Entries • Some fields defined by hardware • Six PTE states: • Active/valid • Transition • Modified-no-write • Demand zero • Page file • Mapped file © Microsoft Corporation

  8. Valid x86 Hardware PTEs Reserved Global Dirty Accessed Cache disabled Write through Owner Write Cd O A D R Wt W Pageframe 1 G R R R 0 5 4 7 2 1 3 9 6 31 12 11 10 8 © Microsoft Corporation

  9. Transition Page file Prototype Page file offset Protection PFN 0 0 Transition 0 1 4 5 9 31 12 11 10 Transition Prototype HW ctrl Page file offset Protection 0 1 0 1 4 5 9 31 12 11 10 Cache disable Write through Owner Write x86 Invalid PTEs © Microsoft Corporation

  10. x86 Invalid PTEs Demand zero: Page file PTE with zero offset and PFN Unknown: PTE is completely zero or Page Table doesn’t exist yet. Examine VADs. Pointer to Prototype PTE pPte bits 7-27 pPte bits 0-6 0 0 1 4 5 7 8 9 31 12 11 10 © Microsoft Corporation

  11. MMPAGING_FILE • PFN_NUMBER Size, MaxSize, MinSize, FreeSpace, CurrUsage, PeekUsage, HighestPage • pFileObject • ModWriterMdlEntries[] • pPageFileName • pAllocationBitmap • Flags: • PageFileNumber, RefCount, BootPart © Microsoft Corporation

  12. MMSUPPORT // embedded in EPROCESS • WorkingSetExpEntry[2] • LastTrimTime • Flags • PageFaultCount, PeakWorkingSetSize, GrowthSinceLastEstimate • MinimumWorkingSetSize, MaximumWorkingSetSize • pVmWorkingSetList • WSLE_NUMBER Claim, NextEstimationSlot, NextAgingSlot, EstimatedAvailable, WorkingSetSize © Microsoft Corporation

  13. MMADDRESS_NODE • pParent, pLeft, pRight • StartingVpn, EndingVpn © Microsoft Corporation

  14. MMVAD • MMADDRESS_NODE AddressTreeNode • pControlArea • pFirstProtoPte • pLastContigPte • Flags: • CommitCharge, PhysMap, ImageMap, Awe, Prot, MemCommit, Private, LargePages, WriteWatch, NoChange, FileOffset64k, SecNoChange, ReadOnly, Extendable, Inherit, CopyOnWrite © Microsoft Corporation

  15. CONTROL_AREA • pSegment • DereferenceListEntry[2] • nSectRefs, nPfnRefs, nMapViews, nCacheViews, nUserRefs • nModWrites, nFlushesActive, • Flags • pFileObject • iPfnBase • Subsections[] © Microsoft Corporation

  16. SUBSECTION • pControlArea • Flags: • ReadOnly, ReadWrite, SubsectionStatic, GlobalMemory, Protection, StartingSector, SectorEndOffset • StartingSector • nFullSectors • pSubsectBasePtes • nUnusedPtes • nPtesInSubsection • pNextSubsection • nMappedViews © Microsoft Corporation

  17. SECTION • MMADDRESS_NODE AddressTreeNode • pSegment • Size • InitialPageProt • Flags: • BeingDeleted, BeingCreated, BeingPurged, NoModifiedWriting, FailAllIo, Image, Based, File, Networked, NoCache, PhysicalMemory, CopyOnWrite, Commit, FloppyMedia, WasPurged, UserReference, GlobalMemory, DeleteOnClose, FilePointerNull, DebugSymbolsLoaded, SetMappedFileIoComplete, CollidedFlush, NoChange, HadUserReference, ImageMappedInSystemSpace, UserWritable, Accessed, GlobalOnlyPerSession, Rom © Microsoft Corporation

  18. SEGMENT • pControlArea • nPtes • nWritableUserRefs • Size • PteTemplate • nCommittedPages • Flags • BasedAddress • PrototypePte • ProtoPtes[] © Microsoft Corporation

  19. Discussion © Microsoft Corporation