Linux内核基于对称多处理机的实现分析收稿日期:2005-04-28作者简介:李彬(11010—),男,安徽阜阳人,硕士研究生,研究方向为计算机系统结构;任国林,副教授,研究方向为计算机系统结构、嵌入式系统。Linux内核基于对称多处理机的实现分析李彬,任国林(东南大学,江苏南京210196)摘要:SMP(对称多处理机)是一种紧耦合、共享存储的系统模型。Linux内核为了支持SMP体系结构,必须要修改基于UP(单处理机)的内核代码。文中详细分析了SMP的体系结构,并对Linux内核中SMP的启动以及如何实现多处理器的进程调度进行了详细的分析,最后阐述了SMP中出现的一致性问题及解决方案,解决了Linux内核在对称多处理机上的实现。关键词:对称多处理机;进程调度;自旋锁;一致性:TP332文献标识码:A:1015-3751(2006)01-0129-03AnalysisofLinuxKernelBasedonSMPLIBin,RENGuo2lin(SoutheastUniversity,Nan激ng210196,China)Abstract:SMP(symmetricmultiprocessing)isasystemmodelwhichistightencouplingandsharesmemory.TheLinuxkernelhastomodi2fythekernelcodeastosupporttheSMParchitecture.ThepaperanalysesthesystemarchitectureofSMPparticularly.Italsoanalysesthekernel---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---howtobootSMPandhowtoimplementtheprocessschedulingindetail.Intheend,itexpatiatestheproblemofconsistencyinSMPandgivestheresolvment,sorealizestheLinuxkernelrunningonSMP.Keywords:SMP;processscheduler;spinlock;consistency0引言Linux操作系统最初是由LinusTorvalds和经由In2ternet组织起来的开发小组编写的。起初是为单处理机设计的,以免费公开源代码和GPL方式发行而得到了广泛的应用和发展。随着硬件的发展,CPU的价格大大下降,而Linux也在不断的发展,内核从2.0版本就开始支持SMP[1]系统。文中以Linux2.4.0版为基础,分析阐述了Linux内核是如何支持SMP体系结构的。1SMP体系结构SMP属于并行处理的范畴,是一种紧耦合、共享存储的系统模型。SMP中多个CPU共享内存和外围设备,所有的CPU在运行时(系统引导和初始化除外)都是对称的,没有主次之分,一台机器就具有多台机器的处理能力(SMP体系结构[2]见图1)。SMP体系结构之所以为人们所青睐,是因为有以下几个优点:①当一个任务可分成几个独立部分时,它们可以并行运行,比单处理机有更好的性能;②在SMP模式中,所有处理器处于平等地位,执行相同功能。当一个处理器损坏时,不会引起整个系统崩溃,增加了可靠性;③当用户希望增强系统的处理能力时,可通过增加处理器来达到目的。Linux内核要支持SMP,必须要修改基于UP的内核代码以适应SMP,主要涉及部分就是基于SMP的启动和进程调度问题。以下主要分析、研究Linux内核如何实现基于SMP的启动、进程调度以及如何解决出现的一---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---致性问题。图1SMP体系结构图2Linux内核的SMP的启动SMP结构中的所有CPU都是平等的,没有主次之分,在系统中有多个执行的进程或“上下文”。而在SMP系统引导时只有一个可处理的“上下文”,只能由一个引导第16卷第1期2006年1月计算机技术与发展COMPUTERTECHNOLOGYANDDEVELOPMENTVol.16No.1Jan.2006收稿日期:2005-04-28作者简介:李彬(11010—),男,安徽阜阳人,硕士研究生,研究方向为计算机系统结构;任国林,副教授,研究方向为计算机系统结构、嵌入式系统。Linux内核基于对称多处理机的实现分析李彬,任国林(东南大学,江苏南京210196)摘要:SMP(对称多处理机)是一种紧耦合、共享存储的系统模型。Linux内核为了支持SMP体系结构,必须要修改基于UP(单处理机)的内核代码。文中详细分析了SMP的体系结构,并对Linux内核中SMP的启动以及如何实现多处理器的进程调度进行了详细的分析,最后阐述了SMP中出现的一致性问题及解决方案,解决了Linux内核在对称多处理机上的实现。关键词:对称多处理机;进程调度;自旋锁;一致性:TP332文献标识码:A:1015-3751(2006)01-0129-03AnalysisofLinuxKernelBasedonSMPLIBin,RENGuo2lin(SoutheastUniversity,Nan激ng210196,China)Abstract:SMP(symmetricmultiprocess...