一种基于带宽自适应代码迁移的移动设备节能方法

文档序号:6379964阅读:264来源:国知局

专利名称::一种基于带宽自适应代码迁移的移动设备节能方法
技术领域
:本发明属于移动计算领域,具体涉及一种基于带宽自适应代码迁移的移动设备节能方法。
背景技术
:移动设备因其轻巧便携、使用方便等优点,逐渐成为用户量最大的计算平台。随着移动用户的需求不断增长,移动设备的性能不断提升,电池容量已经成为移动设备进一步发展的瓶颈问题。近年来,基于程序分割的代码迁移技术逐渐应用于移动计算领域,成为缓解移动设备资源有限问题的一种有效方法。根据程序分割方案将应用程序的一部分代码迁移到服务器端运行,可以缩短应用程序的运行时间,降低移动设备的能量消耗。面向对象应用程序的复杂性和多样性为实现程序分割带来了挑战。国内外学者在这一领域进行了较为广泛的研究并提出了相应的方案。Eduardo等人提出的ΜΑΠ系统是基于微软通用语言运行库CLR的代码迁移系统,需要程序员事先对程序源代码中可在远端服务器执行的对象添加“Remotable”标识;Roelof等人提出的Cuckoo系统通过扩展Android编译系统,为程序员提供了一种便捷的编程模型,可以辅助程序员完成一部分工作(例如远程方法调用的实现),但仍需程序员手动实现;Shumao等人则是借助中间件实现移动设备上的程序分割和迁移。这些方案依赖于程序员或中间件工具,限制了其应用领域。于是Sinha等研究者进一步提出了自动程序分割方案,这种方法无需借助额外工具,不依赖于程序员,可以透明地实现程序自动分割,适用于移动平台。近年来,面向对象程序的自动分割方案大都通过对程序进行纯静态分析或纯动态分析构造程序对象关系图,并基于对象关系图(ObjectRelationGraph,0RG)实现程序分割。Spiegel等人和Dahm提出的Doorastha系统均采用纯静态程序分析方法构造对象关系图,不能够准确反映程序的运行态信息,因而无法获取最优的程序分割结果。而Messer等人和Bialek等人则采用纯动态程序分析方法构造对象关系图,相比纯静态分析,纯动态程序分析能够获取更为精确的程序运行时信息,但得到的对象关系图庞大复杂,导致程序分割开销过大,不适用于资源有限的移动平台。WangLei等人通过构造两层对象关系图,提出了适用于不同目标模型的程序分割方案和基于Java的分布式系统框架,但并未对程序分割方法进行具体研究,没有考虑移动环境中带宽的变化。程序分割的关键是如何选择程序的最优分割方案,尽可能实现移动设备能耗最小和数据传输开销最小。由于数据传输开销与网络带宽直接相关,不同的带宽会对应不同的最优分割方案。以往的程序分割通常假设带宽固定不变,如Diaconescu等人即根据静态带宽计算网络传输开销以决策程序分割,并未考虑网络环境因素(如带宽)的变化。由于移动网络环境中带宽变化频繁,传统的静态程序分割技术通常会保守地根据较低带宽决策分割方案。然而这种分割方案在带宽较高情况下无法充分利用带宽资源,造成网络资源浪费。Byung-Gon等人通过分析移动设备和网络环境的异构和动态变化特性,提出了动态程序分害IJ,但频繁的程序分割任务势必为移动设备带来较大的额外开销负担。
发明内容针对移动设备能量资源有限问题,为了有效节省移动设备的能量消耗,并克服静态程序分割不适用于带宽变化的移动环境和动态程序分割额外开销较大的问题,本发明提出一种基于带宽自适应代码迁移的移动设备节能方法。本发明的一种基于带宽自适应代码迁移的移动设备节能方法,具体过程如下步骤1,构造加权对象关系图,具体是首先,对应用程序进行静态程序分析,根据应用程序的方法调用关系,获取应用程序中的对象和对象间的调用关系,构造应用程序初始的对象关系图(InitialObjectRelationGraph,IORG),对象关系图的节点和边分别对应应用程序对象和对象间的调用关系;然后,通过动态程序分析获得对象关系图中各节点对象的运行时间以及对象间的调用关系(每条边)的通信数据量,得到加权对象关系图。步骤2,基于以上加权对象关系图,将带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型。令Xi标识节点i的运行位置,Xi=I和Xi=O分别表示节点i在移动设备和服务器端运行,则程序分割方案可表示为X=Ix1,X2,…,χη},η为节点个数,令b表示当前带宽。程序分割优化模型的目标在于求得最优分割方案X,满足,Xp为模型求解空间,W(x,b)表示当前带宽为b时程序分割方案X的优化模型,具体定义如下W(X,b)=WtXT(X,b)/TLocal+weXE(X,b)/ELocal其中,TLocal和Ekxal分别表示程序全部运行在移动设备时的运行时间和耗电量;wt和We分别表示运行时间和耗电量的权重,且满足wt+we=I;T(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;模型求解空间Xp表示为Xp={ζ^(Γ,6()<^(Α^Λ)χ(1+)}其中,带宽阈值Id1为满足条件P(b^bx)^P。的最大带宽值,P。为所设定的概率阈值了为带宽I3l下最优分割方案对应的模型值;a>O为经验常数,用以设定W(X,bx)的上限值为『(%為)x(l+)。步骤3,进行带宽自适应程序分割,在节点个数η不超过200时,采用基于深度优先搜索策略的分支定界程序分割方法寻找最优分割方案,在节点个数η大于200时,采用基于最小割的贪心方法(MCGAP)来寻找最优分割方案。所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括I)程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值Id1下的模型目标值不高于所设定模型上限值咖;';)χ(1+Ι)0所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得带宽为b和bx时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合^,令待分割节点W-Cb-Sbi,对V’中节点进行分割,采用Stoer-Wagner最小割算法中的最大邻接值排序算法对节点进行排序,然后基于贪心策略,同时根据与分支定界程序分割方法中相同的深度搜索的约束条件选取最优分割方案。步骤4,根据步骤3求得的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行,有效降低应用程序的执行时间和移动设备的耗电量,延长移动设备的电池使用寿命。本发明的优点与积极效果在于(I)采用静态与动态程序分析相结合的方法构造程序的加权对象关系图,所构建的对象关系图复杂度低,并能够准确地反映程序结构,有利于程序分割,适用于资源有限的移动平台;(2)将移动环境中带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型,适用于带宽变化的移动环境;(3)基于加权对象关系图和程序分割优化模型,提出了两种带宽自适应的程序分割方法分支定界程序分割法和基于最小割的贪心方法,前者能够求出小规模程序分割的最优解,后者可快速求得大规模程序分割的近似最优解;两种方法能够适应带宽变化,有效缩短程序运行时间,降低移动设备的能量消耗。图I为本发明的带宽自适应程序分割流程图;图2为本发明的示例程序图;图3为本发明的示例程序初始对象关系图;图4为本发明的示例程序加权对象关系图;图5为本发明的BBAP方法伪代码示意图;图6为本发明的MCGAP方法伪代码示意图;图7为采用三种方法构造加权对象关系图的大小比较示意图;图8为本发明实施例中程序实际运行时间与三种方法的预测运行时间的对比示意图;图9为本发明的仿真实验参数示意图;图10为本发明的仿真实验加权对象关系图信息;图11为本发明的BBAP方法对目标模型三种特殊情况的求解分割时间对比图;图12为本发明的BBAP方法的分割结果在不同带宽下对应的运行时间对比示意图;图13为本发明的BBAP方法的分割结果在不同带宽下对应的耗电量对比示意图;图14为本发明的BBAP方法的分割结果在不同带宽下对应的加权模型值对比示意图;图15为本发明的MCGAP方法对目标模型三种特殊情况的求解分割时间对比图;图16为本发明的BBAP与MGCAP运行时间最优模型求解结果对比图;图17为本发明的MCGAP方法的分割结果在不同带宽下对应的运行时间对比示意图;图18为本发明的MCGAP方法的分割结果在不同带宽下对应的耗电量对比示意图;图19为本发明的MCGAP方法的分割结果在不同带宽下对应的加权模型值对比示意图20为本发明的BBAP与MGCAP的平均性能对比图。具体实施例方式下面将结合附图和实例对本发明作进一步的详细说明。本发明提出的一种基于带宽自适应代码迁移的移动设备节能方法,首先,采用静态与动态分析相结合的方法分析移动应用程序,并构造其对应的加权对象关系图;其次,将移动环境中变化的带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型;然后,基于对象关系图和程序分割模型实现带宽自适应的程序分割方法;最后,根据分割结果实现程序在移动设备和服务器间的代码迁移和分布式执行,从而降低应用程序的执行时间和移动设备的耗电量,延长移动设备电池的使用寿命,而且应用程序的运行时间和耗电量随带宽变化波动较小,对带宽变化具有一定的适应性。如图I所示,本发明的移动设备节能方法,具体过程如下步骤I,构造加权对象关系图。本发明实施例以一个Java程序为例来阐述加权对象关系图的构造过程,示例程序如图2所不,程序包含四个类FacePreview、ImageCapture>FaceDetection和FaceDetectionLib,其中FacePreview类的main方法中创建了一个ImageCapture对象和两个FaceDetection对象,而两个FaceDetection对象均在执行自身DetectFace方法时调用了FaceDetectionLib类的ProcessBlock方法。首先,进行静态程序分析,利用指向分析(Points-to)技术分析Java程序的字节码文件,得到其方法调用关系图,并通过遍历调用关系图获取程序的所有对象及对象间的调用关系,从而构造出程序的初始对象关系图(I0RG),其节点和边分别对应应用程序的对象和对象间的调用关系。图3表示为示例程序对应的初始对象关系图,S_FacePreview创建对象D_ImageCapture、D_FaceDetectionl和D_FaceDetection2,对象D_FaceDetectionl和D_FaceDetection2都调用S_FaceDetectionLib的方法,其中S和D前缀分别表示静态对象和动态对象。由于节点间的交互主要以方法调用的方式体现,其通信数据主要表现为方法调用的参数及返回值,在动态程序分析阶段,利用Java字节码重写技术,可以获得程序IORG中每个节点对象的CPU运行时间以及每条边(对象间的调用关系)的通信数据量,即加权对象关系图中各节点与边的权值。图4表示为示例程序对应的加权对象关系图,例如节点S-FacePreview所代表的对象的CPU运行时间为50ms,节点S_FacePreview与节点D_ImageCaptur之间的通信数据量为9066bytes。步骤2,建立程序分割优化模型。考虑到移动环境中带宽的变化,本发明将带宽作为一个变量,提出基于运行时间和耗电量的程序分割优化模型,令Xi标识节点i的运行位置,Xi=I和Xi=O分别表示节点i在移动设备和服务器端运行,则程序分割方案可表示为X=Ix1,X2,…,xj,b表示当前带宽,J表示最优程序分割方案。程序分割优化模型的目标在于求得最优分割方案I,满足i=argSS『u'6),XP表示模型求解空间,W(X,b)表示当前带宽为b时分割方案X的优化模型,具体定义如下W(X,b)=WtXT(X,b)/TLocal+weXE(X,b)/ELocal其中,TLocal和Ekxal分别表示程序全部运行在移动设备时的运行时间和耗电量;wt和We分别表示运行时间和耗电量的权重,且满足wt+we=I;Τ(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;模型求解空间Xp表示为权利要求1.一种基于带宽自适应代码迁移的移动设备节能方法,在移动环境带宽不断变化的情况下,其特征在于,该移动设备节能方法通过下面步骤实现步骤I:构造加权对象关系图,具体是首先,进行静态程序分析,根据程序的方法调用关系,构造程序初始的对象关系图,对象关系图中的各节点和边分别对应程序中的对象和对象间的调用关系;然后,通过动态程序分析获得对象关系图中各节点对象的运行时间以及每条边的通信数据量,得到加权对象关系图;步骤2:基于加权对象关系图,将带宽作为一个变量,建立基于运行时间和耗电量的程序分割优化模型,具体是令Xi标识节点i的运行位置,Xi=I和Xi=O分别表示节点i在移动设备和服务器端运行,程序分割方案表示为X=Ix1,X2,…,χη},η为加权对象关系图中的节点个数,则程序分割优化模型的目标在于求得最优分割方案J^^=argminr(X,6),Xp为模型求解空间,b表示当前带宽,ff(X,b)表示当前带宽为b时程序分割方案X的优化模型,具体定义如下W(X,b)=WtXT(X,b)/TLocal+weXE(X,b)/Eloc31其中,TLocal和Ekjcal分别表示程序全部运行在移动设备的运行时间和耗电量;wt和We分别表示运行时间和耗电量的权重,且满足wt+we=I;T(X,b)和E(X,b)分别表示当前带宽为b时采用程序分割方案X的程序运行时间和耗电量;所述的模型求解空间Xp定义为={xIW{X,b,)<w{x^,b,y(\+a)^,其中,带宽阈值Id1为满足概率P(b彡bx)彡P。的最大带宽值,P。为所设定的概率阈值为带宽h下最优程序分割方案对应的优化模型值;经验常数a>O;步骤3:进行带宽自适应程序分割,在节点个数η不超过200时,采用分支定界程序分割方法寻找最优分割方案,在节点个数η大于200时,采用基于最小割的贪心方法来寻找最优分割方案;所述的分支定界程序分割方法基于分支定界深度优先搜索法,深度搜索的约束条件包括O程序分割方案在当前带宽b下对应的优化模型值小于当前保存的优化模型的最小值;2)程序分割方案在带宽阈值Id1下的模型目标值不高于所设定模型上限值π(χζ,)χ(\+α);所述的基于最小割的贪心方法,利用Stoer-Wagner最小割算法求得带宽为b和Id1时对应的运行在移动设备的节点集合Cb和运行在服务器端的节点集合&,令待分割节点V,二V-Cb-Sbt,对V’中节点进行分割,采用Stoer-Wagner最小割算法中的最大邻接值排序算法对节点进行排序,然后基于贪心策略,同时根据与分支定界程序分割方法中相同的深度搜索的约束条件选取最优分割方案;步骤4:根据得到的最优分割方案,实现程序在移动设备和服务器间的代码迁移和分布式执行。2.根据权利要求I所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的概率阈值P。设定为O.85。3.根据权利要求I所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,所述的经验常数a设定为O.4。4.根据权利要求I所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,步骤2中所述的带宽为b时采用程序分割方案X的程序运行时间T(X,b)为5.根据权利要求I所述的一种基于带宽自适应代码迁移的移动设备节能方法,其特征在于,步骤2中所述的带宽为b时采用程序分割方案X的程序耗电量E(X,b)为全文摘要本发明提出一种基于带宽自适应代码迁移的移动设备节能方法,通过对移动应用程序进行静态和动态分析,构造出一种加权对象关系图,从而将程序分割问题转化为对象关系图分割问题;将移动环境中变化的带宽看作一个变量,提出基于运行时间和能量最优的目标模型;针对程序分割优化模型提出带宽自适应的分支定界程序分割法(BBAP)和基于最小割的贪心程序分割法(MCGAP);最后基于所得到的分割方案实现移动应用程序在移动设备和服务器间的代码迁移和分布式执行。本发明方法能够有效缩短移动应用程序的运行时间,降低移动设备的电能消耗,并对带宽变化具有良好的适应性。文档编号G06F9/44GK102968173SQ20121042184公开日2013年3月13日申请日期2012年10月30日优先权日2012年9月28日发明者牛建伟,宋文芳申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1