Linux内核2_6进程调度分析与改进
计算机技术与发展第19卷 第7期 19 No.7 Vol.2009年7月Jul. 2009COMPUTERTECHNOLOGYANDDEVELOPMENT
Linux内核2.6进程调度分析与改进
杨 静,李 炜,万峰松,吴建国
(安徽大学计算智能与信号处理重点实验室,安徽合肥230039)
摘 要:对Linux内核2.6进行了进程调度分析,阐述了Linux内核2.6提高实时性的各方面因素。同时针对Linux内核2.6三种基本的调度策略SCHED-OTHER,SCHED-FIFO,SCHED-RR存在调度实时性不强的问题,度实时性的调度算法:静态优先级的RM调度算法,动态优先级的,LSF法都在不同程度上提高了Linux内核2.6的实时性能。为了让Linux,有效的调度算法来提高Linux实时性。关键词:Linux内核2.6;;;:文章编号:1673-629X(2009)07-0105-03
andImprovementofLinuxKernel2.6ProcessScheduler
YANGJing,LIWei,WANFeng2song,WUJian2guo
(KeyLab.ofIntelligentComputing&SignalProcessing,AnhuiUniversity,Hefei230039,China)
Abstract:ExpressestheanalysisofLinuxkernel2.6processscheduler,elaboratesthereasonsoftheimprovementofLinuxkernel2.6’sreal-timeperformance.Andpointoutthreebasicschedulingpolicies:SCHED-OTHER,SCHED-FIFO,SCHED-RRhavetheprob2lemofreal-timescheduler,thenexpressesfourkindsofschedulingalgorithmtoimprovethisdefect:RMalgorithmbasedonstaticprior2ity,EDF,LSFalgorithmbasedondynamicpriorityandamixedalgorithm.ThesefouralgorithmsallimproveLinuxkernel2.6’sreal-timeperformanceondifferentlevel.ForlettingLinuxusebetterinreal-timesystem,nowshouldstudymoreeffectiveandusefulschedul2ingalgorithmtoimproveLinuxreal-timeperformance.
Keywords:Linuxkernel2.6;process;schedulingalgorithm;real-time
0 引 言
Linux系统经过多年的发展日益成熟,并且由于
法和可抢占式内核。
1.1 进程调度分析1.1.1 可运行队列runqueue
Linux2.6中每个CPU都拥有一个自己的可运行
它的源码开放性,Linux系统在生活生产各个领域得到了广泛的应用。然而Linux系统本身只是一个通用的分时系统,面对现今实时系统的广泛应用和发展,
Linux在实时性方面存在较大的不足[1]。为了弥补实
队列,且每一个可运行队列都有一个自旋锁,使得各个
CPU都各自独立使用自己的可运行队列。可运行队
时性的不足,需要做的就是对Linux进行实时性改进。文中就是针对Linux内核2.6在实时性方面进行了进程调度分析和改进。
列由结构runqueue[2~8]表示如下:
structrunqueue{
…
1 Linux2.6内核进程调度分析与改进
Linux2.6内核具备两大新的特色:O(1)调度算
收稿日期:2008-11-12;修回日期:2009-02-12基金项目:安徽省自然科学资助计划项目(2006KJ013A)
作者简介:杨 静(1983-),女,硕士研究生,研究方向为嵌入式软件技术;李 炜,副教授,硕导,研究方向为嵌入式系统和CIMS技术;吴建国,教授,博导,研究方向为中文信息处理及智能CDA/
EDA。
prio-array-t3active,3expired,arrays[2]; …};
可运行队列根据时间片是否被用完分为活动的
active队列和过期的expired队列。分别存放那些时间
片没用完,当前可被调度的就绪进程和时间片用完的进程。其中prio-array-t3active是指向活动优先级数组(active队列)的指针,3expired是指向过期优先级数组(expired队列)的指针,array[2]是实际优先级