uc/os-iii学习笔记-任务挂起表

本文介绍了实时操作系统中任务挂起表的作用与管理方式。当任务因等待资源而挂起时,会按照优先级顺序被加入任务挂起表。文章详细解释了任务挂起表的数据结构与管理函数,并说明了它如何与不同内核对象如信号量和消息队列相互作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务挂起表

当一个任务等待信号量、互斥信号量、事件标志组、或者消息队列时,该任务就被加入任务挂起表,或者等待表中。
任务挂起表中的任务也是按照优先级排序的,高优先级的任务放在前面, 低优先级的任务放在后面。
以下是用到任务挂起表的几种内核对象,事件标志组、互斥信号量、信号量、消息。每个内核对象的头部都有三个相同的数据域,这三个数据域合起来叫做OS_PEND_OBJ。


这里写图片描述
这里写图片描述


任务挂起表实际上并不指向任务的控制块OS_TCB,而是指向一个OS_PEND_DATA类型的数据结构,其在任务被放入任务挂起表时会被动态分配到改任务的堆栈空间中。


这里写图片描述


任务挂起表的管理函数是ucos-iii的内部函数,用户程序不可以访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值