天才教育網(wǎng)合作機(jī)構(gòu) > 北京語言培訓(xùn)機(jī)構(gòu) > 北京英語培訓(xùn)機(jī)構(gòu) >

天才領(lǐng)路者

歡迎您!
朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:北京語言培訓(xùn)問答 > 北京英語培訓(xùn)問答 > PTE考試如何找到相對(duì)應(yīng)的pte-pde指針

PTE考試如何找到相對(duì)應(yīng)的pte-pde指針

日期:2019-08-19 17:57:39     瀏覽:202    來源:天才領(lǐng)路者
核心提示: 我們首先明確一下這個(gè)問題也就是說你需要通過線性地址(因?yàn)殚_啟了分頁,這里也可以叫虛擬地址,我們下文都將這樣稱呼,假設(shè)需要找到虛擬地址vaddr)vaddr來找到對(duì)應(yīng)它的PTE指針。 我們知道通過虛擬地址vaddr

  我們首先明確一下這個(gè)問題 也就是說你需要通過線性地址(因?yàn)殚_啟了分頁,這里也可以叫虛擬地址,我們下文都將這樣稱呼,假設(shè)需要找到虛擬地址vaddr)vaddr來找到對(duì)應(yīng)它的PTE指針。   我們知道通過虛擬地址vaddr,我們經(jīng)過頁變化可以找到一個(gè)確定的物理地址phy_vaddr。現(xiàn)在我們想要找到的是指向這個(gè)phy_vaddr的pte指針,由于頁表,頁表項(xiàng)這些都是存在于內(nèi)存中的,所以其對(duì)應(yīng)的是實(shí)在的物理地址。于是我們現(xiàn)在的目的就是:通過一個(gè)虛擬地址得到物理地址。   嗯,聽起來就讓人很激動(dòng)呀?   讓我們先來回顧一下處理器處理 32 位地址的三個(gè)步驟: (1)首先處理高 10位 的 pde索引,從而處理器得到頁表物理地址。 (2)其次處理中間 10 位 的 pte 索引,進(jìn)而處理器得到普通物理頁的物理地址 (3)*是把低 12 位 作為普通物理頁的頁內(nèi)偏移地址,此偏移地址加上物理頁的物理地址,得到的地址之和便是最終的物理地址,處理器到此物理地址上進(jìn)行讀寫操作。也就是說,我們要?jiǎng)?chuàng)造的一個(gè)新的虛擬地址 new vaddr,它經(jīng)過處理器以上三個(gè)步驟的拆分處理,最終會(huì)落到 vaddr 自身所在的 pte 的物理地址上。   *步:高10位的構(gòu)成   那么分析到這里,我們就需要知道一個(gè)知識(shí)點(diǎn):在頁目錄表中,*一個(gè)目錄表項(xiàng)填的是頁目錄表自己的地址。   所以我們?cè)跇?gòu)建新的虛擬地址的時(shí)候,在高10位,我們可以直接讓其指向頁目錄表的*一位,然后本該得到頁表物理地址的我們得到的還是頁目錄表的物理地址。   即圖中Dir我們讓其指向Page Directory的*一項(xiàng),然后我們得到的還是一個(gè)指向Page Directory的指針,而并不是指向Page Table的指針。   由于頁目錄表也是4KB,所以為4*2^10 = 2^12 = 1024,由于其實(shí)下標(biāo)為0,所以*一個(gè)表項(xiàng)為1023,對(duì)應(yīng)的16進(jìn)制為0x3ff,將其左移到高10位后,變?yōu)?xffc00000   第二步:中間10位的構(gòu)成   現(xiàn)在我們的指針是指向頁目錄表的,如果按照之前的規(guī)則的話,我們此時(shí)看圖,應(yīng)該是Table與上一個(gè)結(jié)果相加,得到Physical Address Space的地址,而我們最終想得到的是指向物理地址Phy.Addr的那個(gè)指針,也就是我們想知道的pte指針,那么這一步我們就應(yīng)該找到Page Table的地址。   所以,我們構(gòu)造中間10位的時(shí)候,將原本的Dir作為偏移地址,這樣,通過其與*步我們得到的頁目錄表的地址相加,就可以得到指向Page Table的指針,也就是我們要得到的頁表的地址。

PTE考試如何找到相對(duì)應(yīng)的pte pde指針

  于是中間10位的構(gòu)成為圖中Dir的值  第三步:低12位的構(gòu)成   我們現(xiàn)在已經(jīng)有了指向Page Table的指針了,那我們?nèi)绾握业街赶蛭锢淼刂稰hy.Addr的那個(gè)指針呢?我們可以想一下,初始的時(shí)候我們是通過加上Table的值得到指向物理地址Phy.Addr的指針的,所以我們此時(shí)也是將其作為低12位。   但是這里又有一個(gè)問題了,其為10位,而我們需要的是12位,怎么辦呢?我們通過將其左移2位,即可得到新的地址,即將其值乘以4即可。同樣pde指針也是同理,大家自己可以思考一下哦??

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

如果本頁不是您要找的課程,您也可以百度查找一下: