摘要:
近年来,嵌入式系统在军事、工业、航天等重要领域得到了广泛应用,同时这些领域对系统的实时性也提出了越来越高的要求。相对于其它嵌入式操作系统,Linux具有开放源代码、可裁剪、性能稳定、可靠性高、支持SMP体系结构等特点,目前基于Linux的嵌入式系统应用案例越来越丰富。 本文对嵌入式Linux中的时钟机制、计时系统、时间戳系统、定时器系统以及调度框架和调度算法进行了深入的分析。在此基础上,针对嵌入式Linux在实时性能上所面临的问题,基于单触发时钟对其进行了实时优化。 在时钟系统方面,本文首先实现了单触发时钟,并基于单触发时钟设计了资源控制器OTRC(One-shot Timer Based Resource Controller,OTRC)。OTRC主要用于管理系统中的资源(如CPU等),并根据具体的实时需求来控制时钟中断的时间。另外,改造了计时系统,保证了系统在单触发时钟下计时的正确性。 在定时器系统方面,设计了高精度定时器系统。该系统基于OTRC对定时器队列的管理,可以得到微秒级的时钟精度。另外利用时间戳计数器设计了细粒度的时间戳系统,为高精度定时器系统提供了准确的时间度量。改造后的高精度定时器系统能够达到微秒级的定时精度。 在调度算法上,提出了OBED(OTRC Based EDF Scheduling,OBED)实时调度算法,并设计了新的实时调度框架。该框架将实时进程和非实时进程分开管理,对实时进程使用EDF调度算法,而对非实时进程使用Linux原有的调度算法,并利用OTRC对进程的执行进行管理和控制。OBED算法综合了两种算法的优点,既能够保证实时进程的时间约束条件,又可以提高非实时进程的性能,达到了提高系统吞吐率的目的。 最后,本文在PowerPC嵌入式平台上实现了单触发时钟系统、细粒度时间戳系统、OTRC资源控制器和高精度定时器系统,并实现了OBED实时调度框架的原型系统。测试结果显示,改进后的系统在实时性方面有了很大的提高。
展开