APP下载

μC/OS—Ⅱ任务延时管理的改进

2016-05-14许璐璐郑吉洲

网络空间安全 2016年5期

许璐璐 郑吉洲

[摘要]嵌入式实时操作系统μC/OS-Ⅱ在时钟节拍服务中,需要遍历任务控制块链表中的所有任务控制块,对任务的延时进行管理,效率比较低。针对这个问题,论文提出了一种改进方法,使用增量链表对任务延时进行高效管理,并给出了增量链表的实现及其在μC/OS-Ⅱ任务延时管理中的运用。

[关键词]μC/OS-Ⅱ;任务延时管理;增量链表

1 引言

μC/OS-Ⅱ是一个源码开放的嵌入式实时操作系统,具有结构精简、可裁剪、可移植性强、多任务可剥夺实时内核等特点,稳定性和安全性能好,在嵌入式领域应用广泛。任务延时是嵌入式实时操作系统中的一个常用操作,可能发生在任务主动让出CPU、等待某一事件发生等情况下。每个需要延时的任务都有自己特定的延时请求,操作系统必须维护申请延时任务的集合,对任务的延时状态、延时时间进行管理。

数据结构的设计对操作系统任务延时管理的效率有很大的影响。本文分析了μC/OS-Ⅱ对任务延时管理的缺点,提出了一个基于增量链表的改进方案,能够实现对延时任务的高效管理。

2 μC/OS-Ⅱ任务延时管理分析

μC/OS-Ⅱ中调用OSTimeDly()可实现对任务的延时,任务的延时时间保存在任务控制块里的OSTCBDly变量中,在时钟节拍服务程序OSTimeTick()中对任务的延时状态进行更新,其部分代码如下(参照μC/OS-Ⅱv2,86版本):

从代码可以知道。需要遍历任务控制块链表中的所有任务控制块,对其中的延时任务进行状态更新,当系统中任务数比较多时,这是个很耗时的操作,效率比较低。……

登录APP查看全文