OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2931|回复: 5

关于ucos中系统的任务运行的原理

[复制链接]

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
发表于 2017-2-1 21:12:49 | 显示全部楼层 |阅读模式
1金钱
我记得
不是说好有任务优先级的吗?系统执行任务是先执行完高优先级的;(我的理解是,期间低优先级的任务完全不执行。)

然后去执行低优先级的。
然后任务调度不是只发生在面对同一优先级的任务的吗?(这是系统分配时间片)

不知道我的理解是不是错了……
那为什么在考虑到信号量的时候,高优先级的task请求信号量(高优先级的task内第一行代码就是delay,然后才请求信号量),
低优先级的task也是(低优先级的task内第一行代码直接请求信号量),反而是低优先级的任务先执行。。。。

不是很懂,求助。
(问题出处在ucos开发手册--第十章·信号量--优先级反转实验)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2017-2-1 21:35:38 | 显示全部楼层
高优先级请求失败,低优先级请求成功了,故运行低优先级任务。此种特殊情况下,优先级已经无法决定哪个任务先运行了,此时是由信号量决定了。所以,ucosiii引进了互斥信号量
我有故事,你有酒吗
回复

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
发表于 2017-2-2 14:18:56 | 显示全部楼层
如果优先级高的任务进行就绪状态,或者优先级高的任务在运行状态而没有调用任务切换函数,如系统级延时函数等,那么高优先级的任务就会一直占用CPU,低优先级的任务无法执行。而低优先级的任务就算没有调用任务切换函数,只要高优先级的任务进入了就绪状态,那高优先级的任务也可以被执行。你可以看一下任务状态切换表那张图
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-2 14:51:20 来自手机 | 显示全部楼层
来俩不甜的 发表于 2017-2-1 21:35
高优先级请求失败,低优先级请求成功了,故运行低优先级任务。此种特殊情况下,优先级已经无法决定哪个任务 ...

为什么会出现高优先级任务请求失败、低优先级任务请求成功的情况呢?
回复

使用道具 举报

33

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-10-19
在线时间
30 小时
 楼主| 发表于 2017-2-2 14:58:18 来自手机 | 显示全部楼层
wszdxmh 发表于 2017-2-2 14:18
如果优先级高的任务进行就绪状态,或者优先级高的任务在运行状态而没有调用任务切换函数,如系统级延时函数 ...

那张图确实不错,感谢啊
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2017-2-2 18:06:06 | 显示全部楼层
在LS参考系 发表于 2017-2-2 14:51
为什么会出现高优先级任务请求失败、低优先级任务请求成功的情况呢?

只有一个苹果,小明和小刚都想吃,那肯定是先拿的吃了,后拿的吃不到
我有故事,你有酒吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 10:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表