在实际系统中,许多对象之间往往存在相互依赖关系。
设计工作的一项重要内容就是,确定哪些是必须同时动作的对象,哪些是相互排斥的对象。进一步设计任务管理子系统。
系统总有许多并发行为,需按照各自行为的协调和通信关系,划分各种任务(进程),简化并发行为的设计和编码。
确定各类任务,把任务分配给适当的硬件和软件去执行。
根据动态模型分析、定义并发行。
1.分析并发性
1.1并发对象:
- 无交互行为的对象
- 同时接受事件的对象
1.2定义任务
检查各个对象的状态图,找没并发对象的路径(任何时候路径中只有单个对象是活跃的),称控制线。
通过分离出控制线设计任务。
1.3 并发任务的分配方案
- 每个任务分配到独立的处理器
- 分配到相同处理器,通过操作系统提供并发支持
2.设计任务子系统
任务管理部件一般在信息系统中使用较少;在控制系统中应用较多。
2.1事件驱动型
指睡眠任务(不占用CPU),某个事件发生,任务被触发,醒来做相应处理,又回到睡眠状态。
2.2时钟驱动型任务
按特定时间间隔去触发任务进行处理。如某些设备需要周期性的采集数据。
2.3确定优先任务
高优先级,分离成独立任务,保证时间约束。
2.4确定关键任务
严格可靠性,分离考虑,精心设计和编码,严格测试。
2.5确定协调任务
三个以上任务,引入协调任务,控制封装任务间协调。
2.6尽量减少任务数
任务多,设计复杂、不易理解、难维护
2.7确定资源需求
计算系统载荷,每秒处理业务数,处理一个业务花费时间,估算所需CPU(或其他固件)处理能力。