uCOSII为嵌入式实时操作系统,对于实时的理解,即在规定的时间内完成规定的任务,也就是说任务的执行时间是可以确定的?但是uCOSII自身不支持时间片轮转调度(uCOSIII中已升级),只能是按优先级来排序执行,并且支持任务的嵌套中断。在宏观上可认为任务是在并行运行,但是微观上是按照任务的优先级排队执行的。
姑且认为任务都是一个无限循环体(排除仅执行一次的任务),有自身的循环周期。 那么OS是如何保证任务循环周期的呢?
例如:Task1 循环周期为1s,task2 循环周期为0.4s,并且任务1的优先级低于任务2。有没有可能任务1在等待了1s后,再次就绪的同时任务2处于运行状态呢?
而OS任务调度的思想是:近似的每时每刻让优先级高的就绪任务处于运行状态,即任务的执行模式是始终保证最高优先级的任务在执行。那么任务1就需要等待任务2执行完之后才能执行,那么它的循环周期不就非1s了吗?
另外,对于操作系统来说,每一个无限循环的任务,都需要有一个延时,(以便CPU退出当前任务转而去处理其他的任务),针对于不同的需求,这个延时时间的设置上有什么讲究呢?
求大神现身解惑???