Linux操作系统实时性分析及改进策略
扫描二维码
随时随地手机看文章
电子论坛 您现在的位置:FIFO 的货源和报价 FIFO 的相关技术信息 其他型号 香港天龙国际贸易有限公司联系人:龙生 高生 james lung
电话:0755-82235138 >>更多供应商 Linux操作系统实时性分析及改进策略 1前言
实时系统可以定义为"一个能够在事先指定或确定的时间内完成系统功能和对外部或内部、同步或异步事件作出响应的系统"。实时操作系统 (Realtime OS)是实时系统中使用的操作系统。实时操作系统的任务不只是要求完成每一个工作,并且要按照给定的时限按时完成每一个工作,所以实时操作系统必须能够确保其任务对时间的要求。
实时有硬实时和软实时之分。硬实时和软实时的区别就在于对外界的事件做出反应的时间。硬实时系统必须是及时对事件做出反应,绝对不能错过事件处理的deadline情况。在硬实时系统中如果出现了这样的情况就意味着巨大的损失和灾难。比如说核电站中的堆芯温度控制系统,如果没有对堆芯过热做出及时的处理,后果不堪想象。软实时系统是指,如果在系统负荷较重的时候,允许发生错过deadline的情况而且不会造成太大的危害。比如说程控电话系统允许在105个电话中有一个接不通。
现有的Linux是一个通用的操作系统,它是按照分时系统的目标设计的,进程调度强调平衡各进程之间的响应时间来保证公平的CPU时间占用。虽然采用了许多技术来加快系统运行和反应速度,但它本质上不是一个实时操作系统。为了保证其实时性,必须采用一定的策略加以改进。
2影响Linux实时性能的主要因素
在Linux系统中,响应中断的过程如下:设备产生一个中断、中断处理函数开始执行、唤醒任务并在运行队列排队、任务获取CPU并开始执行、任务执行完毕。图1为事件处理过程各个阶段图以及影响响应时间的因素(每个阶段下面的字母A~J表示这个阶段中影响响应时间的因素):
由图中可以分析出导致Linux系统不能满足实时系统短的响应时间和确定的执行行为的要求的主要因素有以下方面:
(1)Linux操作系统存在关中断的机制。导致的结果是:如果低优先级的进程由于进入临界区或者为了尽快完成任务而关闭了中断,那么即使有高优先级实时进程的中断发生系统也无法响应。这种情况在实时系统中是不允许发生的。
(2)Linux操作系统内核是禁止抢占的。一个进程一旦进入内核,它将运行直到系统调用结束或进程被阻塞。这时候一个高优先级的实时进程只能等待。这样的设计是为了简化任务调度,但对实时进程来说这样的时间等待是不允许的。
FIFO技术。当insmod将rtl_FIFO.o驱动程序插入Linux内核时,该驱动程序将自己注册为RTLinux的一部分,并成为Linux驱动程序。一旦插入Linux内核,用户空间进程和实时任务都可使用实时FIFO,如图2所示。
任何硬实时任务都是在RTLinux的控制下运行的,该任务一般可执行周期性任务、处理中断并与I/O设备驱动程序通信,以采集或输出模拟和数字信息。当实时任务需要告诉用户进程有一个事件将发生时,它便将这一消息送给实时FIFO。每一个FIFO都是在一