这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 【已解决】关于互斥体中顶置优先级的一点问题

共2条 1/1 1 跳转至

【已解决】关于互斥体中顶置优先级的一点问题

高工
2013-06-27 11:50:05     打赏

在实验中碰到了个问题。就是顶置优先级时候,任务的优先级在什么时候切换。

在实验中,使用优先级顶置协议时候,两个任务,任务A和任务B是怎样切换的?

第一个实验是这样的:顶置优先级设置成15,任务AB优先级设置成20.

实验结果是当任务A释放mtx时候,任务B立即获得了执行权。此时任务B还没有开始申请mtx,不会将自己的优先级提升。根据输出,B的优先级仍然是20,但它竟然得到了优先权将A抢断。

再次实验,顶置优先级设置成20,任务AB的优先级仍认识20.

实验结果是,任务A即使释放了mtx,任务B也不会执行。为什么上个实验,B在优先级为20的时候能抢断A,而这次却不行了?

我的问题是,两个任务的优先级是在什么时候切换的?优先权分配机制是怎样的?




关键词: 解决     关于     互斥     体中     顶置     优先级     一点     问题         

高工
2013-06-27 12:25:13     打赏
2楼

是这样的机制啊。还是优先级排队。。。

解锁时候,从OS的优先级队列中删除当前任务。然后根据优先级重新排队。任务A和任务B优先级相同,只能排到任务B后边了。。。

因此,任务B获得优先权。


代码没看懂,机制理解了。谢谢


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]