深入浅出内存管理--物理内存框架

NUMA

首先需要介绍一个NUMA的概念,非一致性内存访问模型,在这种系统中,CPU访问不同内存单元的时间可能是不一样的,物理内存被划分为不同的Node节点来进行管理,对于单CPU的系统也可能使用NUMA,因为这些系统的物理内存有可能不一定是整块的,而是中间包含有很大的洞,因此划分出多个Node进行管理。比如系统中存在两个内存芯片并且内存芯片的地址不连续,内核对应的也把物理内存划分为多个内存Node节点,每个Node代表着一个连续的物理内存块。

物理内存布局

为了保持内核代码的兼容型,内核默认启用对NUMA的支持,假如系统仅有一整块连续物理内存,那么该系统就只是单个Node来进行管理。内存节点Node中又可以划分为多个Zone来进行管理,比如常见的三种ZONE:ZONE_DMA/ZONE_NORMAL/ZONE_HIGHMEM。而每个ZONE中都有一个伙伴系统在管理,所谓伙伴系统就是一种内存管理的算法。物理内存布局
如上图所示,系统可能存在有很多个内存节点(NODE),每个节点内都会划分为多个管理区(ZONE),而每个管理区里面都涉及的内存的管理与分配,而他们使用的都是伙伴系统算法(Buddy System)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值