Linux操作系统实时性学习总结
作者:网络转载 发布时间:[ 2013/5/28 10:26:27 ] 推荐标签:
2、标准Linux内核制约实时性的因素
● Linux中有大量不可抢占的区域
在Linux2.6中,内核己经可以抢占,因而实时性得到了加强"但是内核中仍有大量的不可抢占区域,如由自旋锁(SPinlock)保护的临界区。
● 时钟粒度粗糙
Linux2.6内核虽然把时钟频率提高到1000 赫兹,定时精度达到了1ms,但远不能满足实时系统要求的微秒级定时精度,如数控系统要求50us 的定时精度。
● 关闭中断
系统调用和中断服务程序中,为了保护临界区资源,Linux会长时间关闭中断"有些系统调用和中断服务程序的时间还很长,这样会加大中断延迟时间。
● 缺乏有效的实时任务调度机制和调度算法
Linux系统是按照分时系统的目标设计的,以达到系统较好的平均性能,强调平衡各进程之间的响应时间来保证公平的CPU时间占用。通常采用固定时间片的分时调度算法,内核不能抢占,而实时系统的行为更多的取决于复杂的不可预知的情况。这些原则不能满足实时系统短的响应时间和确定的执行行为的要求。
● 优先级反转的问题
当一个低优先级的进程占用了某种资源,导致同样需要这个资源的高级进程无法运行,并且此时有一个优先级在他们之间的绪进程获得了CPU 的控制权,这样使得高级别的任务需要等待比他优先级别低的任务,这种现象叫做优先级反转。在Linux中,由于资源是不可抢占的,并且不支持优先级继承等策略,所以优先级反转现象可能会发生,这影响了系统的实时性能。
3、改进Linux实时性的方案
从前文可以看出,标准Linux内核有许多制约实时性的因素,要将Linux系统用于实时环境,必须对其进行改进。目前改进Linux实时性的方案有两种:直接修改内核法、双内核法。
直接修改内核法,通过对Linux 原理与源代码的分析,通过对内核的进程调度、中断服务程序等代码进行修改与优化,提高系统的实时性能,并且为了保证系统的通用性,需要按照POSIX
的相关标准来进行改动。利用这种方法可以获得较好的性能提升,并且因为与标准的Linux 内核使用相同的应用程序接口,所以有良好的兼容性。目前,采用修改内核方法改进Linux 实时性的产品很多,如 Kurt-Linux、TimesysLinux 和 Ingo's RT patch 等。
双内核法,通过在Linux 内核与硬件中断之间增加一个可抢先的实时内核,把标准的Linux 内核作为该实时内核的一个优先级低的进程来调度,它可以被实时进程抢断,正常的
Linux 进程仍可以在 Linux 内核上运行,这样既可以使用标准分时操作系统即Linux 的各种服务,又能提供低延时的实时环境。RT-Linux 是采用双内核法改造Linux 实时性的典型代表。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11