新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 无纸记录仪实时多任务调度策略的研究

无纸记录仪实时多任务调度策略的研究

作者:时间:2011-08-28来源:网络收藏
2.3 基于消息驱动机制的

本文引用地址:http://www.eepw.com.cn/article/150279.htm

  借鉴面向对象程序设计的思想,在程序中引入消息概念,将的执行条件转换为消息,由消息对相应的进行激活,并由任务模块实现。消息定义为:当某个事件(如中断或某任务完成)发生时,事件处理程序设置相应的标志,不同的标志代表不同的消息。事件处理程序可以是中断服务程序,也可以是执行后需设置的标志的任务,因此,中任务的调度是基于消息机制来驱动的。消息在多任务程序中的作用相当于桥梁,使任务间既相互独立又有机关联,任务之间不能直接调用,需借助消息,由任务调度模块实施。

  中断服务程序由中断消息(标志)处理程序和中断任务处理程序两部分组成,前者仅仅完成消息(标志)处理就退出中断,而中断真正要完成的操作,是在任务调度模块的协调下,由中断任务处理程序来完成。如按下显示,则按键中断消息处理程序只产生一个按键消息(标志)就退出中断,而调度模块依据按键消息,调用按键中断任务处理程序获取键值,并产生显示消息。调度模块依据显示消息,调用显示任务程序。

  3 多任务调度

  多任务的系统,通常采用内核来管理各个任务,也就是通过内核为每个任务分配CPU时间,并负责任务之间的通信。根据任务的调度机制,可以分为非占先式内核和占先式内核。前者要求每个任务能够主动释放CPU等资源,后者则支持对当前任务的CPU使用权的剥夺,从而使更高优先级就绪任务得到CPU控制权进而执行。

  嵌入式系统采用何种调度,通常要考虑三个因素:系统的处理能力,任务的数目,系统对响应时间和执行效率的要求。抢占式调度能改善高优先级任务的性,但系统开销较大;非抢占式调度恰好与抢占式相反。针对,提出抢占式和非抢占式的复合多任务调度。记录仪的正常工作周期为1s,调度模块的工作周期亦为1s,并将1s分为三个时段:0s-0.5s,0.5-0.8s,0.8s-1s,时钟在0s, 0.5s, 0.8s各产生一次中断,将Time-flag分别设置为0,5,8,并将Attemper-flag置为0。任务调度程序框图如图2所示。

  

  在记录仪一个工作周期(1s)内,复合调度策略,允许高优先级任务三次抢占低优先级和后台任务,而低优先级任务具有两次抢占后台任务的权力。因此,高优先级任务的响应时间t≤0.5s,低优先级任务的响应时间t≤0.7s。由于抢占的次数有限,所以任务切换开销不大,有利于提高系统效率。

  抢占式和非抢占式的复合多任务调度策略已成功应用于某记录仪,达到了预期的目标。

  首先,软件设计模块化,不同的功能模块编制成相应的任务,由调度模块按优先级别调用。而且兼顾了高优先级任务的实时性和系统运行的高效性。这样,大大降低了系统的故障率。低优先级任务发生阻塞时,高优先级任务的执行不受其影响。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭