欢迎来到天天文库
浏览记录
ID:50272941
大小:49.81 KB
页数:5页
时间:2020-03-07
《多核计算机已成主流.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、多核计算机已成主流一、多核结构由于人类的贪婪本性,我们对计算机芯片的速度总是感到不满意。英特尔公司一直在努力提升CPU的时钟频率,其最新最快的奔腾芯片时钟频率已经达到了令人咂舌的3.8GHZ。但这时芯片的散热成为了一个不可逾越的障碍,因此英特尔公司只得宣布停止4GHZ新产品的计划。质量上不行,数量上补。在今天,芯片厂商已经将将来压宝在多处理器和多核上面。多处理器指的是在一个体系结构上放置多个CPU,而多核则是指在同一块芯片(CPU)上放置多个核(core),即执行单元。为简单起见,人们现在将多处理器和多核结构统称
2、为多核结构。多核和多CPU的区别是多核结构更加紧凑,成本在同等执行单元数量的情况下更便宜、功耗更低。随着AMD和Intel在多核技术上的大力研究和推进,多核技术已经从双核推进到4核、8核甚至更高。多核计算机的出现,打破了单核环境下的许多操作系统设计的正确性或可靠性。为了适应多核环境所提出的新要求,也为了更好地利用多核技术提供的新方便,操作系统需要作出相应调整。要讨论多核环境下操作系统所做的调整,首先需要了解单核环境和多核环境的不同之处。在X86体系结构下,多处理功能芯片经过了以下四个演变阶段:(1)多处理器结构即
3、一条总线上挂载多个处理器。在多个CPU的情况下,以CPU之间的关系不同可以分为对称多处理器结构(SMP结构,较普遍)和非对称多处理器结构(AMP结构)。(2)超线程结构在一台电脑里安装多个CPU虽然提升了计算机的性能,但是付出的代价是高昂的成本和巨大的功耗。而在实际中,基于很多原因,CPU的执行单元并没有被充分利用。因此Intel提出了超线程技术来让一个CPU同时执行多重线程,从而提高CPU效率和用户满意度。超线程技术是在一个CPU上同时执行的多个程序共同分享该CPU内的资源,理论上像两个CPU在同一时间执行两个
4、线程。超线程技术可在同一时间里,让应用程序使用芯片的不同部分。为了实现这种技术,需要在处理器上多加入一个逻辑处理单元指针。需用注意的是,含有超线程技术的CPU需要芯片组和软件支持,才能比较理想地发挥该项技术的优势。操作系统如WindowsXP、Windows2003、Linus2.4.x以后的版本均支持超线程技术。虽然采用超线程技术能同时执行两个线程,但它并不像两个真正的CPU那样,每个CPU都有具有独立的资源。当两个线程都需要某一个资源时,其中一个要暂时停止,并让出资源,直到这此资源闲置后才能继续。因此超线程的
5、性能并不等同于两个CPU的性能。(3)多核结构有什么办法能同时克服多CPU和超线程的缺点呢?就是多核结构。多核结构就是在一个CPU里面布置两个执行核,即两套执行单元,如ALU、FPU和L2缓存等。而其他部分则两个核共享。这样由于使用的是一个CPU,其功耗和单CPU一样。由于布置了多个核,其指令级并行将是真正的并行,而不是超线程的半并行。(4)多核超线程结构而在多核情况下,我们也可以使用超线程技术,从而形成多核超线程技术。即每个物理执行核里面又分解为两个或多个逻辑执行单元。二、多核环境下操作系统的修正多核的出现对软
6、件的设计产生了巨大的影响。例如,由于多CPU或者多个执行核的存在,我们在单核环境下的原语操作将不能适应,而需要修正。除此之外,进程的调度也是一个大大需要修改的地方,因为现在进程不只有一个执行核可以选择了。内存管理的变化是多核环境带来的另外一个重要变故。此外,能耗优化也是多核环境下必须考虑的问题:如果一个核上没有执行程序,是否需要让这个核停止工作?1.多核环境下的进程同步在单核环境下,一个时候只可有一个程序在执行。而在多核环境下,由于多个执行核或CPU的存在,多个程序可以真正的同时执行。因此,多核环境下的进程同步与
7、单核环境下将有着很大不同。为了保证程序执行的正确性,我们需要采取措施保证一段程序的执行是原子操作。不过这里的原子操作与我们单核环境下的原子操作有所不同:它必须保证跨越CPU的原子性。即一个CPU执行某段程序时,得让另一个CPU不执行该程序。这种保证的实现,需要硬件的支持。2.多核环境下的进程调度对于进程和线程来说,多核环境与单核环境的最大不同是可以有多个线程或进程真正地同时执行,而在单核情景下,这个同时不是真正的物理同时,而是虚拟的逻辑同时。就是这个从逻辑同时到物理同时的变化,使得多核环境下的调度与单核环境下的调
8、度有所不同。在多核环境下,操作系统的任务分配和调度是目前研究的一个研究热点。在这个新环境中,操作系统需要考虑:(1)新的任务给谁(2)每个核如何调度它上面的任务(3)是否采用一致的调度算法(4)一个进程是否始终在一个核上运行(5)如何调度实时任务和普通任务(1)如何保证负载均衡,即如何保证每个核的工作量比较均衡(2)负载不均衡是否迁移任务(3)采用单独还是共同的就绪队列三
此文档下载收益归作者所有