求助ucos问题

2019-07-20 16:21发布

如图中所说的,某个时刻mytask在执行中,当他执行到延时函数时候,释放CPU控制权,这个时候另一个任务获得CPU控制权。那么第一个任务是释放CPU控制权的之前已经完成延时了吗?这样的延时不是太浪费了吗?如果延时之前释放CPU控制权,那么延时还有什么用?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-20 20:38
帮顶
操作系统
2楼-- · 2019-07-20 23:30
 精彩回答 2  元偷偷看……
wmaxwell
3楼-- · 2019-07-21 02:04
不是的,任务让出CPU是因为调用了延时函数,如果不调用延时函数是不会主动让出CPU的;不是在延时之前让出的,是在调用延时函数的时刻让出的。
还有一种可能就是被动让出CPU,即被其他高优先级的任务打断执行,被迫让出的。
转世书生
4楼-- · 2019-07-21 08:00
 精彩回答 2  元偷偷看……
wmaxwell
5楼-- · 2019-07-21 14:00
转世书生 发表于 2017-3-9 14:39
那是不是可以这样理解,调用延时函数的时刻,出让了CPU的控制权,延时由系统的时钟电路相关的部分去完成 ...

不可以,延时也是占用CPU资源的,
在延时这段时间内,CPU在运行其他任务(可能是空闲任务,也可能是你创建的其他任务),不管是什么时候,CPU都不是空闲的。
Electronic
6楼-- · 2019-07-21 19:09
这里的延时和裸机的延时有点不同,这里的延时可以利用延时的时间去执行其他任务,就是延时并不是原地等待,而是去执行其他的任务

一周热门 更多>