软件老化和恢复调查研究外文翻译资料

 2022-10-26 10:51:30

英语原文共 35 页,剩余内容已隐藏,支付完成后下载完整资料


软件老化和恢复调查研究

软件老化现象困扰着许多长期运行的复杂系统,它表现出性能下降或者失败率增加。许多策略基于主动恢复软件状态已经被用来抵消软件老化和减少失败。这个调查论文概述了出现在专业期刊和会议上的软件老化和恢复的研究,关于预测软件老化现象和恢复计划的统计方法,已经被研究过的系统老化影响,和已经提出的用于恢复复杂软件系统的技术。这篇分析有助于鉴定SAR的研究成果,和强调研究的趋势以及未解决的问题。

分类和主题描述符:C.4[系统的性能]:可靠性,可用性,可服务性

一般术语:可靠性,性能

附加关键字和词语:软件老化;软件复兴;性能下降,软件老化;软件复兴;性能下降

  1. 简介

软件老化现象包含失败率的增加和系统执行性能的下降,由于系统错误状态的积累和资源的消费如物理内存。[Huang et al. 1995; Grottke et al. 2008].这个现象许多年以前就已经被开发者知道了。软件老化的证据最早在1960年被发现:军事维护系统被一次错误的缓冲区占满报告所影响[Bernstein and Kintala 2004]。随着软件的规模和复杂性的增长,软件老化现象在长时间的运行系统中越来越多的被观察到,包括通讯交换和计费软件[Huang et al. 1995; Avritzer and Weyuker 1997],这导致了著名的事故爱国者反导弹系统,造成了人类生命的损失[Marshall 1992].软件老化可以归因为难以琢磨的软件bug,在1990年代早期劳伦斯Bernestein电信系统(伯恩斯坦1993年)的研究指出,高发生率的bug,当前发生的时候,不会立即引发软件失败,但表现为内存泄漏,无法释放的软件锁定,数据损坏和数值误差积累,让系统的性能慢慢的下降,最总到时系统的失败,通常,这样的bug在开发中太微妙或者代价太昂贵以至于难以排除。贝尔的研究实验室研究发现软件恢复是一个良好的解决软件老化的方法[Huang and Kintala 1993; Huang et al. 1995; Wang et al.1995; Bernstein and Kintala 2004]。软件恢复是一个主动地防止由于软件老化而引起的性能下降和失败的方法:他包含在偶尔或定期的清楚软件老化的影响(这可以通过一个简单的软件重启或更复杂的操作),为了延迟失败和保持性能。软件恢复代表着一种新颖的预防维护软件的方法相比于当时存在的其他的预防维护软件的形式[Kajko-Mattsson 2001],当时关注于软件的安装,升级以防止它的当场失败或者重新构造一个软件程序,以防止它报废。

自从1990年贝尔实验室对软件老化和软件恢复研究以来,大量的努力投入到描述软件老化现象和设计出更好的软件恢复策略,20年来,一个具有重大意义的知识体系已经建立起来而且建立了一个国际的研究交流会针对软件老化和恢复(SAR),看一下过去完成了那些成果是很重要的,为了鉴定什么是仍需被完成的以便于让行业从业人员意识到软件老化的问题,和培养可以采用的软件再生方法,和未来将面临的挑战。

从我们的初步研究开始[Kajko-Mattsson 2001],这篇文章提供了一个综合分析的SAR文献,通过回顾了发表在软件工程和软件可靠性领域的495篇论文。目的是提供一个完整的最先进的软件老化和恢复的状况。我们调查了相关研究关于预测软件老化和恢复计划的方法,系统的类别和老化的症状也都被研究过,和一些用于复杂软件系统的恢复技术。这个分析是一个有用的识别因为SAR的研究成果,SAR利用本文的优势突出强调将来研究的趋势和一些值得注意测问题.

这篇文章的组织结构如下:Section 2总结了基本的定义和软件老化及恢复的概念,在Section3中,我们描述了收集SAR研究资料的过程,Section4,从不同的维度评价了SAR文献,Section5,总结了对一些开放问题和研究机会的讨论。

2.软件老化与恢复的基本概念

在分析软件老化和恢复研究之前,我们暂时提供一些定义和概念用于这篇文章中,一个深入的对基本概念的讨论可以在[Grottke et al. 2008]中发现。通常情况下,软件老化现象包含失败率的增加和或长期运行软件系统性能的下降,反过来,他是由于与软件相关的bug所引起的,一种独有的软件错误只有经常长期的运行才能表现出来他的影响,这些bug不会立即产生影响使得软件系统失败:考虑到[Avizienis et al. 2004]中提出的缺点-误差-失败链,ARBs的特性是他们起作用依赖于系统运行的总时间,和或者他们导致的误差的累积,这导致了系统逐渐从一个正常的状态走向一个失败的状态。经过一个长期充足的执行时间后,或者大量误差的积累,ARBs导致老龄化失败(如一个操作系统分配内存失败,导致程序死机)。错误的积累通常以不好的资源管理的形式导致资源枯竭,例如内存泄漏,无端接的线程,和无法释放的文件死锁:在这种情况下,期待的老龄化失败被称为时间导致资源枯竭(TTE).而且错误的积累还受系统工作的类型和数量的影响,叫做负荷量。

老化效应是由于误差的累积,使得资源泄漏或者错误的状态;这些效果可以用老化指标来检测,那就是系统变量可以被直接的测量出来可以和软件老化现象相关联起来。老化的指标例如系统资源的使用数据,如空闲的物理内存,使用的交换空间,文件和进程表的大小。在[Garg et al. 1998b]中,一个实验被执行,通过监测一个局域网的UNIX工作站中操作系统的资源使用,使用分布式的SMNP(简单网络管理协议)监测工具,为了确认软件老化的趋势。由于老化现象可能不那么明显仅仅通过目视检查数据,因此趋势监测技术经常被用于监测老化效应是否形成。在图一中,一个趋势被观察到,通过数据平滑化和健壮的局部加权回归,提供视觉线索:空闲内存的逐渐减少,和文件表大小的增加,为了得到确定性的状态关于存在或者缺乏软件老化的趋势用统计信度,使用统计方法是必须的:例子如经常使用的季节性肯德尔和Mann-Kendall测试用来计算趋势,为了检验向上或向下的趋势假设,同时Sen过程用来预测趋势的倾斜度。使用这个估计的倾斜度,它是又可能计算出期望的已经给出资源量的TTE的。

资源泄漏和其他老化效应可以归因于老龄化相关bug在软件应用中,在应用使用的库中,或者在引用运行的环境中。然而,修复这些bug并不总是行得通的,因为bug可能在第三方或者那些缺乏内部源码和相关知识的开发者的重用中。更有甚者,在复杂的软件应用中找bug是非常困难的,软件恢复是一个有效益的方法去除老化带来的影响和避免老化引起失败,它不需要知道引起老化的bug的位置,甚至他们存在的事实。软件恢复在[Huang et al. 1995]中被定义为:先发制人的回滚在不断运行的应用程序上用于防止将来的失败。由于应用可能在恢复期间不可用,恢复可以推迟停机时间并产生一些成本(如业务丢失的代价)。然而这些费用可以减小到最小化在应用空闲的时候再恢复。反而,停机时间的成本可能会更高如果停机时间是未事先安排,的。恢复则可以避免或者推迟软件老化导致的失败,因此它可以减少总的停机时间和减少成本。

因为这个原因,最重要的问题是什么时候执行软件恢复在软件运行的时候为了增加可用性和减少成本。在[Huang et al. 1995]中展示了一个例子,通过一个简单的模型基于连续时间的马尔科夫链用来分析软件恢复(图二)。在这个模型中,软件启动处在“强健壮的”S0阶段,在这阶段发生软件老化的可能性是微乎其微的,因为软件没有老化,经过一段时间后(r2的速度远低于其他),引用将会进入一个有可能发生失败的阶段Sp(如:一些资源已经泄露而且即将用尽);在这个阶段,应用可以速率失败进入失效状态Sf,而且可以以速率r1被修复。如果系统执行恢复,它将会从Sp阶段以速率r4变到Sr阶段,然后再到健壮的S0阶段以速率r3。这个模型允许计算期望的停机时间(计划的和非计划的)和它的成本;依次,它可以分析在什么情况下,是否软件恢复可以有益于可用性;例如,当恢复的成本小和失败率大,恢复就应该被使用当应用进入到一个很可能失败的阶段。然而,其他一些模型,将会被接下来的部分讨论,已经在SAR知识体系中提到过的。

一个简单的执行软件恢复的方法是重启应用。重新启动可以暂时清理需要排队入站的消息,清理内存数据结构,重生到过程的初始状态或之前的检查点状态。此外,恢复可以在不同层级上运行,在一个运行的应用程序中,从一单个组件的重启到整个节点的重启。恢复技术的定义能减少老化失败的可能性和保持低的恢复成本,是SAR的宁外一个分析问题,将会在下面讨论。

3.文献分析

我们分析了软件可靠性和软件工程领域的相关会议记录和期刊,为了得到SAR文献的整体构照图。我们收集SAR文献遵循下面两个过程:

(1). 引导:我们得到了一组初始的论文通过关键字搜索出现在选定的一组相关的会议和期刊;

(2). 传递关闭:我们扩大论文的集合,通过检查每一篇论文的初始引用列表在初始化集合中,然后增加所有与软件老化和恢复有关的论文引用到集合中。此外,在搜索引擎的帮助下,我们确定将所有与软件老化和恢复相关的论文及其引用论文加入到了集合中。这些操作为每一篇新增加的论文重复操作,直到没有新论文的加入。因此获得“传递闭包”的初始论文集合。

为了执行我们的分析,我们依靠SciVerse Scopus (http://www.scopus.com)

and the IEEE Xplore (http://ieeexplore.ieee.org/)搜索引擎。这些数字图书馆索引和提供访问主要科学期刊和计算机科学出版商的论文集。我们考虑过ACM, IEEE, Elsevier,

Wiley, and Springer的出版物,在引导阶段,我们采用了下面的标准:

-----搜索关键字.为了获得初始的文献集合,通过查询“老化”,恢复,重新启动,泄漏这些元数据(标题,摘要,关键字)。需要注意的是这些关键字可能无法如期参考软件老化现象,所以搜索结果要手动检查为了消除无关紧要的结果。例如。在软件工程的研究中,“老化”一词可能被用来说明软件过时(因为需求和维护操作的改变)[Parnas 1994],其他情况下“老化”可能用来指硬件部分的损坏,和老年人计算机。同样的,“泄漏”在计算机安全领域叫做非法的信息披露。

-----选择会议和期刊。上面描述的是专注软件可靠性和软件工程领域的相关出版场所,由于搜索条件返回量是巨大的。第一,我们确定一套期刊和事物从上述提及的出版商与这个领域相关的,如IEEE Transactions on Software Engineering 和 Journal of Systems and Software.我们随后确定主要的会议和座谈会在这些领域,包括:IEEE /联合会国际会议  可靠的系统和网络,ACM和IEEE国际会议 软件工程和ACM SIGMETRICS /性能,其他期刊和会议记录的加入通过搜索检索引擎他们的标题在“软件工程”中,和通过分析SAR研究者的出版物中。

通过查询搜索引擎,我们获得了1021年的出版物列表。这些出版物  分析了为了丢弃无关的结果:在大多数情况下,抽象的分析足以确定出版物是否与软件老化和恢复相关。我们减少了204篇。

4.软件老化和恢复详细分析

为了提供一个框架用于分析SAR研究的最新成果,我们引进了四个正交的维度,我们相信可以提供一个全面的文献概述和洞察未来软件老化和恢复的研究方向。每一个方面包括一组类用于分类研究。这些方面为:

-------分析类型:这个维度反映这篇文章研究的类型。它包括基于模型的,基于测量的,和混合研究,研究在软件验证和发展过程中处理和避免软件老化缺陷的影响,研究新颖的软件恢复策略,和错误数据领域研究。

-------分析的系统:将系统分析,研究其临界值

-------老化影响和老化指标,这方面分类研究软件老化对系统资源和性能指标的影响。和什么可以用来计划软件恢复策略。

-------软件恢复技术:这方面描述相关的软件恢复技术用于减少老化失败的可能性。

4.1 分析类型

本节涉及的类型分析,研究人员进行了这些年来研究软件老化和复兴。

基于模型的研究:软件老化从开始的完全根据经验观察到长期运行的系统被突然的失败所影响,需要时不时的进行重启。早起在通信和事物系统的演示研究中[Gray 1985; Bernstein 1993],这里有一个高发率的错误,内存泄漏,破碎的指针,无法释放的文件死锁,数值误差的累积导致系统西能的逐渐下降最终导致失败。所以开发者采用一些软件恢复的形式用来抵消软件老化的影响[Bernstein and Kintala 2004]。这中方法提出了一个问题,制定最优的软件恢复计划,为了得到最好的效益。[Huang et al. 1995],在随后的几年中[Garg et al. 1998a; 1995; Garg et al. 1996],试图模拟该现象为了提供一个抽象的描述和数学解决方法。他允许开发者解决软件问题通过制定分析这一现象,将注意力放在如何得到最优的恢复计划。

分析模型首先被使用为了证明软件恢复可以减少系统死机带来的成本和最小化程序完成时间[Garg et al. 1996]在软件老化面前。基于模型的研究可以区分随机模拟该现象的类型。这里有喝多的模型被采用,典型的有马尔科夫模型。下面:

------马尔科夫过程和半马尔科夫过程:这种过程类型及其变异型是今天SAR基于模型分析的基础。黄做了软件老化的第一次工作,使用四状态的马尔科夫链来模拟现象,它仍然模型的基本现象。

这个模型在许多方面被扩展,采用马尔科夫和半马尔科夫过程。如[Garg et al. 1

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[153852],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版