多核操作系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多核操作系统

摘要:对多核操作系统的发展状况进行了综述,指出了多核操作系统的发展滞后于多核技术发展的现状,介绍了多核操作系统的起源和国内外研究状况,分析了多核操作系统研究中面临的一些主要问题及已有的研究成果,对多核操作系统的一些研究方法进行了总结,最后,设计了一种异构多核处理器的操作系统。

关键词:多核操作系统; 操作系统模型; 任务调度; 存储器管理; 内核同步;HMP

第一章引言

操作系统构建于硬件设备之上,目的在于最大限度发挥硬件的工作性能,同时也受限于硬件设备的工作能力和方式。所以操作系统的发展,首先是来源于硬件的发展,而硬件中的核心就是处理器。提高处理器的性能从根本上来说有两种办法: 通过改进制造工艺来提高CPU 的主频; 提高指令的执行效率,即提高IPC( instructions per cycle)。从提高主频的角度来看,高主频会带来巨大的功耗问题。以NetBurst 架构的处理器为例,当运行主频达到最高3.8 GHz 的情况下,发热功耗会达到115 W。很显然,要解决高主频带来的功耗问题并不是一件容易的事情。与此同时,制造工艺在提高CPU 主频的过程中也会引入严重的漏电流问题,漏电流问题是制约CPU 主频提高的最重要因素。从提高指令执行效率的角度来看,指令流水线、超长指令字、超标量结构、超线程技术等都在提高指令执行效率上起到了一定的作用,但是均受限于单核处理器的执行能力,并不能从根本上显著提升CPU 系统的整体性能。

对于单核处理器在性能提升中遇到的瓶颈,近年来,AMD、IBM、Intel、SUN 等公司纷纷推出了自己的多核处理器或多核架构设计[1]。多核处理器的出现,使处理器的主频大幅度降低,同时也提升了指令执行效率,普遍认为多核处理器将会是今后处理器发展的方向。但是与处理器发展不相适应的是,基于多核处理器之上的操作系统和软件对于多核的支持并不完美。

微软Windows 核心操作系统部门内核设计师Dave Probert提到了关于多核技术发展的一些问题。芯片厂商在生产多核处理器时一厢情愿地认为软件开发者将为多核处理器开发软件,问题是目前的桌面系统软件不能有效地利用多核处理器,因为开发者需要利用并行编程技术才能充分利用多核处理器的处理能力。除专业的科学计算软件外,并行软件并不普及,而且并行编程技术也相对难以掌握。一种更好的方法是重新考虑操作系统管理多核处理器的方式,“问题不在于并行编程,而在于操作系统如何管理处理器”,微软正在开发针对多核处理器的全新一代多核操作系统。从目前来看,多核操作系统滞后于多核处理器的发展,而多核技术作为一个系统,其中的“短板”将严重制约计算机整体性能的提升。可以说,多核操作系统技术的突破,将会带来从嵌入式领域到桌面计算机、服务器等所有计算机系统的性能的一个整体性提高,因此对于多核操作系统的研究意义非常重大。

第二章多核操作系统的研究进程

2.1国外研究进程

虽然多核是近年来才出现的新概念,涵义是指在一个芯片上,集成了多个CPU 的内核以达到多内核协同工作,提高处理器性能的目的。但是从操作系统的角度来说,早在20 世纪70年代出现的多处理器操作系统可以说是多核操作系统的前身。因此,多核操作系统的思想最早可以追溯到1974 年由卡内基梅隆大学提出的HYDRA 操作系统[2]。HYDRA 内核是最早针对多处理器系统设计的操作系统之一,并且能在c.mmp 硬件上运行。HYDRA 内核把“对象”的概念引入操作系统中,将物理上的或者虚拟的资源都当作对象进行处理。另外,HYDRA还提供了一种灵活的保护策略,针对不同的对象可以提供不同的保护机制。随后,在1979 年,卡内基梅隆大学又推出了一个多处理器操作系统StarOS[3]。StarOS 继承了部分HYDRA 的思想,提出了如模块、功能、模块调用等新的概念。这些概念在后来的很多基于面向对象的操作系统中得到应用,如iMAX[4]、Choices[5]、CHAOS[6]等。由于UNIX 操作系统的流行,从20 世纪80 年代开始,逐渐出现了一些类UNIX 的多处理器操作系统。包括DYNIX[7]、UMAX[8]、Chrysalis[9]、RP3[10]等。这些操作系统的综合特性包括支持多用户,支持多线程和进程,基于优先级的进程调度,可抢占调度,基于锁、信号量、事件的进程同步,支持虚拟内存等。从1996 年多核处理器架构提出开始,斯坦福大学、卡内基梅隆大学、麻省理工学院等院校最早开始了关于多核操作系统的研究,并推出了自己的多核操作系统。随着多核技术的迅猛发展,IBM、SUN 等商业公司也发现了多核技术的发展潜力,纷纷投入多核技术的研究。为了保证多核技术的健康发展,多核协会( Multicore Association) 在2005 年成立。多核协会是一个开放性的非营利组织,由不同的工作组负责多核处理器、操作系统、开发调试工具、应用程序等不同类别的研究,致力于解决多核技术发展中的问题,制定相关的标准。

2.2 国内研究进程

国内在多核操作系统方面的研究主要集中在一些学术机构中,而且研究机构比较少,起步也相对比较晚,这与多核技术的巨大发展潜力不相适应。浙江大学在2008 年设计实现了一个支持异构多核的嵌入式实时操作系统SmartOSEK OS-M[11],实现了多核之间的同步与通信,并设计了一种多核操作系统之上的编程模型。电子科技大学在2009 年实现了在四核处理器PB11MPCore 上的操作系统aCoral[12],并且通过改进的位图映射优先级调度算法,将优先级队列查找复杂度控制在O(1) ,以保证多核系统的实时性能。复旦大学联合西安交通大学以及麻省理工学院和微软亚洲研究院在2008 年共同开发出多核操作系统Corey。Corey 的设计思想是“应用程序控制数据的共享”[13],即通过应用程序对内核间共享资源的控制,减少多核之间不必要的资源传递和更新,以达到更高效利用多个内核的目的。实验表明这种思想对系统整体性能提升的效果明显,在16 核的系统上,Corey系统的Map Reduce 性能比Linux 提高了25%。

相关文档
最新文档