1. 程式人生 > >分頁池和非分頁池的基本概念

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

 1 頁面一直鎖定在實體記憶體中,不會被換出到頁面交換檔案中


   2 Windows把虛擬地址分為使用者地址空間和系統地址空間,使用者地址空間是給應用程式使用的,系統地址空間是給系統核心和驅動程式使用的。系統地址空間分為分頁池和非分頁池,分頁池是指對映到分頁檔案的虛擬地址,當要使用該地址時才交換到實體記憶體中,由系統來排程;非分頁池是指直接在實體記憶體中分配的記憶體。“頁面緩衝池”就是程序佔用的分頁池中的虛擬記憶體,是程序呼叫某些系統功能時,由系統核心或者驅動程式分配的。如果一個程式佔用的頁面緩衝池記憶體不斷增大,就是記憶體洩露,通常應該是建立或打開了控制代碼沒有關閉

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