Linux操作系统实时性学习示例分析

78次阅读
没有评论

共计 2029 个字符,预计需要花费 6 分钟才能阅读完成。

本篇文章为大家展示了 Linux 操作系统实时性学习示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、实时系统基本概念

什么是实时系统,POSIX 作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被 Donald Gillies 提出定义为:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间, 如果系统的时间约束条件得不到满足, 将会发生系统出错。实时系统对响应时间有严格要求。

实时操作系统(RTOS,RealTime Operation System)是指能够在给定的截止时间前对内部或者外部的异常事件做出正确响应的操作系统。在实时操作系统中,进程的执行结果的正确与否不仅与逻辑运算或数学计算结果的正确性相关,还与进程运行结束得出结果的时间有关,也就是说,如果一个进程的运算结果是正确的,但是由于它完成时间已经超出了系统给定的 *** 期限,在实时系统中,这个结果就是毫无意义的。

根据系统对响应时间约束条件的强弱可将实时操作系统分为两大类:硬实时系统 (HRT,HardReal-Time System) 和软实时系统(SRT,SoftReal-Time System)。

软实时操作系统:软实时操作系统对时间的限制不是十分苛刻,响应的时间可以相对延迟,即未超过 *** 规定时间太多的范围内,其结果都是可以接受的,不会产生严重的后果。

硬实时操作系统:对于硬实时操作系统而言,不仅要求各个任务能够运行得到正确的结果,同时还必须在限定的时间内完成,这个时间是由系统本身确定的,这比软实时操作系统的时间约束条件严格了许多。例如,在航天领域的嵌入式实时操作系统中,如果在规定的时间内未能得出所希望的运算结果,其产生的后果将是十分严重的。

二、Linux 操作系统实时性

1、Linux 系统框架
宏观上,Linux 的框架如图 1:

  图 1 Linux 框架图

为了更加直观,更加便于理解,Linux 框架图 1,可以抽象成下图 2。

图 2            

                 

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  实时性的典型代表。

上述内容就是 Linux 操作系统实时性学习示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2029字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)