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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 39 二级页表1

發布時間:2023/12/10 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 39 二级页表1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面講述了頁表的原理,并以一級頁表做為原型講述了地址轉換過程。既然有了一級頁表,為什么還要搞個二級頁表呢?理由如下:

  • 一級頁表中最多可容納1M(1048576)個頁表項,每個頁表項是4字節,如果頁表項全滿的話,便是4MB大小。
  • 一級頁表中所有頁表項必須要提前建好,原因是操作系統要占用4GB虛擬地址空間的高1GB,用戶進程要占用低3GB。
  • 每個進程都有自己的頁表,進程一多,光是頁表占用的空間就很可觀了。
  • 歸根結底,我們要解決的是:不要一次性地將全部頁表項建好,需要時動態創建頁表項。如何解決呢?

    二級頁表很好的解決了該問題。我們來說下,什么是二級頁表。

    無論是幾級頁表,標準頁的尺寸都是4KB,這一點是不變的。所以4GB線性地址空間最多有1M個標準頁。一級頁表是將這1M個標準頁放置到一張頁表中,二級頁表是將這1M個標準頁平均放置1K個頁表中。每個頁表中包含有1K個頁表項。頁表項是4字節大小,頁表包含1K個頁表項,故頁表大小為4KB,這恰恰是一個標準頁的大小。

    拆分出了這么多個頁表,如何使用它們呢?為此,專門有個頁目錄表來存儲這些頁表。每個頁表的物理地址在頁目錄表中都以頁目錄項PDE(Page Directory Entry)的形式存儲,頁目錄項大小同頁表項一樣,都是用來描述一個物理頁的物理地址,其大小都是4字節,而且最多有1024個頁表,所以頁目錄表也是4KB大小,同樣也是標準頁的大小。

    頁表是用于管理內存的數據結構,其也要占用內存,所以頁目錄表和頁表所占用的物理頁,同樣是混跡于物理內存之中,如圖

    頁目錄表中共1024個頁表,也就是有1024個頁目錄項。一個頁目錄項中記錄一個頁表物理頁地址,物理頁地址是指頁的物理地址,在頁目錄項及頁表項中記錄的都是頁的物理地址,由于頁大小都是0x1000,即4096,因此頁地址是以000為結尾的16進制數字。每個頁表中有1024個頁表項,每個頁表項中是一個物理頁地址,最終數據是寫在這頁表項中指定的物理頁中。頁表項中分配的物理頁地址在真正物理內存中離散頒布,毫無規律可言,操作系統負責這些物理頁的分配與釋放。由于頁目錄表和頁表本身都要占用內存,且為4KB大小,故它們也會由操作系統在物理內存中分配一物理頁存放。圖中最粗的線是存放頁目錄表物理頁,稍細一點的線指向的是用來存放頁表的物理頁,其它最細的線是頁表項中分配的物理頁,頁表結構本身與其它數據混布滲透在物理內存中,頁表所占用的物理頁在外在形式上與其它數據占用的物理頁沒有什么不同,只有cpu知道它們的作用不同。頁表在建立之初,物理內存各部分的布局還是相對較整潔的,隨著操作系統分配或釋放內存的動作越來越頻繁,物理內存的布局將更加零散。

    二級頁表與一級頁表在原理上相同,但結構上已經有了很大不同,它們在虛擬地址到物理地址轉換方法上也很大不同。

    我們已經知道,前面所說的一級頁表轉換方法,是將32位虛擬地址拆分成兩部分,高20位用于定位一個物理頁,低12位用于物理頁內的偏移量。在二級頁表轉換中,依然是用32位虛擬地址的不同部分來定位物理頁。

    在二級頁表是這樣的:每個頁表中可容納1024個物理頁,故每個頁表可表示的內存容量是1024*4KB=4MB。頁目錄中共有1024個頁表,故所有頁表可表示的內存容量是1024*4MB=4GB,這已經達到了32位地址空間的最大容量。所以說,任意一個32位物理地址,它必然在某個頁表之內的某個物理頁中。我們定位某一個物理頁,必然要先找到其所屬的頁表。頁目錄中1024個頁表,只需要10位二進制就能夠表示了,所以,虛擬地址的高10位(第31~22位)用來在頁目錄中定位一個頁表,也就是這高10位用于定位頁目錄中的頁目錄項PDE,PDE中有頁表物理頁地址。找到頁表后,到底是頁表中哪一個物理頁呢?由于頁表中可容納1024個物理頁,故只需要10位二進制就能夠表示了。所以虛擬地址的中間10位(第21~12位)用來在頁表中定位具體的物理頁,也就是在頁表中定位一個頁表項PTE,PTE中有分配的物理頁地址。由于標準頁都是4KB,12位二進制便可以表達4KB之內的任意地址,故線性地址中余下的12位(第11~0位)用于頁內偏移量。

    經以上分析,二級頁表地址轉換原理是,將32位虛擬地址拆分成高10位、中間10位、低12位三部分,它們的作用是:高10位做為頁表的索引,用于在頁目錄表中定位一個頁目錄項PDE,頁目錄項中有頁表物理地址,也就是定位到了某個頁表。中間10位做為物理頁的索引,用于在頁表內定位到某個頁表項PTE,頁表項中有分配的物理頁地址,也就是定位到了某個物理頁。低12位做為頁內偏移量用于在已經定位到的物理頁內尋址。

    同一級頁表一樣,訪問任何頁表內的數據都要通過物理地址。由于頁目錄項PDE和頁表項PTE都是4字節大小,給出了PDE和PTE索引后,還需要在背后悄悄乘以4,再加上頁表物理地址,這才是最終要訪問的絕對物理地址。轉換過程背后的具體步驟是:

  • 用虛擬地址的高10位乘以4,做為頁目錄表內的偏移地址,加上頁目錄表的物理地址,所得的和,便是頁目錄項的物理地址。讀取該頁目錄項,從中獲取到頁表的物理地址。
  • 用虛擬地址的中間10位乘以4,做為頁表內的偏移地址,加上在第1步中得到的頁表物理地址,所得的和,便是頁表項的物理地址。讀取該頁表項,從中獲取到分配的物理頁地址。
  • 虛擬地址的高10位和中間10位分別是PDE和PTE的索引值,所以它們需要乘以4。但低12位就不是索引值啦,其表示的范圍是0~0xfff,做為頁內偏移最合適,所以虛擬地址的低12位加上第2步中得到的物理頁地址,所得的和便是最終轉換的物理地址。
  • 這種自動化較強的工作,還是由頁部件自動完成的,

    總結

    以上是生活随笔為你收集整理的一步步编写操作系统 39 二级页表1的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚州综合网| 精品久久9999 | 沟厕沟厕近拍高清视频 | 久久久久久亚洲av毛片大全 | 午夜肉体高潮免费毛片 | 日韩中文字幕在线观看 | 日日摸日日添日日碰9学生露脸 | 综合亚洲视频 | 日日草天天干 | 国产又大又黄的视频 | 国产精品二区一区 | 男女视频在线观看免费 | 电影《走路上学》免费 | 国产妇女馒头高清泬20p多 | www.youjizz.com国产| 中日韩黄色大片 | 在线视频播放大全 | 久草福利视频 | 免费观看黄色小视频 | 羞羞网站在线观看 | 欧美精品一卡二卡 | av动态 | 青青草国产在线播放 | 日韩三级视频在线观看 | 欧美一区二区性久久久 | 伊人99热 | 蜜桃av久久久亚洲精品 | 午夜视频在线观看免费视频 | 国产精品久久久久久久久久久久久久久久 | 在线毛片网 | 亚洲综合精品国产 | 午夜激情视频在线播放 | 国产精品夜夜嗨 | 少妇又紧又深又湿又爽视频 | 成年人视频网站 | 五月天激情小说 | 俺也去婷婷 | 日韩高清欧美 | 国产一区影院 | 肉丝超薄少妇一区二区三区 | 日韩毛片一区二区三区 | 国产精品三区在线观看 | a级大片在线观看 | 91午夜影院| 亚洲深夜福利视频 | 日本黄网站 | 亚洲色成人www永久在线观看 | 97超碰在 | 久久久久亚洲av成人毛片韩 | 少妇丰满尤物大尺度写真 | 99久久伊人 | 亚洲av熟女高潮一区二区 | 毛片9| 激情五月综合色婷婷一区二区 | 福利一区二区在线观看 | 欧美男同又粗又长又大 | 在线观看一区二区三区四区 | 国产在线自 | 一级不卡| 最新中文字幕久久 | 国产成人精品免费 | 成人国产精品免费观看视频 | 亚洲aaa级 | 免费日批网站 | 日韩久久久久久久久 | 人人做人人爱人人爽 | 亚色视频| 国产精品久久综合 | 亚洲人xxx日本人18 | 97久草| 在线观看国产网站 | 小嫩嫩精品导航 | 国产精品一区二区无码免费看片 | 亚州国产精品视频 | 国语一区 | 麻豆精品国产传媒av绿帽社 | 蜜桃视频在线播放 | 精品妇女一区二区三区 | 在线观看视频国产 | 伊人av综合 | 美国一区二区 | 成人影 | 夜夜操夜夜干 | 亚洲精品黄 | 中文字幕99页 | 1515hh成人免费看 | 国产精品情侣呻吟对白视频 | 亚色视频在线 | 久久午夜免费视频 | 久久精品女人 | 大粗鳮巴久久久久久久久 | 日韩精品1区2区3区 欧美一本 | 日韩中文免费 | 变态 另类 国产 亚洲 | 国产喷水福利在线视频 | 国产精品成人午夜视频 | 无码人妻丰满熟妇啪啪欧美 | 91狠狠干 | 91免费看视频 |