藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 系統管理


    

藍森林 http://www.lslnet.com 2006年7月31日 15:28

我把內存管理FAQ重新整理了一下。

下面列出的是所有的問題(具體內容見附件):
1、什麼是mm?
2、內存管理的軟件實現了什麼功能?
3、MMU與TLB的功能?
4、什麼是cache?
5、什麼是COW?
6、什麼是夥伴(buddy)系統?
7、什麼是slab分配器?
8、什麼是足印(footprint)?
9、什麼是active_mm?
10、什麼是e820?


11、源代碼中的gfp_xxx,gfp是什麼的縮寫?
12、cache_cache裡的slab的大小是不是一個page?
13、kmalloc(size)返回的是物理地址,還是虛擬地址,為什麼?
14、怎樣得到kmalloc分配的內存地址的實際物理地址?
15、malloc()在內核中對應的函數是什麼?
16、分配虛存空間有了mmap和munmap為什麼還需要sys_brk?
17、請教一個術語--「堆」。
18、malloc在程序結束不free會怎樣?
19、page->age與__PAGE_OLD標誌位有何關係?
20、我想閱讀mm部分的源代碼,從哪個函數入手?


21、為什麼要用copy_from_user(),而不直接讀用戶空間呢?
22、什麼是字對齊(word aligned)?
23、用kmalloc分配的內存是否會被swapper交換出去嗎?
24、3G+phy-mem和物理內存之間是一一映射的,而0-3G的用戶空間最終也肯定是映射到物理內存,那麼我有一點不明白的是物理內存是如何同時映射到兩段空間的?
25、void * kmalloc (size_t size, int flags)中參數的含義?
26、如何實現內存映射?比如說我的pci卡上有一塊內存,然後我要將這段內存映射到機器內存裡面來進行讀寫,應該怎麼做呢?
27、分配虛存空間有了mmap和munmap為什麼還需要sys_brk?
28、進程所分配得到的物理內存全部是通過系統調用和異常服務程序得到的麼?
29、Linux的mm部分經常出現bitmap這個詞,而程序中bitmap描述的一般都是一個unsigned long型的變量,我不知道bitmap比較形象的含義是什麼?
30、夥伴系統一次可分配的連續內存最大為多大?kmalloc呢?

31、有什麼方法能夠讀取系統物理內存(指內容, 不是大小)?
32、既然內存分配為2^k個頁面,哪,釋放是不是也要2^k個頁面呢?
33、noncontiguous memory究竟指的是內存的哪一塊?
34、A20是什麼東西?看setup裡有enable a20, 這是個什麼東西?
35、linux內核中一個有哪些段?
36、flush_tlb_xxx()這類函數都是幹什麼用的?

請大家多提一些意見,如果有補充的就更好了。

Re: 我把內存管理FAQ重新整理了一下。

你還是更新到FAQ上去吧.:)


Re: 我把內存管理FAQ重新整理了一下。

The lastest version of Linux Kernel Memory Management document is available from: http://www.symonds.net/~abhi/files/mm.pdf

It's based on 2.4.19. Pretty new and more compresive than the previous versions.



Re: 我把內存管理FAQ重新整理了一下。

關於TLB的解釋不妥,改為「TLB與CACHE的原理相似,是一個很小的高速存儲單元,利用訪存的局部性快速定位物理地址,減少虛地址多級轉換的頻率」好一些,另外TLB也不是核心器件,整個MMU裡,地址轉換相關的特權寄存器與TLB都是至關重要的,前者是VIRTUAL MEMORY的存在的硬件基礎,後者是效率的保障。

Re: 我把內存管理FAQ重新整理了一下。

多謝,我會改過來的。



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com