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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

进入保护模式(三)内存的分页

發布時間:2023/11/29 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进入保护模式(三)内存的分页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

一、分頁

??????先入為主理解的分頁和系統中內存內應的分頁

??????1.弄過數據庫數據查找展示,有個數據分頁展示的概念,這個的目的是為了速度、和展示效果上的提升

????? 2.內存的分頁又是怎么回事哪?

???????? (1)加載程序那么內存分配是必不可少的;

???????? (2)配的幾種方法:單一連續、固定分配、動態分配(最先適應、下次適應、最優適應、最壞適應、快速適應)

???????? (3)然動態分配是最理想的狀態,但是動態分配有個問題:

???????????????????????????????????????????????????????????????????????????? 程序的加載內存的碎片化比較嚴重

????????????????????????????????????????????????????????????????????????????? 碎片化后占用內存大的程序分配內存是比較困難的

??????????處理器分頁的目的是為了解決分頁中的碎片化,但是太復雜了就由處理器來做這件事情了

二、認識簡單分頁的模型??

??????? 1.實模式的尋址:段選擇器:偏移量

??????? 2.保護模式尋址:段選擇子:偏移量? 得到真實的基地址+偏移量

??????????????????????????段選擇子=》GDTR/LDTR得到描述符的基地址+選擇子*2^3偏移=》真正的描述符=》真實基地址

??????? 3.段式分頁的尋址模式:

????????????????????????????????????首先分頁模式是建立在保護模式下的

??????????????????????????????????? 保護模式的尋址方式還是用的但是現在他映射的是一個虛擬的內存4G空間

??????????????????????????????????? 每個頁的大小是固定的4KB,占4個字節(頁的物理地址,應該是起始地址)

??????????????????????????????????? 那么這個頁表在內存4G的空間中,占位的描述空間有4M

???????????????????????????問題1:從上面的描述中頁對應的才是真實的物理地址,如何映射?

????????????????????????????????也就是段如何映射到頁?用了多個頁又是如何映射連接起來的;

????????????????????????????????段部件輸出的是線性地址(虛擬地址),因為頁的大小是4KB;

???????????????????????????????地址低12位是偏移量,高20位其實是一個描述符表占位(4字節);用于記錄當前用的頁的位置

???????????????????????????問題2:從上面可以看出段和頁的映射關系?

????????????????????????????????可以隨意映射;頁的映射也可以是間隔開來,也就是碎片的可以連接起來了

?????????????????????????? 問題3:空閑頁是如何標示的?

?

三、頁目錄、頁表、頁

??????? 就好像書本一樣,章節-》目錄-》書名(書的分類)

??????? 頁還是以前的頁;2^20

??????? 頁表首先不和頁是固定對應的關系;但是每個頁表有1024個頁;2^10

??????? 頁目錄有1024個頁表的物理地址;

?????? 問題1:這些信息保存在哪里?怎么加載的?

???????????????? 每個任務都有自己的頁目錄和頁表;

???????????????? 處理器內部,有一個控制寄存器CR3,存放著當前的任務頁目錄的物理地址(頁目錄基址寄存器)

???????????????? 每個任務都有自己的任務狀態(TSS)當任務切換時CR3也隨著更新,指向新任務的頁目錄位置

四、例子

????????書上的例子:段的起始地址:0x00800000??? 界限:0x5000 z字節單位

????????????????????????現在尋址偏移量:0x1050

?????????沒開啟分頁前的地址:基地址+偏移量=真實的物理地址

?????????開啟分頁后:處理器頁部件專門負責線性地址到物理地址的轉換(段部件送的地址+后的虛擬地址)

???????????????????????? 首先將段部件送來的地址分為三部分:高10位 中間10位?低12位

???????????????????????????????????????????????????????????????????? 頁目錄? 頁表???????偏移量

????????????????????????? 頁目錄的物理地址CR3中

???????????????????????? (1)頁目錄索引*4+CR3的地址-》頁目錄中頁表的物理地址

???????????????????????? (2)頁表的物理地址+頁表索引*4-》頁的物理地址-》真是的物理地址+偏移量

??????

?

??????????????????????????

???????????????????????????????????

?????????????????????????

轉載于:https://my.oschina.net/findurl/blog/184414

總結

以上是生活随笔為你收集整理的进入保护模式(三)内存的分页的全部內容,希望文章能夠幫你解決所遇到的問題。

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