OpenEdv-开源电子网

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

如果系统时钟节拍时间不够优先级低的任务执行完怎么办

[复制链接]

50

主题

94

帖子

0

精华

高级会员

Rank: 4

积分
553
金钱
553
注册时间
2020-3-6
在线时间
76 小时
发表于 2021-8-22 12:01:49 | 显示全部楼层 |阅读模式
1金钱
刚接触ucos III,还不是很熟,请问如果在Task1的阻塞延时时间里切换到了优先级低的Task2任务执行,下一次时钟节拍到来的时候Task2还没执行完成,这时候是不是直接停止Task2的执行,转而切换到就绪列表里优先级更高的任务执行,如果这样的话Task2是不是有可能永远执行不完,因为一个时钟节拍的长度满足不了Task2的执行时间,或者如果Task2是一个不能被打断的任务,那么即使下次再切换过来继续从上一次停止的地方继续执行,也得不到想要的结果。

最佳答案

查看完整内容[请看2#楼]

加临界区,但是前提你TASK2不要太久,别一运行就是按分钟计算的单位 最牛逼的就是彻底禁中断
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6670

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12201
金钱
12201
注册时间
2012-11-26
在线时间
3640 小时
发表于 2021-8-22 12:01:50 | 显示全部楼层
jeff001101 发表于 2021-8-23 09:24
谢谢原子哥指教,还是不太明白的是,即使能够切换到Task2任务执行,那如何保障当下一次切换来临之前的时 ...

加临界区,但是前提你TASK2不要太久,别一运行就是按分钟计算的单位

最牛逼的就是彻底禁中断
学无止境
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2021-8-23 01:41:38 | 显示全部楼层
os调度有2种方式,1是delay,引起调度。2是中断切换。    task2虽然优先级低,但是只要task1会让出CPU, 就肯定能执行完。 只是时间的问题。。。
回复

使用道具 举报

50

主题

94

帖子

0

精华

高级会员

Rank: 4

积分
553
金钱
553
注册时间
2020-3-6
在线时间
76 小时
 楼主| 发表于 2021-8-23 09:24:55 | 显示全部楼层
正点原子 发表于 2021-8-23 01:41
os调度有2种方式,1是delay,引起调度。2是中断切换。    task2虽然优先级低,但是只要task1会让出CPU, 就 ...

谢谢原子哥指教,还是不太明白的是,即使能够切换到Task2任务执行,那如何保障当下一次切换来临之前的时间跨度足够将Task2任务执行完呢?比如说Task2这个任务不能被打断,我要如何做才能让它执行完以后再进行下一次任务切换,而不是只能由系统定时器决定。
回复

使用道具 举报

4

主题

461

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1071
金钱
1071
注册时间
2021-4-26
在线时间
351 小时
发表于 2021-8-23 10:10:13 | 显示全部楼层
jeff001101 发表于 2021-8-23 09:24
谢谢原子哥指教,还是不太明白的是,即使能够切换到Task2任务执行,那如何保障当下一次切换来临之前的时 ...

只要不会有别的中断触发,或者加上临界区保护,这个任务就会不被打断的执行完毕
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2021-8-24 02:19:46 | 显示全部楼层
jeff001101 发表于 2021-8-23 09:24
谢谢原子哥指教,还是不太明白的是,即使能够切换到Task2任务执行,那如何保障当下一次切换来临之前的时 ...

无法保证,你可以认为Task2,可以分成N次执行完成。。。
具体看你task2要干啥,以及能获得多久的cpu使用权。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

50

主题

94

帖子

0

精华

高级会员

Rank: 4

积分
553
金钱
553
注册时间
2020-3-6
在线时间
76 小时
 楼主| 发表于 2021-8-24 16:19:14 | 显示全部楼层
谢谢各位指教,大致理解了,对于没有特别要求的任务可以分多次执行完成,对于不能打断的任务,可以增加临界区进行控制,甚至通过关闭中断来控制,这样理解对吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-5-29 12:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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