【Linux核心】實體記憶體組織結構
系統調用mmap
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SNjRWMldDM0QmN1MDOjRDM2MWMkVzM5QGOwAjZ2IjZ28CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
實體記憶體組織結構
體系結構
目前多處理器系統有兩種體系結構:
1)非一緻記憶體通路(Non-Unit Memory Access,NUMA):指記憶體被劃分成多個 記憶體節點的多處理器系統。通路一個記憶體節點花費的時間取決于處理器和記憶體節點的距離。
2)對稱多處理器(Symmetric Multi-Processor,SMP):即一緻記憶體通路 (Uniform Memory Access,UMA),所有處理器通路記憶體花費的時間是相同。
記憶體模型
記憶體模型是從處理器角度看到的實體記憶體分布,核心管理不同記憶體模型的方式存差異。
記憶體管理子系統支援3種記憶體模型:
1) 平坦記憶體(Flat Memory):記憶體的實體位址空間是連續的,沒有空洞。
2) 不連續記憶體(Discontiguous Memory):記憶體的實體位址空間存在空洞,這種模 型可以高效地處理空洞。
3) 稀疏記憶體(Space Memory):記憶體的實體位址空間存在空洞,如果要支援記憶體熱 插拔,隻能選擇稀疏記憶體模型。