日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

物理内存的管理

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 物理内存的管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 簡介
    • 1.最大物理內存
    • 2.操作系統限制
    • 3.實際物理內存:
  • Windows采用什么方式管理物理內存:
    • 1.全局數組:
    • 2.數組成員:
    • 3.物理頁狀態:
    • 4.操作系統的6個鏈表

簡介

物理內存:

1.最大物理內存

10-10-12分頁,最多識別物理內存為4GB
2-9-9-12分頁,最多識別物理內存為GB

2.操作系統限制

為什么在xp中,明明是2-9-9-12分頁,仍然無法超越4GB呢?

因為操作系統(操作系統內核文件里面的幾個函數)的限制,和32位無關。

3.實際物理內存:

MmNumberOfPhysicalPages * 4=物理內存

查詢到數據為

0x7ff7c,這個數據是以物理頁(4KB)為單位,轉為KB為單位的話
需要乘以4即可

Windows采用什么方式管理物理內存:

1.全局數組:

數組指針:_MMPFN * MmPfnDatabase

使用一個結構體數組,這里面的每一個成員都是一個MMPFN(大小一般為0x1c),這個數組中包含了所有的物理頁(包含使用或者未使用或者壞的)
但是這個結構體里面并未存放成員所對應的物理頁地址,結構體中是通過 數組索引值+000去找到相應的物理頁所在的物理地址,
舉個例子:
結構體中通過數組索引為0的物理頁的物理地址為 0x0000
結構體中通過數組索引為1的物理頁的物理地址為 0x1000
結構體中通過數組索引為2的物理頁的物理地址為 0x2000

數組長度:MmNumberOfPhysicalPages

2.數組成員:

(也稱頁幀數據庫)_MMPFN(一個物理頁對應這樣一個結構體)
+0x000 u1 :__unnamed
+0x004 PteAddress : Ptr32 _MMPTE
+0x008 u2 :__unnamed
+0x00c u3 :__unnamed
+0x010 OriginalPte :__MMPTE
+0x018 u4:__unnamed

3.物理頁狀態:

通過PageLocation位來展示物理頁的狀態

(首先,此時是基于未用的前提才分為6種狀態,并非使用中:)
0:MmZeroedPageListHead 零化狀態
1:MmFreePageListHead 空閑狀態
2:MmStandbyPageListHead
3:MmModifiedPageListHead
4:MmModifiedNoWritePageListHead
5:MmBadPageListHead 壞頁狀態

4.操作系統的6個鏈表

MmBadPageListHead壞鏈

MmZeroedPageListHead零化鏈表(是系統在空閑的時候進行零化的,不是程序自己清零那種)

MmFreePageListHead空閑鏈表(物理頁周轉使用的,剛被釋放的物理頁是沒有清0,系統空閑的時候有專門的線程從這個隊列摘取物理頁,加以清0后再掛入MmZeroedPageListHead)

MmStandbyPageListHead備用鏈表(當系統內存不夠用時,操作系統會把物理內存中的數據交換到硬盤上,此時頁面不是直接掛到空閑鏈表上去,而是掛到備用鏈,雖然我釋放了,但是里面的內容還是有意義的)

MmModifiedPageListHead

總結

以上是生活随笔為你收集整理的物理内存的管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。