uCOS II 是一个源代码公开的嵌入式实时操作系统,以其稳定可靠、高效、可移植性好,并且为占先式调度等特点,被广大工程技术人员使用。uCOS II 作为一种占先式的实时操作系统,在不少方面有着可以与商业内核相比的功能。但是uCOS II 不支持同优先级任务的调度,而实际的应用中,往往有些任务需要同优先级进行调度。如多点的温度或气压数据采集,若理解为不同的优先级任务去调度,不是一个好的逻辑设计,并且可能需要更多地考虑如何去实现不同任务的调度。另外, 如果允许同优先级任务调度,还可以解决优先级反转问题, 可以提升优先级低但占有资源的任务至申请该资源的高优先级任务的优先级, 直到低优先级的任务释放该资源, 恢复低优先级任务的优先级,高优先级的任务才占有该资源, 从而解决优先级反转问题。1 uCOS II 的任务调度与OSTCBList结构
当两个或两个以上的任务有同样优先级,内核允许一个任务运行事先确定的一段时间,叫做时间额度,然后切换给另一个任务,也叫做时间片调度。内核在满足以下条件时, 把CPU 控制权交给下一个任务就绪态的任务: