Understanding the Linux Virtual Memory Manager (Paperback)
暫譯: 理解 Linux 虛擬記憶體管理器 (平裝本)
Mel Gorman
- 出版商: Prentice Hall
- 出版日期: 2004-05-09
- 售價: $2,580
- 貴賓價: 9.5 折 $2,451
- 語言: 英文
- 頁數: 752
- 裝訂: Paperback
- ISBN: 0131453483
- ISBN-13: 9780131453487
-
相關分類:
Linux
已絕版
買這商品的人也買了...
-
$680$578 -
$980$833 -
$880$695 -
$590$466 -
$690$538 -
$750$638 -
$560$476 -
$490$417 -
$850$723 -
$480$379 -
$750$638 -
$780$616 -
$580$493 -
$780$663 -
$590$460 -
$680$537 -
$490$382 -
$890$703 -
$620$527 -
$540$427 -
$990$782 -
$480$408 -
$650$507 -
$1,080CMMI: Guidelines for Process Integration and Product Improvement, 2/e
-
$600$480
相關主題
商品描述
Table of Contents:
Preface.
1. INTRODUCTION.
Getting Started. Managing the Source. Browsing the Code. Reading the Code. Submitting Patches.
2. Describing Physical Memory.
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.
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.
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.
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.
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.
7. Noncontiguous Memory Allocation.
Describing Virtual Memory Areas. Allocating a Noncontiguous Area. Freeing a Noncontiguous Area. Whats New in 2.6.
8. Slab Allocator.
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.
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.
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.
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.
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.
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.
14. The Final Word.
A. Introduction.
B. Describing Physical Memory.
Initializing Zones. Page Operations.
C. Page Table Management.
C. Page Table Management.
Page Table Initialization. Page Table Walking.
D. Process Address Space.
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.
E. Boot Memory Allocator.
Initializing the Boot Memory Allocator. Allocating Memory. Freeing Memory. Retiring the Boot Memory Allocator.
F. Physical Page Allocation.
F. Physical Page Allocation.
Allocating Pages. Allocation Helper Functions. Free Pages. Free Helper Functions.
G. Noncontiguous Memory Allocation.
G. Noncontiguous Memory Allocation.
Allocating a Noncontiguous Area. Freeing a Noncontiguous Area.
H. Slab Allocator.
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.
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.
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.
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.
M. Out of Memory Management.
Determining Available Memory. Detecting and Recovering From OOM.
References.
Code Commentary Index.
Index.
About the Author.
References.
Code Commentary Index.
Index.
About the Author.
商品描述(中文翻譯)
目錄:
前言。
1. 介紹。
開始使用。管理來源。瀏覽程式碼。閱讀程式碼。提交補丁。
2. 描述物理記憶體。
2. 描述物理記憶體。
節點。區域。區域初始化。初始化記憶體映射。頁面。將頁面映射到區域。高記憶體。2.6中的新功能。
3. 頁表管理。
3. 頁表管理。
描述頁目錄。描述頁表項。使用頁表項。翻譯和設置頁表項。分配和釋放頁表。內核頁表。將地址映射到 struct page。翻譯緩存 (TLB)。第1級 CPU 快取管理。2.6中的新功能。
4. 進程地址空間。
4. 進程地址空間。
線性地址空間。管理地址空間。進程地址空間描述符。記憶體區域。異常處理。頁面錯誤。從用戶空間複製。2.6中的新功能。
5. 開機記憶體分配器。
5. 開機記憶體分配器。
表示開機映射。初始化開機記憶體分配器。初始化 bootmem 數據。分配記憶體。釋放記憶體。退役開機記憶體分配器。2.6中的新功能。
6. 物理頁面分配。
6. 物理頁面分配。
管理空閒區塊。分配頁面。空閒頁面。獲取空閒頁面 (GFP) 標誌。進程標誌。避免碎片化。2.6中的新功能。
7. 非連續記憶體分配。
7. 非連續記憶體分配。
描述虛擬記憶體區域。分配非連續區域。釋放非連續區域。2.6中的新功能。
8. Slab 分配器。
8. Slab 分配器。
快取。Slabs。物件。大小快取。每 CPU 物件快取。Slab 分配器初始化。與 Buddy 分配器的介面。2.6中的新功能。
9. 高記憶體管理。
9. 高記憶體管理。
管理 PKMap 地址空間。映射高記憶體頁面。解除映射頁面。原子性地映射高記憶體頁面。彈跳緩衝區。緊急池。2.6中的新功能。
10. 頁框回收。
10. 頁框回收。
頁面替換策略。頁面快取。LRU 列表。縮小所有快取。交換進程頁面。頁面交換守護進程 (kswapd)。2.6中的新功能。
11. 交換管理。
11. 交換管理。
描述交換區域。將頁表項映射到交換項。分配交換槽。交換快取。從後備存儲讀取頁面。將頁面寫入後備存儲。讀取/寫入交換區塊。啟用交換區域。停用交換區域。2.6中的新功能。
12. 共享記憶體虛擬檔案系統。
12. 共享記憶體虛擬檔案系統。
初始化虛擬檔案系統。使用 shmem 函數。在 tmpfs 中創建檔案。在虛擬檔案中頁面錯誤。在 tmpfs 中的檔案操作。在 tmpfs 中的 inode 操作。設置共享區域。System V IPC。2.6中的新功能。
13. 內存不足管理。
13. 內存不足管理。
檢查可用記憶體。確定 OOM 狀態。選擇一個進程。終止選定的進程。就這樣?2.6中的新功能。
14. 最後的話。
A. 介紹。
B. 描述物理記憶體。
14. 最後的話。
A. 介紹。
B. 描述物理記憶體。
初始化區域。頁面操作。
C. 頁表管理。
C. 頁表管理。
頁表初始化。頁表遍歷。
D. 進程地址空間。
D. 進程地址空間。
進程記憶體描述符。創建記憶體區域。搜索記憶體區域。鎖定和解鎖記憶體區域。頁面錯誤。與頁面相關的磁碟 I/O。
E. 開機記憶體分配器。
E. 開機記憶體分配器。
初始化開機記憶體分配器。分配記憶體。釋放記憶體。退役開機記憶體分配器。
F. 物理頁面分配。
F. 物理頁面分配。
分配頁面。分配輔助函數。空閒頁面。釋放輔助函數。
G. 非連續記憶體分配。
G. 非連續記憶體分配。
分配非連續區域。釋放非連續區域。
H. Slab 分配器。
H. Slab 分配器。
快取操作。Slabs。物件。大小快取。每 CPU 物件快取。Slab 分配器初始化。與 Buddy 分配器的介面。
I. 高記憶體管理。
I. 高記憶體管理。
映射高記憶體頁面。原子性地映射高記憶體頁面。解除映射頁面。原子性地解除映射高記憶體頁面。彈跳緩衝區。緊急池
J. 頁框回收。
頁面快取操作。LRU 列表操作。重新填充非活動列表。從 LRU 列表回收頁面。縮小所有快取。交換進程頁面。頁面交換守護進程。
K. 交換管理。
K. 交換管理。
掃描空閒項。交換快取。交換區域 I/O。啟用交換區域。停用交換區域。
L. 共享記憶體虛擬檔案系統。
L. 共享記憶體虛擬檔案系統。
初始化 shmfs。在 tmpfs 中創建檔案。在 tmpfs 中的檔案操作。在 tmpfs 中的 inode 操作。在虛擬檔案中頁面錯誤。交換空間互動。設置共享區域。System V IPC。
M. 內存不足管理。
M. 內存不足管理。
確定可用記憶體。檢測和從 OOM 中恢復。
參考文獻。
程式碼註解索引。
索引。
關於作者。
參考文獻。
程式碼註解索引。
索引。
關於作者。