单片机多任务分为抢占式多任务系统,以及按时间段轮流运行的操作系统
以下分析各种方式的优缺点:
⒈抢占式的优点是,优先级高的任务能够得到及时的响应,实时性比较高
其也存在着较大的缺点:
1)
若优先级高的任务因阻塞迟迟不肯放弃CPU,那么优先级低的任务无法得到运行,实时性反而大打折扣;
2)
其次是,如果优先级高的任务轮流运行,那么处于底层的低任务将无法得到运行,而实时任务的要求是不能让任何任务无限制的等待,必须要在确定的时间内完成,这与RTOS理论相矛盾;
3)
再者是,优先级高的任务必须要在短时间内完成,同时不能够被打断,其他优先级较低任务因等待时间到或者等待信号来临需要唤醒,但如果它的优先级低于当前任务,则无法得到及时响应;
2.时间片轮流的优点是,
每个任务都是平等的,都可以的到响应的时间片段,可以通过优先级的不同而确定,不同的时间片段,一般来说,优先级高的任务单位时间内得到的时间片段对多,优先级低的得到最少,这样,无论什么情况,任务都能够在确定的时间内响应,一般来说,轮流的切换时间对于响应延迟来说是可以接受的,但实时性要求高、且任务多的时候,这样的系统就不再适合了。
存在的缺点:
1)
优先级高的任务虽然能够得到最多的时间片段,但不一定在每个时间片段内都能够得到有效的利用,有可能任务以完成了,或者因缺少资源、等待某个信号,而处于等待状态,这样白白浪费时间占用的CPU,使得CPU的利用率不高;
2)
有些任务因需要及时响应,但因任务循环周期还没有轮到自己,只好暂时不响应,如果任务过多,轮流时间加长,有可能导致该任务因在响应有效期内得不到响应,而不去进行操作;
3)
当任务在规定时间内完成时,还有很多剩余时间,应该调用任务切换程序进行切换,时间片重置
3.基于以上的各种方式的优缺点,我认为可以采用占先式与时间片轮流式同时并行系统,
具体实现方式:
1)
开始状态,所有任务进入准备队列,优先级由高到低出列
2)
每次任务运行时设置相同的时间片段,每中断一次时间片减一,该时间片在等待队伍时间片段中处于最低优先级,时间片为0时,若当前任务还没有完成,不管该任务优先级高低都保存当前任务,进行任务切换,用于任务超时时任务切换,防止任务阻塞,不能跳出;
3)
每个任务可以设置等待时间用于挂起操作,每次中断时间片减一,即让出CPU给其他任务,当时间片为0时,与当前任务比较,优先级高于当前任务则进行任务切换,否则,等待当前任务运行完再操作,多个等待任务可以按照优先级高低进行排列,即等待任务中,优先级高的任务先得到响应;好处是使每个任务,得到最及时的响应,即任务最优化。作者:殷文跃,QQ:844721473
C
C |