真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

分頁(yè)機(jī)制建立的方法步驟

這篇文章主要講解了“分頁(yè)機(jī)制建立的方法步驟”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“分頁(yè)機(jī)制建立的方法步驟”吧!

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都數(shù)千家客戶提供網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站開(kāi)發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營(yíng)銷(xiāo)型網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)建站。

分頁(yè)機(jī)制建立的方法步驟

1、邏輯地址,線性地址,虛擬地址,物理地址傻傻分不清?

(1)邏輯地址

在IA-32架構(gòu)下,分段是必須的,而分頁(yè)并不是必須的。不論分頁(yè)與否,訪問(wèn)內(nèi)存都必須采用“段基址:段內(nèi)偏移地址”的策略。 因此訪問(wèn)內(nèi)存需要16&32共48位的地址信息,這便是邏輯地址,高12位為段選擇子,后面32位為段內(nèi)偏移地址。

(2)線性地址

使用選擇子索引到段描述符取得32位的段基址后與邏輯地址內(nèi)的32位段內(nèi)偏移地址相加后得到一個(gè)32位的地址信息,這便是線性地址。

(3)虛擬地址

如果不啟用分頁(yè)機(jī)制,線性地址就是物理地址,而如果啟用分頁(yè)機(jī)制的話,線性地址又叫做虛擬地址。

(4)物理地址

物理地址,不用多說(shuō),內(nèi)存單元的真正地址

2、什么是分頁(yè)?

分頁(yè)本質(zhì)上是將各種大小不同的內(nèi)存段拆分成大小相同的內(nèi)存塊(通常4KB),以便進(jìn)行內(nèi)存管理的一種機(jī)制。

3、為什么要分頁(yè)?

主要是便于內(nèi)存管理,解決純分段情況下應(yīng)用程序過(guò)多,或者內(nèi)存碎片過(guò)多而無(wú)法容納新進(jìn)程。又或者重新加載某內(nèi)存段(之前交換出去的)時(shí)找不到合適的內(nèi)存區(qū)域的問(wèn)題。 造成這情況的原因:只分段的情況下,線性地址就是物理地址,兩者都是連續(xù)的,不夠靈活,不可能每次都能找到合適的內(nèi)存區(qū)域。而分頁(yè)的話,線性地址需要進(jìn)一步轉(zhuǎn)化為物理地址,線性地址是連續(xù)的,但是物理地址可以不連續(xù),這樣的話尋找合適的內(nèi)存區(qū)域時(shí)就很靈活,解決了上述問(wèn)題。

4、分頁(yè)機(jī)制?(基于32位系統(tǒng))

(1)頁(yè)表

分頁(yè)機(jī)制的核心功能是實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)化,如何轉(zhuǎn)化呢?靠的是頁(yè)表將虛擬地址和物理地址建立起映射關(guān)系,有了這映射關(guān)系,便可將虛擬地址轉(zhuǎn)化成實(shí)際的物理地址。 總的思想是:將虛擬地址的高20位視作索引號(hào),在頁(yè)表中進(jìn)行索引頁(yè)表項(xiàng),得到物理基址,將其與虛擬地址的低12位偏移地址相加后便得到最后的物理地址。這也是一級(jí)頁(yè)表下虛擬地址轉(zhuǎn)化為物理地址的方式,然而一級(jí)頁(yè)表并不適用,一般會(huì)使用多級(jí)頁(yè)表。

(2)頁(yè)目錄項(xiàng),頁(yè)表項(xiàng)

頁(yè)目錄項(xiàng)和頁(yè)表項(xiàng)的結(jié)構(gòu)以及屬性位簡(jiǎn)介如下: 分頁(yè)機(jī)制建立的方法步驟

(3)二級(jí)頁(yè)表及地址轉(zhuǎn)換

二級(jí)頁(yè)表下虛擬地址到物理地址轉(zhuǎn)化的原理與一級(jí)頁(yè)表下轉(zhuǎn)化的原理相同,只是多進(jìn)行了一步轉(zhuǎn)化。具體流程先看圖: 分頁(yè)機(jī)制建立的方法步驟 第一步:使用段選擇子去GDT中索引段描述符,“取出”段基址,段部件將段基址與偏移地址相加得到線性地址,也即虛擬地址。 第二步:將虛擬地址的高10位作為索引號(hào),索引頁(yè)目錄表中的頁(yè)目錄項(xiàng),具體操作:將虛擬地址高10位乘4加上CR3中的頁(yè)目錄物理地址,得到所要的頁(yè)目錄項(xiàng)的地址,即a+0x44。 第三步:將虛擬地址的中10位作為索引號(hào)索引二級(jí)頁(yè)表中的頁(yè)表項(xiàng),具體操作:“取出”頁(yè)目錄項(xiàng)中的20位頁(yè)表物理地址,即0x1000。再加上虛擬地址中10位乘4,得到物理頁(yè)地址,即0x1000+0x2344。 第四步:虛擬地址的后12位偏移地址和第三步得到的物理頁(yè)地址相加得到最后實(shí)際的物理地址。如圖中所示:0xfa000+0x567=0xfa567為最后target的物理地址。

以上就是二級(jí)頁(yè)表下地址轉(zhuǎn)化的過(guò)程,三級(jí)乃至多級(jí)頁(yè)表下地址轉(zhuǎn)化的方法都一樣,不過(guò)是多重復(fù)了第三步的操作。

注:分頁(yè)機(jī)制的作用是將虛擬地址轉(zhuǎn)化為物理地址,但在實(shí)際轉(zhuǎn)化的過(guò)程中相當(dāng)于在關(guān)閉分頁(yè)機(jī)制條件下進(jìn)行的。即地址轉(zhuǎn)化的過(guò)程中涉及的地址(CR3中頁(yè)目錄地址,頁(yè)目錄項(xiàng)地址,頁(yè)表項(xiàng)地址)都是實(shí)際的物理地址,不會(huì)被分頁(yè)機(jī)制繼續(xù)轉(zhuǎn)化,否則的話會(huì)無(wú)限遞歸下去。

(4)為什么一級(jí)頁(yè)表不適用?

1個(gè)4B大小的頁(yè)表項(xiàng)指向4K的頁(yè)面,映射整個(gè)4G空間的話需要4G / 4K = 1M 個(gè)頁(yè)表項(xiàng),因此整個(gè)頁(yè)表大小為4M。一個(gè)進(jìn)程便需要4M大小的頁(yè)表,如果說(shuō)有很多進(jìn)程則會(huì)花費(fèi)許多內(nèi)存來(lái)儲(chǔ)存頁(yè)表。再者這還只是32位的系統(tǒng),內(nèi)存空間只有2^32^B = 4GB,若是64位系統(tǒng),則需要 2^64^ / 2^12^ = 252個(gè)頁(yè)表項(xiàng) ,那簡(jiǎn)直不可想象。

(5)多級(jí)頁(yè)表為什么比一級(jí)頁(yè)表省空間?

首先頁(yè)表就是一個(gè)整體,一級(jí)頁(yè)表下4M(32位)的頁(yè)表就是一個(gè)整體,需要全部創(chuàng)建,所以每個(gè)進(jìn)程都要有4M的頁(yè)表,這樣的話頁(yè)表所占用的空間的確很多。 而多級(jí)頁(yè)表只會(huì)為進(jìn)程實(shí)際使用的那部分虛擬內(nèi)存建立頁(yè)表,只用一級(jí)頁(yè)表需要建立所有的頁(yè)表項(xiàng),而多級(jí)頁(yè)表只建立了需要的頁(yè)表,如此當(dāng)然更省空間。 那為什么多級(jí)頁(yè)表下就只需要建立需要的那部分頁(yè)表呢? 多級(jí)頁(yè)表相當(dāng)于對(duì)一級(jí)頁(yè)表再次進(jìn)行分頁(yè),將一張大頁(yè)表拆成了多張小頁(yè)表,以后想用幾張便做幾張,這樣就很靈活而且省空間。 一些操作系統(tǒng)虛擬內(nèi)存管理系統(tǒng)也是這么實(shí)現(xiàn)的,只有某個(gè)虛擬地址需要一張新頁(yè)表來(lái)映射時(shí),才會(huì)為它分配物理頁(yè),這就做到了需要才建立的原則,因而比一級(jí)頁(yè)表更省空間。

5、如何建立分頁(yè)機(jī)制?(大致思路)

1、建立初始頁(yè)表,建立頁(yè)表就是建立映射關(guān)系,建立映射關(guān)系就是添加頁(yè)表項(xiàng)。操作系統(tǒng)內(nèi)核的虛擬地址在0xc0000000以上,而最開(kāi)始我們工作的地址是在物理內(nèi)存的低端1M,所以這里的映射關(guān)系為將物理內(nèi)存的低端1M映射到虛擬地址空間的0xc0000000以上。 2、GDT,內(nèi)核棧等等都應(yīng)放在內(nèi)核中,需要修改其地址值,還有一些描述符中的段基址也需要修改,因?yàn)樵瓉?lái)的地址是實(shí)際的物理地址,啟用分頁(yè)后應(yīng)采用虛擬地址。 3、把頁(yè)目錄地址賦給CR3寄存器。 4、將CR0寄存器的PE位置1,開(kāi)啟分頁(yè)機(jī)制。 5、重新加載GDT。

至此便啟用了分頁(yè)機(jī)制,隨后系統(tǒng)運(yùn)行中出現(xiàn)的地址都是虛擬地址,需要經(jīng)過(guò)上述圖中所示的轉(zhuǎn)化來(lái)獲得實(shí)際的物理地址。

5、分頁(yè)的缺點(diǎn)?如何解決?

分頁(yè)雖然很靈活,但是需要做多次計(jì)算,多次訪問(wèn)內(nèi)存。每一個(gè)虛擬地址都要重復(fù)上述操作的話,處理器的負(fù)擔(dān)過(guò)重,時(shí)間也花費(fèi)過(guò)多。 如何解決呢? 利用局部性原理為地址轉(zhuǎn)換建立了一個(gè)高速緩存,TLB,俗稱快表。有了TLB,處理器在尋址之前會(huì)先利用虛擬地址的高20位在TLB中查找相應(yīng)條目,如果命中,則返回虛擬地址所映射的物理頁(yè)地址,否則便去查詢頁(yè)表,找到相應(yīng)物理頁(yè)地址后再更新TLB。

感謝各位的閱讀,以上就是“分頁(yè)機(jī)制建立的方法步驟”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)分頁(yè)機(jī)制建立的方法步驟這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


分享標(biāo)題:分頁(yè)機(jī)制建立的方法步驟
文章位置:http://weahome.cn/article/popgde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部