当前位置:首页 > 测试测量 > 测试测量
[导读]实时多任务系统应用极其广泛,几乎渗透到各行各业,系统分类也很复杂。在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现的。应用程序运行在该管理器程序之上。后台根据各个任务的要求,

实时多任务系统应用极其广泛,几乎渗透到各行各业,系统分类也很复杂。在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现的。应用程序运行在该管理器程序之上。后台根据各个任务的要求,进行资源管理、消息管理、任务调度、异常处理等工作。其首要目的是调度一切可利用的资源实现实时控制任务。

  实时系统主要有两大类:软实时系统和硬实时系统。软实时系统的宗旨是使各个任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。在硬实时系统中,各任务不仅要执行无误而且要做到准时。大多数实时系统都是二者的结合。对于一个复杂任务系统,任务调度模式的选用是其系统架构的一个重点。无纸记录仪具有多层次的界面管理和较高的实时响应需求,由此选择与之相适应的系统任务调度模式是势在必行的。
 

  本论文综合考虑了各任务响应的实时性需求,对任务进行了创造性的调整,进而将软实时系统和硬实时系统进行了有机的结合,规划出最为合理的任务调度模式。

  1 记录仪实时多任务的特点

  通常的实时多任务操作系统都比较庞大,对于由单片机(80C320)组成的实时系统是不适用的。由于单片机的运算能力和内存有限,要求实时操作系统具有简单实用、高效可靠的特性。就记录仪而言,其任务和功能是预知的,则内存和文件管理系统可简化,甚至取消[1]。因为任务对存储器的要求是明确的,这样就可以使用固定和独立的存储区域分配方案,无需通过OS来控制和分配。因此,实时多任务操作系统就可以简化为基于任务调度与时钟中断管理为核心的调度模块。记录仪中的任务状态有四种:运行、就绪、等待、挂起,睡眠状态并入等待,不再另加以区分。

  2 任务的划分、组织和调度

  2.1 任务的划分

  在单片机实时多任务系统中,实现实时多任务机制的关键在于将系统功能合理地分解成各个任务模块。划分任务的原则:功能相对独立,并能与其他程序同时执行的程序划分为一个任务。但任务划分不能太细,否则将增加任务切换的系统开销,降低系统效率并影响系统响应的实时性。文献[2]指出,应尽量将关系密切的任务合并,减少任务间的通信。综合考虑任务的实时性和执行时间,记录仪的十个任务可分为三类:

  (1)高优先级任务:下位机上传采样值的处理,虚拟通道组织,报警处理。这类任务实时性要求高,执行时间<0.1s,如采样值处理任务,记录仪要保存采样值作为历史数据,保存过程中要加上时标,采样值正确而时标错误的记录是无效的。

  (2)低优先级任务:按键响应、显示、PID控制、流量积算。这类任务执行时间<0.2s,任务实时性要求一般。如按键响应任务,延迟0.5s是可以容忍的。

  (3)后台任务:存储、打印、与管理机(PC)通信。这类任务的执行时间>1s,对实时性的要求最低。

  2.2 任务的组织

  系统上电,初始化每个任务的固定任务栈,建立任务队列状态表和任务控制表(TCB),这两张表是任务调度的依据。任务队列状态表由高优先级、低优先级、后台任务三张子表组成;任务控制表由任务首地址、状态寄存器、任务局部变量三部分组成,数据结构见图1。

  

 

  2.3 基于消息驱动机制的任务调度

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

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

  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。由于抢占的次数有限,所以任务切换开销不大,有利于提高系统效率。

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近推出的跨电感电压调节器(TLVR)在多相DC-DC应用中颇受欢迎,这些应用为CPU、GPU和ASIC等低压大电流负载供电。这一趋势主要基于该技术出色的瞬态性能。TLVR还支持灵活的设计和布局,但有几个缺点。本文阐述了...

关键字: 调节器 CPU GPU

COMPUTEX — 2024 年 6 月 2 日— NVIDIA 与全球多家领先计算机制造商于今日共同发布一系列采用 NVIDIA Blackwell 架构的系统,这些系统搭载 Grace CPU 以及 NVIDIA...

关键字: AI 工厂 数据中心 CPU

联发科下一代旗舰芯片天玑9400的传闻近期在数码圈掀起了不少讨论。知名博主数码闲聊站爆料称,为确保天玑9400在性能和能效上占据优势,联发科深入参与了Armv9“Blackhawk黑鹰”CPU架构的设计,并指出这种新架构...

关键字: 天玑9400 CPU

5月11日消息,Arrow Lake、Lunar Lake还没有发布,Intel再下一代处理器Panther Lake的消息就传出来了,CPU方面没啥惊喜,GPU又一次要飞跃。

关键字: GPU CPU 芯片

Optiver通过包括EPYC CPU、Solarflare以太网适配器、Virtex FPGA和Alveo加速卡在内的高性能AMD解决方案搭建其业务基础

关键字: CPU 数据中心 以太网

利用LogiCoA™微控制器,以更低功耗实现与全数字控制电源同等的功能

关键字: 微控制器 电源 CPU

2024年4月18日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 很荣幸地宣布与Edge Impulse建立新的全球合作关系。Edge Im...

关键字: 机器学习 MCU CPU

无论您是在研究如何使用 10GigE 还是寻求所需考虑事项的建议,本文均提供有实践,帮助确保单相机 10GigE 视觉系统设置顺利并拥有良好性能。 我们列出了主机系统配置、布线和相机设置的实践。

关键字: 视觉系统 CPU 存储器

Apr. 16, 2024 ---- NVIDIA新一代平台Blackwell,包含B系列GPU及整合NVIDIA自家Grace Arm CPU的GB200等。TrendForce集邦咨询指出,GB200的前一代为GH2...

关键字: CPU GPU

人工智能是集合众多方向的综合性学科,在诸多应用领域均取得了显著成果[1]。随着航空领域人工智能技术研究的不断深入,面向开放式机载智能交互场景,人工智能的应用可解决诸多问题。例如智能感知、辅助决策等,可利用人工智能算法对多...

关键字: 人工智能 PCIe CPU
关闭
关闭