2013-09-23 28 views
1

我目前正在學習windows,我發現windows使用兩段內存,它們在系統空間地址空間中命名了分頁池和非分頁池。所以只有窗口的關鍵部分保存在非分頁池(不使用請求分頁)中。雖然我被教導,在Linux中所有的系統空間地址空間不使用請求分頁的概念?如果所有這些信息都是正確的,那麼我應該得出結論:Windows需要的內存少於Linux的運行量?在linux中整個系統空間地址空間是不是使用按需分頁?

+1

即使Windows允許內核的某些部分被分頁(而Linux不),它並不會自動遵循Windows使用RAM比Linux更少的RAM。 – BraveNewCurrency

+1

Linux內核不允許將其自己換出。 http://sourcefrog.n​​et/weblog/software/linux-kernel/swap.html – BraveNewCurrency

+0

@BraveNewCurrency是的,你是對的!我不能只看一個因素就得出結論。但是,即使Linux內核更輕,他們可以將其構建得更輕?然後他們選擇了這麼重的植入物? –

回答

1
While I was taught that in linux all the system space address space does not use 
the concept of virtual memory? 

這是錯誤的。 Linux內核及其組件(驅動程序,子系統等)使用虛擬內存。函數指針,分配例程返回的指針是虛擬地址。

+0

你能給我一個鏈接,證明你所說的?由vmalloc()返回的內存實際上是連續的,但這裏通過虛擬內存來表示需求分頁。對不起,在我的問題沒有具體,我現在編輯它,但! –

+0

我回答了你的問題。儘管我認爲關於vmalloc的東西並不完全正確,但您的編輯來得晚。我將刪除它。 –

+0

??我還沒有得到答案!讀這 http://www.ibm.com/developerworks/library/l-kernel-memory-access/ 更具體地說,本 「雖然內核頁,不用於交換的候選人」,「在內核地址空間,但大部分的回憶」 –

0

如果你在談論內存管理,我希望下面的文字能夠回答它。

在Linux中,有兩種內存地址空間:虛擬和物理。
內存以頁爲單位進行管理。
虛擬地址映射到物理地址。
虛擬地址是您在編寫代碼時使用的地址。
物理地址可以在內存中,磁盤或其他地方。
磁盤比內存更便宜也更大,但內存比磁盤快。
所以kernel更喜歡使用內存。
爲了獲得貪婪進程的空間,內核會將某個頁面從內存交換到磁盤,因此可以使用空閒內存。

但是內核地址空間中的大部分內存不應該交換到磁盤,因爲它們負責管理內核和其他所有東西。這與非分頁窗口池相似。

我認爲Linux和Windows都有類似的內存管理機制。 所以很難說哪個用得少。

+0

它是大部分還是全部?我需要知道? –

+0

經過一番搜索之後,我認爲所有的內核空間都是不可交換的。交換隻與流程有關。 http://www.tldp.org/LDP/tlk/mm/memory.html – z7z8th

+0

上面的網址還包含**請求分頁的一段** – z7z8th

0

內核使用虛擬內存進行vmalloc分配,但始終由物理內存支持。這意味着內核從不分頁錯誤。它可以保持延遲可預測。少數訪問存儲的內核子系統(mm,nfsd,文件支持交換)必須明確要求vfs映射頁面;這保持了它所屬的複雜性。

0

內核空間的內核映像部分不能被換出而不是整個內核空間。例如,當物理內存變低時,由磁盤支持的頁面緩存絕對可以被分頁。

相關問題