Understanding the Linux Virtual Memory Manager
Besorgung - Lieferbarkeit unbestimmt
BeschreibungYour expert guide to the 2.6 Linux Kernel's most important component: The Virtual Memory Manager!
- The ONLY book available that provides a comprehensive description of the Linux Virtual Memory Manager.
- Includes a tutorial that describes each VM algorithm and subcomponent PLUS a separate VM Source Code commentary section
- Amazing CDROM is a virtual VM "learning lab" with tools developed specifically for VM study PLUS all of the 2.6 kernel source code
InhaltsverzeichnisPreface. 1. INTRODUCTION. Getting Started. Managing the Source. Browsing the Code. Reading the Code. Submitting Patches. 2. Describing Physical Memory. Nodes. Zones. Zone Initialization. Initializing mem map. Pages. Mapping Pages to Zones. High Memory. Whats New in 2.6. 3. Page Table Management. Describing the Page Directory. Describing a Page Table Entry. Using Page Table Entries. Translating and Setting Page Table Entries. Allocating and Freeing Page Tables. Kernel Page Tables. Mapping Addresses to a struct page. Translation Lookaside Bu.er (TLB). Level 1 CPU Cache Management. Whats New in 2.6. 4. Process Address Space. Linear Address Space. Managing the Address Space. Process Address Space Descriptor. Memory Regions. Exception Handling. Page Faulting. Copying to/from Userspace. Whats New in 2.6. 5. Boot Memory Allocator. Representing the Boot Map. Initializing the Boot Memory Allocator. Initializing bootmem data. Allocating Memory. Freeing Memory. Retiring the Boot Memory Allocator. Whats New in 2.6. 6. Physical Page Allocation. Managing Free Blocks. Allocating Pages. Free Pages. Get Free Page (GFP) Flags. Process Flags. Avoiding Fragmentation. Whats New in 2.6. 7. Noncontiguous Memory Allocation. Describing Virtual Memory Areas. Allocating a Noncontiguous Area. Freeing a Noncontiguous Area. Whats New in 2.6. 8. Slab Allocator. Caches. Slabs. Objects. Sizes Cache. Per-CPU Object Cache. Slab Allocator Initialization. Interfacing With the Buddy Allocator. Whats New in 2.6. 9. High Memory Management. Managing the PKMap Address Space. Mapping High Memory Pages. Unmapping Pages. Mapping High Memory Pages Atomically. Bounce Bu.ers. Emergency Pools. Whats New in 2.6. 10. Page Frame Reclamation. Page Replacement Policy. Page Cache. LRU Lists. Shrinking All Caches. Swapping Out Process Pages. Pageout Daemon (kswapd). Whats New in 2.6. 11. Swap Management. Describing the Swap Area. Mapping Page Table Entries to Swap Entries. Allocating a Swap Slot. Swap Cache. Reading Pages From Backing Storage. Writing Pages to Backing Storage. Reading/Writing Swap Area Blocks. Activating a Swap Area. Deactivating a Swap Area. Whats New in 2.6. 12. Shared Memory Virtual Filesystem. Initializing the Virtual Filesystem. Using shmem Functions. Creating Files in tmpfs. Page Faulting Within a Virtual File. File Operations in tmpfs. Inode Operations in tmpfs. Setting Up Shared Regions. System V IPC. Whats New in 2.6. 13. Out Of Memory Management. Checking Available Memory. Determining OOM Status. Selecting a Process. Killing the Selected Process. Is That It? Whats New in 2.6. 14. The Final Word. A. Introduction. B. Describing Physical Memory. Initializing Zones. Page Operations. C. Page Table Management. Page Table Initialization. Page Table Walking. D. Process Address Space. Process Memory Descriptors. Creating Memory Regions. Searching Memory Regions. Locking and Unlocking Memory Regions. Page Faulting. Page-Related Disk I/O. E. Boot Memory Allocator. Initializing the Boot Memory Allocator. Allocating Memory. Freeing Memory. Retiring the Boot Memory Allocator. F. Physical Page Allocation. Allocating Pages. Allocation Helper Functions. Free Pages. Free Helper Functions. G. Noncontiguous Memory Allocation. Allocating a Noncontiguous Area. Freeing a Noncontiguous Area. H. Slab Allocator. Cache Manipulation. Slabs. Objects. Sizes Cache. Per-CPU Object Cache. Slab Allocator Initialization. Interfacing with the Buddy Allocator. I. High Memory Mangement. Mapping High Memory Pages. Mapping High Memory Pages Atomically. Unmapping Pages. Unmapping High Memory Pages Atomically. Bounce Bu.ers. Emergency Pools. J. Page Frame Reclamation. Page Cache Operations. LRU List Operations. Re.lling inactive list. Reclaiming Pages From the LRU Lists. Shrinking All Caches. Swapping Out Process Pages. Page Swap Daemon. K. Swap Management. Scanning for Free Entries. Swap Cache. Swap Area I/O. Activating a Swap Area. Deactivating a Swap Area. L. Shared Memory Virtual Filesystem. Initializing shmfs. Creating Files in tmpfs. File Operations in tmpfs. Inode Operations in tmpfs. Page Faulting Within a Virtual File. Swap Space Interaction. Setting Up Shared Regions. System V IPC. M. Out of Memory Management. Determining Available Memory. Detecting and Recovering From OOM. References. Code Commentary Index. Index. About the Author.
PortraitMEL GORMAN specializes in documenting open source software. He holds a MSc in Computer Science from the University of Limerick, Ireland, and has served as an instructor there. He has worked as a system administrator, applications developer, and consultant, and has been researching Linux memory management for more than two years. Currently he is an applications developer with J2EE technologies at IBM, Dublin.
Untertitel: 'Bruce Perens'' Open Source'. Sprache: Englisch.
Verlag: PRENTICE HALL
Erscheinungsdatum: Mai 2004
Seitenanzahl: 768 Seiten