虚拟宇宙划分层级空间,不同修为有不同区域,主角第一次进入骗了一群小孩

由系统智能选择Node或Zone方式
按节点顺序依次排列先排列本地节点的所有zone,再排列其它节点的所有zone
按zone类型从高到低依次排列各节点的同相类型zone
  • 建立备用层次结构的任务委托给build_zonelists, 該函数为每个NUMA结点都创建了相应的数据结构. 它需要指向相关的pg_data_t实例的指针作为参数

在linux中内核也不是对所有物理内存都一视同仁,内核而昰把页分为不同的区, 使用区来对具有相似特性的页进行分组.

Linux必须处理如下两种硬件存在缺陷而引起的内存寻址问题:

  1. 一些硬件只能用某些特定的内存地址来执行DMA

  2. 一些体系结构其内存的物理寻址范围比虚拟寻址范围大的多这样,就有一些内存不能永久地映射在内核空间上

為了解决这些制约条件,Linux使用了三种区:

  1. ZONE_NOMAL : 这个区包含的都是能正常映射的页

  2. ZONE_HIGHEM : 这个区包"高端内存",其中的页能不永久地映射到内核地址空间

洏为了兼容一些设备的热插拔支持以及内存碎片化的处理, 内核也引入一些逻辑上的内存区.

区的实际使用与体系结构是相关的linux把系统的内存结点划分区, 一个区包含了若干个内存页面, 形成不同的内存池,这样就可以根据用途进行分配了

需要说明的是区的划分没有任何物理意義, 只不过是内核为了管理页而采取的一种逻辑上的分组. 尽管某些分配可能需要从特定的区中获得页, 但这并不是说, 某种用途的内存一定要从對应的区来获取,如果这种可供分配的资源不够用了内核就会占用其他可用去的内存.

下表给出每个区及其在X86上所占的列表

由系统智能选择Node或Zone方式
按节点顺序依次排列先排列本地节点的所有zone,再排列其它节点的所有zone
按zone类型从高到低依次排列各节点的同相类型zone
  • 建立备用层次结构的任务委托给build_zonelists, 該函数为每个NUMA结点都创建了相应的数据结构. 它需要指向相关的pg_data_t实例的指针作为参数

在linux中内核也不是对所有物理内存都一视同仁,内核而昰把页分为不同的区, 使用区来对具有相似特性的页进行分组.

Linux必须处理如下两种硬件存在缺陷而引起的内存寻址问题:

  1. 一些硬件只能用某些特定的内存地址来执行DMA

  2. 一些体系结构其内存的物理寻址范围比虚拟寻址范围大的多这样,就有一些内存不能永久地映射在内核空间上

為了解决这些制约条件,Linux使用了三种区:

  1. ZONE_NOMAL : 这个区包含的都是能正常映射的页

  2. ZONE_HIGHEM : 这个区包"高端内存",其中的页能不永久地映射到内核地址空间

洏为了兼容一些设备的热插拔支持以及内存碎片化的处理, 内核也引入一些逻辑上的内存区.

区的实际使用与体系结构是相关的linux把系统的内存结点划分区, 一个区包含了若干个内存页面, 形成不同的内存池,这样就可以根据用途进行分配了

需要说明的是区的划分没有任何物理意義, 只不过是内核为了管理页而采取的一种逻辑上的分组. 尽管某些分配可能需要从特定的区中获得页, 但这并不是说, 某种用途的内存一定要从對应的区来获取,如果这种可供分配的资源不够用了内核就会占用其他可用去的内存.

下表给出每个区及其在X86上所占的列表

我要回帖

更多关于 宇宙划分层级 的文章

 

随机推荐