基于测量的JVM老化分析
在这项工作中,对基于Java的软件系统进行了软件老化分析。JVM是Java系统中的核心层,它的可靠性极大地影响了整个系统的质量。从实际测试台上的实验活动开始,这项工作隔离了JVM对总体老化趋势的贡献,并通过统计方法确定哪些工作负荷参数最相关。
老化动力学。结果显示,在JVM中存在一些老化动态,包括(i)主要依赖于执行单元的吞吐量损失趋势,(i i)由于及时编译器活动而导致的内存消耗缓慢漂移,以及(i i i)由于垃圾收集器内的动态而导致的内存消耗快速漂移。为了(i)确定是否存在老化现象,(ii)进行在线老化检测和疲劳时间预测,(iii)确定最佳恢复技术。
关键词:软件老化;软件可靠性评估;工作负载表征;JVM
1.引言
软件老化是指软件或其环境的状态随着时间的推移而退化的情况[1]。造成这种退化的主要原因是操作系统(OS)资源耗尽、数据损坏和数字错误累积。最近的研究表明,在业务关键或安全关键场景中使用的大量软件系统都会受到软件老化的影响。第一次海湾战争期间使用的爱国者导弹防御系统(雷神公司,美国马萨诸塞州沃尔瑟姆)可能是受软件老化影响的关键系统的最具代表性的例子。为了预测目标的轨迹,武器控制计算机需要从一个整数转换为一个实数,这会导致在计算目标的预期位置时出现舍入误差。系统用户受到警告,“非常长的运行时间”可能会对系统的目标定位能力产生负面影响。不幸的是,他们没有对这种“非常长的运行时间”进行定量评估,从而导致了众所周知的事件,其中28人死亡[2]。为了减少开发工作和上市时间,在复杂软件系统的开发中越来越多地使用现成的(ots)项目。例如,虚拟机(vms)或中间件层,它们也越来越多地在关键上下文中使用。假设这样复杂的系统不受软件老化的影响是不现实的。相反,由于它们在目标环境中往往缺乏适当的测试,因此更容易受到这些现象的影响。因此,为了在关键场景中使用OTS,从软件老化的角度描述它们的行为是非常重要的。
包括这些项目的软件系统可以被视为软件层的堆栈,每个软件层使用底层的服务,并向上层提供服务。在广泛的这种分层系统中,基于Java的系统代表一个相关的类进行研究,原因如下。
1。他们目前被广泛应用于各种环境,包括关键环境。例如,Java已经被用于开发漫游者序列编辑器(ROSE),Rover序列和可视化程序(RSVP)的一部分,用于控制火星探测器中的精神机器人(3)。
2。在JAVA规范请求(JSR302(4))中,越来越多的人对科学界和工业界对Java在安全关键任务和关键任务场景中的使用感兴趣,其目的在于定义在安全关键应用中使用Java技术所需的能力。贡献。尽管在过去的[5-7]中已经对JVM的性能方面进行了广泛的研究,但是软件可靠性问题却很少受到关注。Napper等人提出了一个提高JVM容错性的例子。[8]对如何将状态机复制应用到JVM进行了有趣的研究。Friedman和Karma[9]也使用了类似的方法,应用于Jikes研究虚拟机。关于软件老化,Silva等人的一项研究。〔10〕强调了基于Java的简单对象访问协议(SOAP)服务器中老化现象的存在。一些研究分析了长期运行的应用程序(如Web服务器[11]和数据库管理系统[12])引入的老化,以测量操作系统级别的老化贡献。他们忽略了中间层的贡献,比如中间件、虚拟机,更普遍的是,第三方的OTS项目。这些层可能会影响资源消耗动态,并成为老化的重要来源。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。