Linux实时性能瓶颈分析_何剑:1671-1742(2005)05-0555-04Linux实时性能瓶颈分析何剑,刘镰斧(电子科技大学通信与信息工程学院,四川成都610154)摘要:从调度机制、信号量和消息队列3方面将Linux、RT-Linux和VxWorks进行了综合对比,并结合测试用例得出了影响Linux实时性能的瓶颈。最后从上述3方面给出了Linux实时性能改造的可行性办法。关键词:任务;调度;实时:TN911173文献标识码:A收稿日期:2004-09-01基金项目:国家/8630计划项目课题(2002AA1Z2306)1引言随着通信业的飞速发展,人们对通信系统的实时性要求越来越高。计算机技术的进步客观上也为进一步提高实时性提供了可能。操作系统,作为非常核心的部分,直接影响到了系统工作的效率。衡量操作系统实时性能的重要指标之一就是任务切换时间。而且在多任务的环境中,操作系统将大量的使用信号量和消息队列来使系统正常的运行。因此,调度机制、信号量和消息队列的运行效率将直接影响到操作系统的实时性能。Linux是一个内核源代码开放、具备一整套工具链、有强大的网络支持及成本低廉的操作系统,但是作为一款非常优秀的桌面操作系统,Linux在实时性能方面有先天的缺陷。怎么样将Linux应用于嵌入式实时系统是现在比较热门的课题。RT-Linux和---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---VxWorks作为业界非常著名的两款硬实时操作系统,在各种实时性能要求非常高的行业中都有不错的表现。通过分析Linux和RT-Linux、VxWorks在上述3个方面的工作机制,提出对Linux内核改造的可行性办法。2性能对比211调度机制Linux调度的策略,为了适应各种不同的应用,Linux在从Unix上继承下来的基于优先级的调度策略的基础上实现了3种调度策略:SCHED-FIFO、SCHED-RR和SCHED-OTHER。其中的SCHE-FIFO和SCHED-RR都是实时调度的策略,它们在系统中被赋予了至少1010个的优先权值。二者不同的地方在于对待同等优先权值的进程处理方式上的差别。当系统中有多个同等优先级的SCHED-FIFO进程就绪时按照先入先出的原则只有当前进程运行到自动放弃CPU的权限时才会让同等优先级的另一个进程调度起来运行。而对于SCHED-RR的进程,则会在每次时钟中断到来时检查先前进程的时间片是否用完,如果用完则剥夺当前进程的CPU使用权调度出同等优先级的另一个SCHED-RR进程运行。SCHED-OTHER则为传统的调度策略,主要用于交互式应用。调度的方式:Linux内核的调度采用有条件的可剥夺方式,当进程在用户空间运行时,一旦有必要,例如发生了外部中断或者进程的时间片到时,内核都可以剥夺当前进程的运行权而调度其他的进程运行,因而说这种调度方式是可剥夺的,但当进入内核态时,即使内核知道应该调度了,但这种调度并不会立即发生,只有当前进程回到用户空间的前夕这种调度才会发生。由于不论是主动的调度还是被动的调度最终都是通过在内核空间中调用---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---schedule()函数来实现的,因此Linux的进程切换一定是在系统空间中完成的,在下面的分析中还可以看到这个过程实际上就是在schedule函数中完成的。在Linux中,调度器就是通过schedule()函数实现,大致流程图如图1所示(这里省略了很多细节,只给出几个关键点)。分析上述的schedule()流程图,可以看到Linux在挑选下一个要运行进程时,会遍历整个就绪队列,对每一个第20卷第5期2005年10月成都信息工程学院学报JOURNALOFCHENGDUUNIVERSITYOFINFORMATIONTECHNOLOGYVol.20No.5Oct.2005:1671-1742(2005)05-0555-04Linux实时性能瓶颈分析何剑,刘镰斧(电子科技大学通信与信息工程学院,四川成都610154)摘要:从调度机制、信号量和消息队列3方面将Linux、RT-Linux和VxWorks进行了综合对比,并结合测试用例得出了影响Linux实时性能的瓶颈。最后从上述3方面给出了Linux实时性能改造的可行性办法。关键词:任务;调度;实时:TN911173文献标识码:A收稿日期:2004-09-01基金项目:国家/8630计划项目课题(2002AA1Z2306)1引言随着通信业的飞速发展,人们对通信系统的实时性要求越来越高。计算机技术的进步客观上也为进一步提高实时性提供了可能。操作系统,作为非常核心的部分,直接...