面向软件开发初期的最坏情况执行时间快速估计与优化

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:collinccs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
实时系统中的软件安全不仅与软件的功能是否达到预期有关,同时还取决于软件的运行能否满足截止时间要求。随着软件在实时系统中发挥的作用越来越关键,程序的规模和结构也随之变得更加庞大和复杂,致使超时风险及超时损失的严重程度都不断增加。由于在软件开发初期对有失效倾向的模块进行预测,既可以大幅提高软件的质量,又可以降低缺陷的修复成本。因此,应该在系统开发初期便对程序的最坏情况执行时间(Worst-Case Execution Time,WCET)进行快速估计,而后立即将估值反馈至源码以定位性能瓶颈,进而通过源码优化消除瓶颈,实现以较低成本防控超时风险的目的。然而,现有WCET的静态分析方法虽然可以保证估值安全但效率普遍较低,为了避免等待或者频繁切换界面,程序员往往将WCET估计推迟到系统开发后期才进行。加之估值取自目标代码因而难以映射到源码层次,以及基于目标代码的传统性能优化不能有效降低WCET等问题,给早期超时风险的预警及防控造成了极大困难。为此,本文开展面向软件开发初期的WCET快速估计与优化方法研究,对于超时风险的早期预警与防控,降低实时系统的开发成本、增强系统可靠性以及保障软件安全,具有重要的理论意义和应用价值。针对现有方法无法实时给出程序的WCET估值,因而难以与开发进程同步并对超时风险进行实时预警的问题,研究并提出一种基于指令剖面的WCET快速估计方法。将程序的模拟执行时间、动态指令类型数与其目标代码的模糊哈希值相结合,设计了面向WCET非线性估计的程序特征模型。在此基础上,开发了静态相似度与动态相似度相结合的训练样本优选算法。当基于IPET的WCET分析方法(以下简称“IPET方法”)可用时,提取程序的静态和动态特征,与其WCET估值一并存入样本库。若IPET方法在预定时间内没能给出分析结果,则依据静态相似度与动态相似度从样本库中优选训练样本,并采用最小二乘支持向量机进行学习与非线性预测。实验结果表明,本文方法的平均效率高,能够伴随编译过程快速估计程序整体的WCET,且对估计精度的影响较小,适用于软件开发初期的超时风险实时预警。针对现有方法不支持在源码层次显示函数或语句的WCET以及存在过高估计,因而难以快速定位代码性能瓶颈的问题,研究并提出一种层次化的WCET快速估计方法。使用控制流树计算函数或语句的WCET,并利用字节码保留的层次结构信息将WCET反馈至源码。分析了现有方法存在过高估计的原因。在此基础上,提出了不合理高估的判定条件,并与基于控制流树的WCET估计算法融合,在快速估计WCET的同时统计高估风险数据。设计了WCET反馈与超时风险预警机制,依据时间预算判定代码是否超时,一旦发现超时便触发相应警示。实验结果表明,本文方法不仅能够快速估计函数或语句的WCET并在源码层次予以显示,而且能够自动判定不合理的高估,进而减少确认时效缺陷的时间开销,提高代码性能瓶颈的定位效率。针对现有方法没有考虑复杂程序中非正交嵌套循环的局部最大迭代次数在转换为内外层循环的相对约束关系时出现的不可整除情况,因而导致WCET被过高估计进而误导程序员盲目优化程序代码的问题,研究并提出一种基于局部相对约束的WCET高估值修正方法。从处理器行为分析和控制流分析两个方面剖析了现有方法出现过高估计的原因。在此基础上,给出判定含非正交嵌套循环程序存在WCET过高估计的必要条件。针对此类特殊高估,设计了基于局部相对约束的WCET过高估值修正算法,由内至外逐层修正最坏情况执行路径上非分支部分中非正交嵌套循环的相对约束关系。实验结果表明,本文方法能够在确保WCET安全估计的前提下,有效降低在含非正交嵌套循环程序上出现的WCET过高估计,避免不必要的代码优化代价。针对现有方法优化WCET对代码后期的可维护性影响大且可移植性差,不能以较小代价有效防控超时风险的问题,研究并提出一种基于不变路径的源码重构WCET优化方法。该方法利用标注反馈技术在源码上识别WCEP及不变路径。而后,依据不变路径以及循环对WCET优化的影响程度,对程序源码进行了优化热点区域的划分。同时,针对WCET优化可能产生克隆代码以致影响软件后期维护的问题,通过克隆元素的数量与克隆代码之间的距离计算维护代价,并据此设计了WCET源码重构优化策略。实验结果表明,本文方法能够以较小的可维护性代价降低程序的WCET,进而防控软件的超时风险,且优化结果具有可移植性。综上所述,本文的研究为解决如何在软件开发初期快速估计及优化WCET,进而检测代码中的超时风险并对其进行有效防控,确保软件满足执行时间约束等科学问题提供了新的思路与方法。有利于实时系统开发过程中的软硬件协同设计,有益于降低实时系统的开发成本并提高系统的软件安全性。
其他文献
零形式框架元素指的是句子中未显式表达的语义角色,这些语义角色通常是指既不能通过语义角色标注,也不能作为句子中谓词的依存成分的框架元素。在语篇场景中,有的框架元素能
模式识别是机器识别的一个研究领域,现已发展成一门多领域交叉的学科。针对不同的对象和目的,可以采用不同的模式识别理论和方法。人工神经网络能较好的模拟人的形象思维,并且具
业务流程再造和优化,是现代化企业在日趋激烈的市场竞争中立于先机的有效保障。利用工作流技术,可对企业业务流程建模,继而实施工作流仿真,寻找流程不合理之处从而进行优化再
针对地质找矿预测、矿产资源评估和矿产资源开发利用的特殊需要,深入研究地质体三维可视化技术就显得特别重要。包含断层的复杂地质体的三维数学描述与模拟,目前仍处于研究探
随着电子商务技术的快速发展,原来那种基于特定系统和特定环境的开发方式逐渐无法适应新的需求变化。Web Service技术的出现,给异构系统间的商务应用集成带来了前所未有的希望
基于构件的开发(Component-Based Development,简称CBD)或基于构件的软件工程(Component-Based Software Engineering,简称CBSE)是一种软件开发新范型。它是在一定构件模型的
本文主要介绍了一种基于嵌入式技术实现的球磨机料位检测系统的设计方案,该系统的主要原理是通过对球磨机工作时发出的磨声信号进行采集,然后利用数字信号处理的相关技术来分
论文针对煤炭企业在销售中所面临的问题和挑战开展研究,基于数据挖掘和销售预测相关理论,对平顶山天安煤业股份有限公司一段时期内煤炭交易数据进行了深入分析和研究,提出了
随着市场环境的变化,电信行业的业务开展难度逐步增大,特别是WTO的加入,更进一步加剧了电信市场的竞争。这使得电信企业纷纷要求采用新技术,发展业务竞争能力,挖掘潜在用户,以求取
组件技术解决了软件分布性和可重用性的一些问题。COM和CORBA、EJB是当今的三种主要组件技术标准。特别是COM在Windows平台优雅地解决了这些问题。MTS对组件和事务的管理,提