网站大量收购闲置独家精品文档,联系QQ:2885784924

关于uCOS-II中优先级翻转问题.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于uCOS-II中优先级翻转问题

EX PER IEN CE EX CHA N GE 经验交流 关于uC/OS-II中优先级翻转问题 ■ 山东大学 秦绍华 陈涤 1 uC/OS-II的运行机制 度执行,而且任务调度所花的时间是常数,与应用程序 中建立的任务数无关。对于占先式内核,任务的响应时 在嵌入式系统的应用中,实时性是一个重要的指 间是确定的,而且是最优化的,占先式内核保证最高优 标,而优先级翻转是影响系统实时性的重要问题。本文 先级的任务最先执行。 着重分析优先级翻转问题的产生和影响,以及在uC/OS- 任务的响应时间=寻找最高优先级任务的时间+任 II中的解决方案。 务切换时间 uC/OS-II采用基于固定优先级的占先式调度方式, 在uC/OS-II中寻找进入就绪态的最高优先级任务是 是一个实时、多任务的操作系统。系统中的每个任务具 通过查就绪表实现的,这减少了所需时间。 有一个任务控制快OS_TCB,任务控制块记录任务执行 y=OSUnMapTbl[OSRdyGrp]; 的环境,包括任务的优先级,任务的堆栈指针,任务的 x= OSUnMapTbl [OSRdyTbl[y]]; 相关事件控制块指针等。内核将系统中处于就绪态的任 prio=(y3)+x; 务在就绪表(ready list)进行标注,通过就绪表中的两个变 任务切换是通过调用汇编函数OS_TASK_SW()来实 量OSRdyGrp和OSRdyTbl[]可快速查找系统中就绪的任 现的,主要完成两个任务运行环境的保存和恢复。因此 务。在uC/OS-II中每个任务有唯一的优先级,因此任务 用户可以通过安排任务的优先级,保证系统的实时性。 的优先级也是任务的唯一编号(ID),可以作为任务的唯 当涉及到共享资源的互斥访问时,多任务实时操作系 一标识。内核可用控制块优先级表OSTCBPrioTbl[]由任 统常常会出现优先级翻转问题(priorityinversion),不能 务的优先级查到任务控制块的地址。uC/OS-II主要就是 保证高优先级任务的响应时间,影响系统的实时性, 利用任务控制快OS_TCB、就绪表(ready list)和控制块优 uC/OS-II中也存在同样问题。所谓优先级翻转问题 先级表OSTCBPrioTbl[]来进行任务调度的。任务调度程 (priorityinversion)即当一个高优先级任务通过信号量机 序OSSched()首先由就绪表(ready list)中找到当前系统中 制访问共享资源时,该信号量已被一低优先级任务占 处于就绪态的优先级最高的任务,然后根据其优先级由 有

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档