找回密码
 立即注册
楼主: 380091044

UCOSII中执行B任务中,恢复C任务,是不是等于挂起B??

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-5 13:09:39 | 显示全部楼层
gentl*** 发表于 2024-3-5 12:27
恢复C 只是 恢复到就绪列表

只有高优先级B 挂起自己,C才能运行

再次感谢老师
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-5 13:48:20 | 显示全部楼层
gentl*** 发表于 2024-3-5 12:24
A 运行 ->A阻塞 等500ms 后运行

500ms内  B运行  -> B结束挂起自己(如果不挂起,C永远不执行)

刚好运行到C任务,500ms延时到,切换到任务A,A再次进入延时,这时B任务挂起,应该是接着运行C,有没有这种情况?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-5 13:49:55 | 显示全部楼层
tzz1*** 发表于 2024-3-5 11:29
三个任务, 其中任务A是一个独立的任务,与任务B和C没有关系,任务A的优先级是最高,他用的是阻塞延时,作 ...

刚好运行到C任务,500ms延时到,切换到任务A,A再次进入延时,这时B任务挂起,应该是接着运行C,有没有这种情况?

点评

A阻塞,B挂起,只有C就绪,那就是去C咯  发表于 2024-3-5 14:03
有这种情况,这个时候有A和中断有点像,从哪来就回来哪去  发表于 2024-3-5 14:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-5 15:31:27 | 显示全部楼层
38009*** 发表于 2024-3-5 13:49
刚好运行到C任务,500ms延时到,切换到任务A,A再次进入延时,这时B任务挂起,应该是接着运行C,有没有这 ...

好的,谢谢老师指点,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-8 14:58:51 | 显示全部楼层
tzz1*** 发表于 2024-3-5 11:29
三个任务, 其中任务A是一个独立的任务,与任务B和C没有关系,任务A的优先级是最高,他用的是阻塞延时,作 ...

老师:再问一下,如果任务ABC三个都是阻塞式延时的话,是怎样的执行顺序呢?

点评

当优先级顺序为ABC A阻塞 -> 下一个优先级B B阻塞 -> 下一个优先级C C阻塞 -> 空闲任务(无就绪任务) 空闲-> 一旦有任务就绪(阻塞时间到),就切换至那个任务 总结: 当前任务阻塞时,切换至下一个优先级最高  详情 回复 发表于 2024-3-8 15:21
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-8 14:59:14 | 显示全部楼层
gentl*** 发表于 2024-3-5 12:27
恢复C 只是 恢复到就绪列表

只有高优先级B 挂起自己,C才能运行

再问一下,如果任务ABC三个都是阻塞式延时的话,是怎样的执行顺序呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-3-8 15:21:50 | 显示全部楼层
本帖最后由 tzz1983 于 2024-3-8 15:52 编辑
38009*** 发表于 2024-3-8 14:58
老师:再问一下,如果任务ABC三个都是阻塞式延时的话,是怎样的执行顺序呢? ...

当优先级顺序为ABC, 但是ABC任务阻塞时间是不一样的,多几个周期后就变成没有顺序,各玩各的。

假设起始条件是ABC任务都是就绪的:如下顺序
A阻塞 ->  下一个优先级B
B阻塞 ->  下一个优先级C
C阻塞 ->  空闲任务(无就绪任务)
空闲->  一旦有任务就绪(阻塞时间到),就切换至那个任务

总结:
1. 当前任务阻塞时,切换至下一个优先级最高并且就绪的任务, 如果没有就绪的任务则切换至空闲任务
2.一旦有比 当前任务 优先级更高的任务就绪,就是立即切换至高优先级的任务。
根据这两点你自行推理即可

比如说B在执行的时候,A就绪了就会抢占B,此时和刚开始时的A->B->C顺序就不一样了, 所以说它们没有顺序




回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-8 15:49:58 | 显示全部楼层
tzz1*** 发表于 2024-3-8 15:21
当优先级顺序为ABC, 但是ABC任务阻塞时间是不一样的,多几个周期后就变成没有顺序,各玩各的。

假设起始 ...

感谢老师指点,我脑补一下,

点评

其实大多数时候我们都不关心任务的执行顺序。 比如例子中的三个任务 , A让LED闪烁, B让LED交替, C让LED走流水灯, 你们自己玩自己的, 互不干涉, 不正是多任务OS追求的目标吗, 去找一找你有了三个CPU一样的那  详情 回复 发表于 2024-3-8 15:53
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-3-8 15:53:24 | 显示全部楼层
本帖最后由 tzz1983 于 2024-3-8 15:57 编辑
38009*** 发表于 2024-3-8 15:49
感谢老师指点,我脑补一下,

其实大多数时候我们都不关心任务的执行顺序。只要响应及时就可以了。
比如例子中的三个任务 , 如果都改成阻塞,并且去掉挂起任务相关, A让LED闪烁,  B让LED交替, C让LED走流水灯,  你们自己玩自己的, 互不干涉, 不正是多任务OS追求的目标吗, 去找一找你有了三个CPU一样的那种感觉

当然也可以让任务之间有联系, 通信和同步, 这些关于信号量的,去了解一下, 前期建议你不要玩挂起任务相关的, 挂起任务这玩义用得少。前期玩还容易犯错


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-05-02 07:00:13
已绑定手机

151

主题

589

回帖

1200

积分

金牌会员

积分
1200
发表于 2024-3-8 16:23:42 | 显示全部楼层
tzz1*** 发表于 2024-3-8 15:53
其实大多数时候我们都不关心任务的执行顺序。只要响应及时就可以了。
比如例子中的三个任务 , 如果都改成 ...

感谢老师引路,我也是STC官网找的一个框架在看,执行的顺序会影响到,任务之间的交叉,互动,互斥,我现在在用的裸机程序就是,一个状态发生变化了,播报语音就随之改变,另外一个语音开启时,可以打断前面语音,这样描述,就是大致意思,
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:03 , Processed in 0.256994 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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