硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4268|回复: 12
收起左侧

[RL-RTX] RTX使能了时间片轮转调度,但是实际各个任务的优先级不同,各个任务按照什么原则来切换呢?

[复制链接]

20

主题

249

回帖

309

积分

高级会员

积分
309
发表于 2018-8-16 12:56:41 | 显示全部楼层 |阅读模式

如题,RTX在配置文件中使能了:Round-Robin Task switching,但是实际建立的5个任务,各个任务的优先级不同。
1、此时os是以时间片轮转调度的方式切换各个任务呢还是按照优先级顺序来切换呢?
2、如果这5个任务的优先级相同,又使能了Round-Robin,这时肯定是时间片方式切换的任务吧?
3、如果这5个任务的优先级相同,但是没有使能Round-Robin,这时任务的切换方式是什么呢?
4、时间片、抢占调度在一个工程中只能使用一种吗?两种中的一种可以配合合作模式工作,我觉得可以实现,是不是这样呢?


2018-08-16_120014.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-8-17 11:08:51 | 显示全部楼层
1、同优先级任务才有时间片调度,你这个只有抢占式。
2、对的。
3、只有一个任务跑
4、可以同时用的。
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
 楼主| 发表于 2018-8-17 13:17:09 | 显示全部楼层
eric2013 发表于 2018-8-17 11:08
1、同优先级任务才有时间片调度,你这个只有抢占式。
2、对的。
3、只有一个任务跑

谢谢硬汉哥,我再好好体会下
回复

使用道具 举报

5

主题

38

回帖

53

积分

初级会员

积分
53
发表于 2018-10-24 09:59:46 | 显示全部楼层
eric2013 发表于 2018-8-17 11:08
1、同优先级任务才有时间片调度,你这个只有抢占式。
2、对的。
3、只有一个任务跑

优先级相同,但是没有使能Round-Robin  这时不应该是合作式调度吗?
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-10-24 10:47:48 | 显示全部楼层
yexiangru 发表于 2018-10-24 09:59
优先级相同,但是没有使能Round-Robin  这时不应该是合作式调度吗?

这时确实是合作式的,如果不主动调用让出执行权的api,只有一个任务能跑
每个任务都主动让出,就是合作式的
回复

使用道具 举报

5

主题

38

回帖

53

积分

初级会员

积分
53
发表于 2018-10-24 11:15:11 | 显示全部楼层
myxiaonia 发表于 2018-10-24 10:47
这时确实是合作式的,如果不主动调用让出执行权的api,只有一个任务能跑
每个任务都主动让出,就是合作 ...

原来如此。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2020-4-11 14:41:35 | 显示全部楼层
eric2013 发表于 2018-8-17 11:08
1、同优先级任务才有时间片调度,你这个只有抢占式。
2、对的。
3、只有一个任务跑

如果使能了抢占式,而5个任务的优先级是相同的,那么这5个任务其实还是时间片算法吧。
回复

使用道具 举报

210

主题

1042

回帖

1682

积分

至尊会员

More we do, more we can do.

积分
1682
发表于 2020-4-12 21:56:22 | 显示全部楼层
楼主的第3点的情况,文档里是这么说的:
The osThreadYield provides co-operative thread switching and passes execution to
another thread of the same priority.
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2020-9-25 15:02:52 | 显示全部楼层
有个疑问?   RTX 基于时间片调度 ,三个优先级相同的任务都处于就绪态,系统到底会执行哪个呢?        
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2020-9-25 15:06:35 | 显示全部楼层
有个疑问 ?   RTX使能了时间片,  如果当前只有 3个优先级相同的任务,同时就绪。到底会首先执行哪个?  难道是随机的?
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2020-9-25 15:39:06 | 显示全部楼层
清风徐来 发表于 2020-9-25 15:02
有个疑问?   RTX 基于时间片调度 ,三个优先级相同的任务都处于就绪态,系统到底会执行哪个呢?

好像是最后一个放在队列头部,因此是最后一个就绪的会先执行,看rtx代码即可
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2020-9-25 17:09:50 | 显示全部楼层
myxiaonia 发表于 2020-9-25 15:39
好像是最后一个放在队列头部,因此是最后一个就绪的会先执行,看rtx代码即可

好的 。  还有个疑问,RTX源码中不存在临界区。  但是用户在写应用程序的时候 还要考虑临界区吗?  
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2020-9-26 22:01:50 | 显示全部楼层
清风徐来 发表于 2020-9-25 17:09
好的 。  还有个疑问,RTX源码中不存在临界区。  但是用户在写应用程序的时候 还要考虑临界区吗?

当然不需要,唯一要注意是任务内和中断内使用的API是不一样的
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 17:55 , Processed in 0.233759 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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