标题:
任务划分
[打印本页]
作者:
heise
时间:
2014-8-19 22:57
标题:
任务划分
1.任务划分目标:
实时性
任务数目合理 :多 任务设计简单 os通信多,运行效率下降。少 任务实现功能复杂 os通信少 减轻os负担。
简化软件系统。 降低对os服务的要求减少软件代码。
降低系统资源需求。
2.任务划分方法
输入输出设备与cpu速度差别是并发运行前提和基础,也是一个通常都满足的事实。
关键任务的划分
:关键性是指某种功能很重要,如果功能不能正常实现,则将造成重大影响,甚至引发灾难后果,必须执行,一次也不能漏。
ISR不受os的调度,具有超优先级。应尽量简短,提高实时性。通过消息分发功能OSMboxPostOpt()的广播功能,使所有等待该任务的消息进入就绪状态。
关键任务剥离开来。如果实时性不高,优先级可以低。
紧迫任务的划分
:是指某种功能必须及时运行,按时完成。安排在ISR中完成。否则安排尽可能高的优先级。
紧迫任务要按时完成,则要瘦身,剥离不紧迫的操作。紧迫任务不一定是关键任务,遗漏执行不会有严重后果。
数据处理任务划分
:耗时最多,优先级安排要低。
功能聚合任务:
关系密切若干功能组合为一个任务。关联紧密,时序关联。省去数据通信和同步通信。
触发条件相同任务划分:
若干功能由相同事件触发组合成一个任务。避免分发给多个任务。要求每个功能不能出现问题,否则后面的执行不了。
外部条件触发的一般是关键和紧迫任务。内部事件触发的一般不是,一般是时间事件,或内部运行结果触发,或按时间周期触发任务运行。
任务内部,各功能执行顺序安排:1.因果顺序。2.完全独立按实时性强弱安排。
运行周期相同任务的划分:
将周期相同的功能封装一个,省去多次触发和任务之间通信。
顺序操作任务的划分
若干功能按固定顺序,相互之间没有并发性,则将他们组合为一个任务。
任务划分小结:
以cpu为中心,将与各种输入输出设备相关的功能分别划分为独立任务。
关键功能,将最关键的部分剥离出来,用一个独立任务(或ISR)完成,剩余用另外一个任务实现,两者用通信机制沟通。
紧迫功能,将最关键的部分剥离出来,用一个独立高优先级任务(或ISR)完成,剩余用另外一个任务实现,两者用通信机制沟通。
又关键又紧迫的,按紧迫处理。
消耗时间多的数据处理功能,为低优先级。
关系密切的组合为一个任务,达到功能聚合。
有相同事件触发的,组合一个。
运行周期相同的组合一个。
按固定顺序执行的组合一个,避免同步接力麻烦。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1