- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
µC/OS- Ⅱ内核任务调度的实现
赵二涛,杨春金
武汉理工大学信息工程学院,武汉(430063 )
E-mail:logo10497@163.com
摘 要:任务调度是一个实时操作系统的核心功能,关系到整个操作系统的性能。µC /OS- Ⅱ
内核采用占先式调度方式,保证最高优先级任务一旦进入就绪态,就能立刻得到CPU的使用
权。本文结合µC /OS- Ⅱ内核源代码深入研究就绪态中最高优先级查找算法和任务调度原理
并给出实例加以分析。
关键词:嵌入式实时操作系统,µC /OS- Ⅱ,任务调度,就绪表,优先级
中图分类号:TP316.2
1. 引言
µC /OS- Ⅱ是一个完整的,可移植、可固化、可剪裁的嵌入式实时操作系统。它采用占
先式调度方式,即最高优先级的任务一旦就绪,总能立刻得到CPU 的使用权,从而保证系
统的实时性。
在任务调度的过程中,µC /OS- Ⅱ内核能快速、准确的从众多的就绪态任务中找出优先
级最高的任务,减少系统的响应时间,保证系统的实时性。本文首先介绍与任务有关的概念
和有关任务调度重要的域,接着详细分析µC /OS- Ⅱ的最高优先级查找算法和任务调度原理
并结合实例加以说明。在分析最高优先级查找算法时首先分析将任务置于就绪态的过程,这
样更易于理解内核的查找算法。
2. µC/OS- Ⅱ的任务调度
2.1 µC /OS- Ⅱ的任务
2.1.1 任务及任务状态
任务,也称线程,是一个简单的应用程序。每个任务都被赋予一定的优先级,并有自己
的一套CPU 寄存器和栈空间[1] 。实时应用程序的设计过程是如何把问题分割成多个任务。
每个任务都是一个无限的循环,都处在以下五种状态之一,即休眠态、就绪态、运行态、
挂起态和被中断态。1)休眠态:相当于任务驻留在内存中,但并不能被多任务内核所调度;
2 )就绪态:意味着任务已经准备好,可以运行,但由于该任务的优先级比正在运行的任务
的优先级低,还暂时不能运行;3 )运行态:指任务掌握了CPU的使用权,正在运行中;4 )
挂起态:指任务在等待,等待某一事件的发生;5 )被中断态:指发生中断时,CPU提供相
应的中断服务,原来正在运行的任务暂不能运行,就进入了中断态。
2.1.2 任务控制块(OS_TCB )
任务控制块是一个和任务息息相关的重要的结构体。当任务的CPU使用权被剥夺时,µC
/OS- Ⅱ用它来保存该任务的状态。当任务重新获得CPU的使用权时,任务控制块能确保任务
从被中断的那一点丝毫不差的继续执行[2] 。每个任务都拥有自己独立的任务控制块,一旦任
务建立,与之相对应的任务控制块就被赋值。
任务控制块结构体在uCOS_II.H 中定义,以下代码是节选OS_TCB中对本文分析相关的
进构体成员。
// File : uCOS_II.H
- 1 -
typedef struct os_tcb {
OS_STK *OSTCBStkPtr; /* 当前任务的栈顶指针 */
…
INT8U OSTCBPrio;
INT8U OSTCBX;
INT8U OSTCBY;
INT8U OSTCBBitX;
INT8U OSTCBBitY;
…
} OS_TCB;
OSTCBStkPtr 是当前任务的栈顶指针,每个任务都有自己的堆栈和指向栈顶指针。在上
下文切换时,对于优先级低的任务,要将任务当前状态保存于任务堆栈中(以便以后再次调
度到此任务继续执行),然后 OSTCBStkPtr 指向栈顶;对于优先级高的任务,通过
OSTCBStkPtr 找到任务的上次被切换时的状态,把保存的状态恢复到 CPU,这样任务就毫
无差错的继续执行。
OSTCBPrio 是任务的优先级号。OSTCBX,OSTCBBitX,OSTCBY,OSTCBBitY 用于
加速任务进入就绪态的过程或等
您可能关注的文档
- S6中具有常数Khler角和常数曲率极小曲面(英文).pdf
- SafeNet为企业级云计算提供解决方案.pdf
- SAPO分子筛合成方法.doc
- SARS诊断与鉴别诊断.ppt
- SBR亚硝化处理城市生活污水二级出水及稳定性.pdf
- SBS改性防水卷材施工方案.docx
- SBS改性沥青卷材防水施工工艺.doc
- SCR脱硝催化剂市场竞争态势与投资前景的研究报告.doc
- SDS3.引物探针设计原则.pdf
- SEBS对交联聚乙烯电性能及水树抑制影响.pdf
- 阿荣旗谢永贵家庭农场一带土壤化探数学地质异常提取.pdf
- 埃达克岩及成矿作用和相关问题讨论_张静.pdf
- 埃洛石纳米管论文:淀粉四氧化三铁染料吸附.doc
- 艾灸对应激性胃溃疡大鼠胃粘膜细胞增殖和凋亡影响及与热休克蛋白表达关系研究.pdf
- 安徽沙溪斑岩洞_金_矿床含矿裂隙空间分布特征及矿床成因_邱检生.pdf
- 安徽沙溪斑岩型铜金矿床含矿裂隙分布定量模型_朱翠祎.pdf
- 安徽省2014届高考物理一轮 小题精练3 新人教版.doc
- 安徽省“江南十校”2012届高三3月联考(化学)WORD版.doc
- 安徽省部分地区牛衣原体血清学调查.doc
- 安徽省池州市马头斑岩型铜钼矿床特征_成因和找矿方向_赵超.pdf
文档评论(0)