APP下载

基于控制理论的嵌入式软件自适应方法研究

2020-12-08贾婷婷

粘接 2020年10期
关键词:嵌入式软件

贾婷婷

摘 要:随着对计算机技术的不断深入发展,近年来软件自适应已经成为研究人员的研究热点,软件自适应是软件系统根据环境状态的变化而进行自身调整的一种能力,由于其余控制理论有着非常相似的处理过程,所以控制理论也已经成为研究软件自适应方法的重要手段,这里我们对基于控制理论的嵌入式软件的自适应方法进行了研究分析,了解软件自适应的基本原理和方法,也发现了目前的研究还存在许多的不足,也说明软件的自适应研究在未来还有很大的探索空间。

关键词:控制理论;嵌入式软件;软件自适应;自适应环

中图分类号:TP311.53   文献标识码:A      文章编号:1001-5922(2020)10-0188-05

Abstract:With the continuous in-depth development of computer technology, software self-adaptive has become a research hotspot of researchers in recent years. Software self-adaptive is a kind of ability of software system to adjust itself according to the change of environment state. Because other control theories have unusual similar processing process, so the control theory has also become an important method for studying software adaptation methods. Theoretical embedded software adaptive method has been researched and analyzed, understand the basic principle and method of software adaptive, and find out many deficiencies in the current research, which also shows that the adaptive research of software still has a lot of exploration space in the future.

Key words:control theory; embedded software; software adaptation; adaptive loop

0 引言

現今社会计算机技术在不断的发展进步,网络计算和移动计算也成为了我们日常生活中重要的组成部分。随着人们的日常生活工作需求不断提高,对计算设备的要求也越来越高,尤其是某些计算设备需要用于移动环境,这就对设备的便捷性和安全性有很高的要求。但是这些普适计算设备的局限性就在于它的安全性较低以及资源有限性。因为终端在设计方面有重量轻,能耗低以及尺寸小的要求,导致了其资源有限性,根据这些要求科研人员设计出了相应的设备,但是这里设备有许多的缺陷,例如磁盘容量过小,缓存不大,其物理内存也不够充足,设备的处理能力较低以及设备屏幕过小等,虽然制造技术在不断发展,但是这也中端的资源还是很难得到提升。此外,由于某些终端设备的移动性,其安全性也较低,这些终端无法安全可靠的寻访存放数据。总结来说,就是资源的有限性导致其无法储存所需要的内容,如若把数据长期存放在终端上面也不太安全。所以,具有较高安全性,丰富资源的服务器才是储存数据的最佳位置,移动设备可以作为客户端设备的形式存在,并且能够访问和维护服务器上面的数据。此外终端设备还会受到其所在网络环境的限制,对于终端来说,远程资源进而网络的连接性都是动态变化的。并且大部分情况下,终端设备都是使用无限网络,其相较于有线网络,具有高延迟和抵宽带的特点,同时依据现有的网络基站覆盖率而言,高质量的网络服务是无法在移动环境中得以保证的。结合这些缘由,不难发现多数情况下计算终端都是在不断变化的,也就是说它所获得的资源也会随着发生变化,且是动态变化的,无法进行预期,因此为了应对这种动态变化需要计算机终端自身具备良好的自适应处理能力,也及时终端自身可以由环境的变化和资源的变化来改变自身状态。我们研究了基于嵌入式操作系统的终端自适应系统的体系结构,对其自适应性方法进行了分析。

1 软件自适应

自适应,这一概念在生物学领域是用来对生物为了适应新的生存环境而改变自身习性的一种特征的描述[1]。渐渐地人们发现这种自适应特征具有十分优良的系统品质,于是越来越多的科学技术领域应用这以概念,其主要是用来构造各类自适应系统,诸如自适应巡航,自适应滤波,系适应控制等等[1]。在软件工程领域中,软件系统越来越复杂,其所面临的外部需求变化也越来越频繁,面对这些新的挑战,我们需要研发一种新的机制来应对,使得软件具有自适应的能力,继而形成一种自适应软件,这也正是人们所需要的一种软件心态。

软件自适应,关于这一概念并没有一个统一的定义,因为它的定义可以从许多方面来看,比如说行性能和功能的改进方面,或者从它应对环境变化的方面来定义,因为阐释的较多不同所以其定义的内容也就不同[2]。这里我们可以将软件的自适应功能理解为软件系统的一个能力属性,又能够将其理解为一个过程,也就是说因为它具有典型的目的性和动态性特征,也就是说当外界环境因素发生变化时,软件系统能够进行自我调整[3],以适应环境变化,从而达到动态快速的接近自适应目标,根据这些理论我们就可以总结出软件自适应的定义,即当软件系统受到外界变化的干扰时,为了防止整个系统变为失效状态,软件系统自发启动自适应功能,在线进行自我调整,通过这种调整快速动态地逼近任务目标,具体可以描述为在:用a表示软件系统的运行状态,它也是系统时间的函数,系统时间用t表示,软件系统可接受状态空间用A表示,当a∈A时,软件的服务质量处于用户的可接受范围,软件系统失效状态空间用B表示,当a∈B时,则代表软件的关键性指标已经被损坏了,并且不能再给系统提供可用的功能和性能,软件系统面临的所有变化集合用C表示,用D表示自适应平衡状态集合,这种状态的系统不会再发生很大的变化,其性能和功能也已达到用户的目标,这里我们假设t=t0时,软件的系统状态稳定的处于区域D里面,也就是说a(t)∈D,当t=t1时,这里t1>t0,外部环境变化用δ表示,δ∈C,由于外界环境因素的变化使得软件系统的运行状态遭到干扰、偏离平衡,在此过程中软件系统也由平衡状态空间向可接受状态空间转变,但是还没有进入失效状态空间,用公式(1)表达:

这时,由于自适应机制的启动,使软系统快速的感知到了系统状态的改变趋势,进而进行自我调整,软件系统从可接受状态空间又会重新进入到目标区域里面,这段时间用表示,则有:

也有一些其他领域的研究与软件自适应研究相近,典型的就有自管理系统和自治计算系统[4]。一般情况下,自治和自管理系统会很回家侧重于整个计算机系统,而自适应软件则更关注软件系统的自适应。其实在对这三者进行研究时,在技术和研究方法上面是很难区分的,所以很多学者在研究时,并不区分它们的说法,并且常常互换着使用。

软件的自适应过程所经历的各个环节构成自适应环,经过上面的介绍可以了解到,通常自适应过成中需要最少经历三个核心的环节,也就是感知环节,评价环节和施动环节。对用户需求以及环境信息的收集主要是靠感知环节来完成,同时在此环节中还要获取到相应的需求和环境的变化;然后根据所获取的信息变化和目标预定并对其进行推理评价则是由评价环节来实现,评价机制作出判断后才能决定软件系统要如何调整自身来应对环境变化。讲评价环节得出的结论施加到软件系统上是在是由施动环节来完成,这个环境确保系统完成自身调整过程,这3个基本环节就能够构成一个完整的自适应环。目前比较知名的自适应环就是IBM的MAPE-K环,它将自适应的过程分为了4个阶段和一个知识库,四个阶段即监视阶段,分析阶段,规划阶段以及执行阶段。也有很多研究人员有许多不同的关于自适应环的理解,如有学者将其概括为评估与监视环节,规划改变环节,部署变化描述环节,实施变化和采集观测信息环节。也有学者认为其应该理解为采集阶段,分析阶段,决策阶段以及施动阶段等几个阶段。还有的认为应该包括监视环节,探测环境,决策环节以及施动环节。由此可见不同的研究人员有着不同的关于自适应环的表达方式,但是究其本质其实都是一样的,也就是先对环境以及需求的变化进行感知,再针对所获取的信息进行一定的分析处理,最后获得相应的结论,将其施加到软件系统,从这些表达方式也可以看出软件自适应过程事实上是循环往复的过程,它也是一个和软件系统运行具有相互作用的循环过程。

为了实现软件自适应的整个过程,基本设施是必不可少的,通过对软件自适应过程的理解分析,要完成软件的自适应过程,就需要一定的软件设施作为支撑,在软件自适应的每个环节都需要与其相对应的软件设施,如我们需要有感知器设施来识别和感知变化,需要自适应器设施用来对变化进行决策,同时也需要执行器设施来将自适应结果是加到目标软件系统上。许多研究人员也根据自己的理解而给这些软件设施进行了许多不同的命名,例如IBM的MAPE-K将自适应的不同环节用到的软件设施命名为感知器以及自治管理器进而效应器。也有学者将其名命名为探针和自适应管理器进而效应器[5],同样虽然这些设施的命名不同,但是它们的功能都是一样的,都是为了完成自适应过程的各个环节,也就是首先对环境和需求变化进行感知,然后对获取的信息进行分析处理,最终将结果施加到软件系统完成自适应过程。这里自适应器、执行器和感知器组成了整个软件系统的自适应逻辑。与之相对应的是软系统的功能逻辑和应用逻辑,自适应逻辑又包括了2个方面,及软件的自适应机制和软件设施,软件的正常业务功能主要靠应用软件来实现,根据控制理论,自适应逻辑控制应用逻辑,所以某些时候讲应用逻辑称为目标软件。

2 控制理论

控制,它表示的是一种面向目标的动作[6],与另一个动作相关联,需要一个执行这个动作的主体以及承受这个动作的对象,该主体被称为控制器,也被认为是控制算法的执行器,对象被称为被控对象。现今社会控制已经成为一种广泛应用的基本活动,诸如汽车自动控制,发电机组控制等等。我们必须将控制器和被控制的对象,根据一定的方法连接构成1个有机整体,以保证各种复杂的控制任务的实现。这样就形成了1个控制系统。控制系统最基本的核心是反馈或者闭环控制,通过取自被控量的反馈信息,然后对被控量和控制目标之间的偏差进行不断的修正,最后达到对被控对象进行控制的功能。下图1展示了反馈控制系统的结构示意图。

控制器,执行器,传感器以及被控对象一起组成了反馈控制系统,上面示意图中的r表示设定值或者参考输入值,它指的是期望的输出,y表示被控对象的输出,e代表控制误差,e=r-y,它表示期望的系统输出同世纪测量输出的差值,u表示控制输出,它的得出是根据控制误差采用一定的控制算法经过运算获得的。将输出控制利用执行器施加到被控对象,然后使系统输出值尽可能地逼近期望输出值,总体来看,反馈控制过程是一个动态过程,它的最终目标是使控制误差e等于0,也就是让系统输出y逼近或者等于期望的输出r。

前馈控制,也称为开环控制,它与反馈控制相对应,该控制形式是直接利用参考输入来决定控制输出的,而不需要系统的输出来对控制输出进行调控。前馈控制的优势就是其结构简单,但是也存在缺陷,其抗干扰能力差,系统的稳定性无法得到保证,所以该控制形式并不会单独被使用。

一个控制系统的设计与实现都是为了达到某个目标,该目标只要表现在[7]:首先是调节控制,也就是要保证系统输出与参考输入接近甚至是相等。调节控制的重点是参考输入,参考输入的变化会直接导致系统输入的变化,当参考输入的变化频率变得非常快时,这种控制方式我们通常称为跟踪控制。此外,还需要使控制系统具有足够的抗干扰能力,这样才能确保系统所收到的外界干扰不会对系统的输出造成太大影响,最后一点就是要进行优化处理,保证能够取得系统输出的最佳值。

使用不用的控制器,不論被控制的对象是不是相同,能有可能产生不同的控制效果。控制系统的好坏是需要1个统一的标准来判断的,一般情况下是通过4个指标来评判的,即准确性,稳定性,超调量以及调节时间。控制系统的准确性指的就是系统在稳定状态时其系统输出能够与参考输入无限逼近。控制系统的稳定性指的就是针对任意的限制内的输入,系统的输出都能够确保稳定在一定的范围内的能力。超调量指的是系统输出的最大的偏差值与稳态值之间的差值。调节时间则表示系统输出从最开始的初始值到接近稳态值所需要的时间。

综上所述,深究控制的本质其实就是以变制变,它依据一种计算逻辑,利用实际值与期望值的差值,计算产生控制输出,最终以达到被控制的对象性能无限逼近与期望值的目的。以变制变也是自适应的本质,根据外部的环境变化,通过调节自身来应对这种变化,整个自适应过程也就是对自身软件系统的控制过程,也就是这种自身的控制过程使得其可以适应外界环境因素的变化。因而该控制理论,是一种非常有效的实现动态软件系统自适应的工具。

3 嵌入式软件自适应体系

3.1 具有自适应性功能的操作系统

Delta OS是一种具有自适应功能嵌入式实时操作系统,它的主要内核有内存管理,任务管理,中断管理,任务间通信以及时钟管理等模块,同时也含有浏览器,GUI,晚间系统以及网络等组件。

我们需要添加1个自适应处理模块在操作系统Delta OS中,来实现计算终端对环境及资源变化作出相应的自适应处理。在Delta OS的基础上,再加上资源监控模块,事件管理模块和事件通道注册模块3个模块就构成了具有自适应能力的嵌入式操作系统Delta  a-OS体系结构。这3个模块共同工作能够很好的完成系统的自适应过程,资源监控模板检测到计算终端的资源变化时,由事件通道注册模块会很快获取时间通道的引用,然后这些引用就会作为事件对象直接发送到事件管理模块,然后通过事件传送机制将反应终端资源变化的时间对象传送给应用程序,最后由应用完成自适应响应。这种体系结构非常灵活,它能够将传送机制和环境监控模块分离开来,对应用和监控模块进行有效的隔离,使得应用程序可以在对事件信息进行接收时采用一种新的监控方式,而不需要利用系统提供的方式获取环境的状态变化。该体系结构是一种系统和应用共同协作的自适应模型[8],系统可以对资源的可用性进行监控,对资源进行合理分配,与此同时还将对资源进行适当的优化。将自身的特性与系统所提供的资源信息进行结合,应用程序就能够很好的进行决策。

3.2 事件管理模块

多个事件通道组成事件管理模块,并且每一系列的事件类型都会对应一个时间通道,事件处理模块和时间传送模块共同构成了事件通道,为事件通道提供通道信息是时间处理模块的主要功能,同时还要对事件日志进行维护,处理一些事件,通道信息指的是通道类型等方面的内容。根据系统应用的具体情况,事件管理模块会对相应的资源进行分配决策,对于特定的应用也会给予相应的资源分配,与此同时会对实时应用的资源作预留准备。

系统中事件对象的事件日志会由时间处理模块进行定期的日常维护,此保存移动环境的状态。针对每一个类型的事件,会将近期的时间对象进行保存,等待与之相同类型的事件出现。前期保存的事件对象,根据事件发生的时间顺序,应用程序注册到通道时就会传送到应用,进而使系统适应相对应时间的环境状态。在这整个才做过程中,事件处理模块是与事件传送模块交互进行的,为实现事件传送提供框架结构是事件传送模块的主要任务,在传送模块中,应用能够获取自适应处理模块的引用序列,根据这些引用序列,事件传送模块可以将事件对象传送到引用。

3.3 事件通道注册管理模块

每一个事件通道都会有一个与之对应的名字,而这个名字会应用到通道的引用上,在对事件通道进行创建时,需要经由事件通道注册模块进行注册,同时还要保证事件通道名字的唯一性,以便后续将引用提供给其他检索模块。事件对象有资源监控模块传递到事件通道时,会有注册管理模块获得事件通道的引用。

3.4 资源监控模块

为了实现对终端移动环境的实时监控需要用到资源监控模块,资源监控模块通过通道引用会将事件对象传送到事件通道。监控模块一旦监控到环境状态发生变化时,就会建立一个新的事件对象,同时将这个事件传送给事件通道。另外,资源监控模块还能够使系统保持稳定的状态,即它可以抑制环境状态发生的瞬时变化,很好避免系统的抖动现象。

3.5 具备自适应处理功能的应用

系统自适应策略的实现是由自适应处理模块完成的,它可以为应用提供稳定的服务,是应用获取与系统资源情况一致的信息。在自适应体系的整个结构中,事件最终都会传送到自适应处理模块,某些应用需要获取资源信息,那么可以针对性的建立与之相适应的自适应模块,同时生成这个模块的引用,并注册到事件通道,如果资源状态发生变化时,资源的状态信息就可以从资源监控模块和事件通道获取。当获取到事件对象时,应用的自适应模块就会根据事件对象代表的事件类型而作出相应的变化。

3.6 自适应系统的工作工程简介

这里以计算终端的网络宽带产生变化来进行说明,下面图2所示为UML序列图。

图中显示了6个对象,并且这6个对象分别对应着六个不同的模块,Network Bandwidth表示网络宽带资源,Network Monitor表示网络事件监控模块,Network Event Manager表示网络事件处理模块,Network Delivery Module表示网络事件传送模块,Registrar表示事件通道注册管理模块,Browser表示网络相关的浏览器应用。图中箭头表示信息的传递,而箭头的方向则代表事件发生的先后顺序。

4 结语

嵌入式软件所对应的计算终端所处的环境总是在不断变化中的,那么自然获得的资源也在不断变化,同时这些变化都是不可预期的,属于动态变化。所以日常生活中,我们对软件的自适应功能是由一定的要求的,当软件具备自适应的能力就能个根据环境以及资源变化作出自我调整以适应新的环境和资源。这里我们系统忽和应用的自适应模型进行了研究,了解了整个结构体系中各个组成部分的功能以及原理,也了解了控制理論的基本内容,软件自适应与控制理论的关联,通过研究这些理论与原理是我们更加清楚的明白了嵌入式软件的自适应方法。

参考文献

[1]Astrom K J,Wittenmark B.Adaptive Control.2nd Edition.Englewood:Prentice Ⅱall,1994(5):5-9.

[2]Laddaga R.Sell-adaptive software.DARPA BAA,Virginia:Techical Report:98-12,1997(5):12-16.

[3]Alex Quilici,Richr and N.Taylor,Michael M.Gorlick,et al.An architecture-based approach to self-adaptive software[J].Intelligent Systems and Their Applications,1999,14(3):54-62.

[4]Kephart J,Chess D.The vision of autonomic computing [J].IEEE computer,2003,36(1):41-59.

[5]Garlan D,Cheng S W,IIuang A C,et al.Rainbow:Architecture-based self adaptation with reusable infrastructure.IEEE Computer,2004,37(10):46-54.

[6]Bubnicki Z.Modern Control Theory.Berlin:Springer-Verlag,2005(7):66-69.

[7]胡寿松.自动控制原理(第3版) [M].北京:国防工业出版社,1994.

[8]M Satyanaraysnsn.Fun damental challenges in mobile computer[A].Fifteenth ACM Symposium on principles of Distnbuted computer[C].Philadephia,PA,1996:1-7.

猜你喜欢

嵌入式软件
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
浅析嵌入式软件技术的现状与发展动向
基于微信的移动学习平台开发与设计
计算机软件设计中的嵌入式软件设计分析
嵌入式软件技术的现状与发展趋势研究
嵌入式软件全面测试过程模型
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
试论计算机嵌入式软件构件提取与组装技术
计算机软件开发过程及嵌入式软件的应用