我是 RTOS (uCOS II) 的新手,通过阅读 uCOS 作者所写的书来学习它。我有一个疑问,我无法找到答案。
在 uCOS 中,根据调度算法,优先级最高的任务被分配 CPU。因此,如果我通过创建两个任务来编写一个 uCOS 应用程序,一个具有高优先级(对于 ex,Prio = 1),另一个具有低优先级(对于 ex Prio = 9)。例如,如果最高优先级的任务正在等待一个事件,那么调度程序应该开始执行下一个更高优先级的任务吗?如果那是正确的,那么代码的哪一部分切换高优先级和低优先级?
三个依赖于架构的代码是: 1. 中断级上下文切换 2. 启动最高优先级任务准备运行 3. 任务级上下文切换
在情况 1 服务中断之后,调度程序返回到最高优先级的任务。在情况 2 中,当我们通过 OSStart() 启动操作系统时调用它 在情况 3 中,当更高优先级的任务准备好并由定时器中断调用时
现在,考虑到高优先级任务正在等待,调度程序将在哪里或如何准确地将 CPU 分配给较低优先级的任务?
谢谢