新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > linux內(nèi)存管理理解

linux內(nèi)存管理理解

作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

slab/kmalloc/vmalloc都是內(nèi)核分配虛擬地址空間的方法,不是物理地址的方法

本文引用地址:http://m.butianyuan.cn/article/201609/304178.htm

get_free_page/allocate_page這些都是內(nèi)核分配物理空間的,但是最終又要重新映射為虛擬地址空間vremap

用戶態(tài)的虛擬地址空間的分配是new/malloc,最終都是要到內(nèi)核去分配

高速緩存

它保存的是虛擬地址到指令或者數(shù)據(jù)的映射關系,不是物理地址到指令和數(shù)據(jù)的映射

TLB

它保存的是虛擬地址到物理地址的轉(zhuǎn)換的緩存,也就是MMU轉(zhuǎn)換的緩存

這其中它可能采用的是組關聯(lián),全關聯(lián)等映射方法

頁表

內(nèi)核頁表和進程頁表,在系統(tǒng)有很大的內(nèi)存的時候,不可能采用一級頁表,否則頁表占用的頁的數(shù)量太多,而且不一定都使用到,所以采用了多級頁表,類似段頁,linux常用的是3級頁表。



評論


相關推薦

技術專區(qū)

關閉