新闻动态
设计任务管理子系统
http://sytm.net 发布日期:2014/1/15 10:27:07

驱动控制设计中常见的任务有事件驱动型任务、时钟驱动型任务、优先任务、关键任务和协调任务等。设计任务管理子系统,包括确定各类任务并把任务分配给适当的硬件或软件去执行。

1确定事件驱动型任务

某些任务是由事件驱动的,这类任务可能主要完成通信工作。例如,与设备、屏幕窗口、其他任务、子系统、另一个处理器或其他系统通信。事件通常是表明某些数据到达的信号。

在系统运行时,这类任务的工作过程如下:任务处于睡眠状态(不消耗处理器时间),等待来自数据线或其他数据源的中断,一旦接收到中断就唤醒了该任务,接受数据并把数据放入内存缓冲区或其他目的地,通知需要知道这件事的对象,然后该任务又回到睡眠状态。

2 去顶时钟驱动型任务

某些任务每隔一定时间间隔就被触发以执行某些处理。例如,某些设备需要周期性地获得数据;某些人机接口、子系统、任务、处理器或其他系统也可能需要周期性地通信等。在这些场合往往需要使用时钟驱动型任务。时钟驱动型任务的工作过程如下:任务设置了唤醒时间后进入睡眠状态;任务睡眠(不消耗处理器时间),等待来自系统的中断;一旦接收到了这种中断,任务就被唤醒并完成它的既定工作,通知有关的对象,然后该任务又回到睡眠状态。

3 确定优先任务

优先任务可以满足优先级或低优先级的处理需求:

(1)高优先级:某些服务具有很高的优先级,为了在严格限定的时间内完成这种服务,可能需要把这类服务分离成独立的任务。

(2)低优先级:与高优先级相反,有些服务是低优先级的,属于低优先级处理(通常指那些背景处理);设计时可能用额外的任务把这样的处理分离出来。

4 确定关键任务

关键任务是有关系统成功或失败的关键处理,这类处理通常都有严格的可靠性要求,在设计过程中可能用额外的任务把这样的关键处理分离出来,以满足高可靠性处理的要求。对高可靠性处理应该精心设计和编码,并且应该严格测试。

5 尽量减少任务数

必须仔细分析和选择每个确实需要的任务。应该使系统中包含的任务数尽量少。设计多任务系统的主要问题是,设计者常常为了自己处理时的方便而轻率地定义过多的任务。这样做加大了设计工作的技术复杂度,并使系统变得不易理解,从而也加大了系统维护的难度。

7)确定资源需求

使用多处理器,主要是为了满足高性能的需求。设计者必须通过计算系统载荷(即每秒处理的业务数及处理一个业务所花费的时间),来计算所需要的CPU等资源的数量。

设计者还应该综合考虑各种因素,以决定哪些子系统用硬件实现,哪些子系统用软件实现。下述来年各个伊苏可能是使用硬件实现某些子系统的主要原因:

(1)现有的硬件完全能满足某些方面的需求,例如,买一块浮点运算卡比用软件实现浮点运算要容易得多。

(2)专用硬件比通用的CPU性能更高。例如,目前在信号处理系统中广泛使用固件实现快速傅里叶变换。

(3)设计者在决定到底采用软件还是硬件的时候,必须综合权衡一致性、成本、性能等多种因素,还要考虑未来的可扩充性和可修改性。




更多阅读
返回列表
© 2010 TianMei Technology All rights reserved. ICP:辽B-2-4-20100065辽公网安备 21010202000010号  网站地图