


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Windows內(nèi)存管理之虛擬地址到物理地址的映射 Win32通過一個兩層的表結(jié)構(gòu)來實(shí)現(xiàn)地址映射,因?yàn)槊總€進(jìn)程都擁有私有的4G的虛擬內(nèi)存空間,相應(yīng)的,每個進(jìn)程都有自己的層次表結(jié)構(gòu)來實(shí)現(xiàn)其地址映射。 第一層稱為頁目錄,實(shí)際就是一個內(nèi)存頁,Win32的內(nèi)存頁有4KB大小,這個內(nèi)存頁以4個字節(jié)分為1024項(xiàng),每一項(xiàng)稱為“頁目錄項(xiàng)”(PDE); 第二層稱為頁表,這一層共有1024個頁表,頁表結(jié)構(gòu)與頁目錄相似,每個頁表也都是一個內(nèi)存頁,這個內(nèi)存頁以4KB的
2、大小被分為1024項(xiàng),頁表的每一項(xiàng)被稱為頁表項(xiàng)(PTE),易知共有1024×1024個頁表項(xiàng)。每一個頁表項(xiàng)對應(yīng)一個物理內(nèi)存中的某一個“內(nèi)存頁”,即共有1024×1024個物理內(nèi)存頁,每個物理內(nèi)存頁為4KB,這樣就可以索引到4G大小的虛擬物理內(nèi)存。如下圖所示: Win32提供了4GB大小的虛擬地址空間。因此每個虛擬地址都是一個32位的整數(shù)值,也就是我們平時所說的指針,即指針的大小為4B。它由三部分組成,如下圖: 這三個部分的第一部分,即前10位為頁目錄下標(biāo),用來尋址頁目錄項(xiàng),頁
3、目錄項(xiàng)剛好1024個。找到頁目錄項(xiàng)后,找對頁目錄項(xiàng)對應(yīng)的的頁表。第二部分則是用來在頁表內(nèi)尋址,用來找到頁表項(xiàng),共有1024個頁表項(xiàng),通過頁表項(xiàng)找到物理內(nèi)存頁。第三部分用來在物理內(nèi)存頁中找到對應(yīng)的字節(jié),一個頁的大小是4KB,12位剛好可以滿足尋址要求。具體的例子:假設(shè)一個線程正在訪問一個指針(Win32的指針指的就是虛擬地址)指向的數(shù)據(jù),此指針指為0x2A8E317F,下圖表示了這一個過程:0x2A8E317F的二進(jìn)制寫法為0010101010_0011100011_000101111111,為了方便我們把它分為三個部分。· 首先按照0010101010尋址,找到頁目錄項(xiàng)。因?yàn)橐粋€頁目
4、錄項(xiàng)為4KB,那么先將0010101010左移兩位,001010101000(0x2A8),用此下標(biāo)找到頁目錄項(xiàng),然后根據(jù)此頁目錄項(xiàng)定位到下一層的某個頁表。 · 然后按照0011100011尋址,在上一步找到頁表中尋找頁表項(xiàng)。尋址方法與上述方法類似。找到頁表項(xiàng)后,就可以找到對應(yīng)的物理內(nèi)存頁。 · 最后按照000101111111尋址,尋找頁內(nèi)偏移。 上面的假設(shè)的是此數(shù)據(jù)已在物理內(nèi)存中,其實(shí)判斷訪問的數(shù)據(jù)是否在內(nèi)存中也是在地址映射過程中完成的。Win32系統(tǒng)總是假設(shè)數(shù)據(jù)已在物理內(nèi)存中,并進(jìn)行地址映射。頁表項(xiàng)中有一位標(biāo)志位,用來標(biāo)識包含此數(shù)據(jù)的頁是否在物理內(nèi)存中,如果在的話,就直接做地址映射,否則,拋出缺頁中斷,此時頁表項(xiàng)也可標(biāo)識包含此數(shù)據(jù)的頁是否在調(diào)頁文件中(外存),如果不在則訪問違例,程序?qū)顺?,如果在,頁表?xiàng)會查出此數(shù)據(jù)頁在哪個調(diào)頁文件中,然后將此數(shù)據(jù)頁調(diào)入物理內(nèi)存,再繼續(xù)進(jìn)行地址映射。為了實(shí)現(xiàn)每個進(jìn)程擁有私有4G的虛擬地址空間,也就是說每個進(jìn)程都擁有自己的頁目錄和頁表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3706-2024 石化行業(yè)用不銹鋼閥門鑄件
- T-ZJCX 0047-2024 浙江省法人數(shù)字證書應(yīng)用接口規(guī)范
- 二零二五年度宅基地占用權(quán)轉(zhuǎn)讓協(xié)議
- 獨(dú)立董事聘用合同(二零二五年度)-能源行業(yè)節(jié)能減排
- 2025年度門面買賣合同(含廣告位租賃)
- 二零二五年度音樂作品著作權(quán)許可與網(wǎng)絡(luò)播放協(xié)議
- 2025年度校外住宿生安全管理及意外傷害賠償協(xié)議
- 2025年度相鄰宅基地邊界爭議解決與宅基地置換協(xié)議
- 二零二五年度拆除工程合同糾紛解決機(jī)制合同
- 二零二五年度自然人個人醫(yī)療設(shè)備貸款合同生效與還款規(guī)定
- 2024年中級消防員考試題庫
- 必考古詩賞析知識點(diǎn)(九年級下冊)-2025年中考語文一輪復(fù)習(xí)
- 2024-2025學(xué)年人教版八年級物理上學(xué)期課后習(xí)題答案
- 遼寧省沈陽市大東區(qū)2024年中考化學(xué)模擬試題一
- 國能遼寧北票 200MW 風(fēng)力發(fā)電項(xiàng)目地質(zhì)災(zāi)害危險性評估報告
- 江蘇省常州市教育學(xué)會2023-2024學(xué)年下學(xué)期八年級數(shù)學(xué)考試卷
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 2024年瓦斯爆炸事故專項(xiàng)應(yīng)急演練桌面推演腳本
- 2024年遼寧大連中遠(yuǎn)海運(yùn)川崎船舶工程有限公司招聘筆試參考題庫含答案解析
- 《單層廠房鋼結(jié)構(gòu)》
- 八年級下冊二次根式作業(yè)設(shè)計(jì)
評論
0/150
提交評論