注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Linxu内存中的一些术语  

2011-11-30 20:14:35|  分类: LINUX内核驱动 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Linxu内存中的一些术语
昨天晚上看书看到在LINUX内核中有node,zone,page,最后一个咱们从学计算机就知道,可前面两个是什么东东呢,只好回来查资料,并在百度和谷哥大神上都搜寻了下,终于弄明白了,原来常说的NUMA(非一致内存访问系统)和UMA(统一内存访问系统)跟这个关系很紧啊。在以前,计算机主要是单核或者虽然是多核甚至是多CPU,但使用的操作系统仍然是串行为主(不要相信什么多线程,多CPU,真正的并行计算目前仍然没有攻克),所以以UMA为主,而在现在和最有希望的将来,并行和分布式开发将成为主流,那么NUMA就闪亮登场了,要说什么是NUMA,怎么用,还真是不太清楚,大家可以自行查阅资料。这里就不误人子弟了。
NUMA在设计上分成两块区域(BANK)而UMA中CPU和外设及其它都在一块区域上。
说题内话,在操作系统级别上,为了支持这两种系统,就设计了一种方式,引入了 node的概念,一个node对应一个bank,每个bank又划分为多个zone(1~3个并不是所有的node都有3个zone的,比如有些就没有ZONE_DMA区域。),有ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM这三种类型,。它们之间的用途是不一样的,ZONE_DMA类型的内存区域在物理内存的低端,主要是ISA设备只能用低端的地址做DMA操作。ZONE_NORMAL类型的内存区域直接被内核映射到线性地址空间上面的区域(lineaddressspace).在PC系统中,内存区域类型如下分布:
ZONE_DMA 0-16MB                                                 专供DMA使用
ZONE_NORMAL 16MB-896MB                                 常规的ZONE_NORMAL区
ZONE_HIGHMEM896MB-物理内存结束                     内核不能直接映射的区ZONE_HIGME区
大多数kernel的操作只使用ZONE_NORMAL区域.
Linux内核从2.4版本开始就提供了对NUMA的支持(作为一个编译可选项)。为了对NUMA进行描述,引入一个新的概念-“存储节点(或叫节点)”,把访问时间相同的存储空间就叫做一个“存储节点”。一般来说,连续的物理页面应该分配在相同的存储节点上。例如,如果CPU模块1要求分配5个页面,但是由于本模块上的存储空间已经不够,只能分配3个页面,那么此时,是把另外两个页面分配在其它CPU模块上呢,还是把5个页面干脆分配在一个模块上?显然,合理的分配方式因该是将这5个页面都分配在公用模块上。
Linux把物理内存划分为三个层次来管理:存储节点(Node)、管理区(Zone)和页面(Page),并用三个相应的数据结构来描述。

  评论这张
 
阅读(952)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017