Windows 記憶體的分配(1)

來源:互聯網
上載者:User
Windows 使用一種 分頁請求虛擬記憶體系統,現在我們就來分析一下這種系統。

虛擬位址空間

虛擬記憶體的概念在上個世紀五十年代就提出了,當時是作為解決不能一次裝入實際記憶體的程式這一複雜問題的方案提出的。在虛擬記憶體系統中,程式可以訪問超出可用實體記憶體的更大的地址集合,專用記憶體管理程式將這些邏輯地址映射到實際地址,使用磁碟上的臨時儲存儲存超出的部分。

Windows 所使用的現代虛擬記憶體實現中,虛擬儲存被組織成大小相同的單位,稱為 。每個作業系統進程佔用自己的 虛擬位址空間,即一組可以讀寫的虛擬記憶體頁。每個頁可以有三種狀態:

  • 自由:還沒有進程使用這部分地址空間。如果企圖訪問這部分空間,無論讀寫都會造成某種運行時失效。該操作將導致彈出一個 Windows 對話方塊,提示出現了存取違規。(Java 程式不會造成這種錯誤,只有用支援指標的語言編寫的程式才可能造成這種問題。)

  • 保留:這部分地址空間保留給進程,以供將來使用,但是在交付之前,不能訪問該地址空間。很多 Java 堆在一開始處於保留狀態。
  • 提交:程式可以訪問的記憶體,得到了完全 支援,就是說已經在分頁檔案中分配了頁幀。提交的頁只有在第一次被引用時才裝入主存,因此成為 請求式分頁

圖 1 說明了進程地址空間中的虛擬頁如何映射到記憶體中的物理頁幀。

圖 1. 進程地址空間中的虛擬頁到物理頁幀的映射

如果啟動並執行是 32 位元電腦(如一般的 Intel 處理器),那麼進程的整個虛擬位址空間就是 4GB,因為這是用 32 位所能定址的最大地址空間。Windows 通常不會允許您訪問地址空間中的所有這些記憶體,進程自己使用的只有不到一半,其他供 Windows 使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.