Windows AWE API 記憶體配置和普通記憶體配置的不同點

來源:互聯網
上載者:User

以下觀點可能和實際情況有點不符合,因為本人沒有閱讀過微軟的內部文檔,也找不到其他資料

只能根據現有的資料,推測,希望懂的人或者牛人能夠指點。指出其中的問題,歡迎拍磚

普通記憶體配置方式:

  圖的左邊,是普通記憶體配置方式。

  當程式中的虛擬記憶體提交時,程式會向系統申請記憶體,系統會分配一個PFN,一個PFN包含了很多資訊,主要是代表記憶體頁,有時候也可以把它看成記憶體頁,這樣比較容易理解

  PTE是如果從VAS 也就是 虛擬記憶體,提交到實體記憶體時,PTE會記錄映射的資訊。

  普通分配的基本流程可能是這樣。申請到PFN 後,PTE 會映射到相應的PFN,並把VAS中的頁讀到PFN對應的實體記憶體頁中。

  這個感覺比較簡單

AWE記憶體配置:

  對SQL Server 瞭解比較深的朋友會知道,SQL Server 啟用了AWE之後,分配的記憶體將會被鎖住,也就是 locked page,在程式停止前是無法被釋放的。

  當程式想系統以AWE方式請求記憶體時,系統會從PFN Database 也就是一個管理 PFN 的地方,申請出一塊記憶體,並把 PFN 對應的實體記憶體映射到虛擬記憶體中。

     也就是虛擬記憶體通過指標指向了實體記憶體。請看圖:

            

                                                 

    在PFN映射到虛擬記憶體的時候,PTE會被分配,與PFN綁定加鎖。但是PFN的記憶體已經映射到了虛擬記憶體中,PFN會把指向記憶體的指標指到PTE上。

    所以,PTE無法探測出有多少記憶體被AWE分配到了程式中。因此也無法對AWE分配的記憶體做頁換出,造成Locked Page。

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.