2 计算机软件新技术国家重点实验室(南京大学),江苏 南京 210093;
3 上海应用技术学院 计算机科学与信息工程系,上海 200235
2 State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210093, China;
3 Department of Computer Science and Information Engineering Shanghai Institute of Technology, Shanghai 200235, China
随着网络技术的迅速发展,基于嵌入式的应用已经广泛应用于交通、能源、汽车、航天航空、医疗保健等领域.分布式嵌入式系统(distributed embedded system,简称DES)采用分布式体系结构,通过各种无线传感设备,把物体与互联网相连接,进行信息交换和通信,以达到智能化管理的目的.然而,DES复杂结构所带来的能耗成为限制其发展的瓶颈,使得DES的能耗问题的重要性呈现逐步上升趋势.特别是在电池供电的嵌入式系统中,由于其自身特点的限制,其发展也非常依赖低功耗、高能效技术的研究与应用.鉴于DES应用的社会效益和经济价值,如何设计和分析DES的能耗问题,已成为软件工程领域具有挑战性的研究课题[1].
DES自适应能耗管理是根据DES中各设备的能耗数据,利用公式或理论模型来推演设备的能耗状况,进一步获得整个软件的动态能耗模型,并制定能耗策略.其目标是:在系统运行过程中,实时分析能耗信息,并根据预先设定好的策略对设备状态和属性进行动态的调整,以更好地满足系统节能的需求.在硬件给定的情况下,通过软件技术降低系统能耗的问题得到广泛重视,开发低能耗软件成为系统设计者的重要目标之一[2].然而,DES的结构类型多种多样,行为特征纷繁复杂,对自适应能耗管理与分析提出了新的挑战:
首先,实现DES的硬件平台丰富多样、应用领域及需求千变万化,对软件设计提出了新的挑战.硬件平台的多样性极大地影响到软件系统的设计方法,从基本组件抽象到组件之间的调度、通信和协调,都需要新的语言来进行描述.用于描述DES结构的建模语言必须具备系统功能性质的规范和分析能力,以及动态能耗调整和表达能力.此外,DES中计算成分和物理实体结构、行为和交互关系复杂,需要有新的技术建立DES结构、成分的抽象以及组合关系,以统一的方式提供成分建模和模型组合的手段,提高能耗模型的可扩展性.
其次,DES构成组件复杂多样,传感器、处理器、执行器等组件具有确定性与随机性共在的能耗特征,静态分析和优化技术难以适应DES的发展.DES部署环境可能发生动态改变,导致组件的位置、执行操作等属性存在随机性.因此,需要提出新的DES能耗策略,以满足系统运行时限和功能性需求为前提,根据当前系统组件部署情况和属性,自适应地启动和休眠设备,动态调整设备的供电电压以降低系统的整体能耗.
最后,DES动态行为特征复杂,为其能耗模型的性质验证带来困难.DES具有复杂能耗和空间特征、多层次的结构特征,因此需要研究新的验证方法,利用能耗模型的执行语义和实际映射,立足自适应能耗策略的目标和范畴,对系统正确性进行验证和分析,以保障DES能耗建模和分析的有效性.
为了解决DES的自适应能耗管理与分析的问题,传统的能耗管理方法需要扩充新成分才能适应低能耗的要求,以得到比较合理的节能目标.多Agent系统(MAS)由多个自主或半自主的Agent组成,每个Agent封装了与之相关的要素,并根据特定的目标和环境状态,动态地与其他Agent通信获取信息,互相协作完成整个问题的求解[3].以Agent为能耗调节和管理的实体,以组织抽象Agent为基础构造的DES自适应能耗技术是对DES结构、能耗行为特征更自然的描述,更有利于人们分析、理解和优化DES能耗.然而,基于Agent的软件系统缺乏对模型的精确定义,尤其是不能为系统提供有效的推理和验证方法,因此,可借助形式化方法对基于Agent的DES能耗进行描述和研究,逐步扩充动态描述DES基础组件及其交互行为、时限约束以及能耗状态的机制,从而建立DES能耗管理与分析的理论体系.Petri网作为一种直观的图形建模工具和一种具有丰富数学基础的形式化模型[4],可以广泛应用于描述和研究并发、异步和分布式特征的系统.
本文围绕DES的自适应能耗管理和分析过程面临的挑战和新需求,提出一种基于Agent的DES自适应能耗管理与分析方法.首先,立足DES结构、硬件部署、设备属性等信息,以降低系统整体能耗为目标,提出基于Agent的DES自适应能耗管理策略,用于动态计算启动设备集和设备的电压;其次,给出分布式嵌入式能耗网(DE-Net)的语法和支撑机制,利用它构建DES基础组件的模型库,并根据实际执行流程和部署情况生成相应的能耗模型;最后,采用CTL将系统和模型性质转化成一些CTL公式,并借助Petri网的操作语义及模型状态空间验证方法的正确性和有效性.
本文第1节给出相关工作.第2节给出系统的框架和自适应能耗需求.第3节给出基于Agent的自适应能耗管理策略.第4节是分布式嵌入式系统的能耗模型构建.第5节提出DES能耗值分析和模型验证方法.第6节通过仿真实验说明方法的有效性.最后是结论和下一步工作.
高效地使用能量来最大化节点生存寿命或提高能量效率,是DES面临的挑战之一.国内外研究学者已经意识到研究低能耗的必要性,并提出了一些方法来降低DES的能耗.文献[5]提出了一种利用BP神经网络在体系结构级估算软件能耗的模型,该能耗模型对5个体系结构级软件特征量进行度量,使用BP神经网络拟合出软件特征量与嵌入式软件能耗的非线性函数关系.为了提高可靠性和能效,文献[6]提出一种基于链路质量和能耗的路由协议,该协议根据端到端的链路质量评估机制、剩余能量和跳数进行路由选择.Senn等人在文献[7]中针对具体的体系结构分析与设计语言AADL,研究基于AADL模型的嵌入式系统能耗评估精化方法,并根据设计流程AADL组件所采用的规范精化过程,提出不同的精化层次.基于EDF和速率调度算法,文献[8]提出了DES新的空闲时间管理技术——服务率比例空闲时间分布,以减少DES的能耗.该方法同时引入容错机制,以便利用动态松驰机制来维护断点并提供故障回滚功能.Mahapatra等人提出了一种DES的能耗优化调度模型,以处理不同时间的任务运行,并在系统任务集调度中采用一种新的空闲时间分配方案[9],每个节点上的活动组件会周期性地确定服务速率,并根据不同网络节点所观测到动态交通情况来使用电压调节.文献[10]提出了一种基于质量信息驱动的物联网感知层能耗管理方法.该方法能兼容底层所使用的协议,且保证能耗的有效性,而无需牺牲所关注的质量属性.这些方法对更高抽象级别的能耗研究相对较少,需要进一步分析各软件层次中影响系统能耗的关键因素,并考虑软件优化方法对整个系统能耗的影响.
Agent是指驻留在某一环境下,能持续自主地发挥作用,具有驻留性、反应性、社会性、主动性等特征的计算实体.近年来,基于Agent的自适应技术技术引起学术界及工业界的共同关注.文献[11]提出了一种基于多Agent的上下文感知学习系统,并采用开源代码LMS及其组件加以实现,最后将该方法应用到学习管理系统以验证功能的正确性.基于Agent的模型驱动的软件架构用于解决软件的自适应问题[12].该方法解决传统面向对象方法中的静态组件和行为特征,可以增强模型的复用性和灵活性,使得对模型的维护可以转化为对实际软件系统的维护.Chang等人采用谓词变迁网对多Agent进行描述.该方法比较全面地考虑可扩展的多Agent建模,并解决Agent的动态属性、通信及协调的问题[13].文献[14]提出一种协调组件用于对多Agent系统的资源共享进行建模.该方法定义了协调组件的4个层次及其相关的4个步骤,以便解决资源共享的复杂过程,着色Petri网及其相关理论用于对过程进行分析.这些方法从不同方面对基于Agent的系统进行分析,并取得了一定的效果.然而,它们没有涉及如何构建自适应软件实体,以支持自适应系统中实体的自主性,并主动地获取环境信息,从而实现系统能耗自适应的目标.此外,这些工作没有考虑系统能耗的实时变化,在系统的结构和行为发生变化时,它们不能在线地自动调整系统的能耗并提供合理能耗管理方案,因而不能满足DES能耗的稳定性要求.
形式化方法在计算机软硬件领域的重要作用逐渐为人们所认同,它有助于增加软件开发人员对系统的理解,便于及时更正设计中的错误和缺陷,是保证DES能耗自适应方法正确性及提高系统可靠性的重要手段.已有多种形式化方法用于嵌入式软件系统规范和验证.基于状态机的形式化模型适合对系统结构和行为的描述,例如,文献[15]提出一个基于环境建模的物联网服务提供框架,在此框架中,环境实体作为一个重要的概念被引入,用于刻画物理世界中各种物体的属性和行为.该方法以时间自动机为工具,对环境实体和物联网服务的行为进行建模,并用时间自动机网络来刻画服务的组合和它们与环境实体的交互.文献[16]从构件化嵌入式软件体系结构出发,采用基于路径的系统能耗分析评估方法,在嵌入式系统架构设计阶段对其能耗特性进行分析与评估.在此评估体系中,软件体系结构应用进程代数语言CSP进行形式化描述,能耗特性在构件接口级别定义.Lanese等人采用进程演算对物联网进行建模,并引入互模拟的两个概念[17],其中一个用于捕捉终端用户的行为,另一个则用于进行组合推理.我们提出一种策略驱动的可靠嵌入式系统建模与分析方法[18],采用面向方面思想提取可靠性保障策略相关关注点.通过构造关注点模型,并利用编织机制,将关注点模型动态地集成为一个完整的嵌入式系统可靠模型.由于DES能耗自适应在资源竞争、空间和环境感知等特性方面与计算实体区别很大,要求建模语言具有较强的表达能力,以便对系统交互行为进行精确的刻画.
本节以DES自适应能耗管理和分析为驱动,介绍系统的整体框架,包含各部分研究内容及其关系,并基于实例分析分布式嵌入式系统自适应能耗需求,提取相关的组件及其属性,为后续的能耗管理奠定基础.
具体的系统框架如图 1所示.该框架主要从分布式嵌入式系统的能耗需求分析、模型构建、能耗分析与优化、能耗值计算和验证这4个方面展开研究:
需求分析阶段:分析DES的能耗需求及其组件,如传感器、执行器和Agent等.从应用所需完成功能的角度出发分析其执行流程,给出相应的任务集、任务与设备间映射关系等需求信息,为后续的研究奠定基础.
能耗模型构建阶段:采用Petri网对DES中的传感器、执行器、Agent等组件进行建模,并刻画环境信息及交互行为以形成系统的模型库;其次,对模型库中的基础组件进行属性配置,并根据任务属性、任务与设备的映射关系集成各基础组件的模型,以构成系统的能耗模型.
能耗分析和优化阶段:基于设备完成任务集的实际含义,计算出系统的可能路径.分析每个执行路径的能耗,包括最大能耗、最小能耗、当前能耗等信息.同时,根据DES的结构特征和运行机理,提出能耗管理策略,包括设备启动和休眠规则、电压调整方案等;最后,根据执行路径的能耗信息和能耗管理策略来计算系统的执行决策.
能耗值计算和验证阶段:根据能耗模型中库所、变迁等的实际映射,从任务、设备等角度着手计算系统的能耗值.基于模型的执行语义,利用Petri网的相关理论分析和验证模型的正确性、策略的有效性.
DES主要是由传感器节点、执行器节点等设备及其交互连接而成,其中,传感器主要用于将被测物理量转换为电信号输出,执行器是将控制信号转换为被控物理量的装置.分站用于对传感器输入的信号和通信设备传输来的信号进行处理,控制执行器工作.主机主要用来接收监测信号、人机对话、输出控制、控制打印输出、联网监测等.本文在分布式嵌入式设备中加入Agent组件,用于分析和控制系统能耗.Agent可用于获取和分析环境信息(设备的状态、能耗等),并根据一定的策略对环境结构进行指导和修改.
由于DES的功能是由多个独立运行的子功能构成,本文将每个子功能称为任务.在分布式嵌入式系统中,每个任务会有多个可用设备与之对应.即,有多个设备可以完成该功能,但是设备的属性不同,比如位置或性能不同.首先需要分析DES的需求,包括任务集、可用设备集、任务间关系等.通常,一个系统设备会有多种活动状态,本文仅考虑设备的工作状态和休眠状态.设备在各个状态的能耗可以根据数据手册或者通过测试和仿真得到.本文将设备、Agent、子系统间的交互定义为连接件,即,用连接件实现系统的连接和通信,并且将连接件看作与设备同级的组件,因此,连接件也可以看作是连接设备.由于本文的研究切入点是设备的能耗管理和分析,在分析连接件时仅考虑其能耗属性,没有对其进行深入优化.一个设备可以有多个操作,每个操作对应设备可行的一个事件.连接件通过描述设备、子系统间接口的交互行为实现设备间的交互.下面将从设备、Agent、连接件等方面对DES展开需求分析.
定义1. DES的能耗需求是一个八元组:=(AE,AG,AL,RE,TW,RA,OP,D),其中,
(1) 设备集AE={ae1,ae2,…,aen},ae=(type,op,ra,ep,ei),其中,type,op是设备的类型和可能执行操作;ra(ae)= (Vmax,Vmin,nwi,j)是ae的属性函数,分别描述设备的最大、最小供压、具体位置;ep(ae)=(etp,enp)是操作的执行时间和单位能耗值,假设设备的启动操作能耗较大;ei=(ty,func)是设备接口的集合,接口具有类型、功能规约两个属性.
(2) 连接件集AL={al1,al2,…,agn},al=(data,oa,nl,li),其中,data是连接件的传输内容;oa是连接件关联的设备或Agent集合,假设|oa|=2;nl是一个固定值,表示连接件的能耗;li用于描述连接件的输入输出接口,假设与AL对应的每个设备都有两个接口,用来负责该设备的输入和输出.连接件用于实现设备、子系统间的交互.此外,连接件的能耗也可以设置成动态变化的.
(3) 代理集AG={ag1,ag2,…,agn},ag=(eg,lg,om,op,gi),其中,eg⊆AE,g⊆AL是ag管辖的设备和连接件集; om:AGxRA→{Start,Sleep,reV,raV}是代理对设备的可执行操作;op是代理的可能操作集合;gi是ag的接口集合,一个ag具有多个输入输出接口,如接收设备的数据、与其他ag的交互接口等.
(4) 任务集TK={tk1,tk2,…,tkn},tk=(et,tp,rl),其中,et:TK→AE*表示任务tki的可用设备集,tp:TK→op*表示完成所需操作的集合;rl是任务间的关系函数,用于刻画系统的执行流程,主要考虑顺序(>)、选择(+)、并行关系(||).设备可以完成多个任务,一个任务也可以被多个设备调用.记集合VW(aei,TKj)={tkk| aei∈et(tkk)∧tkk∈TKj}为设备aei在任务集TKj的作用集.
(5) D是DES的截止时限,具体单位可根据实际情况设置.
在DES中,设备通过执行一系列操作来实现其功能.传统的能耗分析方法通常将能耗特性建立在设备级别的实体上,然而对于不同的应用场景,设备的执行操作和频率可能不同,即,不同场景中同一个设备的能耗不同.因此,以设备为基本能耗单元进行能耗分析可能会造成较大的误差.鉴于此,本文将能耗特性的描述建立在操作级别上.
例1:本文用一个矿井监控系统来说明DES的需求模型.矿井监控系统主要包括安全保障、自动报警、人员定位、自动报警和考勤管理等子系统,不同子系统的执行流程不一样.在矿井监控系统中,各个子系统通过传输消息达到通信和交互,因此是一种分布式嵌入式系统.其中,人员定位子系统的执行流程是:人员mei随身携带的射频卡进入读卡器的工作区域,射频卡被激活后(tki,1)(未进入读卡器工作区域,射频卡不工作,处于休眠状态),将人员编码加密信息发射出去(tki,2);读卡器发送信号以启动射频卡tk1,同时接收射频卡发来的无线信号tki,3,然后汇总传输给分站tk2.经分站接收(tki,4)、处理(tki,5)后,提取出人员编码相关信息tki,6,经数据传输接口送至地面监控计算机,地面监控器将接受的数据进行汇总(tk3)、分析(tk4),完成矿井人员自动跟踪定位管理和考勤.这里,将设备简化为射频卡、读卡器、分站、地面监控器这4种设备.根据设备的地理位置设置3个Agent,每个Agent下有一个分站,用以执行Agent的操作.假设所有连接件的能耗均为2mw,其中,时间单位TTU为2ms,单位能耗的单位为mw.射频卡的最大/最小供电电压分别为3.6V和2.3V,读卡器为5V和2.85V,分站为3.3V到6V.地面监控器主要由电脑主机组成,所以不考虑其电压调整.射频卡的操作流程是:启动(op1(1,3))后经过低噪声放大、混频处理、放大和滤波(op2(1,3)),转换信号后输出信号(op3(2,2)).射频卡主要完成任务tki,1(op1)>tki,2(op2,op3).读卡器的工作原理比较复杂,包含两个并行模块,分别用以发送信号来启动射频卡(op4(1,2))、接受射频卡发来的信号(op5(1,2)),并汇总传输到分站(op6(2,2)).读卡器的业务流程为(tk1(op4)||tki,3(op5)>tk2(op6)).分站工作原理是:首先从读卡器上采集射频卡发送的数据信息(op7(1,3)),然后将信息传输到RAM芯片缓存起来(op8(2,2)),另一端单片机将缓存的数据进行抽取(op9(1,3)),通过总线传输给井上的地面监控器(op10(2,5)).地面监控器是由一个主机构成,主要接受各个分站传输上来的数据(op11(1,2))、汇总数据(op12(3,3))、分析数据,以形成最终报表(op13(4,5)).地面监控器的流程为tk3(op11,op12))>tk4(op13).整个监控系统从人员身上佩戴的射频卡发出信号到处理完毕的时间是30.假设系统现在有40个人员在井下,某一时刻人员的具体分布为(25, 25, 30, 31, 33, 42, 44, 45, 65, 102, 103, 104, 104, 105, 105, 125, 122, 140, 175, 150, 25, 114, 31, 133, 42, 140, 36, 163, 202, 203, 224, 254, 305, 306, 125, 122, 240, 275).整个矿井的线路长500 m,读卡器每隔20 m安装一个,每100 m设立一个分站,每个读卡器的接受范围为±15.
分析矿井监控系统,可以发现存在如下问题:(1) 由于井下人员是移动的,系统需要根据当前井下人员分布动态调整启动读卡器、分站以降低系统能耗.当读卡器和分站工作区域的射频卡数量发生改变时,设备的执行操作集也会发生改变,不同操作的工作频率导致其能耗不同.因此,有必要根据设备的执行操作来动态地调整设备的电压,以降低设备的能耗.如何设计一个自适应的能耗管理策略,是DES需要解决的重要问题.(2) 随着系统的实施,设备的数量、布局经常需要改变,如某个读卡器故障,或者增设读卡器等.因此,设计一个灵活、可重用的模型是DES能耗设计首先要解决的问题.
针对DES面临的两个问题,本文拟采取如下两个措施:(1) 在确保DES功能的前提下,根据当前设备的位置和执行情况,尽可能地减少启动的设备集.基于DES的时限,根据设备执行的操作动态地调整启动设备的电压,进而降低系统的能耗.同时,在分站上引入Agent思想,用以实现对能耗的自适应管理.(2) 设备、连接件、Agent的建模过程借鉴模板的思想,以建立系统的模型库.当用户需求发生改变时,只需更改具体映射,进而提高模型的可重用性.
由于DES除了实现基本的目标(即时间约束)以外,往往还具有更加严格的能耗约束.因此,设计者不仅要考虑如何降低能耗,而且要保证系统在满足时限约束的前提下尽可能地降低其能耗这一新问题.本文根据DES结构和领域特征,基于Agent研究DES的自适应能耗管理策略,包括启动和调整两个子策略,其中,启动策略主要根据系统的执行流程,基于设备的当前状态和属性动态计算启动设备集;而调整策略则从系统运行时限着手,计算启动设备的动态电压.
根据系统的执行流程,基于设备的当前状态评估其能耗值.当设备周围没有事件发生时,则将部分模块置于空闲状态,即,设备的能耗比较低.按照一定的规则将这些设备上的处理操作转移到可替换设备,原设备调到低消耗状态(休眠状态).假设设备ae完成任务tk一次成功运行所需执行的操作序列称为设备ae的路径,如射频卡为了完成任务tki,2的路径为op2,op3.由于设备通常是由某个初始操作开始,运行到某个终止操作结束,根据完成功能的不同,有些设备可能有多个初始操作和多个终止操作.由于设备初始和终止时的特性是系统关心的内容,在具有多个初始操作的设备中,通过添加启动操作ini将多个初始操作转化为一个唯一的初始操作ini.同理,引入正常结束end操作和超时结束fo操作.此外,为了统一描述设备的执行路径,在只有1个初始操作的设备中也添加一个ini操作表示设备的开始运行.因此,设备的一次成功运行表示为执行了一个以ini操作开始、以end或fo操作为结束的操作序列,即,设备执行的一个路径.ini,end,fo操作在设备实际运行描述中是不存在的,它所执行的操作是一个空操作,本文规定这些操作的能耗和运行时间为0.由于设备完成不同任务所调用的操作不同,对应的能耗也会有差异.此外,设备完成同一个任务时,其选择路径不唯一,因此其能耗也会不同.设设备aei完成任务集TKj的路径集合为Lat(aei,TKj)={Lat1,Lat2,….,Latn},其中,路径Latk={opk,1,opk,2,…,opk,f}.路径Lati的能耗值为
设备aei完成任务集TKj的平均能耗值为
如,射频卡为了完成任务tki,2的能耗为7.
定义2. 设是DES需求模型,aei,aej∈AE,aei,aej∈AE是系统两个不同的设备,ext(aei,aej)为两个设备的 距离.
两个设备是无关的,是指其作用集不相交;两个设备完全覆盖,则指设备的作用集之间存在属于关系.在实际运行中,虽然有些设备具有相同的功能,但是由于其地理位置不同,导致执行的能耗也会有所差异.因此,在定义覆盖和等同关系时,不仅需要考虑设备的作用集,而且还需要考虑设备的间隔距离.分析矿井监控系统可以发现,射频卡间是无关的.设人员定位的距离阈值为20,发现读卡器aer2的作用集:
且ext(aer2,aer3)=20,所以,aer3▽aer2.进一步计算两个设备的平均能耗值,可知aer3完全覆盖aer2同理,可以分析其余设备间的关系.
DES的能耗需求为=(AE,AG,AL,RE,TW,RA,OP,D),初始化当前设备集AEnow=AE,当前任务集TKnow=TK,启动设备集AEac=∅,设备ae的执行任务集为TK(ae)=∅,则其启动策略是:
(1) 候选设备集计算:aei∈AEnow,若∃aej使得aej在任务集TK下完全覆盖aei,则AEnow=AEnow-aei.
(2) 启动设备集计算:aei∈AEnow,若VW(aei,TKnow)=max{VW(aej,TKnow)},aej∈AEnow,则AEac=AEac∪aei, AEnow=AEnow-aei,TKnow=TKnow-VW(aei,TKnow),TK(aei)=VW(aei,TKnow).若TKnow≠∅,则继续转步骤(2);若TKnow=∅,则转步骤(3).
(3) 输出AEac,TK(aei).进一步根据任务间关系增加相应的连接件,输出启动连接件集合Laac.
利用启动策略可以计算出系统的启动设备集合,其原理是,根据实际设备的能耗随着执行任务数的增加不呈线性增加.因此,可以充分使用设备完成多个任务,减少系统的启动设备数,从而减低系统的整体能耗.Agent根据系统需要完成的功能,利用启动策略动态计算启动设备集和连接件集合.
由于DES整体有时限要求,但没有细化到各个设备,因此有必要分析设备的局部时限要求,以降低设备的供应电压.下面根据关键任务集提出调整策略,并计算设备的局部时限和动态供电电压.
设任务tki在设备aeg中有操作集合op(tki,aeg)={op1,op2,…,opk},则关键任务集的计算方法为:
则KC=KC∪tki,temp=temp-tempci,若temp≠∅,则转步骤②;否则,输出KC.
关键任务集就是DES中运行时间最长的一条执行路径,下面基于此调整任务的运行时间和供电电压.设关键任务集为KC,tki由设备aeg执行,具体调整策略为:
利用调整策略,Agent可以调整设备的动态电压以适应任务的运行,在保证时限的前提下,降低系统的总体能耗.进一步地,可以按照比例计算各个操作的运行时间etp'.
能耗模型是能耗管理和分析的基础.本节围绕分布式嵌入式系统的能耗需求和领域特征,首先给出DE-Net网的语法和执行语义,并利用DE-Net网刻画分布式嵌入式系统的系统结构和基础组件,以构成分布式嵌入式系统的能耗模型,为系统的分析和验证奠定模型基础.
Petri网作为一种图形化建模工具和一种具有丰富数学基础的形式化模型,可以广泛应用于描述和研究并发、异步和分布式特征的系统,因此,Petri非常适合描述分布式嵌入这种松耦合的系统.下面介绍一些系统运行的基本概念,其余的概念见文献[4].
定义3. 十一元组Ω=(PN,IO,D,AT,AF,l,G,TI,TA,PI,PA)称作分布式嵌入式能耗网(distributed embedded net,简称DE-Net),其中,
(1) PN=(P,T,F)是一个基本Petri网,其中,P,T,F分别表示库所、变迁和弧的有限集,且两两不相交;
(2) IO⊂P是一类特殊的库所,称为Ω的接口,用虚线圆圈表示;
(3) D为非空有限的个体集,规定fD,fS分别为D上给定的公式集和符号集;
(4) AT:T→fD,对于t∈T,AT(t)中的自由变量必须是以t为一端的有向弧上自由变量;
(5) AF:F→fS,若(p,t)∈F或(t,p)∈F,则AF(p,t)或AF(t,p)为n元符号集,缺省为空;
(6) AT:T→N*×N*是变迁的属性函数,ti∈T,AT(ti)=(λi,eni)描述ti的优先级和单位能耗,默认值为0.本文假设:λi越小,变迁ti的优先级越大;
(7) Ct:P→N*×N*是库所的属性函数,描述了库所的延迟时间和能耗,默认为0;
(8) M0:P→fS是Ω的初始标识,p∈P,M0(p)不含任何自由变量;
(9) Γ={Γi|i∈N*}是DE-Net的有限集,其中每个组件称为Ω的一个页面;
(10) TI⊂T是替代节点的集合,其中每个页面对应一个替代节点,用实心矩形表示;PI⊂P是端口节点的集合,端口节点描述替代节点的输入和输出库所,用实心圆圈表示;
(11) TA:TI→Γ是一个页分配函数,即,为每个替代节点分配一个页面;PA是端口映射函数,主要是把端口节点映射到对应页面的输入和输出接口.
DE-Net模型是对确定的时间延迟进行建模,当变迁的触发发生冲突时,以竞争来选择触发的变迁,将库所Pi的延迟时间记作cti.DE-Net模型主要是对设备、连接件、Agent或整个分布式嵌入式系统进行建模,其中,库所、变迁和接口分别描述组件的所处位置、可能操作和输入输出参数.个体集D主要用来描述DES中的资源,本文将DES的资源和信息抽象成个体di=(it,i,RWi),其中,it∈{e,g,l,d}说明该个体所描述的对象,e,g,l,d分别表示可用设备集、Agent集、连接件、数据包.i表示个体的标记,如,设备aej在设备集AE中所处位置为j.当it为d时,RWi表示数据包的内容;否则,RWi为描述对象的属性,如能耗、电压.设k#(di)表示个体di中的第k个组件,而把系统中的普通数据包统一抽象成个体.如果没有无特殊说明,则DE-Net模型中出现的个体均为.因为设备没有下一层组件,所以其模型的Γ,TI,TA,PI,PA均为空.而Agent模型中每个页面代表一个设备,且其接口非空;而分布式嵌入式系统中每个页面表征一个Agent.任意x∈(P∪T),集合·x={y|y∈(P∪T)∧(y,x)∈F}和x·={y|y∈(P∪T)∧(x,y)∈F}分别对应于x的输入和输出;任意ti∈T,将变迁ti的输入/输出弧(AF(ti,p)/AF(p,ti))以及AT(ti)中出现的自由变量集记作FV(ti).
图 2描述了一个简单的DE-Net模型Ω1,该模型中有一个页面(虚线框).Ω1中的替代节点T4分配给页面Ta,也就是说,该节点描述了页面Ta的内部操作.相应地,端口节点P4,P6分别映射为页面Ta的输入和输出接口P8,P9.
在各库所中,个体的分布状况称为DE-Net模型的标识,记作M.p∈P,M(p)={(di,qi),…,(dk,qk)},其中,{di,dj,…, dk}为标识M下库所p中存放的个体集,而{qi,qj,…,qk}为相应的数量.
定义4. 设Ω为DE-Net模型,在q时刻,模型处于标识M.设pi∈P,在标识M下库所pi有j个个体,dki为pi的第k个个体(0<k<j),ξk为个体dki的产生时刻,cti为库所pi的延迟时间,称向量:
为库所pi的所有个体等待时间,其中,.
称为个体dki的等待时间,若库所pi中只有1个个体,则直接用TS(pi)表示.=m表示系统还要再等m时间单位才可以使用个体表示该个体可用.为了减少分析的复杂度,本文假设:若库存的时间延迟大于0,则该库所中只存放同一种个体.记TS(M,θ)为θ时刻标识M下库所的等待时间集合.如Ω1在全局时间1时,库所P2,P10,P11中分别有个体d1,d2,d3,且TS(P2)=TS(d1)=0,TS(P10)=1,TS(P11)=3.记Ma为M中可用的个体分布,而Mu标记M中不可用的个体分布.|Ma(Pi)|=k表示在库所Pi中有且仅有k个个体的等待时间为0, |Mu(Pi)|=k表示在库所Pi有k个个体不可用.如W1在全局时间1时,M1(P2)=(d1,1),M1(P10)=(d2,1),M1(P11)=(d3,1),但是只有库所P2的个体d1可用.因此:
设Ω为DE-Net模型,二元组S=(M,TS)称为Ω在θ时刻的状态,其中,M为标识,描述了系统的资源分布;TS为在θ时刻标识M的等待时间,刻画了系统的时间特性.初始状态S0=(M0,TS0),TS0为一个零向量(在初始状态下所有令牌都是可用的).如,S1=(M1,TS1)是Ω1在时刻1的状态,其中,TS1={0,1,3}.
二元组S=(M,TS)为Ω在θ时刻的状态,根据状态的定义可知,有两种方式可以改变状态S:(1) 时间的消逝.在时刻θ+w(w>0),由于系统中令牌的等待时间发生改变,促使系统到达新的状态S',记作S[w>S'.(2) 变迁替换的触发.变迁ti替换的触发会产生新的标识,从而系统进入新的状态S',记作S[ti<d1,d2,…,dn>>S';.
若Ω1在时刻1处于状态S1=(M1,TS1)下,则不触发任何变迁,系统在时刻2处于另一个状态S2=(M2,TS2),其中, M1=M2,TS1≠TS2.若Ω1在时刻1触发t1,则系统进入新的状态S3=(M3,TS3),其中,M1≠M3,TS1≠TS3.将S经过时间w后再触发替换ti<d1,d2,…,dn>到达S',S[w>S'且S'[ti>S'',记为S[(ti<d1,d2,…,dn>,w)>S''.t∈T,若FV(ti)={x1,x2,…,xn},则个体集{d1,d2,…,dn}满足di∈{Ma(p)|p∈·t∪t·}且di对应于变量xi,将个体d1,d2,…,dn分别替换x1,x2,…,xn所得到变迁t的实例称为变迁t的一个替换,记作t<x1←d1,x2←d2,…,xn←dn>,简写为t<d1,d2,…,dn>.替换主要是对t的输入/输出弧以及AT(t)中出现的所有自由变量绑定相应的个体.记AT(t)<d1,d2,…,dn>和AF(p,t)<d1,d2,…,dn>分别描述将个体d1,d2,…,dn替换到公式AT(t)和输入弧上谓词AF(p,t)所得到的值.若替换t<d1,d2,…,dn>使得AT(t)<d1, d2,…,dn>=true,则称t<d1,d2,…,dn>是S下变迁t的可行替换.记变迁t在状态S=(M,TS)下的所有可行替换集合为VP(S,t).设变迁t的自由变量集FV(ti)为空,若p∈·t,M(p)≠∅,则变迁t在S下肯定存在可行替换.对应可行替换的执行过程为:从t的每个输入库所pi中任选一个可用个体di即可.
设Ω为DE-Net模型,S=(M,TS)为Ω的一个状态,若VP(S,t)≠∅,则称变迁t在状态S下有发生权,记作S[t>.在DE-Net模型中,变迁t在状态S下是有发生权的,当且仅当t在状态S下存在可行替换.将状态S下所有有发生权的变迁集合记为ET(S).
定义5. 设Ω为DE-Net模型,S=(M,TS)为Ω的一个状态,对于变迁ti∈ET(S),如果ti满足下列条件:βi≤min(βj),其中,tj∈ET(S),则称变迁ti在状态S下的触发是有效的.
将状态S下所有可以有效触发的变迁集合记为FT(S).状态S下ti的触发是有效的,当且仅当ti在状态S下有发生权,且变迁集ET(S)中不存在比ti优先级高的变迁.在状态S下通过有效触发变迁ti的一个可行替换ti<d1,d2,…,dn>到达新状态S'的过程记为S[ti<d1,d2,…,dn>>S'.设Ω为DE-Net模型,M为Ω的一个标识,对于ti,tj∈ FT(S),若:·tiÇ·tj=∅,则称ti,tj在状态S下是并发;否则,称变迁ti,tj在M下冲突.若两个变迁间存在并发关系,则无论触发哪个变迁都不会影响另一个变迁的触发.将S下并发的变迁集合称为S的最大并发集,记为MT(S).集合H(S)={t<d1,d2,…,dn>|t∈MT(S),t<d1,d2,…,dn>∈VP(S,t)}称为S的一个最大触发集.
定义6. 设Ω为DE-Net模型,S=(M,TS)为Ω的一个状态,系统通过有效触发H(S)中所有变迁到达新的状态S',记作S[H(S)>S',称S'是S的可达状态.S'分别按如下规则计算:
ti<d1,d2,…,dn>∈H(S),pj∈·ti∪ti·:M'(pj)=M(pj)-AF(pj,ti)<d1,d2,…,dn>+AF(ti,pj)<d1,d2,…,dn>.
在DE-Net模型中,可达状态按照触发变迁的可行替换进行相应的调整.如果存在触发序列H1,H2,…,Hk和状态序列S1,S2,…,Sk使得S[H1>S1[H2>S2…Sk-1[Hk>Sk,则称Sk是从S可达的.从S可达的所有标识集合记为R(S),规定S∈R(S).基于上述触发规则,从初始状态S0出发构造模型的可达状态.
下面针对DES的需求模型,采用DE-Net模型对系统的基础组件分别进行建模,进而根据执行流程构造DES的能耗模型.为了区别输入接口和输出接口,对于输入接口用上标I标示,输出接口用上标O标记.另外,在设备、Agent、连接件的变迁和库所前标注对应的组件.如,设备aei的开始变迁tin表示为aei.tin.如果变迁是为了描述数据流程而引入,则不标注.
设备aei的DE-Net模型为Ωaei如图 3所示,其中,引入库所分别描述设备的启动输入、休眠输入、执行输出、超时输出这4个接口,引入变迁ti,te,tie,tfo分别表示设备的启动、完成、休眠和超时处理操作.设备中的操作opi运行过程如下:首先,引入变迁ta,i刻画操作的执行,ct(pa,i)=etp(opi)表示操作的执行时间, en(ta,i)=enp(opi);若引入库所pr,i用于标记操作的可执行,若设备发生超时或休眠,即|M(pp,i)|≠0,则调用变迁tp,i,使得操作处于中断位置pp,i.变迁获得重新执行(pr,i),则调用变迁tr,i使得操作处于可用位置(pw,i).引入库所pc用于标记设备处于运行位置,引入库所pd用来控制设备的运行时限,因此,设置Ct(pd)为设备的动态运行时限.若时限截止时设备还未运行成功,则调用变迁tfo输出超时故障Podt若设备运行成功,则调用变迁te消除设备运行标记并输出结果到Poo同时,设备进入结束位置pe.
在DES能耗模型中,连接件lai的DE-Net模型Ωlai如图 4所示.设连接件对应的两个组件为A和B,则对A,B分别引入两个接口用于接收和发送,对应库所描述组件的消息缓存,其中,库所ppo中存放连接件的解析策略.连接件接收到消息后触发变迁tre,并按照dip的规定来确定解析消息的策略.引入变迁tse1,tse2,用于发送消息到目的端,en(tse1)=en(tse1)=nl(lai).
在DES能耗模型中,代理agi的DE-Net模型Ωagi如图 5所示,其中,深色框内表示代理内设备和连接件的执行,即Agent的环境.Agent从环境中获取信息,根据自适应策略计算启动设备(即,对环境执行一定的控制).引入变迁tst启动设备,而变迁tns使得其他设备进入休眠状态.变迁te表示Agent设备的结束.在收到Agent发出的指令后,设备会做出相应的调整和修改,若收到启动指令则设备进入运行位置.当设备收到休眠指令时,无论其处于等待执行、初始还是执行位置,设备都会调用相应的变迁进入休眠位置.若Agent下有设备运行超时,则启动超时处理,使得所有管辖的设备都进入休眠位置,并将超时信息上报系统.
下面根据DES的需求,构建DES的能耗模型.设需求模型的能耗模型Ω构造步骤如下:
(1) 根据各个设备的属性,构造所有设备的DE-Net模型.在上层模型中用表示设备aei的启动输入、休眠输入、输出、超时输出接口;进一步地,根据Agent与设备的关系建立Agent的能耗 模型.
(2) 引入变迁ts和库所ps分别描述整个系统的开始操作和位置,对整个系统进行初始化;引入变迁te和库所pe分别描述整个系统的结束操作和位置.依据Agent关系,通过对应连接件的模型来组合Agent模型,以形成整个系统的能耗模型.引入变迁tdt、库所pa,pc,pdt描述系统的时限控制.
(3) 利用自适应能耗管理策略,依次计算启动设备集和设备的动态电压,并对模型中的库所进行初始化设置.
(4) 设置初始标识M0(ps)=,同时,设置变迁tdt和系统级别所有变迁的优先级为4.本文将变迁优先级分为5个等级,可以根据实际需要适当地调整优先级的等级.
利用上述步骤,可以构建DES的能耗模型,为后续的系统分析和模型验证奠定基础.
本节首先分析能耗模型上变迁和库所的实际含义,并根据分布式嵌入式系统基础组件属性及其关系,对组件的能耗值进行分析和计算;其次,基于构建好的能耗模型,将系统性质转化为模型上的一些CTL公式,并进一步验证方法的正确性和有效性.
基于构建的能耗模型,从分布式嵌入式系统结构中的任务、设备、代理和系统这4个角度着手,给出具体的能耗值计算公式,并映射到模型.
由于DES任务采用不同设备完成功能,会直接导致对应能耗模型可达状态的不同.设任务tki在设备aej上通过调用操作OP(aej,tki)执行,下面从能耗模型的角度对DES常见的能耗值进行计算和分析.
(1) 任务tki的能耗
操作新单位能耗和运行时间主要表现为能耗模型中对应变迁和库所的属性.任务tki的功能是由操作集合OP(aej,tki)中的所有操作共同完成的,因此,任务tki的能耗
基于任务的能耗可以分析系统中消耗最大的任务和最小的任务,以了解系统整体能耗的分布,进而为能耗分析奠定数据基础.映射到模型中,为任务对应路径的能耗.
(2) 设备的能耗性能
分析系统中各个设备的总能耗和平均能耗,可以将节能分析进一步定位到总能耗和平均能耗较大的设备.设备的总能耗映射到能耗模型中,为设备对应可达路径上变迁的能耗之和.
(3) 代理和系统的能耗值
代理的能耗主要由其所管辖的设备和连接件的能耗组成,因此,代理agj的能耗值为
利用上述能耗指标,可以从多方面对DES的能耗进行定量分析.此外,还可以利用模型中资源的分布动态获得正在运行的设备和操作集合、已经运行结束的设备和操作集合、超时的设备等信息.
计算树逻辑(computation tree logic,简称CTL)是时态逻辑的一种.CTL引入以下算子描述未来的不确定性: always(用G表示),sometimes(用F表示),next(用X表示),until(用U表示),all paths(用A表示),exists a path(用E表示).CTL公式语法可以表示为(使用BNF范式描述):
其中,pf属于原子公式集合.本节基于分布式嵌入式系统能耗模型的可达状态集,利用CTL描述系统的性质,借助Petri网的操作语义验证方法的正确性和有效性.
设模型Ω是利用DE-Net模型对DES需求进行建模所得到的能耗模型,R(Ω)表示对应的可达状态集,S是Ω的一个可达状态,是一个使用CTL描述的公式:性质可以描述为Ω,S|=,表示S状态满足公式.
能耗模型主要刻画DES的功能性需求,因此,有必要分析能耗模型能否正确描述嵌入式系统的执行流程.嵌入式系统的执行流程是由多个任务按照一定的关系组合而成,因此,可以从能耗模型能否正确描述任务间的关系着手.
定理1. 设模型Ω是利用DE-Net模型对DES需求进行建模所得到的能耗模型,R(Ω)是对应的可达状态集,S∈R(Ω),tki,tkj∈TK,设tki∈TK(aef),tkj∈TK(aeg),则有:
(1) 若RL(tki,tkj)=>且Ω,S|=2,则Ω,S|=AX1,其中,1为任务tki得到执行,2为任务tkj得到执行;
(2) 若RL(tki,tkj)=+,则Ω,S0|=AG3,其中,3为|M(aef·pe,o)|+|M(aeg·pe,p)|≤1,opo∈op(tki),opp∈op(tkj);
(3) 若RL(tki,tkj)=||,则Ω,S|=4,其中,4为|M(aef·pe,o)|=|M(aeg·pe,p)|=1∨|M(aef·pe,o)|=|M(aeg·pe,p)|=0.
证明:
(1) 因为RL(tki,tkj)=>,若f=g,即tki,tkj由同一个设备aef完成,则从设备的建模过程可知,存在变迁aef·ti,j,将任务tki的运行结果输出到tkj的输入.因此,任务tki在状态S得到执行,则存在状态S'∈R(S),使得aef·ti,j∈ET(S).因此有Ω,S|=AX1.否则,若两个任务分别由不同的设备完成(f≠g),根据系统建模过程可知,会引入连接件laf用于完成任务tki到任务tkj的交互.因此,任务tki在状态S得到执行,则存在状态S'∈R(S),使得连接件laf得到执行.同理,存在状态S'∈R(S),任务tkj得到执行.因此有Ω,S|=AX1.
(2) 反证法,设子命题(2)不成立.即,∃S∈R(S0),使得|M(aef·pe,o)|+|M(aeg·pe,p)|>1,因为在任意一个设备模型中,库所pe,o保存操作opo运行结束的标记,所以|M(aef·pe,o)|≤1,|M(aeg·pe,p)|≤1,|M(aef·pe,o)|=|M(aeg·pe,p)|≤1.因为RL(tki,tkj)=+,所以不存在某个状态使得两个任务同时执行,与上述假设推导结论矛盾,所以假设不成立.即,子命题(2)成立.
(3) 同理可证,子命题(3)成立.
定理1说明:能耗模型可以正确地描述DES的业务执行流程,因此可以使用能耗模型在系统设计前期演示和分析DES的功能性需求.由于系统的节能主要通过自适应能耗管理策略来实现,因此有必要分析能耗模型对能耗管理策略的正确执行.能耗模型对启动和调整策略的正确执行,主要体现在根据计算好的启动设备集和动态单位能耗,实现设备的启动和休眠控制.
定理2. 设模型Ω是利用DE-Net模型对DES需求进行建模所得到的能耗模型,R(Ω)是对应的可达状态集, S∈R(Ω),aei∈AE,系统的启动设备集AEac,则:
(1) 若aei∈AEac,Ω,S|=1,其中,1为|M(aei·pe)|=1;
(2) 若aei∉AEac,Ω,S|=2,其中,2为|M(aei·pp)|=1.
证明:
(1) 若aei∈AEac,不妨设aei∈eg(agj),即aei属于Agent的管辖范围.
(2) 同理,从Agent对设备执行休眠操作的建模过程可证子命题(2)成立.
定理2说明,能耗模型可以正确地描述Agent与设备之间的交互,包括获得设备信息、Agent启动和休眠设备.在实际运行中,设备的启动和休眠不一定是固定不变的,比如,设备ae在某次运行中需要启动,在新的环境中(系统设备分布发生改变时)可能需要休眠.因此,有必要分析在能耗模型中设备被休眠后是否可以被重新启动,已经运行的设备是否可以被中断.
定理3. 设模型Ω是利用DE-Net模型对DES需求进行建模所得到的能耗模型,R(Ω)是对应的可达状态集, S∈R(Ω),aei∈AE,则:
(1) 若|M(aei·pp)|=1,则Ω,S|=1,其中,1为|M(aei·pe)|=1;
(2) 若|M(aei·pp,j)|=1,Ω,S|=2,其中,2为|M(aei·pg,j)|=1.
证明:
(1) aei∈AE,因为|M(aei·pp)|=1,所以在状态S下,设备aei处于休眠位置.设经过一段时间后,aei得到重新启动,即,存在S1∈R(S)有|M1(aeipiI·)|=1.下面证明aei的休眠不会影响再次启动,主要从两个方面证明:
首先证明aei可以重新进入运行位置,即,调用操作.因为aeipiI·={aei·ti,aei·tr},·aei·tr={aeipiI·aei·pp},所以aei·tr具有发生权,且aei·tr的优先级为0.所以状态S1下,变迁aei·tr的触发是有效的.不妨设S1通过触发变迁aei·tr到达状态S2,则有|M2(aei·pw)|=|M1(aeipiI·)|=1,因为·aei·ti={aeipiI·,aei·pw},所以aei·ti在状态S2下的触发是有效的,即,aei可以重新进入运行位置.
其次证明所有的操作都可以正常执行,opf∈op(aei)在aei被休眠时刻可能处于运行位置pa,f或结束位置pe,f.因为·aei·pp=aei·tie,aeipiI·={aei·pp,aei·pp,1,aei·pp,2,…,aei·pp,n},所以在状态S下,有:
|M(aei·pp,1)|=|M(aei·pp,2)|=...=|M(aei·pp,n)|=|M(aei·pp,n)|=|M(aei·pp,n)|=1.
因为opf∈op(aei)在状态S下有|M(aei·pw,f)|=1,·aei·tp,f={aei·pw,f,aei·pp,f},且变迁aei·tp,f的优先级等于0,所以aei·tp,f在S下可以有效触发.不妨设S通过有效触发aei·tp,f到达状态S3,因为aei·tp,f·=aei·pg,f,所以S3下有|M3(aei·pg,f)|=1,操作可以正常执行.即,aei通过执行一些操作后,可能到达结束位置pe.因此,Ω,S|=1,其中,1为|M(aei·pe)|=1.
(2) 同理可以证明子命题(2)成立.
定理3说明:当Agent需要重新启动某个已经被休眠的设备时,设备及其操作都可以正常执行,完成相应的功能.同时,当操作处于运行位置时,对应设备得到休眠指令,操作可以被挂起,进入到中断位置.在DES能耗建模过程中,自适应能耗管理策略是核心部分,因此,有必要分析自适应策略的有效性.
定理4. 设DES需求为,利用自适应策略计算出系统的启动设备集为AEac,任务tki的运行时间和供电电压分别为tci,Vidd则:
(1) 任意一个可以完成系统功能的设备集为AEf,则有EN(AEac)≤EN(AEf);
(2) 在启动设备集AEac下,调压后的系统能耗小于等于调压前的能耗.
证明:
(1) 反证法:设存在设备集AEf,利用AEf可以完成系统功能且EN(AEac)>EN(AEf).根据假设有两种情形:
情形1:存在设备aei∈AEac可以完成aej∈AEf的功能,其余设备相同.根据假设有EN(aei)>EN(aej).基于设备间关系可得,若设备aei和aej的距离在阈值范围内,则aej完全覆盖aei.根据启动策略可知,系统会选择agj替代aei.所以假设不成立,否则,若设备aei和aej的距离不在阈值范围内,则虽然EN(aei)>EN(aej),但是由于aej的地理位置比较远,所以选择aej会导致传输能耗变大,最终执行的能耗增加.所以假设不成立.
情形2:存在设备集aej,1,aej,2,…,aej,k可以完成aei的功能,但是EN(aei)>EN(aej,1)+EN(aej,2)+…+ EN(aej,k).根据分布式嵌入式系统可知,设备的启动和休眠的能耗差距比较大,因此,将多个任务分散到不同设备执行比将任务集中在一个设备上能耗大.因情形2与实际相悖,所以假设不成立.
综上所述,若任意一个可以完成系统功能的设备集为AEf,则有EN(AEac)≤EN(AEf).
(2) 设opf是系统执行过程中调用的一个操作,opf的新能耗为
即,通过电压调整操作的能耗得到降低.系统的整体能耗等于执行的各操作能耗之和,因此,调压后的系统能耗小于等于调压前的能耗.
定理4说明:通过自适应能耗的两个子策略,DES的整体能耗可以逐步得到降低.
本节利用上述煤矿监控系统来说明方法的有效性和正确性,并通过4个仿真实验来分析能耗管理策略的适用范围和有效性.
根据实际需要,每个人身上的射频卡都是必须启动的,从射频卡的完成功能可以发现,这些射频卡都是无关的,所以,采用启动策略不会休眠射频卡.下面采用启动策略计算人员定位系统的启动读卡器集.具体步骤如下:
针对读卡器分析发现:随着人员的移动,读卡器间的关系可能会发生改变.人员越密集,读卡器的使用率就越高.而分站和地面监控器间关系都是无关的,所以不会对其进行休眠.分析人员定位系统发现,执行路径的最大运行时间等于21,所以还有9个空闲时间用于调整.按照调整策略计算射频卡、读卡器和分站上各个操作的新运行时间、供电电压分别为(1.43,3.35),(1.43,3.35),(2.8,3.35),(1.43,4.57),(1.43,4.57),(2.85,4.57),(1.43,5.45), (2.85,5.45),(1.43,5.45),(2.85,5.45).利用能耗模型的构建步骤,可以建立人员定位的能耗模型,如图 6所示.
利用Petri网相关工具验证模型的相应性质,包括执行流程的正确性、Agent与设备间交互的正确性、启动策略和调整策略等性质.同理,可以对煤矿监控系统进行建模和分析.
为了有效评估方法的有效性,本文设计了仿真实验以评估方法的效果,藉以说明方法的实用性.首先,随机产生700个射频卡(主要需要随机生成射频卡的位置)、3 000个读卡器、10个分站、1个地面监控器作为DES的物理资源.随机生成960个任务构成分布式嵌入式系统的任务资源.每个设备都包含名称、位置、供电电压参数等属性.每个任务至少包含任务名称、任务功能、可用设备等基本信息.同时,如果没有特殊说明,下面仿真中的矿井系统均包含10个任务、30个射频卡、200个读卡器.
实验1的目的是说明采用启动策略的有效性.其具体实验步骤如下:
(1) 取400个射频卡、260个读卡器、50个分站、10个地面监控器分为10组,每组对应为一个矿井系统,依次对每个矿井软件进行步骤(2)、步骤(3).
(2) 根据系统的执行流程,选择10组设备集来完成系统的功能,基于各设备集计算出每个软件的整体 能耗.
(3) 利用启动策略计算系统的启动设备集,基于启动设备集计算出每个软件的整体能耗.
实验1的实验结果如图 7(a)所示,分析该图可知:
(1) 设备集的能耗会随着系统设备的属性不同而发生改变,如s2能耗明显较低,而s3在所有设备集下的能耗均较高.
(2) 采用启动策略后,系统的整体能耗得到降低,最高情况下降低了34.5%,最低降低了3%.分析最低情况发现:在该组系统中,射频卡的分布比较散,所以启动设备只比其中一组设备减少了1个设备,所以效果比较差.
综上所述,在人员集中情况下使用启动策略的效果会比较明显.
实验2的目的是说明采用能耗管理策略的有效性.其具体实验步骤如下:
(1) 取40个射频卡、26个读卡器、5个分站、1个地面监控器组成一个人员定位系统.
(2) 采用启动策略计算该系统的启动设备集合.
(3) 分别计算着启动设备的调压前能耗和调压后能耗.
实验2的实验结果如图 7(b)所示,其中,射频卡仅计算了3个:g1,g2,g3,读卡器主要启动10个,而分站也启动3个.通过分析可知:
(1) 虽然调整策略通过调节射频卡的动态电压可以降低射频卡的能耗,但每个射频卡的能耗是一样的.
(2) 调整策略在读卡器上的效果比较明显,但是不同读卡器的效果不一样.分析其原因,主要是由于读卡器工作范围内的射频卡数量有差异造成.
(3) 同样地,调整策略对于分站也具有一定的效果.
实验3的目的是分析能耗模型状态空间与系统设备增加的关系.其具体实验步骤如下:
(1) 取20个射频卡、26个读卡器、5个分站、1个地面监控器组成一个人员定位系统的基本结构.
(2) 系统以10为单位增加射频卡,即30,40,50,60,70,80,90,然后采用启动策略计算该系统的启动设备集和能耗模型的可达状态个数.
(3) 系统以5为单位增加读卡器,即26,31,36,41,46,51,56,然后采用启动策略计算该系统的启动设备集和能耗模型的可达状态个数.
(4) 以1为单位增加分站,即6,7,8,9,10,11,12,根据读卡器的位置平均分布分站,然后采用启动策略计算该系统的启动设备集和能耗模型的可达状态个数.
(5) 以1为单位增加Agent,即26,31,36,41,46,51,56,根据读卡器的位置平均分布Agent,然后采用启动策略计算该系统的启动设备集和能耗模型的可达状态个数.
从实验3的计算结果可以看出:所有情况下,能耗模型的状态空间均为32,即,增加射频卡、读卡器、分站和Agent对能耗模型的状态空间均无影响.分析其原因可知:能耗模型在执行过程中,通过引用最大触发集来计算可达状态,而系统中设备都是并行运行的,所以已有设备个数增加不会影响模型的状态空间.比如,增加射频卡虽然系统可能需要启动更多的读卡器,但是由于读卡器之间是并行执行,所以能耗模型的状态个数仍然保持不变.若系统此时增加一个转换器(有3个顺序执行的操作),则可以发现,系统的模型状态空间会增加到37.所以,增加设备类型可以导致能耗模型的状态空间增加,增加幅度由设备的操作及其关系决定.通过实验3可知,本文所提出的模型可以适合大型的DES的能耗建模与分析.
实验4的目的是分析能耗模型状态空间与系统设备故障或休眠的关系,具体实验步骤如下:
(1) 取40个射频卡、26个读卡器、5个分站、1个地面监控器,对应为一个矿井系统.
(2) 随机选择5个射频卡,系统在运行过程中需要临时将这些射频卡置于临时休眠,然后,采用启动策略计算该系统的启动设备集和能耗模型的可达状态个数.重复10次第(2)步,因为每次休眠的射频卡位置可能不同.
(3) 设系统目前射频卡位置随机移动一次位置,计算系统新的启动设备集和能耗模型的可达状态个数.
实验4的计算结果可以看出:当系统在运行过程中需要临时改变设备的状态时,会导致能耗模型状态空间的增加.虽然休眠的射频卡位置不同会造成系统的启动设备集不同,但是能耗模型的可达状态个数一直是34,与休眠射频卡的位置无关.而当射频卡位置发生改变时,可以发现,启动设备集的个数会动态改变,但是能耗模型的可达状态个数没有发生改变,仍然是34.
随着计算机软硬件的迅速发展与网络的广泛应用,越来越多的DES呈现出自适应特征.它们代表了软件形态和复杂性特征的变化,从而对支持这类系统开发的软件工程技术提出了新的要求和挑战.如何动态地构建和分析DES自适应能耗,也逐渐成为软件界的研究热点.与现有工作相比,应用本文所提出的方法可以达到如下 效果:
(1) 给出分布式嵌入式系统的自适应能耗管理策略.该策略根据当前设备的分布和系统的业务流程,动态地计算启动设备集.在确保系统功能性需求的前提下,通过减少启动设备来达到降低系统的能耗.同时,根据系统的运行时限及设备运行操作的属性,动态地计算操作的运行时间和供电电压,以降低启动设备的能耗值,从而降低系统整体能耗.仿真实验结果表明,能耗管理策略可以有效降低系统的整体能耗.
(2) 正确刻画了分布式嵌入式系统动态和静态特性,采用Petri网对分布式嵌入式系统的设备、连接件、Agent及其交互进行建模,所构造的模型可以刻画分布式嵌入式系统业务流程.在建模过程中,通过构建基础组件的模型库,可以根据实际需求对Agent、设备、连接件进行增减,并动态地织入能耗管理策略,提高了能耗模型的可扩展性.
(3) 利用CTL将系统的性质转换为公式,基于能耗模型的执行语义分析系统各部分的能耗值,并从理论上证明策略和模型的正确性.
基于Agent的软件开发具有易理解、更加模块化以及更易于复用等特性.目前,我们正着手完善Petri网及其扩展的形式化语法和语义,并进一步研究DES的行为特征.同时,开发相应的支撑工具,形成一套更具有实际应用价值的分析方法.
[1] | He C, Zhu XM, Guo H, Qiu DS, Jiang JQ. Rolling-Horizon scheduling for energy constrained distributed real-time embedded systems. Journal of Systems and Software, 2012,85(4):780-794 . |
[2] | Dam T, Koen L. An adaptive energy-efficient MAC protocol for wireless sensor networks. In: Proc. of the 1st Int’l Conf. on Embedded Networked Sensor Systems. Los Angeles: ACM, 2003.171-180 . |
[3] | Antonio C, Massimo C, Salvatore G, Seidita, V. Agent-Oriented software patterns for rapid and affordable robot programming. Journal of Systems and Software, 2010,83(4):557-573 . |
[4] | Girault C, Valk R. Petri Nets for System Engineering: A Guide to Modeling, Verification, and Applications. Berlin: Springer- Verlag, 2003. |
[5] | Liu XB, Guo B, Shen Y, Xiong B, Wang JH, Wu YS, Liu YB. Embedded software energy modeling method at architecture level. Ruan Jian Xue Bao/Journal of Software, 2012,23(2):230-239 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4145.htm |
[6] | Machado K, Ros<rio D, Cerqueira E, Loureiro A, Neto A, de Souza J. A routing protocol based on energy and link quality for Internet of things applications. Sensors, 2013,13(2):1942-1964 . |
[7] | Senn E, Lanrem J, Juin E, Dignet JP. Refining power consumption estimations in the component based AADL design flow. In: Proc. of the IEEE Conf. on Specification, Verification and Design Language. IEEE, 2008. 173-178 . |
[8] | Acharya S, Mahapatra R. A dynamic slack management technique for real-time distributed embedded systems. IEEE Trans. on Computers, 2008,57(2):215-230 . |
[9] | Mahapatra RN, Zhao W. An energy-efficient slack distribution technique for multimode distributed real-time embedded systems. IEEE Trans. on Parallel and Distributed Systems, 2005,16(7):650-662 . |
[10] | Sun ZW, Liu CH, Bisdikian C, Branch JW, Yang B. QoI-Aware energy management in Internet-of-things sensory environments. In: Proc. of the 9th Annual IEEE Communications Society Conf. on Sensor, Mesh and Ad Hoc Communications and Networks. IEEE, 2012. 19-27. |
[11] | Mahkameh Y, Ardeshir B. A context-aware adaptive learning system using agents. Expert Systems with Applications, 2011,38(4): 3280-3286 . |
[12] | Liang X, Des G. Agent model: software adaptivity using an agent-oriented model-driven architecture. Information and Software Technology, 2009,51(1):109-137 . |
[13] | Chang L, He XD, Shatz SM. A methodology for modeling multi-agent systems using mested Petri nets. Int’l Journal of Software Engineering and Knowledge Engineering, 2012,22(7):891-926 . |
[14] | Lian J, Shatz S, He X. Flexible coordinator design for modeling resource sharing in multi-agent systems. Journal of Systems and Software, 2009,82(10):1709-1729 . |
[15] | Li LX, Jin Z, Li G. Modeling and verifying services of Internet of things based on timed automata. Chinese Journal of Computers, 2011,34(8):1365-1377 (in Chinese with English abstract) . |
[16] | Zhang TT, Wu X, Li CD, Dong YW. On energy-consumption analysis and evaluation for component-based embedded swith CSP. Chinese Journal of Computers, 2009,32(9):1876-1883 (in Chinese with English abstract) . |
[17] | Lanese I, Bedogni L, Felice M. Internet of things: A process calculus approach. In: Proc. of the 28th Annual ACM Symp. on Applied Computing. ACM, 2013. 1339-1346 . |
[18] | Fan GS, Yu HQ, Chen LQ, Liu DM. Strategy driven modeling and analysis of reliable embedded systems. Ruan Jian Xue Bao/ Journal of Software, 2011,22(6):1123-1139 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4026.htm |
[5] | 刘啸滨,郭兵,沈艳,熊冰,王继禾,伍元胜,刘云本.嵌入式软件体系结构级能耗建模方法.软件学报,2012,23(2):230-239. http://www.jos.org.cn/1000-9825/4145.htm |
[15] | 李力行,金芝,李戈.基于时间自动机的物联网服务建模和验证.计算机学报,2011,34(8):1365-1377 . |
[16] | 张滕滕,吴晓,李长德,董云卫.基于CSP的构件化嵌入式软件能耗分析与评估方法研究.计算机学报,2009,32(9):1876-1883 . |
[18] | 范贵生,虞慧群,陈丽琼,刘冬梅.策略驱动的可靠嵌入式系统建模及分析方法.软件学报,2011,22(6):1123-1139. http://www.jos. org.cn/1000-9825/4026.htm |