亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

詳解Linux內核內存管理架構

2024-09-05 23:04:53
字體:
來源:轉載
供稿:網友

內存管理子系統可能是linux內核中最為復雜的一個子系統,其支持的功能需求眾多,如頁面映射、頁面分配、頁面回收、頁面交換、冷熱頁面、緊急頁面、頁面碎片管理、頁面緩存、頁面統計等,而且對性能也有很高的要求。本文從內存管理硬件架構、地址空間劃分和內存管理軟件架構三個方面入手,嘗試對內存管理的軟硬件架構做一些宏觀上的分析總結。

內存管理硬件架構

因為內存管理是內核最為核心的一個功能,針對內存管理性能優化,除了軟件優化,硬件架構也做了很多的優化設計。下圖是一個目前主流處理器上的存儲器層次結構設計方案。

Linux,內存,架構

從圖中可以看出,對于讀寫內存,硬件設計了3條優化路徑。

1)首先L1 cache支持虛擬地址尋址,保證CPU出來的虛擬地址(VA)不需要轉換成物理地址(PA)就可以用來直接查找L1 cache,提高cache查找效率。當然用VA查找cache,有安全等缺陷,這需要CPU做一些特別的設計來進行彌補,具體可以閱讀《計算機體系結構:量化研究方法》了解相關細節。

2)如果L1 cache沒有命中,這就需要進行地址轉換,把VA轉換成PA。linux的內存映射管理是通過頁表來實現的,但是頁表是放在內存中的,如果每次地址轉換過程都需要訪問一次內存,其效率是十分低下的。這里CPU通過TLB硬件單元來加速地址轉換。

3)獲得PA后,在L2 cache中再查找緩存數據。L2 cache一般比L1 cache大一個數量級,其查找命中率也更高。如果命中獲得數據,則可避免去訪問內存,提高訪問效率。

可見,為了優化內存訪問效率,現代處理器引入多級cache、TLB等硬件模塊(如下圖是一款8核MIPS處理器硬件框圖)。每個硬件模塊內部還有大量的設計細節,這里不再深入,如有興趣可以閱讀《計算機體系結構:量化研究方法》等書籍進一步了解。

Linux,內存,架構

內存映射空間劃分

根據不同的內存使用方式和使用場景需要,內核把內存映射地址空間劃分成多個部分,每個劃分空間都有自己的起止地址、分配接口和使用場景。下圖是一個常見的32位地址空間劃分結構。

Linux,內存,架構

  • DMA內存動態分配地址空間:一些DMA設備因為其自身尋址能力的限制,不能訪問所有內存空間。如早期的ISA設備只能在24位地址空間執行DMA,即只能訪問前16MB內存。所以需要劃分出DMA內存動態分配空間,即DMA zone。其分配通過加上GFP_ATOMIC控制符的kmalloc接口來申請。
  • 直接內存動態分配地址空間:因為訪問效率等原因,內核對內存采用簡單的線性映射,但是因為32位CPU的尋址能力(4G大?。┖蛢群说刂房臻g起始的設置(3G開始),會導致內核的地址空間資源不足,當內存大于1GB時,就無法直接映射所有內存。無法直接映射的地址空間部分,即highmem zone。在DMA zone和highmem zone中間的區域即normal zone,主要用于內核的動態內存分配。其分配通過kmalloc接口來申請。
  • 高端內存動態分配地址空間:高端內存分配的內存是虛擬地址連續而物理地址不連續的內存,一般用于內核動態加載的模塊和驅動,因為內核可能運行了很久,內存頁面碎片情況嚴重,如果要申請大的連續地址的內存頁會比較困難,容易導致分配失敗。根據應用需要,高端內存分配提供多個接口:
  • vmalloc:指定分配大小,page位置和虛擬地址隱式分配;
  • vmap:指定page位置數組,虛擬地址隱式分配;
  • ioremap:指定物理地址和大小,虛擬地址隱式分配。
  • 持久映射地址空間:內核上下文切換會伴隨著TLB刷新,這會導致性能下降。但一些使用高端內存的模塊對性能也有很高要求。持久映射空間在內核上下文切換時,其TLB不刷新,所以它們映射的高端地址空間尋址效率較高。其分配通過kmap接口來申請。kmap與vmap的區別是:vmap可以映射一組page,即page不連續,但虛擬地址連續,而kmap只能映射一個page到虛擬地址空間。kmap主要用于fs、net等對高端內存訪問有較高性能要求的模塊中。
  • 固定映射地址空間:持久映射的問題是可能會休眠,在中斷上下文、自旋鎖臨界區等不能阻塞的場景中不可用。為了解決這個問題,內核又劃分出固定映射,其接口不會休眠。固定映射空間通過kmap_atomic接口來映射。kmap_atomic的使用場景與kmap較為相似,主要用于mm、fs、net等對高端內存訪問有較高性能要求而且不能休眠的模塊中。

不同的CPU體系架構在地址空間劃分上不盡相同,但為了保證CPU體系差異對外部模塊不可見,內存地址空間的分配接口的語義是一致的。

因為64位CPU一般都不需要高端內存(當然也可以支持),在地址空間劃分上與32位CPU的差異較大,下圖是一個MIPS64 CPU的內核地址空間劃分圖。

Linux,內存,架構

內存管理軟件架構

內核內存管理的核心工作就是內存的分配回收管理,其內部分為2個體系:頁管理和對象管理。頁管理體系是一個兩級的層次結構,對象管理體系是一個三級的層次結構,分配成本和操作對CPU cache和TLB的負面影響,從上而下逐漸升高。

頁管理層次結構:由冷熱緩存、伙伴系統組成的兩級結構。負責內存頁的緩存、分配、回收。

對象管理層次結構:由per-cpu高速緩存、slab緩存、伙伴系統組成的三級結構。負責對象的緩存、分配、回收。這里的對象指小于一頁大小的內存塊。

除了內存分配,內存釋放也是按照此層次結構操作。如釋放對象,先釋放到per-cpu緩存,再釋放到slab緩存,最后再釋放到伙伴系統。

Linux,內存,架構

框圖中有三個主要模塊,即伙伴系統、slab分配器和per-cpu(冷熱)緩存。他們的對比分析如下。

Linux,內存,架構


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文字幕久久臀| 亚洲国产精久久久久久| 自拍偷拍亚洲精品| 亚洲综合社区网| 欧美激情一区二区三区成人| 国产精品成人久久久久| 秋霞成人午夜鲁丝一区二区三区| 国产精品第一页在线| 亚洲一区二区三区毛片| zzjj国产精品一区二区| 久久人人爽亚洲精品天堂| 亚洲精品中文字幕有码专区| 一区二区三区在线播放欧美| 亚洲综合中文字幕68页| 久久精品青青大伊人av| 日韩免费在线电影| 日韩在线一区二区三区免费视频| 亚洲a一级视频| 欧美美女18p| 久久av红桃一区二区小说| 51精品国产黑色丝袜高跟鞋| 成人精品一区二区三区| 亚洲毛片在线免费观看| 国产成人亚洲综合青青| 国产成人精品国内自产拍免费看| 精品自拍视频在线观看| 亚洲男女性事视频| 韩曰欧美视频免费观看| 国内成人精品视频| 亚洲激情在线观看视频免费| 国产成人鲁鲁免费视频a| 亚洲精品一区二区久| 亚洲国产精品yw在线观看| 日韩在线观看免费全| 欧美日韩综合视频网址| 欧美大片免费观看在线观看网站推荐| 草民午夜欧美限制a级福利片| 91中文字幕在线| 国产精品久久久久不卡| 亚洲精品一二区| 久久久久九九九九| 国产精品视频地址| 亚洲欧美激情另类校园| 精品动漫一区二区三区| 亚洲淫片在线视频| 亚洲新中文字幕| 国产亚洲精品久久久优势| 日韩av网址在线观看| 精品久久久久久久久久ntr影视| 91国在线精品国内播放| 亚洲精品美女网站| 日韩精品视频在线观看网址| 日韩av手机在线观看| 欧美日本黄视频| 97视频com| 欧美野外wwwxxx| 大桥未久av一区二区三区| 97激碰免费视频| 日韩一级黄色av| 色爱av美腿丝袜综合粉嫩av| 亚洲欧美国产一区二区三区| 亚洲欧美国产精品va在线观看| 国产噜噜噜噜噜久久久久久久久| 成人欧美在线观看| 久久这里只有精品99| 久久深夜福利免费观看| 精品久久久久久国产91| 国产99久久精品一区二区永久免费| 91精品国产免费久久久久久| 九九热视频这里只有精品| 国产日韩欧美在线看| 久久久综合免费视频| 欧美黄色性视频| 久热爱精品视频线路一| 美乳少妇欧美精品| 日韩精品在线免费观看| 91精品啪在线观看麻豆免费| 最新的欧美黄色| 欧美电影免费观看高清| 国产精品第100页| 国内精品小视频在线观看| 性金发美女69hd大尺寸| 在线精品视频视频中文字幕| 美女扒开尿口让男人操亚洲视频网站| 亚洲精品91美女久久久久久久| 久久免费高清视频| 久久久久国产精品www| 96精品久久久久中文字幕| 亚洲毛片在线观看.| 91精品国产色综合久久不卡98| 97视频在线观看视频免费视频| 九九九久久国产免费| 欧美久久久精品| 欧美日韩亚洲成人| 久久99亚洲精品| 国产精品高精视频免费| 成人免费大片黄在线播放| 久久久精品国产一区二区| 国产精品精品国产| 午夜精品久久久久久久久久久久| 日韩久久午夜影院| 在线观看日韩视频| 日韩av网站电影| 欧美成人免费一级人片100| 国产丝袜一区二区三区| 永久免费毛片在线播放不卡| 97超级碰碰人国产在线观看| 久久国产精品久久久久| 亚洲伊人一本大道中文字幕| 欧美日韩一二三四五区| 国产婷婷97碰碰久久人人蜜臀| 久久人人爽人人爽人人片亚洲| 亚洲精品久久7777777| 在线播放国产一区中文字幕剧情欧美| 亚洲丁香久久久| 亚洲天堂日韩电影| 九九热在线精品视频| 成人网在线免费看| 欧美性理论片在线观看片免费| 热久久免费视频精品| 色噜噜亚洲精品中文字幕| 亚洲精品电影在线观看| 国产精品专区第二| 亚洲欧美视频在线| 亚洲第一福利在线观看| 日本欧美黄网站| 日韩欧美在线观看| 亚洲精品久久久久久久久| 欧美床上激情在线观看| 久久久久久久影视| 亚洲xxx自由成熟| 国产精品入口尤物| 清纯唯美亚洲激情| 亚洲第一页自拍| 亚洲激情视频网| 人人爽久久涩噜噜噜网站| 欧美午夜精品伦理| 久久精品国产一区二区电影| 国产精品吹潮在线观看| 在线视频欧美性高潮| 97视频在线观看成人| 国产精品日日摸夜夜添夜夜av| 欧美日韩激情视频8区| 国产亚洲激情视频在线| 国产欧美一区二区三区在线看| 欧美成人黑人xx视频免费观看| 热久久美女精品天天吊色| 91精品久久久久久久久中文字幕| 色综合色综合网色综合| 亚洲精品成人久久电影| 欧美电影免费播放| 成人有码视频在线播放| 浅井舞香一区二区| 亚洲va久久久噜噜噜| 日韩视频免费观看| 97国产一区二区精品久久呦| 国产欧美日韩最新| 中文字幕久热精品视频在线| 国产精品国产三级国产aⅴ浪潮| 日韩美女视频中文字幕| 日韩av不卡电影| 日韩免费在线看| 亚洲18私人小影院| 欧美成人小视频|