自己动手从0到1学写RTOS学习指南

  1. 主页
  2. 自己动手从0到1学写RTOS学习指南
  3. 常见问题FAQ汇总
  4. 为什么要在tTaskSchedRdy再次将任务插入就绪表

为什么要在tTaskSchedRdy再次将任务插入就绪表

内容纲要

感谢同学 @gechangjian 的提问。

Q:为什么要在tTaskSchedRdy再次将任务插入就绪表?从就绪表中删除和加入 这么做的目的 是不是为了以后的
不同任务 可以占用同一个优先级​?

A:删除要的,任务不可能一直在就绪表。任务删除、挂起啊。就绪表就是表示任务在就绪状态。和 不同任务 可以占用同一个优先级 没什么关系。

插入就绪表,表示这个任务已经正在等待cpu空闲去占有它运行。如果将任务删除了,这个任务就不应该存在了,那在就绪表里还有什么意义呢。

如果挂起,那就是暂停任务运行。那如果还留在就绪表里,那调度器是不是得在每次获取最高优先级的任务时,还得判断下这个任务是不是挂起,如果不是挂起,才运行。这样额外增加判断代码,而且浪费时间去执行这些代码吧。

所以,就从就绪表里移除了,这样对调度器来说算法就非常简单了

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

电子邮件地址不会被公开。 必填项已用*标注