基本概念:分頁池和非分頁池

在網上找搜索概念的解釋,描述的不是很清晰。摘錄兩個比較靠譜的:


   1 頁面一直鎖定在物理內存中,不會被換出到頁面交換文件中


   2 Windows把虛擬地址分爲用戶地址空間和系統地址空間,用戶地址空間是給應用程序使用的,系統地址空間是給系統核心和驅動程序使用的。系統地址空間分爲分頁池和非分頁池,分頁池是指映射到分頁文件的虛擬地址,當要使用該地址時才交換到物理內存中,由系統來調度;非分頁池是指直接在物理內存中分配的內存。“頁面緩衝池”就是進程佔用的分頁池中的虛擬內存,是進程調用某些系統功能時,由系統核心或者驅動程序分配的。如果一個程序佔用的頁面緩衝池內存不斷增大,就是內存泄露,通常應該是創建或打開了句柄沒有關閉

系統資源主要有四種:分頁池、未分頁池、系統分頁表和系統緩存,系統緩存容易理解,系統分頁表則是用來保存所有線程使用到的堆棧(Windows所有的線程都具有自己的堆棧),分頁池和未分頁池則是所有程序的核心模式組件使用到的內存部分,區別只是未分頁池裏分配的內存是不能交換到虛擬內存上面的,分頁池上的則可以(從而可能保存到磁盤上去,當程序需要這些頁面的時候,再讀到內存裏面來)。例如設備驅動就使用未分頁池(假如放到虛擬內存並被交換到磁盤上時可能會發生災難性的後果)。這些資源短缺的時候系統將會發生不可預料的事情,分頁池吃緊的時候系統將會頻繁地使用虛擬內存,從而不停讀寫磁盤減低性能,而未分頁池吃緊的時候系統多半已經踏入鬼門關了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章