一、引言 Linu x 本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成、 尽量减少进程运行的不可预测性等。但与商业嵌入式操作系统相比 Linu x 遵循 GPL,具有源代码开放、定制方便、支持广泛的计算机硬件等优点,所以,近年 来嵌入式 Linu x 成为嵌入式系统方向上的一个研究热点。 本文首先分析了实时系统的特点和 Linu x 内核在实时应用方面的不足,然后针对影响操作系统实时性能的若干方面进行研究,提出解决方案,最后总结全文。 二、实时系统的分类 实时系统最重要的特点就是实时性,即系统的正确性不仅仅依赖于计算的逻辑结果的正确性,还取决于输出结果时间的及时性。从这个角度看,实时系统是“一个能够在指定或者确定的时间内完成系统功能和对外部环境做出响应的系统”。按对实时性能要求的程度,实时系统可分为两类: (1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。 (2) 软实时系统:也对时间敏感,但偶尔发生不能满足严格实时要求的情况也是允许的。 三、Linux 在实时方面存在的不足 Linu x 虽然符合 POSIX1003.1b 关于 实时扩展 部分的标准, 例如:支持SCHED_FIFO 和 SCHED_RR 实时调度策略,锁内存机制(memory locking),实时信号等功能,但是 由于其最初的设计目标为通用分时操作系统,因此作为一个实时操作系统,Linu x 仍然存在如下缺陷: (1) Linux 的内核本身是非抢占的。Linux 下分用户态和核心态两种模式,当进程运行在用户态时,可被优先级更高的进程抢占,但当它进入核心态时,其他用户态进程优先级再高也不能抢占它。 (2) Linux 虽然给实时进程提供了较高的优先级,但是没有加入时间限制。例如:完成的最后期限、应在多长时间内完成、执行周期等等。同时,其他大量的非实时进程也可能对实时进程造成阻塞,无法确保实时进程的响应时间。 (3) 时钟粒度粗糙。时钟管理是操作系统的脉搏,任务的执行和中止在很多情况下都是由时钟直接或间接唤起的,它还是进程调度的重要依据。Linux 的周期模式定时器频率仅为 100Hz,远不能满足实时应用的要求。 四、改进内核实时性的分析与研究 从中断软件模拟、可抢占式内核体系结构、实时任务的调度策略这三个方面对嵌入式Linux 内核进行研究,并给出了相应的提高实时性的方法。 1. 响应时间的分析及解决方法 ...