第三章 任务划分
一、任务的特性(区分于无操作系统时的“任务模块”)
1.任务的动态性(任务有休眠态、运行态、挂起态、就绪态和中断态)
2.任务的独立性。所有任务在逻辑上是平等的,任务间的信息传输通过操作系统异步传输。
3.任务的并发性。从宏观上看,不同的任务可以并发运行。并发性就是任务间运行可以重叠交错,这是需要操作系统进行调度的前提,否则可以不用操作系统。
二、任务划分
首先,以CPU为中心,将与各种输入输出设备(或端口)相关的功能分别划分为独立的任务;
发现“关键”功能,将其最“关键”部分剥离出来,用一个独立的任务(或ISR)完成,剩余部分用另一个任务实现,两者通过通信机制沟通。这样可以保证关键任务不受其他任务拖累。
发现“紧迫”功能,将其最“紧迫”部分剥离出来,用一个独立的任务(或ISR)而且是高优先级的任务完成,剩余部分用另外一个任务实现。两者之间通过通信机制沟通。
对于既“关键”又“紧迫”的功能,按“紧迫”处理。
将消耗机时较多的数据处理功能划分出来,封装成低优先级的任务。
将关系密切的若干功能组合称为一个任务,达到功能聚合的效果。
将由相同事件触发的若个功能组合成为一个任务,以免除事件分发机制。
将运行周期相同的功能组合成为一个任务,以免除事件分发机制。
将若个按固定顺序执行的功能组合成一个任务,以免除同步接力通信的麻烦。
三、可调度性分析
任务可调度需满足如下条件:
其中,n表示任务数,Ci表示第i个任务耗费的机时,Ti表示任务执行周期。
文章评论(0条评论)
登录后参与讨论