首页
教育
美食
健康
数码
家居
科技
汽車
旅遊
情感
寵物
娛樂
民俗
知識
圖文
健康
品牌
教育
遊戲
手抄報
簡筆畫
tft每日頭條
>
生活
>
linux虛拟内存與物理内存映射
linux虛拟内存與物理内存映射
生活
更新时间:2026-03-12 11:38:02
讓我們看下虛拟内存:
第一層理解
每個進程都有自己獨立的4G内存空間,各個進程的内存空間具有類似的結構
一個新進程建立的時候,将會建立起自己的内存空間,此進程的數據,代碼等從磁盤拷貝到自己的進程空間,哪些數據在哪裡,都由進程控制表中的task_struct記錄,task_struct中記錄中一條鍊表,記錄中内存空間的分配情況,哪些地址有數據,哪些地址無數據,哪些可讀,哪些可寫,都可以通過這個鍊表記錄
每個進程已經分配的内存空間,都與對應的磁盤空間映射
問題:
計算機明明沒有那麼多内存(n個進程的話就需要n*4G)内存
建立一個進程,就要把磁盤上的程序文件拷貝到進程對應的内存中去,對于一個程序對應的多個進程這種情況,浪費内存!
第二層理解
每個進程的4G内存空間隻是虛拟内存空間,每次訪問内存空間的某個地址,都需要把地址翻譯為實際物理内存地址
所有進程共享同一物理内存,每個進程隻把自己目前需要的虛拟内存空間映射并存儲到物理内存上。
進程要知道哪些内存地址上的數據在物理内存上,哪些不在,還有在物理内存上的哪裡,需要用頁表來記錄
頁表的每一個表項分兩部分,第一部分記錄此頁是否在物理内存上,第二部分記錄物理内存頁的地址(如果在的話)
當進程訪問某個虛拟地址,去看頁表,如果發現對應的數據不在物理内存中,則缺頁異常
缺頁異常的處理過程,就是把進程需要的數據從磁盤上拷貝到物理内存中,如果内存已經滿了,沒有空地方了,那就找一個頁覆蓋,當然如果被覆蓋的頁曾經被修改過,需要将此頁寫回磁盤
總結:
優點:
既然每個進程的内存空間都是一緻而且固定的,所以鍊接器在鍊接可執行文件時,可以設定内存地址,而不用去管這些數據最終實際的内存地址,這是有獨立内存空間的好處
當不同的進程使用同樣的代碼時,比如庫文件中的代碼,物理内存中可以隻存儲一份這樣的代碼,不同的進程隻需要把自己的虛拟内存映射過去就可以了,節省内存
在程序需要分配連續的内存空間的時候,隻需要在虛拟内存空間分配連續空間,而不需要實際物理内存的連續空間,可以利用碎片。
另外,事實上,在每個進程創建加載時,内核隻是為進程“創建”了虛拟内存的布局,具體就是初始化進程控制表中内存相關的鍊表,實際上并不立即就把虛拟内存對應位置的程序數據和代碼(比如.text .data段)拷貝到物理内存中,隻是建立好虛拟内存和磁盤文件之間的映射就好(叫做存儲器映射),等到運行到對應的程序時,才會通過缺頁異常,來拷貝數據。還有進程運行過程中,要動态分配内存,比如malloc時,也隻是分配了虛拟内存,即為這塊虛拟内存對應的頁表項做相應設置,當進程真正訪問到此數據時,才引發缺頁異常。
補充理解:
虛拟存儲器涉及三個概念: 虛拟存儲空間,磁盤空間,内存空間
可以認為虛拟空間都被映射到了磁盤空間中,(事實上也是按需要映射到磁盤空間上,通過mmap),并且由頁表記錄映射位置,當訪問到某個地址的時候,通過頁表中的有效位,可以得知此數據是否在内存中,如果不是,則通過缺頁異常,将磁盤對應的數據拷貝到内存中,如果沒有空閑内存,則選擇犧牲頁面,替換其他頁面。
mmap是用來建立從虛拟空間到磁盤空間的映射的,可以将一個虛拟空間地址映射到一個磁盤文件上,當不設置這個地址時,則由系統自動設置,函數返回對應的内存地址(虛拟地址),當訪問這個地址的時候,就需要把磁盤上的内容拷貝到内存了,然後就可以讀或者寫,最後通過manmap可以将内存上的數據換回到磁盤,也就是解除虛拟空間和内存空間的映射,這也是一種讀寫磁盤文件的方法,也是一種進程共享數據的方法 共享内存
接下來讨論下物理内存:
在内核态申請内存比在用戶态申請内存要更為直接,它沒有采用用戶态那種延遲分配内存技術。内核認為一旦有内核函數申請内存,那麼就必須立刻滿足該申請内存的請求,并且這個請求一定是正确合理的。相反,對于用戶态申請内存的請求,内核總是盡量延後分配物理内存,用戶進程總是先獲得一個虛拟内存區的使用權,最終通過缺頁異常獲得一塊真正的物理内存。
物理内存的内核映射
IA32架構中内核虛拟地址空間隻有1GB大小(從3GB到4GB),因此可以直接将1GB大小的物理内存(即常規内存)映射到内核地址空間,但超出1GB大小的物理内存(即高端内存)就不能映射到内核空間。為此,内核采取了下面的方法使得内核可以使用所有的物理内存。
高端内存不能全部映射到内核空間,也就是說這些物理内存沒有對應的線性地址。不過,内核為每個物理頁框都分配了對應的頁框描述符,所有的頁框描述符都保存在mem_map數組中,因此每個頁框描述符的線性地址都是固定存在的。内核此時可以使用alloc_pages()和alloc_page()來分配高端内存,因為這些函數返回頁框描述符的線性地址。
内核地址空間的後128MB專門用于映射高端内存,否則,沒有線性地址的高端内存不能被内核所訪問。這些高端内存的内核映射顯然是暫時映射的,否則也隻能映射128MB的高端内存。當内核需要訪問高端内存時就臨時在這個區域進行地址映射,使用完畢之後再用來進行其他高端内存的映射。
由于要進行高端内存的内核映射,因此直接能夠映射的物理内存大小隻有896MB,該值保存在high_memory中。内核地址空間的線性地址區間如下圖所示:
從圖中可以看出,内核采用了三種機制将高端内存映射到内核空間:永久内核映射,固定映射和vmalloc機制。
物理内存管理機制
基于物理内存在内核空間中的映射原理,物理内存的管理方式也有所不同。内核中物理内存的管理機制主要有夥伴算法,slab高速緩存和vmalloc機制。其中夥伴算法和slab高速緩存都在物理内存映射區分配物理内存,而vmalloc機制則在高端内存映射區分配物理内存。
夥伴算法
夥伴算法負責大塊連續物理内存的分配和釋放,以頁框為基本單位。該機制可以避免外部碎片。
per-CPU頁框高速緩存
内核經常請求和釋放單個頁框,該緩存包含預先分配的頁框,用于滿足本地CPU發出的單一頁框請求。
slab緩存
slab緩存負責小塊物理内存的分配,并且它也作為高速緩存,主要針對内核中經常分配并釋放的對象。
vmalloc機制
vmalloc機制使得内核通過連續的線性地址來訪問非連續的物理頁框,這樣可以最大限度的使用高端物理内存。
物理内存的分配
内核發出内存申請的請求時,根據内核函數調用接口将啟用不同的内存分配器。
分區頁框分配器
分區頁框分配器 (zoned page frame allocator) ,處理對連續頁框的内存分配請求。分區頁框管理器分為兩大部分:前端的管理區分配器和夥伴系統,如下圖:
管理區分配器負責搜索一個能滿足請求頁框塊大小的管理區。在每個管理區中,具體的頁框分配工作由夥伴系統負責。為了達到更好的系統性能,單個頁框的申請工作直接通過per-CPU頁框高速緩存完成。
該分配器通過幾個函數和宏來請求頁框,它們之間的封裝關系如下圖所示。
這些函數和宏将核心的分配函數__alloc_pages_nodemask()封裝,形成滿足不同分配需求的分配函數。其中,alloc_pages()系列函數返回物理内存首頁框描述符,__get_free_pages()系列函數返回内存的線性地址。
slab分配器
slab 分配器最初是為了解決物理内存的内部碎片而提出的,它将内核中常用的數據結構看做對象。slab分配器為每一種對象建立高速緩存。内核對該對象的分配和釋放均是在這塊高速緩存中操作。一種對象的slab分配器結構圖如下:
可以看到每種對象的高速緩存是由若幹個slab組成,每個slab是由若幹個頁框組成的。雖然slab分配器可以分配比單個頁框更小的内存塊,但它所需的所有内存都是通過夥伴算法分配的。
slab高速緩存分專用緩存和通用緩存。專用緩存是對特定的對象,比如為内存描述符創建高速緩存。通用緩存則是針對一般情況,适合分配任意大小的物理内存,其接口即為kmalloc()。
非連續内存區内存的分配
内核通過vmalloc()來申請非連續的物理内存,若申請成功,該函數返回連續内存區的起始地址,否則,返回NULL。vmalloc()和kmalloc()申請的内存有所不同,kmalloc()所申請内存的線性地址與物理地址都是連續的,而vmalloc()所申請的内存線性地址連續而物理地址則是離散的,兩個地址之間通過内核頁表進行映射。
vmalloc()的工作方式理解起來很簡單:
尋找一個新的連續線性地址空間;
依次分配一組非連續的頁框;
為線性地址空間和非連續頁框建立映射關系,即修改内核頁表;
vmalloc()的内存分配原理與用戶态的内存分配相似,都是通過連續的虛拟内存來訪問離散的物理内存,并且虛拟地址和物理地址之間是通過頁表進行連接的,通過這種方式可以有效的使用物理内存。但是應該注意的是,vmalloc()申請物理内存時是立即分配的,因為内核認為這種内存分配請求是正當而且緊急的;相反,用戶态有内存請求時,内核總是盡可能的延後,畢竟用戶态跟内核态不在一個特權級。
,
更多精彩资讯请关注
tft每日頭條
,我们将持续为您更新最新资讯!
查看全部
上一页
下一页
電飯煲常見的故障維修
常年坐辦公室怎麼運動...
相关生活资讯推荐
野生斑鸠能吃嗎
1、野班鸠是不可以吃的,這主要是由于野生的斑鸠中都會含有大量的病毒和細菌攜帶。2、容易造成人類發生病...
2023-07-04
2020年五一去哪最好 最合适
五一的時候我們将會迎來一個小長假,在這個小長假的時候,有一部分人會選擇出行,陪伴家人去不同的地方遊玩,那麼2020年五一去哪玩最好呢?五一去哪玩最合适呢?接下來就跟随本期的城市文化一起來看看吧!202...
2023-07-04
門套是什麼
門套指的是門内外的兩個門框,也有人直接稱為門框。門套可以連接室内裝飾材料的收口,使工藝更加完美,還能在裝飾過程中修補門。窗框密封不實、通風漏氣的毛病。門套的主要作用是用來固定門扇和保護牆角、裝飾等等,...
2023-07-04
宮鬥生存法則所有結局
1、不同玩家就可以選擇不同的玩點側重,玩家可以着重推動劇情,也可以來發展遊戲中自己的地位,玩家在步步...
2023-07-04
水龍頭漏水怎樣處理
1、水龍頭關不嚴滴水。出現這個問題的主要原因就是水龍頭内部的墊片損壞,多數水龍頭産品内部都有塑膠墊片...
2023-07-04
热门生活资讯推荐
生活
花梨木家具的優缺點
優點:花梨木家具是由海南黃花梨木制作的家具具有明顯的優勢,不易幹燥、耐腐蝕、耐摩擦、邊材和心材炫向收縮差異大,而且握釘力強、力學強度比較好。易雕刻和加工、膠接和塗飾性能也比較好。缺點:比較容易患蟲蛀,...
2023-07-04
生活
裝修結束後什麼時候住進去比較适宜
三到六個月。房子裝修好後,要等到房屋内的有害物質釋放的差不多才能入住。若是冬天的話,要将屋裡的暖氣開開,提高屋裡的溫度,可以加快有害物質的揮發與釋放。并且在房間内最好放一些活性炭,能夠吸收一些有害物質...
2023-07-04
生活
吃太辣了怎麼快速緩解
1、吃太辣的食物導緻胃部疼痛的話,可以喝一杯酸奶或者是牛奶來中和辣味,也可以減輕辣椒對于胃粘膜的刺激...
2023-07-04
生活
月桂酸是什麼
1、月桂酸(英文:Lauricacid),又稱為十二烷酸,是一種飽和脂肪酸。它的分子式是C12H24...
2023-07-04
生活
房子小産權是什麼意思
不完全産權的房屋,即已購公房,鄉産房和使用權房。小産權房是指沒有完全産權的房屋,隻包括房屋的使用權,小産權房是沒有房産證的,轉讓的時候還需要補繳土地出讓金。小産權房存在很大的風險,他不能夠辦理産權過戶...
2023-07-04
生活
吃什麼可以馬上解酒
1、蜂蜜,能促進酒精的分解吸收,減輕醉酒帶來的頭痛症狀,同時,蜂蜜還有安神催眠作用,喝酒後能吃上幾口...
2023-07-04
生活
怎樣選擇合适的嬰兒床
1、給寶寶選擇合适的嬰兒床,一定要注意尺寸,尤其是要特别注意嬰兒床的高度。不要選擇太高,太高的嬰兒床...
2023-07-04
生活
旋轉扭矩計算公式是什麼?
1、M=N/ω(扭矩等于功率除以角速度)2、M=Jα(扭矩等于轉動慣量乘以角加速度)3、M=FL(扭...
2023-07-04
生活
塑鋼窗戶漏水怎麼維修
1、使用發泡膠進行維修。發泡膠作用在塑鋼窗戶當中,是非常有效的,将其填充在窗戶當中的縫隙當中,然後使用密封膠封住即可。2、更換窗戶。如果窗戶已将發生了變形或者是五金封閉已經不嚴的情況下,就要将塑鋼窗戶...
2023-07-04
生活
韻字起名的含義
1、韻原本是指和諧悅耳的聲音,有“餘韻徐歇”的解釋,形容聲音非常的悠揚婉轉,後來在漢字中逐漸引申為韻...
2023-07-04
网友关注
生活
小麥打芸苔素好嗎
1、小麥打芸苔素挺好的。芸苔素内酯是從植物體中提取的又用于植物,因此相溶性較好,易被作物吸收,有雙向...
2023-07-04
生活
高分子闆是什麼材料
是樹脂和石粉積壓成的闆材。高分子闆是用天然有機物,以及高分子化合物相互摻和,然後再使用高壓擠壓而成的一種闆材,也就是塑料闆,通常它的化學成分以及結構都比較簡單,是由同一個單元重複排列形成的。高分子闆的...
2023-07-04
生活
如何減腹部贅肉
1、仰卧起坐是最常見,也是最有效的減去腹部贅肉的方法。它能夠讓女生的腹部松松垮垮的肥肉變得緊實,但是...
2023-07-04
生活
臉太胖怎麼解決
1、臨睡前2小時内不要喝水喝酒吃東西。2、保持充實規律的睡眠,枕頭的高度高于仰卧時心髒的高度為佳。3...
2023-07-04
生活
地暖進水熱回水不熱是什麼原因
1、地暖水管裡有氣體堵塞:地熱管裡進去了空氣,堵住了導緻嫌水不流動。先把回水閥關閉,然後把回水管端口...
2023-07-04
生活
蘋果手機怎麼改字體
1、打開手機設置,然後點擊通用。2、現在我們點擊輔助功能。3、裡面有個更大字體,點擊進入。4、可以進...
2023-07-04
生活
彼岸花的正确養殖方法
1、溫度。彼岸花喜愛溫暖的氣候,生長的适宜溫度在15℃—25℃之間,但是耐寒性強,能忍受的高溫極限為...
2023-07-04
生活
扁豆怎麼洗
1、可以先将扁豆撕去老筋,然後對着亮光照一下,撕去有蟲子的部分;将扁豆一分為二撕成兩半;接着用水沖洗...
2023-07-04
生活
經典抒情優美句子
1、笑對每一個今天,悄然着一份風輕雲淡,在漸次展開的生命畫卷中,我們收獲的是生命的厚重與平凡。2、青...
2023-07-04
生活
殺好的鲫魚怎麼保存
1、将殺好的魚用細鹽抹勻腌好,放在冰箱的冷藏室裡可保存6小時左右,就不會變質變味而且更加筋道入味,如...
2023-07-04
生活
卷簾窗簾安裝方法圖解
1、測量度窗框。2、測量并将安裝碼的位置确定。3、把安裝碼固定。4、接下來将卷簾窗簾放置于正确的位置...
2023-07-04
生活
什麼是木紋地磚
木紋地磚就是一種能夠在表面呈現出木紋圖案的環保材料。木紋地闆屬于目前一種新型的材料,因為其表面的天然的木紋圖案的裝飾效果,受到家庭裝修的廣泛應用。木紋地磚有兩種類型,分别為釉面磚以及劈開磚。木紋地磚的...
2023-07-04
生活
水泥輕質隔牆闆是什麼
一種新型節能材料。水泥輕質隔闆牆是一種類似于空心樓闆的材料,兩邊是有公母榫槽的,可以相互卡注,然後再用砂漿澆築即可。水泥輕質牆闆是用建築廢料制成的,經過蒸汽加壓程序處理而成的,節能環保并且沒有公害,還...
2023-07-04
生活
2020酷霸氣女網名
1、傲嬌似你妹2、情本難譡3、騷氣蓬勃4、縮短了永恒5、傾城的妖嬈6、少女的朝思暮想7、做涐鍾噫亽8...
2023-07-04
生活
碳九的用途
1、碳九用途:一種新型輕質燃料油,其低位發熱量大于柴油的熱值,可作為各種進口全自動燃料器和國産組合噴...
2023-07-04
生活
美國入境晾幹後的菜可以帶嗎
1、可以帶菜幹到美國。2、美國海關和邊防局列出了禁止和限制的物品名單。名單是按照物品的英文字母順序排...
2023-07-04
生活
聯想電腦Boot裝機裝不了
1、在BIOS裡面調整啟動順序。啟動計算機,按“DEL”鍵,進入主闆BIOS界面。進入主闆BIOS界...
2023-07-04
生活
禁養犬已經養了怎麼辦
1、首先,不要将狗狗遺棄到外面,這樣不僅會導緻狗狗變成流浪狗,而且會增加傷人的概率。其次,不要偷偷的...
2023-07-04
生活
桌面圖标變黑怎麼辦
1、關閉美化效果重新開啟:(1)首先右擊我的電腦選擇屬性按鈕,然後在旁邊會有一個高級選項,點擊一下打...
2023-07-04
生活
少兒街舞行的好處
1、舞蹈促進少年兒童的生長發育。舞蹈可使新陳代謝顯著增強,少年兒童正處于骨骼的生長時期,使其身體各部...
2023-07-04
生活
三清茶是什麼
1、三清茶是茶葉中的一種,源于朱元璋在杭州雲門寺練兵的一個典故。2、元末,朱元璋率領軍隊在杭州雲門寺...
2023-07-04
生活
活性炭清洗好還是不清洗好
1、活性炭或多或少地會掉些顔色,但是這些都是正常的,通常我們買回活性炭後,我們要做清潔。清潔活性炭的...
2023-07-04
生活
衛生間牆面防水做好後瓷磚粘得牢嗎
不牢固。衛生間的牆面做了防水之後,瓷磚就會粘貼不牢固,而且在粘貼完之後還會出現空鼓現象,甚至嚴重的還會脫落。尤其是淋浴區的牆面防水,要做到1.8米甚至以上,這個地方粘貼瓷磚,再加上水汽的影響,非常容易...
2023-07-04
生活
塗抹染發技巧
1、挑選适合你原本頭發底色的顔色挑選适合你原本頭發底色的顔色。中國人都是純黑發色,所以不誇張的深棕、...
2023-07-04
生活
巴寶莉天貓旗艦店是正品嗎
1、天貓都有相關認證旗艦店都是相關産品廠商直屬運行管理。和一些專賣、直營、授權等店有本質區别。不過一...
2023-07-04
生活
粥可以放隔夜嗎
1、可以吃,如果白粥隔夜了,儲存的方式比較得當,适量的飲用是可以吃的,對身體健康不會有很大的影響,隻...
2023-07-04
生活
七步化妝的最佳方法
1、在開始化妝前,首先要做的是取一盆溫水,将雙手浸泡片刻後輕輕拍打臉頰兩邊,以幫助促進血液的循環,之...
2023-07-04
生活
插上電腦路由器網站一直在轉打不開
1、首先你要看一下你的網線是不是好的,有時候網線用久了以後,水晶頭可能會被氧化,導緻你的電腦網絡看上...
2023-07-04
生活
eva封邊和pur封邊的區别
1、eva封邊和pur封邊的成分不相同。pur的主要成分是端異氰酸酯聚氨酯預聚體,而eva的主要成分是基本樹脂,所以二者所使用的原材料是不相同的。2、eva封邊和pur封邊有着不同的特點。pur的粘接...
2023-07-04
生活
老房子陽台開裂如何加固
1.找到原因。陽台開裂,首先要找出原因,是因為地基不牢固,還是因為房屋結構不合理,知道原因之後才能對症下藥。2.進行加固。是因為基層不老,可以将基層全部剔除,重新進行裝修。若牆面裂縫太大,會影響到家人...
2023-07-04
關于
條款和條件
隱私政策
Cookie 設置
服務
登陸
注冊
聯系我們
tft每日頭條
美食
生活
職場
母嬰
時尚
科技
汽車
友情鏈接
zpostcode
Recruit
weather
mreligion
Yellowpages
sport
constellation
shopping
name
game
directory
literature
Word
tour
furnish
Lottery
tftnews
lyrics
News
digital
car
dir
Edu
Finance
Copyright 2023-2026 -
www.tftnews.com
All Rights Reserved