2011-06-16 29 views
2

當內存(假設一些內核內存緩衝區)被映射到用戶空間時,會發生什麼?是否修改了用戶進程struct mm的頁表中的條目,以便它們指向與內核虛擬地址空間中相同的頁面?'將內存映射到用戶空間'究竟意味着什麼?

這是否意味着進程的條目映射到相應的內核虛擬地址?

這是如何實現內存映射?

回答

1

有這個here

+0

這是對API的很好的描述,但我想知道它是如何在API層下實際實現的。 – Alex 2011-06-16 20:27:05

0

一個很好的解釋是它是用戶進程的結構毫米 表被修改的網頁條目,使它們指向 同一頁面那些在內核的 虛擬地址空間?

是的,他們是。實際上,所有的物理內存都已經映射到內核地址空間中。 因此,這意味着無論物理內存作爲虛擬內存提供給進程,該內存都已被內核映射。我建議你閱讀Gorman關於內存管理的書。

+0

對不起,當我說所有的物理內存時,我的意思是高達896mb.Allocations的進程通常發生在ZONE_NORMAL,所以它仍然成立。 – pflz 2011-06-20 20:33:22

相關問題