日韩天堂,国产精品久久久久久久久久一区,羞羞羞网站,自拍视频网站,久久亚洲欧美成人精品,桃花阁成人网在线观看

Hello! 歡迎來到小浪云!


Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存


一、虛擬內(nèi)存與物理內(nèi)存

我們知道,每個(gè)應(yīng)用程序都擁有自己獨(dú)立的4GB空間。例如,假設(shè)A進(jìn)程在地址123處存儲(chǔ)了值10,而B進(jìn)程在地址123處存儲(chǔ)了值20,這兩個(gè)進(jìn)程互不影響。然而,這些值是真實(shí)存在的,并且存儲(chǔ)在物理內(nèi)存中。如下圖所示:

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

根據(jù)上圖,我們可以區(qū)分虛擬內(nèi)存和物理內(nèi)存。如果我們修改了物理內(nèi)存的值,那么會(huì)影響A進(jìn)程或B進(jìn)程。

當(dāng)然,如果你學(xué)過內(nèi)核驅(qū)動(dòng)開發(fā),就知道內(nèi)核驅(qū)動(dòng)讀寫正是這種機(jī)制。我也曾編寫過一個(gè)簡(jiǎn)單的內(nèi)核驅(qū)動(dòng)讀寫程序,詳情請(qǐng)查看內(nèi)核驅(qū)動(dòng)目錄。

因此,虛擬內(nèi)存是虛構(gòu)的,只有在使用時(shí)才會(huì)映射到物理內(nèi)存中。

二、物理內(nèi)存的管理

物理內(nèi)存是以4KB(即4096字節(jié))的方式進(jìn)行管理的,這一單位也稱為一頁。因此,在使用API時(shí),我們經(jīng)常會(huì)看到與頁相關(guān)的操作,這是因?yàn)閮?nèi)存是以頁為單位進(jìn)行管理的。

如下圖所示:

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

進(jìn)程A的值被放置在物理頁中。

傳統(tǒng)上,進(jìn)程擁有4GB的地址空間,但實(shí)際上分為高2GB和低2GB。高2GB由內(nèi)核使用,因此用戶只能使用低2GB。而低2GB中也有高低各64KB的部分是不可用的(如果學(xué)過內(nèi)核,可以通過構(gòu)造來使用)。

如下圖所示:

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

用戶模式可以使用的內(nèi)存是橘黃色部分,但沒有對(duì)應(yīng)的物理頁。只有當(dāng)我們申請(qǐng)內(nèi)存時(shí),才會(huì)有對(duì)應(yīng)的物理頁。

如果想查看三環(huán)程序使用的物理頁,可以通過雙機(jī)調(diào)試來調(diào)試我們的程序,使用Windbg進(jìn)行操作:

  1. 首先使用命令!Process遍歷出我們程序的EXE地址。
  2. 使用dt EPROCESS遍歷出的地址,得到這個(gè)應(yīng)用程序的EPROCESS結(jié)構(gòu)。
  3. 得到EPROCESS結(jié)構(gòu)中偏移11c(即成員VadRoot)的地址,使用!VAD地址(EPROCESS + 地址)可以得出這個(gè)EXE使用的內(nèi)存物理頁。

如果你不會(huì)使用也沒關(guān)系,觀看下圖:

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

此圖說明了我們的線性地址從10開始到10結(jié)束。因?yàn)槲锢眄撌且?KB存儲(chǔ)的,所以10代表的是1000,后面的大小是1000,因此下一個(gè)位置從20開始,即2000線性地址。

三、物理頁大小

物理頁的大小根據(jù)你的物理內(nèi)存大小來設(shè)定。也就是說,你的物理內(nèi)存有多大,就可以換算出物理頁的數(shù)量。我們可以通過任務(wù)管理器查看物理頁的總數(shù)。

例如,如下圖所示:

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

我們換算一下,1048048 / 4轉(zhuǎn)換為16進(jìn)制就是可以有多少個(gè)物理頁。例如,我們的例子中有3FF7C個(gè)物理頁。

我們也可以使用Windbg通過dd命令查看,只需DD這個(gè)變量即可。

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

如果我們的物理頁超過了,那么操作系統(tǒng)還支持使用硬盤來作為物理內(nèi)存。

具體設(shè)置如下:

計(jì)算機(jī)屬性 -> 高級(jí)系統(tǒng)設(shè)置 -> 高級(jí) -> 性能設(shè)置 -> 高級(jí) -> 虛擬內(nèi)存更改。

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

這塊內(nèi)存會(huì)在Windows上保存,文件名為pagefile.sys,通常是c盤的隱藏文件。我們可以通過everything搜索找到它。

Win32之內(nèi)存管理之虛擬內(nèi)存跟物理內(nèi)存

三、操作系統(tǒng)可識(shí)別內(nèi)存

我們可用的內(nèi)存是我們計(jì)算出的物理頁大小加上虛擬內(nèi)存的大小。然而,操作系統(tǒng)可識(shí)別的內(nèi)存并不是這么大。

也就是說,即使我們?cè)黾恿撕芏鄡?nèi)存條,也不會(huì)有任何效果。

32位系統(tǒng)下最多能識(shí)別64GB內(nèi)存,而WinXP只能識(shí)別4GB內(nèi)存。具體知識(shí)需要學(xué)習(xí)Windows內(nèi)核中的頁表(PTE、PDE)、頁目錄表等才能清楚,這里就不多說了,只需了解即可。

相關(guān)閱讀

主站蜘蛛池模板: 日本男人的天堂 | 一区二区三区福利 | 视频一区二区国产 | 自拍偷拍亚洲视频 | 亚洲狠狠成人综合网 | 亚洲综合天堂网 | 欧美自拍偷拍 | 最近更新在线观看视频3 | 亚欧美色 | 在线观看视频黄色 | 午夜在线一区 | 亚洲视频欧美视频 | 亚洲天堂久 | 欧美日韩在线视频观看 | 国产免费小视频在线观看 | 五月婷婷 六月丁香 | 全部免费国产潢色一级 | 一区二区免费看 | 亚洲日韩图片专区第1页 | 成人性色生活片免费网 | 成人欧美一区二区三区视频 | 亚洲视频在线观看不卡 | 国产羞羞的视频在线观看免费 | 久久艹人人艹 | 久热精品在线观看 | 久久久美女视频 | 一区二区三区免费观看 | 久久久久成人精品一区二区 | 正版男人的天堂 | 亚洲视频在线免费观看 | 亚洲视频第二页 | 亚洲国产精品第一区二区三区 | 亚洲无线码1区 | 中日文字幕视频 | 亚洲欧美在线综合一区二区三区 | 自拍视频国产 | 亚洲综合色视频 | 永久免费看mv网站入口 | 综合色亚洲| 成人欧美一区二区三区视频不卡 | 亚洲精品一二三区-久久 |