基于并发覆盖准则的线程调度序列生成方法研究

来源 :北京化工大学 | 被引量 : 3次 | 上传用户:zhucejuren2011
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多核处理器的出现使得多线程技术发展迅速,多线程并发程序的软件质量保障受到业界的普遍关注。多线程并发程序由于线程调度序列(Thread Scheduling Sequence, TSS)的不同,使得程序执行将产生不同的结果。线程调度序列是多线程并发程序测试的关键。随着线程数的增加,线程调度序列的数量呈指数型增长。线程调度序列数量多,测试生成开销大,严重影响了多线程并发程序的测试效率。测试覆盖准则作为一项度量测试有效性的指标,可用来指导并发程序的测试生成。根据并发测试覆盖准则来生成线程调度序列,更加偏重于测试程序的并发特点,因此,针对并发覆盖准则,探讨一种有效的线程调度序列的生成方法,已成为多线程并发程序测试中的一个亟待解决的问题。同步机制是多线程并发程序的一个重要特征。本文提出了一种基于全同步对覆盖的线程调度序列生成方法(TSS Generation based on ASPC, TGBA)。具体而言,对于并发程序中的同步语句,定义了同步对和全同步对覆盖准则(All Synchronization Pairs Coverage Criteria, ASPC),给出了一个同步对-线程关联图构建方法,在此基础上,探讨了满足全同步对覆盖准则的线程调度序列自动生成方法。最后,借助于模型检验工具JPF,设计并实现了一个基于JPF的线程调度序列生成器,用于多线程并发程序线程调度序列的自动生成。为评估TGBA方法的有效性,本文选用了6个Java类库并发程序作为被测程序,利用开发的线程调度序列生成器进行线程调度序列生成实验,并分别与常用的三种线程调度序列生成方法在生成效率方面进行了对比分析。实验结果表明TGBA方法生成的线程调度序列不仅能够覆盖被测程序的全部同步对,而且当满足全同步对覆盖准则时,测试生成所需要的状态数、迁移数都较少,相比于其他方法,生成效率平均提高了1.85倍,为后续进行线程调度序列对并发程序故障检测效果的研究奠定了基础。
其他文献
目标跟踪技术是计算机视觉领域的一个研究热点,在很多领域有非常广泛的应用,例如军事、智能监控系统、智能人机交互系统、运动分析、交通检测、智能摄像头等等。但是在近岸海
计算机视觉领域中的三维重建广泛应用于虚拟现实、数字城市、艺术创作、文物重建等众多领域。表面重建是三维重建过程中的一个重要环节。本文是以泊松重建方法为基础,该算法
作为现代人工智能技术的典型代表,Agent和多Agent系统(Multi-agentSystems,简称MAS)成为人工智能研究实用化和分布计算环境下软件智能化的重要技术。Agent及人工智能技术的研究
软件复用是一种重复使用软件资产或过程的软件开发方法,目的是要提高软件质量和开发效率。目前,基于组件的软件开发成为软件资产复用的主流技术。基于组件的软件开发要求有足
计算机辅助审计改变了原有手工审计的对象和内容,提出了新的审计方法和审计模式,提高了审计效率。但是在许多的审计项目中都是审计专家与计算机专家的紧密结合才能够完成任务
词义消歧是自然语言处理中亟待解决的一个关键问题,词义消歧研究在自然语言处理的许多应用领域中具有重要的理论和实践意义,也是近些年来是计算语言学和自然语言处理领域一个
企业信息化建设的不同阶段开发了多个应用系统,它们有着独立的安全认证和用户管理机制,这些机制阻碍了应用系统的集成。单点登录技术使得用户在访问多个系统的受限资源时,只
本文首先介绍了数字水印技术的研究背景及现状,并且对当前研究较多的小波域图像水印算法进行了阐述,介绍了小波变换的基本概念和常见的小波域图像水印算法。在此基础上,本文提出
随着信息技术和互联网的发展,人们置身于浩瀚的信息海洋,可获取的信息也越来越多,越来越纷繁复杂。人们越来越迫切地希望能够对信息进行标引、提炼与浓缩,以较少的文字表达主
目前,移动互联领域发生着深刻的变革,传统的的技术和设备已经被新的技术和设备所取代。特别是云计算和大数据的出现给整个人类的生活带了巨大的变革。基于此社会的各行各业也都