[发明专利]一种实现操作系统核心代码段多副本运行的方法无效
申请号: | 200910016772.3 | 申请日: | 2009-07-13 |
公开(公告)号: | CN101604263A | 公开(公告)日: | 2009-12-16 |
发明(设计)人: | 张东;吴楠;赵明;郭露 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 操作系统 核心 代码 副本 运行 方法 | ||
技术领域
本发明涉及计算机操作系统软件技术领域,具体涉及一种在NUMA体系结构计算机上,实现操作系统核心代码段多副本运行的方法。
技术背景
目前对于多处理器计算机系统的设计而言,通常有以下三种体系结构可以采用:对称多处理器SMP模式、大规模并行处理器MPP模式和非一致存储器访问NUMA模式。
SMP模式将多个处理器与一个集中的存储器相连。在SMP模式下,所有处理器都可以访问同一个系统物理存储器。SMP系统通常只运行操作系统的一个副本。因此SMP系统有时也被称为一致存储器访问(UMA)结构体系,一致性意指无论在什么时候,处理器只能为内存的每个数据保持或共享唯一一个数值。SMP的缺点是可伸缩性有限,因为在存储器接口达到饱和的时候,增加处理器并不能获得更高的性能。SMP体系结构如附图1所示。
MPP模式则是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP模式,也可以配置为非SMP模式。单个的节点相互连接起来就形成了一个总系统。与单一SMP模式相比,在SMP模式中,数据一致性是由硬件专门管理的,这样做比较容易实现,但成本较高;在MPP模式中,节点之间的一致性是由软件来管理,因此,它的速度相对较慢,但成本却低得多。MMP体系结构如图2所示。
NUMA模式也采用了分布式存储器模式,不同的是所有节点中的处理器都可以访问全部的系统物理存储器。每个处理器访问本节点内的存储器所需要的时间,比访问某些远程节点内的存储器所花的时间要少。即,访问不同存储器的时间是不一致的,因此这种模式被称为“NUMA”(非一致存储器访问)。如附图3所示,我们定义CPU和直接连接在其上的物理内存之间的关系为“亲近的”,与需要经过其它CPU“间接”访问的物理内存之间的关系是“非亲近的”。相应的,我们定义CPU直接连接的物理内存为“本地内存”,或“局部内存”,其他的物理内存为“全局内存”。NUMA既保持了SMP模式单一操作系统副本、简便的应用程序编程模式以及易于管理的特点,又继承了MPP模式的可扩充性,可以有效地扩充系统的规模。因此,面向事务处理的大型计算机系统多采用NUMA模式。
在多CPU的计算机系统中,每个CPU都可以进入核心态执行。现在的计算机系统,包括X86、IA64、Power、SPARC等,都采用中断、异常或者系统调用门的方式陷入核心。对于SMP架构的多CPU系统中,会按照负载均衡的原则将进程分布在不同的CPU上;当某个进程出现缺页故障,或者系统调用时,需要从用户态进入核心态,此时系统会选择该进程当前运行的CPU来执行核心代码;当出现硬件中断时,系统会按照某种策略选择一个CPU来执行核心中的中断处理过程,譬如选择当前最空闲的CPU。
选择进程当前运行的CPU执行核心代码,而不是固定某个CPU执行核心代码的优点是:
●可以减少CPU之间进行切换的开销;
●现代的操作系统核心都是支持重复陷入的,即可以并行运行。允许多个CPU陷入核心,可以有效提高CPU的利用率。
NUMA体系的计算机系统略微有所不同。由于在NUMA体系下,CPU访问非亲近的物理内存,和访问亲近的物理内存的时间是不一致的,而且这种时间延迟往往是比较大的(通常在几倍)。因此,在NUMA体系计算机上运行的操作系统通常会将一个进程绑定在某个CPU上,并且尽量保证该进程所用的物理内存与该CPU亲近。这样可以最大程度避免进程出现跨CPU的物理内存访问,降低访存延迟,提高系统运行效率。而操作系统核心的情况与用户进程不同。在传统的NUMA计算机系统中,只运行一个操作系统核心副本。即,操作系统核心的代码段在物理内存中只存在一个副本,而且这个副本通常只会在某个CPU亲近的物理内存中。这是与传统的UNIX类操作系统的体系结构设计相关的。
如附图4所示,以只有两个CPU的NUMA结构为例,说明了传统情况下,分别在两个CPU上运行的进程,其用户态地址空间和核心态地址空间,与机器物理内存之间的映射关系。不同进程的用户态空间(包括代码和数据)被映射到了不同的物理地址(也有可能是相同的物理地址,譬如共享库、共享内存等。实际上在NUMA体系下,为了降低访存延迟,共享库等也应尽量局部化),而核心态空间则被映射到相同的物理地址,譬如,CPU1的亲近物理内存中。
当系统发生中断、异常或者系统调用,需要从用户态陷入到核心态的时候,传统系统有两种方法可以选择:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910016772.3/2.html,转载请声明来源钻瓜专利网。