如果VXWORKS高优先级任务获取CPU后,什么情况下会挂起?

free2011 2011-10-11 11:05:53
目前系统设计三个线程,一个优先级最高。
如果高优先级任务不自己主动sleep 或者waiting。除了优先级继承这种情况以外,还有哪些情况,低优先级的任务会获得CPU控制权,并开始运行??

...全文
416 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwd_125 2012-01-29
  • 打赏
  • 举报
回复
阻塞或者taskDelay都可以让高优先级任务释放CPU的,然后低优先级任务就可以获取CPU了
luomoweilan 2011-12-17
  • 打赏
  • 举报
回复
高优先级的任务阻塞、挂起、睡眠都可以释放CPU资源。
vxworks的调度策略是基于优先级的,同优先级的是基于时间片的,等所有高优先级的任务释放了CPU,低优先级的任务才有可能被调度。
夫人的泡泡鱼 2011-12-10
  • 打赏
  • 举报
回复
信号量,帮顶!
xichengyi 2011-12-02
  • 打赏
  • 举报
回复
中断可以,优先级继承好像是针对低优先级任务运行时,有高优先级的任务要抢占,但是又想让低优先级任务继续运行,采用优先级继承机制,同时也是防止中间优先级的抢占,因此,优先级继承和这个问题不是一回事
godfly000 2011-11-27
  • 打赏
  • 举报
回复
如果你想要低优先级任务也能运行,又想高优先级任务不自己主动sleep 或者waiting,可以用信号量(semTake)或队列(msgQReceive)进行阻塞调用
godfly000 2011-11-27
  • 打赏
  • 举报
回复
VXWORKS 任务调度是基于优先级的抢占机制,如果你高优先级任务一直在运行(不阻塞,不挂起,不自行停止),其他低优先级任务就没机会运行。
wallace9 2011-11-20
  • 打赏
  • 举报
回复
1.自己运行异常,挂起
2.阻塞等待资源而被阻塞,这跟挂起不是一个概念啊
名叫猫的鱼 2011-11-02
  • 打赏
  • 举报
回复
semTake()这类的,或是有中断
whut_lcy 2011-10-26
  • 打赏
  • 举报
回复
信号量。
JuanA1 2011-10-25
  • 打赏
  • 举报
回复
真不清楚,貌似不行的吧
solomon1 2011-10-14
  • 打赏
  • 举报
回复
在vxworks里没有机会
woshi_ziyu 2011-10-12
  • 打赏
  • 举报
回复
帮顶

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧