• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>學習電腦>電腦知識大全>

    虛擬地址映射到物理地址怎么做

    時間: 春健736 分享

      在確保訪問的數據已在物理內存中后,還需要先將虛擬地址轉換為物理地址,即"地址映射",那么虛擬地址映射到物理地址怎么做呢?今天學習啦小編與大家分享下虛擬地址映射到物理地的具體操作步驟,有需要的朋友不妨了解下。

      虛擬地址映射到物理地址方法

      Win32通過一個兩層的表結構來實現地址映射,因為每個進程都擁有私有的4G的虛擬內存空間,相應的,每個進程都有自己的層次表結構來實現其地址映射。

      第一層稱為頁目錄,實際就是一個內存頁,Win32的內存頁有4KB大小,這個內存頁以4個字節分為1024項,每一項稱為“頁目錄項”(PDE);

      第二層稱為頁表,這一層共有1024個頁表,頁表結構與頁目錄相似,每個頁表也都是一個內存頁,這個內存頁以4KB的大小被分為1024項,頁表的每一項被稱為頁表項(PTE),易知共有1024×1024個頁表項。每一個頁表項對應一個物理內存中的某一個“內存頁”,即共有1024×1024個物理內存頁,每個物理內存頁為4KB,這樣就可以索引到4G大小的虛擬物理內存。

      如下圖所示(注下圖中的頁目錄項的大小應該是4個字節,而不是4kB):

      Win32提供了4GB大小的虛擬地址空間。因此每個虛擬地址都是一個32位的整數值,也就是我們平時所說的指針,即指針的大小為4B。它由三部分組成,如下圖:

      這三個部分的第一部分,即前10位為頁目錄下標,用來尋址頁目錄項,頁目錄項剛好1024個。找到頁目錄項后,找對頁目錄項對應的的頁表。第二部分則是用來在頁表內尋址,用來找到頁表項,共有1024個頁表項,通過頁表項找到物理內存頁。第三部分用來在物理內存頁中找到對應的字節,一個頁的大小是4KB,12位剛好可以滿足尋址要求。

      具體的例子:

      假設一個線程正在訪問一個指針(Win32的指針指的就是虛擬地址)指向的數據,此指針指為0x2A8E317F,下圖表示了這一個過程:

      0x2A8E317F的二進制寫法為0010101010_0011100011_000101111111,為了方便我們把它分為三個部分。

      首先按照0010101010尋址,找到頁目錄項。因為一個頁目錄項為4KB,那么先將0010101010左移兩位,001010101000(0x2A8),用此下標找到頁目錄項,然后根據此頁目錄項定位到下一層的某個頁表。

      然后按照0011100011尋址,在上一步找到頁表中尋找頁表項。尋址方法與上述方法類似。找到頁表項后,就可以找到對應的物理內存頁。

      最后按照000101111111尋址,尋找頁內偏移。

      上面的假設的是此數據已在物理內存中,其實判斷訪問的數據是否在內存中也是在地址映射過程中完成的。Win32系統總是假設數據已在物理內存中,并進行地址映射。頁表項中有一位標志位,用來標識包含此數據的頁是否在物理內存中,如果在的話,就直接做地址映射,否則,拋出缺頁中斷,此時頁表項也可標識包含此數據的頁是否在調頁文件中(外存),如果不在則訪問違例,程序將會退出,如果在,頁表項會查出此數據頁在哪個調頁文件中,然后將此數據頁調入物理內存,再繼續進行地址映射。為了實現每個進程擁有私有4G的虛擬地址空間,也就是說每個進程都擁有自己的頁目錄和頁表結構,對不同進程而言,即使是相同的指針(虛擬地址)被不同的進程映射到的物理地址也是不同的,這也意味著在進程之間傳遞指針是沒有意義的。


    919270 主站蜘蛛池模板: 九歌电影免费全集在线观看| 亚洲va久久久噜噜噜久久狠狠| 韩国无码AV片在线观看网站| 天堂网在线www| 久久天天躁狠狠躁夜夜爽| 毛片永久新网址首页| 噜噜噜在线观看播放视频| 亚洲国产91在线| 夜夜爽免费888视频| 中文字幕日本一区| 欧洲精品99毛片免费高清观看| 免费国产成人午夜电影| 韩国在线观看一区二区三区 | 国产超碰人人模人人爽人人喊| 中文字幕黄色片| 最近中字视频在线观看| 亚洲综合天堂网| 美女久久久久久久久久久| 国产成人精品综合在线观看| 91香蕉短视频| 娇喘午夜啪啪五分钟娇喘| 久久亚洲国产伦理| 欧美一级做a影片爱橙影院| 免费jlzzjlzz在线播放视频| 色噜噜久久综合伊人一本| 国产毛片在线看| 91在线看片一区国产| 好男人官网在线观看免费播放| 久久99蜜桃精品久久久久小说| 果冻传媒和精东影业在线观看| 亚洲精品动漫免费二区| 精品久久久噜噜噜久久久| 国产一级爱做c片免费昨晚你| 免费观看黄色的网站| 国产精品高清一区二区三区不卡| yellow字幕网在线91pom国产| 撅起小屁股扒开调教bl| 久久精品国产色蜜蜜麻豆| 欧美在线一卡二卡一卡3卡4卡5| 亚洲精品美女久久久久| 粗喘撞吟np文古代|