3 Linux、WinCE的测试结果及分析
根据上述指标体系及测试方法,我们对Linux和WinCE进行了相关的测试。其中,Linux版本为2.4.19,WinCE版本为WinCE.Net。由于当硬件平台与运行环境不同时,即使同一内核运行时体现的性能指标也会不同,所以对不同RTOS的评测只有在相同平台环境下进行比对才有其价值,测试以评价为目标,评价以比对为依据。表1是对上述两种内核的评测结果。由于篇幅所限,这里只列出了平均时间,最大、最小值没有列出。
表1 Linux和WinCE 比对评测 结果指标
从表1中可以看出,在任务切换时间、线程切换时间、系统调用平均运行时间几项指标中,Linux2.4.19和WinCE.Net相差不大;但在任务抢占时间、信号量混洗时间、中断响应时间几项指标中,WinCE.Net明显优于Linux2.4.19。总的来说,WinCE.Net的 实时性 优于Linux2.4.19。下面从两种操作系统的特点、内部实现机制等方面来解释说明上述测试结果。
Linux与WinCE均允许不同进程的优先级相同,这一点不同于μC/OS等实时内核(μC/OS中每个任务的优先级唯一),所以采用的调度算法都是抢占式和时间片轮转的混和式调度策略。因此,在同优先级的进程切换时,二者指标相差不大。
测试中使用的Linux2.4.19并非是为嵌入式实时系统设计的专用操作系统,只是对原有的通用内核进行了一定的裁剪;而WinCE.Net虽然也不是一个严格意义上的实时内核,但却是专门为嵌入式系统设计的。所以,在任务抢占和中断响应方面,WinCE要显著强于Linux。另外,Linux2.4.19在内核级并不支持抢占,这也是它的抢占时间大于WinCE的一个主要原因。不过,这一点在2.6版本的Linux内核中已经得到了解决。
系统调用效率上,WinCE.Net要优于Linux2.4.19,但是Linux的系统调用更加符合POSIX标准,更加规范,而且更加开放。
综上所述,在对实时性要求较高的嵌入式系统中,WinCE.Net要比Linux2.4.19更加适用,并且WinCE.Net在开发类桌面系统中继承了微软的一贯优势,使得开发更加容易。但是,如果系统的实时性要求不高,Linux也许是更合适的选择,因为使用它可以降低成本,并且完全对用户透明,便于修改定制。若想使用Linux作为操作系统开发实时性要求较高的系统,则应对其做适当的实时性改造,或者直接使用已经过实时改造的Linux内核,如RTLinux等。
4 总结与展望
本文介绍的测试方法与传统的纯软件测试方法相比,具有精度高、易于比对的特点,且测试的复杂度并没有显著地增加;与单纯的硬件测试方法相比,具有性价比高、需要设备少、扩展性强等特点,且测试精度差别不大,但功能不如逻辑分析仪、示波器等专用硬件设备强大。本文介绍的嵌入式操作系统实时性指标体系还有着较大的完善和扩展空间,每一个指标都可以进一步细化。若能在不同的负载条件下利用本文的测试方法进一步测试,则可使得测试结果更加全面客观。
参考文献
[1] Krishma C M,KangG Shin.RealTime SystEMS.McGrawHill Companies,Ins 1997.
[2] Furht B,GrostICk D,Gluch D.RealTime UNIX Systems Design and Application Guide[M].Kluwer AcadEMIc Publishers,1991.
[3] Boling D.Programming MicroSOFt Windows CE[M].Edition 2.Microsoft Publishers,1999.
[4] Heursch A C.Preemption concept, Rhealstone Benchmark and scheduler analysis of Linux 2.4[J].RealTime & Embedded Computing Conference,Milan,November 2728,2001.