linux內(nèi)存虛擬地址映射物理地址
Linux 內(nèi)核給每個(gè)進(jìn)程都提供了一個(gè)獨(dú)立的虛擬地址空間,并且這個(gè)地址空間是連續(xù)的。虛擬地址空間的內(nèi)部又被分為內(nèi)核空間和用戶空間兩部分。不同字長(zhǎng)(也就是單個(gè) CPU 指令可以處理數(shù)據(jù)的最大長(zhǎng)度)的處理器,地址空間的范圍也不同。
其中,所有進(jìn)程的內(nèi)核空間,關(guān)聯(lián)的都是相同的物理內(nèi)存。進(jìn)程切換到內(nèi)核態(tài)后,才可以訪問內(nèi)核空間內(nèi)存。我們下面說到的分段只針對(duì)用戶空間。
有兩種方式管理虛擬地址與物理地址之間的關(guān)系。
1、段式管理(Segment):由段選擇子和段內(nèi)偏移量找到物理地址。
用戶空間從低地址到高地址分別是五種不同的內(nèi)存段。
代碼段(只讀段),包括代碼和常量等。
數(shù)據(jù)段,包括全局變量等。
堆,包括動(dòng)態(tài)分配的內(nèi)存,從低地址開始向上增長(zhǎng)。
文件映射段,包括動(dòng)態(tài)庫、共享內(nèi)存等,從高地址開始向下增長(zhǎng)。(本圖沒有畫出)
棧,包括局部變量和函數(shù)調(diào)用的上下文等。棧的大小是固定的,一般是 8 MB。
分段容易出現(xiàn)碎片,內(nèi)存交換效率低(不容易換出到磁盤)的問題。為了解決這兩個(gè)問題,就出現(xiàn)了內(nèi)存分頁。
2、頁式管理(Paging):虛擬地址分為兩部分,頁號(hào)和頁內(nèi)偏移。
MMU 規(guī)定了一個(gè)內(nèi)存映射的最小單位,也就是頁,通常是 4 KB 大小。為了解決頁表項(xiàng)過多的問題,有多級(jí)頁表和大頁兩種方式。
并不是給進(jìn)程的所有的虛擬內(nèi)存都會(huì)分配物理內(nèi)存,只有那些實(shí)際使用的虛擬內(nèi)存才分配物理內(nèi)存。這叫程序的局部性原理。根據(jù)此原理,為了提高訪問速度,MMU(Memory Manage Unit)里配有一個(gè)硬件:TLB(Translation Lookaside Buffer)。用于緩存進(jìn)程常用頁表。
內(nèi)存分段和內(nèi)存分頁并不是對(duì)立的,他們組合起來使用,通常稱為段頁式內(nèi)存管理。
程序所使用的地址,稱為邏輯地址;
通過段式內(nèi)存管理映射的地址,稱為虛擬地址(線性地址);
通過頁式內(nèi)存管理將線性地址映射成物理地址。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-10.29立即報(bào)名>> 2024德州儀器嵌入式技術(shù)創(chuàng)新發(fā)展研討會(huì)
-
10月31日立即下載>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月14日立即報(bào)名>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
推薦專題
- 1 Intel宣布40年來最重大轉(zhuǎn)型:年底前裁員15000人、拋掉2/3房產(chǎn)
- 2 因美封殺TikTok,字節(jié)股價(jià)骨折!估值僅Meta1/5
- 3 宏山激光重磅發(fā)布行業(yè)解決方案,助力智能制造產(chǎn)業(yè)新飛躍
- 4 國(guó)產(chǎn)AI芯片公司破產(chǎn)!白菜價(jià)拍賣
- 5 具身智能火了,但規(guī)模落地還需時(shí)間
- 6 國(guó)產(chǎn)英偉達(dá)們,抓緊沖刺A股
- 7 三次錯(cuò)失風(fēng)口!OpenAI前員工殺回AI編程賽道,老東家捧金相助
- 8 英特爾賦能智慧醫(yī)療,共創(chuàng)數(shù)字化未來
- 9 英偉達(dá)的麻煩在后頭?
- 10 將“網(wǎng)紅”變成“商品”,AI“爆改”實(shí)力拉滿
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市