成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么-創(chuàng)新互聯(lián)

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

我們提供的服務(wù)有:成都網(wǎng)站制作、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、集安ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的集安網(wǎng)站制作公司

分頁(yè)機(jī)制在段機(jī)制之后進(jìn)行,以完成線性—物理地址的轉(zhuǎn)換過(guò)程。段機(jī)制把邏輯地址轉(zhuǎn)換為線性地址,分頁(yè)機(jī)制進(jìn)一步把該線性地址再轉(zhuǎn)換為物理地址。

硬件中的分頁(yè)

分頁(yè)機(jī)制由CR0中的PG位啟用。如PG=1,啟用分頁(yè)機(jī)制,并使用本節(jié)要描述的機(jī)制,把線性地址轉(zhuǎn)換為物理地址。如PG=0,禁用分頁(yè)機(jī)制,直接把段機(jī)制產(chǎn)生的線性地址當(dāng)作物理地址使用。分頁(yè)機(jī)制管理的對(duì)象是固定大小的存儲(chǔ)塊,稱之為頁(yè) (page)。分頁(yè)機(jī)制把整個(gè)線性地址空間及整個(gè)物理地址空間都看成由頁(yè)組成,在線性地址空間中的任何一頁(yè),可以映射為物理地址空間中的任何一頁(yè)(我們把物理空間中的一頁(yè)叫做一個(gè)頁(yè)面或頁(yè)框(page frame))。
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

80386 使用4K字節(jié)大小的頁(yè)。每一頁(yè)都有4K字節(jié)長(zhǎng),并在4K字節(jié)的邊界上對(duì)齊,即每一頁(yè)的起始地址都能被4K整除。因此,80386把4G字節(jié)的線性地址空間,劃分為1G個(gè)頁(yè)面,每頁(yè)有4K字節(jié)大小。分頁(yè)機(jī)制通過(guò)把線性地址空間中的頁(yè),重新定位到物理地址空間來(lái)進(jìn)行管理,因?yàn)槊總€(gè)頁(yè)面的整個(gè)4K字節(jié)作為一個(gè)單位進(jìn)行映射,并且每個(gè)頁(yè)面都對(duì)齊4K字節(jié)的邊界,因此,線性地址的低12位經(jīng)過(guò)分頁(yè)機(jī)制直接地作為物理地址的低12位使用。

為什么使用兩級(jí)頁(yè)表

假設(shè)每個(gè)進(jìn)程都占用了4G的線性地址空間,頁(yè)表共含1M個(gè)表項(xiàng),每個(gè)表項(xiàng)占4個(gè)字節(jié),那么每個(gè)進(jìn)程的頁(yè)表要占據(jù)4M的內(nèi)存空間。為了節(jié)省頁(yè)表占用的空間,我們使用兩級(jí)頁(yè)表。每個(gè)進(jìn)程都會(huì)被分配一個(gè)頁(yè)目錄,但是只有被實(shí)際使用頁(yè)表才會(huì)被分配到內(nèi)存里面。一級(jí)頁(yè)表需要一次分配所有頁(yè)表空間,兩級(jí)頁(yè)表則可以在需要的時(shí)候再分配頁(yè)表空間。

兩級(jí)頁(yè)表結(jié)構(gòu)

兩級(jí)表結(jié)構(gòu)的第一級(jí)稱為頁(yè)目錄,存儲(chǔ)在一個(gè)4K字節(jié)的頁(yè)面中。頁(yè)目錄表共有1K個(gè)表項(xiàng),每個(gè)表項(xiàng)為4個(gè)字節(jié),并指向第二級(jí)表。線性地址的高10位(即位31~位32)用來(lái)產(chǎn)生第一級(jí)的索引,由索引得到的表項(xiàng)中,指定并選擇了1K個(gè)二級(jí)表中的一個(gè)表。

兩級(jí)表結(jié)構(gòu)的第二級(jí)稱為頁(yè)表,也剛好存儲(chǔ)在一個(gè)4K字節(jié)的頁(yè)面中,包含1K個(gè)字節(jié)的表項(xiàng),每個(gè)表項(xiàng)包含一個(gè)頁(yè)的物理基地址。第二級(jí)頁(yè)表由線性地址的中間10 位(即位21~位12)進(jìn)行索引,以獲得包含頁(yè)的物理地址的頁(yè)表項(xiàng),這個(gè)物理地址的高20位與線性地址的低12位形成了最后的物理地址,也就是頁(yè)轉(zhuǎn)化過(guò)程輸出的物理地址。
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

頁(yè)目錄項(xiàng)
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

第31~12位是20位頁(yè)表地址,由于頁(yè)表地址的低12位總為0,所以用高20位指出32位頁(yè)表地址就可以了。因此,一個(gè)頁(yè)目錄最多包含1024個(gè)頁(yè)表地址。

第0位是存在位,如果P=1,表示頁(yè)表地址指向的該頁(yè)在內(nèi)存中,如果P=0,表示不在內(nèi)存中。

第1位是讀/寫位,第2位是用戶/管理員位,這兩位為頁(yè)目錄項(xiàng)提供硬件保護(hù)。當(dāng)特權(quán)級(jí)為3的進(jìn)程要想訪問(wèn)頁(yè)面時(shí),需要通過(guò)頁(yè)保護(hù)檢查,而特權(quán)級(jí)為0的進(jìn)程就可以繞過(guò)頁(yè)保護(hù)。

第3位是PWT(Page Write-Through)位,表示是否采用寫透方式,寫透方式就是既寫內(nèi)存(RAM)也寫高速緩存,該位為1表示采用寫透方式

第4位是PCD(Page Cache Disable)位,表示是否啟用高速緩存,該位為1表示啟用高速緩存。

第5位是訪問(wèn)位,當(dāng)對(duì)頁(yè)目錄項(xiàng)進(jìn)行訪問(wèn)時(shí),A位=1。

第7位是Page Size標(biāo)志,只適用于頁(yè)目錄項(xiàng)。如果置為1,頁(yè)目錄項(xiàng)指的是4MB的頁(yè)面,請(qǐng)看后面的擴(kuò)展分頁(yè)。

第9~11位由操作系統(tǒng)專用,Linux也沒(méi)有做特殊之用。

頁(yè)面項(xiàng)
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

80386的每個(gè)頁(yè)目錄項(xiàng)指向一個(gè)頁(yè)表,頁(yè)表最多含有1024個(gè)頁(yè)面項(xiàng),每項(xiàng)4個(gè)字節(jié),包含頁(yè)面的起始地址和有關(guān)該頁(yè)面的信息。頁(yè)面的起始地址也是4K的整數(shù)倍,所以頁(yè)面的低12位也留作它用。

第31~12位是20位物理頁(yè)面地址,除第6位外第0~5位及9~11位的用途和頁(yè)目錄項(xiàng)一樣,第6位是頁(yè)面項(xiàng)獨(dú)有的,當(dāng)對(duì)涉及的頁(yè)面進(jìn)行寫操作時(shí),D位被置1。

4GB的內(nèi)存只有一個(gè)頁(yè)目錄,它最多有1024個(gè)頁(yè)目錄項(xiàng),每個(gè)頁(yè)目錄項(xiàng)又含有1024個(gè)頁(yè)面項(xiàng),因此,內(nèi)存一共可以分成1024×1024=1M個(gè)頁(yè)面。由于每個(gè)頁(yè)面為4K個(gè)字節(jié),所以,存儲(chǔ)器的大小正好最多為4GB。

線性地址到物理地址的轉(zhuǎn)換
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

32位線性地址到物理地址的轉(zhuǎn)換

1.CR3包含著頁(yè)目錄的起始地址,用32位線性地址的高10位A31~A22作為頁(yè)目錄的頁(yè)目錄項(xiàng)的索引,將它乘以4,與CR3中的頁(yè)目錄的起始地址相加,形成相應(yīng)頁(yè)表的地址。

2.從指定的地址中取出32位頁(yè)目錄項(xiàng),它的低12位為0,這32位是頁(yè)表的起始地址。用32位線性地址中的A21~A12位作為頁(yè)表中的頁(yè)面的索引,將它乘以4,與頁(yè)表的起始地址相加,形成32位頁(yè)面地址。

3.將A11~A0作為相對(duì)于頁(yè)面地址的偏移量,與32位頁(yè)面地址相加,形成32位物理地址。

擴(kuò)展分頁(yè)

從奔騰處理器開(kāi)始,Intel微處理器引進(jìn)了擴(kuò)展分頁(yè),它允許頁(yè)的大小為4MB。
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

在擴(kuò)展分頁(yè)的情況下,分頁(yè)機(jī)制把32位線性地址分成兩個(gè)域:高10位的目錄域和其余22位的偏移量。

頁(yè)面高速緩存
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

由于在分頁(yè)情況下,每次存儲(chǔ)器訪問(wèn)都要存取兩級(jí)頁(yè)表,這就大大降低了訪問(wèn)速度。所以,為了提高速度,在386中設(shè)置一個(gè)最近存取頁(yè)面的高速緩存硬件機(jī)制,它 自動(dòng)保持32項(xiàng)處理器最近使用的頁(yè)面地址,因此,可以覆蓋128K字節(jié)的存儲(chǔ)器地址。當(dāng)進(jìn)行存儲(chǔ)器訪問(wèn)時(shí),先檢查要訪問(wèn)的頁(yè)面是否在高速緩存中,如果在, 就不必經(jīng)過(guò)兩級(jí)訪問(wèn)了,如果不在,再進(jìn)行兩級(jí)訪問(wèn)。平均來(lái)說(shuō),頁(yè)面高速緩存大約有98%的命中率,也就是說(shuō)每次訪問(wèn)存儲(chǔ)器時(shí),只有2%的情況必須訪問(wèn)兩級(jí)分頁(yè)機(jī)構(gòu)。這就大大加快了速度。

Linux中的分頁(yè)機(jī)制

Linux使用了一個(gè)適合32位和64位系統(tǒng)的分頁(yè)機(jī)制。
Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么

頁(yè)全局目錄

頁(yè)頂級(jí)目錄

頁(yè)中間目錄

頁(yè)表

頁(yè)全局目錄包含若干頁(yè)上級(jí)目錄的地址,頁(yè)上級(jí)目錄又依次包含若干頁(yè)中間目錄的地址,而頁(yè)中間目錄又包含若干頁(yè)表的地址。每一個(gè)頁(yè)表項(xiàng)指向一個(gè)頁(yè)框。線性地址因此被分成五個(gè)部分。圖中沒(méi)有顯示位數(shù),因?yàn)槊恳徊糠值拇笮∨c具體的計(jì)算機(jī)體系結(jié)構(gòu)有關(guān)。

對(duì)于沒(méi)有啟用物理地址擴(kuò)展的32位系統(tǒng),兩級(jí)頁(yè)表已經(jīng)足夠了。從本質(zhì)上說(shuō),Linux通過(guò)使“頁(yè)上級(jí)目錄”位和“頁(yè)中間目錄”位全為0,徹底取消了頁(yè)上級(jí)目錄和頁(yè)中間目錄字段。不過(guò),頁(yè)上級(jí)目錄和頁(yè)中間目錄在指針序列中的位置被保留,以便同樣的代碼在32位系統(tǒng)和64位系統(tǒng)下都能使用。內(nèi)核為頁(yè)上級(jí)目錄和頁(yè)中間目錄保留了一個(gè)位置,這是通過(guò)把它們的頁(yè)目錄項(xiàng)數(shù)設(shè)置為1,并把這兩個(gè)目錄項(xiàng)映射到頁(yè)全局目錄的一個(gè)合適的目錄項(xiàng)而實(shí)現(xiàn)的。

啟用了物理地址擴(kuò)展的32 位系統(tǒng)使用了三級(jí)頁(yè)表。Linux的頁(yè)全局目錄對(duì)應(yīng)80×86 的頁(yè)目錄指針表(PDPT),取消了頁(yè)上級(jí)目錄,頁(yè)中間目錄對(duì)應(yīng)80×86的頁(yè)目錄,Linux的頁(yè)表對(duì)應(yīng)80×86的頁(yè)表。

最后,64位系統(tǒng)使用三級(jí)還是四級(jí)分頁(yè)取決于硬件對(duì)線性地址的位的劃分。

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

本文題目:Linux系統(tǒng)內(nèi)存尋址的分頁(yè)機(jī)制是什么-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://jinyejixie.com/article42/disshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、云服務(wù)器關(guān)鍵詞優(yōu)化、外貿(mào)建站、營(yíng)銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
大余县| 辽中县| 襄樊市| 常山县| 临泽县| 仪征市| 永和县| 普格县| 安图县| 嘉义市| 邓州市| 和田市| 三明市| 湘潭县| 霍林郭勒市| 屏东市| 扎赉特旗| 乃东县| 卢湾区| 淅川县| 襄樊市| 得荣县| 察隅县| 镇康县| 蓝山县| 蕲春县| 虎林市| 茶陵县| 桐柏县| 彩票| 九龙城区| 安塞县| 县级市| 湘潭市| 乌兰浩特市| 利川市| 香港| 建德市| 宾川县| 扎赉特旗| 互助|