作者RogerShih
這部分我建議看Microsoft Press 出的 Windows Internal, 對 PageFile 會有比較深刻的說明. 恐龍書大多是說明理論性的作法, 但實作時會根據系統的不同而有差異.
另外對虛擬記憶體的了解, 我這邊可以作一些補充說明.
虛擬記憶體的用途並非完全是實體記憶體的延伸 (如果是這樣, 你插4G記憶體, 開4G虛擬記憶體, 加起來超過了限制32位元現制的4G了, 這怎麼解釋?). 寫過比較早期 Windows 程式的, 應該知道程式中可以設定那個部分是可以 Discardable, 是 Removeable, 或 unmoveable 的, 這些設計的意義對虛擬記憶體的工作影響很大.
首先要了解的是, 一支程式可以分成很多區段, 程式段、資料段、資源段、堆疊、動態程式庫等等, 通常不是一口氣都載入的, 像動態程式庫, 尤其是使用者自己寫的動態程式庫, 大多不會預先載入, 等到主程式要呼叫時, 才從硬碟中載入執行.
這些區段本身都可以設定一些跟記憶體...
|