欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

CPU訪問內(nèi)存原理和分頁管理

2021-03-07    分類: 網(wǎng)站建設(shè)

內(nèi)存管理可以說是一個(gè)比較難學(xué)的模塊,之所以比較難學(xué)。一是內(nèi)存管理涉及到硬件的實(shí)現(xiàn)原理和軟件的復(fù)雜算法,二是網(wǎng)上關(guān)于內(nèi)存管理的解釋有太多錯(cuò)誤的解釋。希望可以做個(gè)內(nèi)存管理的系列,從硬件實(shí)現(xiàn)到底層內(nèi)存分配算法,再從內(nèi)核分配算法到應(yīng)用程序內(nèi)存劃分,一直到內(nèi)存和硬盤如何交互等,徹底理解內(nèi)存管理的整個(gè)脈絡(luò)框架。本節(jié)主要講解硬件原理和分頁管理。

CPU通過MMU訪問內(nèi)存

我們先來看一張圖:


從圖中可以清晰地看出,CPU、MMU、DDR 這三部分在硬件上是如何分布的。首先 CPU 在訪問內(nèi)存的時(shí)候都需要通過 MMU 把虛擬地址轉(zhuǎn)化為物理地址,然后通過總線訪問內(nèi)存。MMU 開啟后 CPU 看到的所有地址都是虛擬地址,CPU 把這個(gè)虛擬地址發(fā)給 MMU 后,MMU 會(huì)通過頁表在頁表里查出這個(gè)虛擬地址對(duì)應(yīng)的物理地址是什么,從而去訪問外面的 DDR(內(nèi)存條)。

所以搞懂了 MMU 如何把虛擬地址轉(zhuǎn)化為物理地址也就明白了 CPU 是如何通過 MMU 來訪問內(nèi)存的。

MMU 是通過頁表把虛擬地址轉(zhuǎn)換成物理地址,頁表是一種特殊的數(shù)據(jù)結(jié)構(gòu),放在系統(tǒng)空間的頁表區(qū)存放邏輯頁與物理頁幀的對(duì)應(yīng)關(guān)系,每一個(gè)進(jìn)程都有一個(gè)自己的頁表。

CPU 訪問的虛擬地址可以分為:p(頁號(hào)),用來作為頁表的索引;d(頁偏移),該頁內(nèi)的地址偏移。現(xiàn)在我們假設(shè)每一頁的大小是 4KB,而且頁表只有一級(jí),那么頁表長成下面這個(gè)樣子(頁表的每一行是32個(gè) bit,前20 bit 表示頁號(hào) p,后面12 bit 表示頁偏移 d):


CPU,虛擬地址,頁表和物理地址的關(guān)系如下圖:


頁表包含每頁所在物理內(nèi)存的基地址,這些基地址與頁偏移的組合形成物理地址,就可送交物理單元。

上面我們發(fā)現(xiàn),如果采用一級(jí)頁表的話,每個(gè)進(jìn)程都需要1個(gè)4MB的頁表(假如虛擬地址空間為32位(即4GB)、每個(gè)頁面映射4KB以及每條頁表項(xiàng)占4B,則進(jìn)程需要1M個(gè)頁表項(xiàng)(4GB / 4KB = 1M),即頁表(每個(gè)進(jìn)程都有一個(gè)頁表)占用4MB(1M * 4B = 4MB)的內(nèi)存空間)。然而對(duì)于大多數(shù)程序來說,其使用到的空間遠(yuǎn)未達(dá)到4GB,何必去映射不可能用到的空間呢?也就是說,一級(jí)頁表覆蓋了整個(gè)4GB虛擬地址空間,但如果某個(gè)一級(jí)頁表的頁表項(xiàng)沒有被用到,也就不需要?jiǎng)?chuàng)建這個(gè)頁表項(xiàng)對(duì)應(yīng)的二級(jí)頁表了,即可以在需要時(shí)才創(chuàng)建二級(jí)頁表。做個(gè)簡單的計(jì)算,假設(shè)只有20%的一級(jí)頁表項(xiàng)被用到了,那么頁表占用的內(nèi)存空間就只有0.804MB(1K * 4B + 0.2 * 1K * 1K * 4B = 0.804MB)。除了在需要的時(shí)候創(chuàng)建二級(jí)頁表外,還可以通過將此頁面從磁盤調(diào)入到內(nèi)存,只有一級(jí)頁表在內(nèi)存中,二級(jí)頁表僅有一個(gè)在內(nèi)存中,其余全在磁盤中(雖然這樣效率非常低),則此時(shí)頁表占用了8KB(1K * 4B + 1 * 1K * 4B = 8KB),對(duì)比上一步的0.804MB,占用空間又縮小了好多倍!總而言之,采用多級(jí)頁表可以節(jié)省內(nèi)存。


二級(jí)頁表就是將頁表再分頁。仍以之前的32位系統(tǒng)為例,一個(gè)邏輯地址被分為20位的頁碼和12位的頁偏移d。因?yàn)橐獙?duì)頁表進(jìn)行再分頁,該頁號(hào)可分為10位的頁碼p1和10位的頁偏移p2。其中p1用來訪問外部頁表的索引,而p2是是外部頁表的頁偏移。


網(wǎng)頁標(biāo)題:CPU訪問內(nèi)存原理和分頁管理
標(biāo)題來源:http://www.aaarwkj.com/news/104763.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、小程序開發(fā)、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、外貿(mào)建站網(wǎng)站制作

廣告

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

外貿(mào)網(wǎng)站制作
亚洲综合一区二区精品久久| 亚洲一区麻豆文化传媒| 亚洲精品中文字幕乱码三区91| 国产精精精精品欧美日韩| 久久精品国产亚洲av高清一区| 欧亚日韩精品一区二区在线| 国产精品福利午夜在线| 日本免费在线不卡一区二区| 亚洲中文字幕av天堂久久| 少妇欧美日韩精品在线观看| av全欧国男人在线天堂| 一区二区三区在线观看淫| 国产原创传媒在线观看| 国产精品国产精品国产| 国产免费高清av在线| 日本午夜精品在线观看| 欧美日韩国产成人一区| 特级特色生活片免费看| 黄色片在线观看中文字幕| 亚洲色图视频免费观看| 日本欧美国产一区二区| 中文字幕免费不卡一区| 亚洲天堂av福利在线观看| 91九色国产老熟女乱子| 人人爽久久爱夜夜躁一区| 亚洲一区二区日本乱码| av电影网站中文字幕| 蜜桃臀内射一区二区三区| 丁香六月色婷婷亚洲激情| 日本二区三区在线视频| 久久精品国产视频在热| 亚洲成人不卡一区二区三区| 亚洲国产精品久久久久久99| 国内成人午夜激情视频| 少妇人妻偷人精品系列| 日韩不卡高清免费在线视频| 久久久人妻精品一区二区三区四区 | 69久久精品费精品国产| 国产成年人拍拍免费视频| 精品毛片av一区二区三区| 一区二区三区四区蜜桃av|