在μC/OS-Ⅲ系统中任务挂起表与任务就续表十分相似,只不过任务就续表记录就绪状态的任务,任务挂起表记录等待某个内核对象的任务。任务挂起表是一个类型为OS_PEND_LIST的数据结构,包含三个成员:1、NbrEntries,等待表中表项数目;2、TailPtr,指向等待表中最后一个任务(优先级最低的任务);3、HeadPtr,指向等待表中第一个任务(优先级最高的任务)。

任务挂起表并不直接指向任务的控制块OS_TCB,而是指向一个OS_PEND_DATA类型的中间变量。该类型变量在任务被放入任务挂起表时动态地分配到该任务的堆栈空间中。该类型数据结构包含8个成员:

1、PrevPtr:指向任务挂起表中前一个等待相同内核对象的更高优先级或优先级相同的OS_PEND_DATA类型变量。

2、NextPtr:指向任务挂起表中后一个等待相同内核对象的优先级相同或更低先级的OS_PEND_DATA类型变量。

3、TCBPtr:指向等待该内核对象的任务的控制块OS_TCB。

4、PendObjPtr:指向任务正在等待的内核对象。(μC/OS-Ⅲ中信号量、互斥型信号量、事件标志组、消息队列等内核对象均为OS_PEND_OBJ类型)

5、RdyObjPtr:在任务等待多个内核对象的情况下,指向已经准备就绪的内核对象。

6、RdyMsgPtr:在任务等待多个内核对象的情况下,指向通过OSQPost()函数发布的信息。

7、RdyMsgSize:记录OSQPost()函数发布的信息长度。

8、RdyTS:时间戳,记录内核对象被释放(Post)的时刻。

最新文章

  1. Tomcat部署web项目,虚拟目录,上下文(Context),WEB-INF,web.xml,servlet,404
  2. Codeforces Round #347 (Div. 2)
  3. nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路
  4. Codeforces 633B A Trivial Problem
  5. Oracle中的自增-序列-SEQUENCE
  6. Agile.Net 组件式开发平台 - 开发环境部署
  7. UIButton set touch handler in code
  8. SEMAT[软件工程方法和理论 Software Engineering Method and Theory]
  9. 最长回文子串 | 勇幸|Thinking
  10. 九度OJ 1006 ZOJ
  11. html查看器android
  12. JAVA_SE基础——49.多态的应用
  13. 爬取拉勾网招聘信息并使用xlwt存入Excel
  14. 微信小程序 canvas导出图片模糊
  15. C++的学习心得
  16. CSS3之box-sizing属性
  17. python 函数进阶与闭包
  18. Cuba获取属性文件中的配置
  19. Oracle数据类型与.NET中的对应关系
  20. 7.final关键字.md

热门文章

  1. 游戏对象消失三种方法的区别?(enabled/Destroy/active)
  2. 学习视频更新管理,对于前面数据库视频资料,以及.net资料失效感到抱歉
  3. jQuery(一)
  4. Fiddler 4 抓包
  5. virtualbox安装增强功能时【未能加载虚拟光盘】
  6. 如何为CriteriaOperator过滤对象转换为lambda表达式,即:linq to xpo的动态where语句
  7. linux内核学习心得
  8. C语言程序设计进阶 第1周编程题
  9. Linux ftp 使用
  10. TAP/TUN摘要