The invention discloses a software reliability time series prediction method and its application. On the basis of the above, based on the complex JAVA multi-threading environment, the thread running state monitoring is realized, the thread time series collection and visualization are realized, the reliability of the thread running is evaluated, and the possible state change trend curve of the thread in the future is predicted. The method includes: step 1, injecting JAVA program to monitor thread status and collect thread time series information; step 2, visualizing thread time series, establishing LSTM model, and training model based on thread time series curve, establishing training set and test set; step 3, verifying the reliability of the current period and future period with the trained LSTM model. Predict the trend curve. The invention solves the problem of collecting and visualizing thread time series in JAVA multi-threaded environment, and provides a more perfect, convenient and efficient thread reliability evaluation method based on thread monitoring and thread time series analysis of ring topology.
【技术实现步骤摘要】
一种软件可靠性时间序列预测方法及应用
本专利技术涉及JAVA多线程可靠性评估应用领域。更具体地,涉及一种软件可靠性时间序列预测方法及应用。
技术介绍
随着信息科学技术的广泛使用,在大规模复杂计算、机器学习和网络爬虫等多线程应用领域中,所执行的高级语言程序通常会涉及成百上千个用于并行计算的线程。大量线程在长时间的运行过程中,很可能会因为系统环境突发的各种异常而导致运行中线程出现突然终止或计算失效的情况,这些突发的异常现象很可能是由于系统过载、硬件老化或者软件错误等问题引起。发生这些异常现象时,线程经常会直接终止或者默认继续运行,导致系统很难对此过程中发生的异常状况进行检测和追溯。为了检测软件程序运行过程中各线程工作状况,提供一种可靠性时间序列曲线分析工具,对线程进行可靠性检测与预测,很多研究人员都对此进行深入的实践研究。近年来,计算机系统运行的可靠性一直受到用户的普遍关注,如果在运行过程中频繁出现异常状况,导致系统的运行数据无法追溯或与所产生的实际结果不一致,都会造成巨大经济损失。此外,当前软件领域,大部分程序是整套成型的软件系统,很多软件是通过JAVA语言设计和开发,重构软件系统所需的经济与时间成本巨大。本专利技术程序以API函数注入的形式,无需对主程序进行较大范围改动,就能对主程序中各线程状态进行检测,进而减少由主程序重构带来的成本。通过引入时间序列曲线图并对时间序列曲线进行特征分析,可以更好的提供一个线程工作状态评估方法。本专利技术中可靠性时间序列是将某种统计指标的数值按时间先后顺序排序所形成的数列。通过采用时间序的分析方法,根据时间序列曲线反映出的发 ...
【技术保护点】
1.一种软件可靠性时间序列预测方法,其特征在于,所述方法包括以下步骤:1)采用API函数注入主程序的方法,收集线程时间序列信息及工作状态;2)采用基于环形的线程工作状态检测机制对线程进行动态监控;3)采用基于累加均值的工作频率计算方法对线程工作频率记录,生成线程时间序列数据;4)可视化时间序列曲线图,基于线程时间序列数据训练LSTM(长短期记忆网络)模型,获得训练集和测试集;基于训练集,通过LSTM模型对线程未来的状态变化进行预测。
【技术特征摘要】
1.一种软件可靠性时间序列预测方法,其特征在于,所述方法包括以下步骤:1)采用API函数注入主程序的方法,收集线程时间序列信息及工作状态;2)采用基于环形的线程工作状态检测机制对线程进行动态监控;3)采用基于累加均值的工作频率计算方法对线程工作频率记录,生成线程时间序列数据;4)可视化时间序列曲线图,基于线程时间序列数据训练LSTM(长短期记忆网络)模型,获得训练集和测试集;基于训练集,通过LSTM模型对线程未来的状态变化进行预测。2.根据权利要求1所述的一种软件可靠性时间序列预测方法,其特征在于,步骤1)所述的API函数注入方法,其特征在于,还包括:API函数注入主程序的方法,是通过API程序引入主程序的方法,将所实现的功能全部引入到线程主程序中;编写纯JAVA实现核心API函数;采取函数封装的思想,并通过程序函数的形式封装,设置接口调用函数;使得代码以模块的形式存在。3.根据权利要求1所述的一种软件可靠性时间序列预测方法,其特征在于,步骤中2)所述的基于环形的线程工作状态检测机制,其特征在于,还包括:基于环形的线程工作状态检测机制,主要思路是将主程序产生的线程关联起来,并通过线程间相互检测,完成在一个时间周期内,对所有运行线程同时检测的环形检测机制;时间周期指10的整数倍迭代所消耗的时间;程序启动时,建立线程对象,并以线程ID为索引,将每个线程对象连接起来,构建环形线程对象;基于环形线程,对每一个线程对象构建线程检测路径,该路径是以线程为起始点,对应线程通过该路径,沿着线程后继方向检测其他线程的状态;当触发线程工作状态检测机制时,通过从上一个线程传递的线程状态信息,来确定线程的工作频率及位置;通过检测目标线程在时间序列生成前后所设定的工作状态参数,并根据线...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。