2013-10-03 29 views
1

有誰知道,如果有找出一個物理頁面是用戶頁面或者它是一個內核頁的方式。內核頁面始終在內核中進行訪問,並且不可用於用戶進程。用戶和內核頁面

+1

從什麼開始? – stark

回答

3

基本上,如果所討論的地址是上面的低MEM範圍,其幾乎爲用戶地址(存儲器)。內核只能使用低內存,並且它始終保留供內核使用。貓/ proc/meminfo會給你關於內存分區的細節。

如果你想以編程方式做到這一點,

find_vmap_area(addr); 

此功能需要您的地址並返回vmarea結構。當你得到vmarea結構時,你可以尋找一個標誌

area->flags |= VM_USERMAP; 

如果這個標誌被設置,它的用戶地址。

這是做它的一種方式。可能有更好的方法,甚至可能有一個功能可以完成所有這些。事實上,我隱約記得看到一個。雖然,現在找不到。

+0

因此,內核不能將低內存分配給任何用戶進程。真的嗎?如果我在這種情況下只用128 MB ram引導訪客虛擬機,那麼用戶進程將沒有可用的內存。 – Yogi

+0

* 128MB *爲物理內存;他正在談論一個虛擬地址。 –

+0

編輯我的答案更詳細地編程方式。 – joe