UCOS-III时间片轮转调度与延时函数问题

2019-07-20 11:22发布

在这里想请教一个问题,使用UCOS-III的时间片轮转方式,使用任务一创建任务二和任务三,以时间片轮转方式进行任务二和任务三的切换(任务二和任务三同一优先级),在任务二和任务三中,都调用了延时函数OSTimeDlyHMSM(延时1s),任务二和三的时间片为2(10ms),我想问的是,任务二进入延时函数,同时发生任务调度,切换到任务三,在任务三执行10ms后,再次发生任务切换,切换回任务二,但此时任务二的延时时间还未到1s,此时,cpu是如何处理的,这部分的知识我应该去哪里找答案(涉及了哪一块的知识?本人刚开始看UCOS,还不太懂,希望大家回复一下)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
taizonglai
1楼-- · 2019-07-20 14:12
 精彩回答 2  元偷偷看……
HXDZ
2楼-- · 2019-07-20 17:57
 精彩回答 2  元偷偷看……
bh1023058880
3楼-- · 2019-07-20 18:58
zuozhongkai 发表于 2017-10-25 10:59
任务二延时时间还未到的话它就不会添加到任务就绪表中!所以任务三执行完以后根本就不会切换到任务二,而是 ...

现在就任务二和任务三,任务三执行10ms后,下面会怎么执行?
cpu要等待任务二的延时时间到了,然后去执行任务二10ms?
bh1023058880
4楼-- · 2019-07-21 00:44
 精彩回答 2  元偷偷看……
HXDZ
5楼-- · 2019-07-21 02:36
知道UCOSII没有时间片轮调度,建议那么做是因为III比II使用要麻烦,从简单到复杂一步步的来更好一点儿。这块知识在UCOSIII调度那一部分找答案,在UCOSIII中,如果优先级相同,如果用时间片轮调度,当任务没有用完分配给它的时间片时,它可以自愿放弃CPU使用权。cpu是按照划分的时间片轮流执行任务,我的理解就是类似交通调度中的加快节拍的交通岗红绿灯。
taizonglai
6楼-- · 2019-07-21 03:09
bh1023058880 发表于 2017-10-25 12:41
现在就任务二和任务三,任务三执行10ms后,下面会怎么执行?
cpu要等待任务二的延时时间到了,然后去执 ...

都给你说的清清楚楚了!执行就绪表里面优先级最高的任务!!!别忘了,还有个优先级最低的空闲任务!不存在只有任务二和任务三。至于资料,去买UCOS官方的那本UCOSIII的中文版本。

一周热门 更多>