首页 | 技术文章 | 资料下载 | 资料分类 | 最近更新资料 | 免费注册 | 用户登录 | 会员中心 | 新手上路 | 给我留言
设为主页
收藏本站
联系我们
| 应用产品 | 嵌入式系统 | DSP | 综合电子技术 | 软件开发 | 开发工具
资料搜索:   | 发布资料 | 发表文章 |
当前位置: 文章首页嵌入式系统操作系统→μC/OS-ll中任务调度算法的改进(2)
μC/OS-ll中任务调度算法的改进(2)
作者:英特尔中国软件中心 吴平  来源于:单片机及嵌入式系统应用  发布时间:2007-2-7 16:54:00

2 μC/OS调度算法的改进

μC/OS中的每个任务具有一个任务控制块0S_TCB,任务控制块记录任务执行的环境,包括任务的优先级、任务的堆栈指针、任务的相关事件控制块指针等。内核将系统中处于就绪态的任务在就绪表中进行标注,通过就绪表中的两个变量OSRdyGrp和OSRdyTbl[]可快速查找系统中就绪的任务。在μC/OS—II中每个任务有唯一的优先级,因此任务的优先级也是任务的唯一标识。内核可用控制块优先级表OSTCBPrioTbl[]通过任务的优先级查到任务控制块的地址。μC/OS—II主要就是利用任务控制快OS_TCB、就绪表和控制块优先级表0STCBPrioTbl[]来进行任务调度。任务调度程序OSSched()首先由就绪表中找到当前系统中处于就绪态的优先级最高的任务,然后根据其优先级由控制块优先级表0STCBPrioTbl[]取得相应任务控制块的地址,由OS_TASK—SW()程序进行运行环境的切换。若在任务运行时发生中断,则转向执行中断程序,执行完毕后不是简单地返回中断调用处,而是由OSIntExit()程序进行任务调度,执行当前系统中优先级最高的就绪态任务。


    本文拟在不破坏μC/OS实时性的前提下,增加时间片调度,以适于非实时性场合,并参考Windows和Linux多种通用操作系统任务调用接口函数,对μC/0S任务接口作出改进,提供通用简单的编程接口,降低应用软件开发难度,增加系统稳定性和可靠性。


2.1  时间片调度算法的设计与实现

μC/OS中共有64个任务,其中作者保留了8个任务以备将来使用,因此用户可以有多达56个应用任务。将这些任务划分为3个层次,如图l所示。

 

 



[] [返回上一页] [告诉好友] [发表评论] [打 印] [ 字体: ]
上篇文章:μC/OS-ll中任务调度算法的改进(1) 
下篇文章:μC/OS-ll中任务调度算法的改进(3)
∷相关文章∷
· 实时操作系统μC/OS-II在MCF5272上的移植
· μC/OS-ll中任务调度算法的改进(1)
· μC/OS-ll中任务调度算法的改进(4)
· μC/OS-Ⅱ在ARM7上移植方法的探讨与实现
· μC/OS-ll中任务调度算法的改进(3)
∷相关软件∷
嵌入开发网下载中心Copyright © 2000-2006 www.embed.com.cn. All Rights Reserved .