linux与windows对多核的支持,多核操作系统发展综述..doc

多核操作系统发展综述..doc

多核操作系统发展综述

1引言

多核处理器的出现大大提升了系统并行处理能力,使越 来越多不同类型的应用可以同时在多核平台上进行高效的 并行计算。现有成熟的操作系统经过长期的发展,对目前普 通多核处理器大多能够提供较好的支持。但同时,多核处理 器的核数迅速增长、结构日益复杂,也为未来多核操作系统 的设计与优化带来了巨大的挑战。如何适应未来多核处理器 的迅速发展,设计高可用、高并行、高可扩展的多核操作系 统,是目前业界共同的奋斗目标。

2现状与挑战

传统多核操作系统采用宏内核[]架构,其中以Linux与 Windows操作系统为主要代表。宏内核相当于一个巨大的并 发协同的进程组,主要使用单一数据结构,内核本身提供大 多数系统服务。在多核处理器核数有限、结构并不复杂的情 况下,传统宏内核操作系统基本能够充分利用多核处理器的 并行处理能力,对外体现为一个紧耦合、高效的单一操作系 统。

随着技术的进步,多核处理器在硬件性能和结构上达到 了长足的发展。多核处理器的核心数持续增加,目前已有集 成超过100个核心的芯片。同时,多核处理器的结构也越来 越多样化,出现了异构多核与类NUMA多核。

多核处理器的核心迅速增长、结构日益多样化,为传统 多核操作系统的设计带来了巨大的挑战。尽管操作系统已经 针对类SMP、类NUMA处理器结构对部分内核数据结构进行分 布化,但它们本身与特定的同步模式以及数据布局紧密相关 其可扩展性受限于锁竞争、数据局部性以及对共享内存的依 赖等。传统多核操作系统难以适应多核处理器的发展趋势, 具体表现在两个方面。

首先,传统多核操作系统难以适应多核处理器核数的飞 速增长。传统操作系统往往通过锁来保护共享数据,随着CPU 核数的增加,进入内核的线程也会随之增加,对锁的竞争将 更为激烈,影响系统的整体性能。

另外,核数增加时,传统多核本操作系统一般通过创建 更细粒度的锁来增加内核的并发性,而调整锁粒度是一项异 常复杂的工作。未来处理器核心数量指数增长的情况下,重 新设计子操作系统的速度难以与之同步。

其次,类NUMA多核处理器以及异构多核处理器的出现 给传统多核操作系统设计带来了新的困难。类NUMA微结构 多核处理器的特点是,多个核在访问片上数据比如L2Cache 的时延是不同的,各个核部分共享L2Cache或者私有L2Cache 访问时延的不一致性使操作系统的设计更复杂,而且,当核 数扩展时,为保证数据一致性所占用的操作系统开销将大大

增加。异构多核处理器由一个或者多个主核以及其它从核组

成,不同类型的核心给操作系统设计以及系统编程开发带来 了很大的困难,其可扩展性也难以实现。

3技术路线

为适应多核处理器的发展,可以利用分布式设计思想, 从结构和功能上对传统多核操作系统进行分布式处理优化, 将多核硬件划分为不同的子系统,尽可能降低各子系统之间 的耦合度,从而提高多核操作系统的可扩展性。

目前,面向可扩展多核操作系统的研究主要可分为三种 技术路线:1)改进传统宏内核架构,以适应多核体系结构, 这是目前最广泛的研究方法;2)基于功能分布思想,将不 同的核划分为不同的功能,不同功能之间通过共享内存或消 息传递通信,开发功能分布式多核操作系统;3)借鉴分布 式系统的数据分布思想以及消息通信机制,创新设计数据分 布式多核操作系统。

改进传统宏内核架构

目前商业上应用最广泛的多核操作系统仍然是Linux, Windows等老牌操作系统。为改善系统的可扩展性,linux 等传统操作系统一直没有停止过对多核处理器的优化支持。 Linux针对NUMA结构处理器修改了内存分配策略,CPU会优 先选择当前节点的物理内存,不够时才寻找附近节点请求物 理内存分配。微软的Windows7移除了 dispatcher锁,改动 涉及50多个文件、60 00多行代码。但限制可扩展性的根本

作元素,锁与共享内存等,依然是传统操作系统的主要运 此,对于多核的优化,他们还有较大的改进提升 空间。

作元素,

Corey操作系统是MIT等组织在Linux基础上修改操作 系统接口实现的,其设计目标是针对当前主流的C ac h e —致 性SMP多核处理器。其设计思想是“应用程序控制数据的共 享”,即通过应用程序对内核间共享资源的控制,减少多核 之间不必要的资源传递与更新,以迗到更高效利用多内核的

目的。

Cor ey在Linux中增加了三个新接口 : 1)地址范 允许应用程序编程时决定私有地址与共享地址的范围;2) 核心,允许应用程序制定特定的核心执行;3)共享对象, 允许应用程序决定哪个对象对其它核心可见。Corey系统相 对Li nux系统性能提升明显,基于某AMD 16核处理器的实 验表明,Corey的MapReduce性能较Linux提高了 25%。但是,

你可能感兴趣的:(linux与windows对多核的支持,多核操作系统发展综述..doc)