论文部分内容阅读
软件作为信息社会的基础设施,经常面临外部资源不断变化的挑战,从而导致不可预测的软件故障,轻则影响软件性能,重则影响软件生命。因此,保证软件系统能够稳定地运行是非常重要的。近年来,无人机领域发展迅速,无人机的功能迅速增加。然而无人机又对电量资源十分敏感、耗电快,天气、飞行任务临时改变等因素影响导致很难完成既定的飞行任务。并且无人机的电量资源稀缺往往导致严重的后果。因此实现资源变迁环境下无人机软件的自适应调整具有非常大的意义。为了解决软件资源、环境变化给软件运行带来的影响,很多研究人员致力于构建自适应软件系统,而目前最常见的方法就是创建自适应模型。这种方法的局限性主要表现在:(1)从软件设计时开始部署,直至软件运行时、(2)整个过程非常复杂,需要有极强的领域知识、(3)不同的模型有各自的特点,往往只适用于一种软件资源。研究表明在自适应软件系统中,软件配置是调整软件操作的重要手段。本课题在对无人机飞行控制软件的调研结果表明,配置项可以直接影响无人机的电量消耗,因此本课题希望根据外部环境自适应地调整软件配置以适应资源的变化。本课题设计实现了Conf-Adaption,一个可以根据外部资源变化自动调整软件配置的工具。具体来说,本课题设计了一种轻量级的资源依赖分析方法来分析软件配置和资源之间的依赖关系,并获得影响资源消耗的配置项排序。之后,Conf-Adaption根据设计的配置调整策略自适应地调整配置项,以适应或满足飞行任务。本文的主要工作如下:1.对无人机软件Ardupilot的503个配置项进行分类,并跟踪39个配置项在软件代码中的执行路径,发现软件的配置项会影响软件的资源。通过对5个配置项进行实验,发现配置项的设置会影响无人机的电量资源消耗。从而验证了本课题通过调整配置应对资源变化的可行性。2.本课题提出了一种新的轻量级资源依赖分析方法,可通过程序分析得出软件配置项关于软件电量资源的排序。首先对软件进行切片分析,得到受软件配置项影响的函数集合。然后用代码插桩的方法得到了函数消耗的电量和函数执行的频率。基于此,计算出配置项的排序。利用上述排序,本课题可以筛选出影响资源的配置项,并对这些配置项进行配置自适应调整。3.本课题设计实现了一种无人机系统配置自适应调整工具Conf-Adaption,其利用构建的配置调整知识库对配置项进行调整。本课题综合考虑维护无人机软件稳定性、可靠性和尽量减少配置项修改等因素,构建的配置调整知识库包含(1)配置项与软件任务的关系;(2)配置项、无人机当前电量和飞行时间的关系。当资源、环境、任务发生变化时,Conf-Adaption根据配置调整知识库自动调整软件配置。我们在3DR SOLO无人机上的实验表明,当无人机任务发生变化时,Conf-Adaption可以自动调整无人机配置,90.5%的调整可以满足任务要求,有效延长飞行时间。