标题: uCOS II 系列文章之查找最高优先级任务 [打印本页] 作者: hjkkjh110 时间: 2019-3-2 07:43 标题: uCOS II 系列文章之查找最高优先级任务
预计阅读时间: 5分钟
我们知道在 u/COS II 中,一个任务只有一个优先级,并且这个优先级在整个系统是唯一的,也就是一个任务也是对应一个优先级。优先级即任务,任务即优先级。我们只需通过优先级就可以找到所有和该任务相关的资源。现在问题是就绪表中有那么多任务处于就绪态,如何从中找到其中最高优先级。方法有很多,其中一个就是 for 循环找优先级,遍历所有就绪表,从中找到最高优先级,但这里有一个问题,如果就绪表中处于就绪的这个优先级比较低,那么搜索时间肯定比在高优先级的情况下搜索时间长,这就不符合系统运行时间是确定的要求。所以 u/COS II 采用了空间换时间的方法,事先将一个字节的所有情况记录下来,然后从中找就行了。这就是 OSUnMapTbl[256]。