LINUX 2.4.22 内存管理 之一 物理内存管理的基本概念

下一篇:物理内存管理的数据结构

概述

LINUX 内存管理 主要有两大类,物理内存管理以及虚拟内存管理
物理内存管理即特定平台架构实际物理内存空间的管理
虚拟内存管理即特定处理器体系架构的虚拟地址空间的管理
下面分别介绍linux 物理内存管理中的基本概念与数据结构

内存架构

目前系统内存架构主要有两种模型

NUMA

即非一致性内存访问模型
使用这种模型的总是多处理器系统,系统物理内存被分为不同的bank, 系统中的各个处理器都有本地内存bank,或者适合于dma 访问的bank ,处理器之间通过总线连接以支持对其他处理器内存的访问,处理器访问本地内存的速度要快于对其他处理器内存的访问。

UMA

即一致性内存访问模型
该模型的内存空间也许不连续,但所有的内存空间对系统的处理器而言具有相同的访问特性和访问速度。
UMA 模型下可以看成只有一个内存bank的系统

bank

代表具有相同的访问特性和访问速度的一个内存块。在 numa 模型中,内存分配策略从当前运行cpu的本地bank中获取内存,因为同一进程趋向于使用同一cpu,因此将在当前节点上分配内存

图1 系统内存架构
在这里插入图片描述

LINUX 物理内存管理的基本概念

node(节点)

节点的引入是因为linux 系统为了将UMA 和NUMA统一起来,一个bank 对应于一个node

zone (区域)

每个node 节点又分为不同的内存区域zone , zone用于满足系统中不同模块对内存分配的不同要求,例如32位X86架构的DMA只能访问16mB以下的物理内存空间
x86中, the zones are the following:
ZONE DMA First 16MiB of memory
ZONE NORMAL 16MiB - 896MiB
ZONE HIGHMEM 896 MiB - End,

page(页)

物理内存是由固定长度的page组成,page 是物理内存管理中的最小单位,也称为page frame ,LINUX 会为物理内存中的每个页创建一个struct page 对象,并用全局变量struct page* mem_map 来存放所有page对象指针。页的大小取决于MMU,常用为4kB

综合以上,可以得到一个内存bank的物理内存管理的结构如下
图2–物理内存示意

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值