linux內(nèi)存虛擬地址映射物理地址
Linux 內(nèi)核給每個進(jìn)程都提供了一個獨(dú)立的虛擬地址空間,并且這個地址空間是連續(xù)的。虛擬地址空間的內(nèi)部又被分為內(nèi)核空間和用戶空間兩部分。不同字長(也就是單個 CPU 指令可以處理數(shù)據(jù)的最大長度)的處理器,地址空間的范圍也不同。
其中,所有進(jìn)程的內(nèi)核空間,關(guān)聯(lián)的都是相同的物理內(nèi)存。進(jìn)程切換到內(nèi)核態(tài)后,才可以訪問內(nèi)核空間內(nèi)存。我們下面說到的分段只針對用戶空間。
有兩種方式管理虛擬地址與物理地址之間的關(guān)系。
1、段式管理(Segment):由段選擇子和段內(nèi)偏移量找到物理地址。
用戶空間從低地址到高地址分別是五種不同的內(nèi)存段。
代碼段(只讀段),包括代碼和常量等。
數(shù)據(jù)段,包括全局變量等。
堆,包括動態(tài)分配的內(nèi)存,從低地址開始向上增長。
文件映射段,包括動態(tài)庫、共享內(nèi)存等,從高地址開始向下增長。(本圖沒有畫出)
棧,包括局部變量和函數(shù)調(diào)用的上下文等。棧的大小是固定的,一般是 8 MB。
分段容易出現(xiàn)碎片,內(nèi)存交換效率低(不容易換出到磁盤)的問題。為了解決這兩個問題,就出現(xiàn)了內(nèi)存分頁。
2、頁式管理(Paging):虛擬地址分為兩部分,頁號和頁內(nèi)偏移。
MMU 規(guī)定了一個內(nèi)存映射的最小單位,也就是頁,通常是 4 KB 大小。為了解決頁表項(xiàng)過多的問題,有多級頁表和大頁兩種方式。
并不是給進(jìn)程的所有的虛擬內(nèi)存都會分配物理內(nèi)存,只有那些實(shí)際使用的虛擬內(nèi)存才分配物理內(nèi)存。這叫程序的局部性原理。根據(jù)此原理,為了提高訪問速度,MMU(Memory Manage Unit)里配有一個硬件:TLB(Translation Lookaside Buffer)。用于緩存進(jìn)程常用頁表。
內(nèi)存分段和內(nèi)存分頁并不是對立的,他們組合起來使用,通常稱為段頁式內(nèi)存管理。
程序所使用的地址,稱為邏輯地址;
通過段式內(nèi)存管理映射的地址,稱為虛擬地址(線性地址);
通過頁式內(nèi)存管理將線性地址映射成物理地址。

發(fā)表評論
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
7月8日立即報(bào)名>> 【在線會議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動力電池技術(shù)應(yīng)用大會
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會2025(第六屆)機(jī)器人及智能工廠展
-
免費(fèi)參會立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
- 3 一文看懂視覺語言動作模型(VLA)及其應(yīng)用
- 4 “支付+”時代,支付即生態(tài) | 2025中國跨境支付十大趨勢
- 5 中國最具實(shí)力AI公司TOP10
- 6 特斯拉Robotaxi上路,馬斯克端上畫了十年的餅
- 7 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 8 AI的夏天:第四范式VS云從科技VS地平線機(jī)器人
- 9 張勇等人退出阿里合伙人
- 10 深圳跑出40億超級隱形冠軍:賣機(jī)器人年入6.1億,港股上市