微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Linux在嵌入式系统中有关进程调度算法的实时性改进

Linux在嵌入式系统中有关进程调度算法的实时性改进

时间:04-06 来源:互联网 点击:

对Linux 内部实时性改造有两个方面的工作: (1) 对时钟机制的改造。 (2) 在内核方面的抢占性改造。 改造的目的是为了缩短Linux 内核的响应延时。

(1) 在时钟机制的改造方面,可以通过提高系统时钟的精度来增强系统的实时性,特别是对外部中断的响应。因为精确的时钟是操作系统进行准确的调度工作的必不可少的条件。 执行调度就要求在特定的时间进行任务切换。不精确的时钟会导致调度偏差,从而导致无法预计的结果。所以提高时钟精度,减少调度偏差是非常重要的。在操作系统中,时钟精度不高的原因之一是因为:周期性时钟中断的使用。操作系统不得不将大量的时间开销用于处理时钟中断。 Linux。 操作系统也是如此。 在Linux 中,它的中断频率被设为100Hz。即大约每10ms 产生一次定时中断。

(2) 在内核抢占性方面的改造有两种方法:一种是抢占点的方法。另一种是抢占式内核的设计。所谓抢占就是内核在某个合适的地方调用schedule() 函数来检查是否有高优先级的任务已经处于ready 状态并让这个高优先级任务运行。为了提高系统的实时性,抢占的选择要合理,既不能时间间隔太短,也不能太长,因此,在设置抢占点的时候要测试内核中的运行路径,在较长的运行路径中插入schedule() 。 进行调度,这个地方就是抢占点。

另一种是抢占式内核的设计,即允许处于系统调用状态的用户进程被刚刚唤醒的高优先级进程所抢占。 但是这种抢占方式并不是在内核代码的所有地方都是安全的,如在临界区就不能抢占。

结论

综上所述,不经改进的Linux 操作系统是不适合做实时操作系统的,即便是软实时,在系统负荷重的情况下也不能保证其实时性。 但通过对Linux 的改造可以完全提高Linux 的实时性,甚至可以满足硬实时的要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top