480 likes | 600 Vues
This lecture focuses on the core components and services of the memory manager in Windows 2000. It covers essential topics such as address space layout, page fault handling, virtual address descriptors, working sets, and paging policies. Key mechanisms such as the Page Fault Handler, prototype PTEs, and working set management are also discussed, along with concepts like demand paging and lazy evaluation. The lecture aims to provide a comprehensive understanding of how memory is managed within the Windows 2000 operating system, including the intricacies of working set sizes and memory allocation policies.
E N D
Lecture 10 Memory Management(2) xlanchen@04/22/2005
Contents • Memory Manager Components • Services the Memory Manager Provides • System Memory Pools • Address Space Layout • Address Translation • Page Fault Handling • Virtual Address Descriptors • Working Sets • Page Frame Number Database • Section Objects Understanding the Inside of Windows2000
Page Fault Handling • Page fault | |Kernel trap handler | |Memory manager: fault handler Understanding the Inside of Windows2000
Page fault conditions • Page fault can be caused by a variety of conditions • See table 7-14 Understanding the Inside of Windows2000
4 basic invalid PTEs • Page file • The desired page resides within a paging file. An in-page operation is initiated Understanding the Inside of Windows2000
4 basic invalid PTEs • Demand zero • A page of zeros • The pager : zero page list | |free list | |standby list • PTE format : zeros the page file number and offset in the former format Understanding the Inside of Windows2000
4 basic invalid PTEs • Transition • The desired page is in memory • the standby, modified, or modified-no-write list • The page is removed from the list and added to the working set Understanding the Inside of Windows2000
4 basic invalid PTEs • Unknown • The PTE is zero, or • The page table doesn't yet exist. Understanding the Inside of Windows2000
Prototype PTEs • For shared pages • Prototype page table entries • Section objects : an array of prototype PTEs • First reference: • Prototype PTE real PTE • Reference counter in PFN database • 0invalid the shared page Understanding the Inside of Windows2000
Prototype PTEs • Structure of an invalid PTE that points to the prototype PTE • States of a shared page • Active/valid; transition; modified-no-write;demand zero; page file; mapped file • Lazy updating Understanding the Inside of Windows2000
Two virtual pages (valid/invalid) Understanding the Inside of Windows2000
In-Paging I/O • Reading a file to satisfy a page fault • In-page I/O operation • Synchronous • not interruptible by APC Understanding the Inside of Windows2000
Collided page faults • The currently being in-paged page is faulted by another thread or process • A wait operation is issued • When the I/O completes, all threads will be satisfied Understanding the Inside of Windows2000
Page files • Page files • To store modified pages because of modified page writing • 2K supports up to 16 paging files • EXPERIMENT • Viewing system page files • Viewing Page File Usage with Task Manager Understanding the Inside of Windows2000
Virtual Address Descriptors • Lazy evaluation • Copy-on-write • Demand paging • Page table constructing • Advantages and disadvantages Understanding the Inside of Windows2000
Virtual Address Descriptors Understanding the Inside of Windows2000
EXPERIMENT • Viewing Virtual Address Descriptors Understanding the Inside of Windows2000
Working Sets • Working Set • A subset of virtual pages resident in physical memory • Two types • Process working sets • System working set Understanding the Inside of Windows2000
Paging Policies • How (or when) paging is performed • fetch policy • placement policy • replacement policy Understanding the Inside of Windows2000
Fetch policy • When • Eager-paging (Before needed) • Demand-paging (Until needed) • 2K • Demand-paging + …. • to minimize the number of paging I/Os Understanding the Inside of Windows2000
Page Fault Read Clustering Values Understanding the Inside of Windows2000
Placement policy • Where • the size of CPU memory caches must be considered • to minimize unnecessary thrashing of the cache Understanding the Inside of Windows2000
Replacement policy • Which • Which virtual page must be removed from memory to make room for the new page • Include • LRU • FIFO • … • Global or local Understanding the Inside of Windows2000
2K replacement policy • For multiprocessor system • a variation of a local FIFO • For uniprocessor system • Similar to LRU Understanding the Inside of Windows2000
Working Set Management • Default Minimum and Maximum Working Set Sizes • To change: • SetProcessWorkingSetSize Maximum value must < system value MmMaximumWorkingSetSize Understanding the Inside of Windows2000
Working set management • When paging, it examines • the process's working set limits • and the amount of free memory • When MmAvailablePages <= MmMinimumFreePages • Must trimming working set (working set manager is called) • Working set manager determines • which • how many Understanding the Inside of Windows2000
Working Set-Related System Control Variables Understanding the Inside of Windows2000
EXPERIMENT • Viewing Process Working Set Sizes • Viewing the Working Set List Understanding the Inside of Windows2000
Balance Set Manager and Swapper • Balance set manager • A system thread for • Working set expansion and trimming • Routine: KeBalanceSetManager • Two event • 1-second timer expiring • Internal working set manager Understanding the Inside of Windows2000
Balance set manager • Every fourth time wakes up swapper • Swapper: routine (KeSwapProcessOrStack) • Checks look-aside lists and adjusts their depths • Looks for priority boosted threads • Calls the working set manager Understanding the Inside of Windows2000
Swapper • Called by • Balance set manager • Or scheduling code • Looks for threads that can be swapped out • And swapped in some threads Understanding the Inside of Windows2000
System Working Set • five kinds of pages • System cache pages • Paged pool • Pageable code and data in Ntoskrnl.exe • Pageable code and data in device drivers • System mapped views (sections mapped at 0xA0000000, such as Win32k.sys) Understanding the Inside of Windows2000
System Working Set Performance Counters Understanding the Inside of Windows2000
System Working Set • Minimum and Maximum Size Understanding the Inside of Windows2000
Page Frame Number Database • the page frame number (PFN) database describes the state of each page in physical memory. • States include • Active/Transition/Standby/Modified/Modified no-write/Free/Zeroed/Bad • The PFN database consists of an array of structures that represent each physical page of memory on the system. Understanding the Inside of Windows2000
Page tables & PFN database Understanding the Inside of Windows2000
Page lists in PFN database Understanding the Inside of Windows2000
EXPERIMENT • Viewing the PFN Database Understanding the Inside of Windows2000
Page List Dynamics state diagram for page frame transitions Understanding the Inside of Windows2000
EXPERIMENT • Viewing Page Fault Behavior Understanding the Inside of Windows2000
Modified Page Writer • writing pages back to disk, include two system threads • MiModifiedPageWriter • To paging file • MiMappedPageWriter • To mapped files • The modified page writer event is triggered by • the number of modified pages > MmModifiedPageMaximum • Or MmAvailablePages < MmMinimumFreePages Understanding the Inside of Windows2000
Modified Page Writer Values Understanding the Inside of Windows2000
PFN Data Structures • The states of a PFN entry Understanding the Inside of Windows2000
Modified state Prototype PTE Parity error Read in progress Write in progress Start of nonpaged pool End of nonpaged pool In-page error Flags Within PFN Database Entries Understanding the Inside of Windows2000
Section Objects • section object can be mapped to the paging file or to another file on disk. • Section objects, like other objects, are allocated and deallocated by the object manager Understanding the Inside of Windows2000
A section object Understanding the Inside of Windows2000
Internal section structures Understanding the Inside of Windows2000
EXPERIMENT • Viewing Section Objects • Viewing Control Areas Understanding the Inside of Windows2000