首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 21 毫秒
1.
数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的5个相关属性作为特征,构建了多线程程序数据竞争随机森林指令级检测模型。首先基于happens-before关系与lockset算法指令级检测数据竞争,同时用汇编源码信息来剔除隐形同步对,然后利用happens-before关系与lockset算法的分析结果训练多线程程序数据竞争随机森林检测模型。在Pin上实现了多线程程序数据竞争检测工具AIRaceTest。利用GitHub中多线程程序的插桩结果作为样本集来训练随机森林模型,模型精度可达92.1%。对Google data-race-test、 Parsec基准程序3.1中的经典多线程程序的检测结果表明:AIRaceTest与Eraser、 Djit+以及Thread Sanitizer这3种目前常用的数据竞争检测工具相比,数据竞争的误报和漏报分别降低了约10.6%和12.3%,在线程数较多的情况下,时间和内存开销分别降低了41.8%和22.4%。  相似文献   

2.
介绍了多线程技术的概念及其优点,对多线程竞争状态的安全性进行了分析,探讨了竞争状态的发生、安全隐患及相应策略。  相似文献   

3.
通过对多线程环境下共享变量运行状态变化的分析,提出了一种基于锁集的多线程数据竞争的动态探测算法,该算法在探测共享变量的读写冲突方面具有一定的实用价值。它能充分地发掘出程序中的并行性,合处理机得到最大限度的利用。  相似文献   

4.
Java程序数据竞争的增量式检测   总被引:1,自引:0,他引:1  
针对静态竞争检测无额外运行开销但精度低,而动态竞争检测精度高但因插桩有额外运行开销,在实际Java虚拟机的即时编译器中以竞争检测遍形式设计实现了一种精确有效的增量式竞争检测算法.结合锁集和发生序关系,依次对即时编译的每个方法进行一次方法内分析,收集独立于上下文的方法摘要,并以方法摘要为基础自下而上进行上下文敏感的跨线程方法间分析,增量计算并及时输出潜在的竞争信息.实验表明,算法对应用程序无插桩且不受程序规模限制,具有与O'Callahan等人的动态竞争检测算法类似的精度,检测时间仅占总编译时间的2%~4%.  相似文献   

5.
对多线程编程技术中竞争状态的安全性进行了分析,重点探讨了基于文件访问,数据库访问中竞争状态的发生,安全隐患及相应策略.  相似文献   

6.
从多线程的概念出发,探讨了Unix环境下多线程的基本理论。提出了基于多线程技术的数据处理模型,并通过重庆电信计费审核系统,给出了在IBMAIX环境下该模型的应用实例。  相似文献   

7.
当今的大多数操作中已采用了多线程技术,文章论述了进程和多线程的基本概念,Java语言中的多线程实现机制,探讨了不同平台对多线程的影响。  相似文献   

8.
为了提高数据竞争检测过程的准确性,提出了一种基于上下文敏感分析的数据竞争检测方法。使用控制流分析构建上下文敏感的调用图,采用逃逸分析查找出可能发生数据竞争的线程逃逸对象,进行上下文敏感的别名分析以减少误报和漏报,通过发生序关系判断消除由于忽略线程交互而导致的误报。依据该方法,在WALA软件分析框架实现了一个数据竞争检测工具ConRacer,并将该工具与现有的检测工具SRD和RVPredict进行了比较。结果表明,与SRD和RVPredict相比,ConRacer的检测准确度最高,不仅可以有效地检测数据竞争,而且可以降低检测过程中的误报和漏报。通过结合上下文敏感分析技术与传统的静态检测技术,ConRacer提高了检测过程的准确性,对发现并发错误和优化软件性能有一定的参考价值。  相似文献   

9.
为了克服传统可达性方法在测试Java多线程程序时具有的局限性和无法检测事件未同步错误及其引起的同步不当等错误,提出一种基于扩展同步序列的可达性测试方法.该方法包括购建Java多线程程序流图、计算扩展同步序列和确定性测试3部分.实例分析表明,同步扩展同步序列的应用,能够有效地解决上述局限性,Java多线程程序中事件未同步及其引起的同步不当等错误也能得到有效的检测.这种基于扩展同步序列的可达性方法与传统可达性方法相比,具有一定的优越性.  相似文献   

10.
提出用多线程实现分布式组织并发离散事件仿真的方法.首先分析了分布式组织活动的并发特性以及由此带来的仿真问题,指出原有离散事件仿真中的下次事件法不能实现并发条件下的模拟时钟推进.因为各结点之间独立运行并具有各自的时间管理,故不能对所有结点进行统一的时间查询.提出了在合理时间段内将线程挂起,接着进行线程式间仿真对象交互的解决方法,以实现交互行为仿真.最后指出多线程编程实现的主要问题与解决途径,并结合一个实例,借助UML工具给出了建模实现的具体过程.  相似文献   

11.
通过设定不同的排序规则,将大量杂乱无章的数据有效地组织起来,在.NET中采用多线程方法动态实现多种排序算法,并以图形的形式进行快慢比较.  相似文献   

12.
为满足软件系统24/7/365不中断运行的需求,提出了对运行中的软件进行动态演化的要求.分析了软件演化的基本种类,叙述了多线程可动态演化软件的演化步骤,并对该类程序设计中涉及到的一些关键问题展开讨论.最后以数据集成软件为例分析了多线程可动态演化程序实例的运行状况.  相似文献   

13.
多线程Java程序的Petri网模型   总被引:3,自引:0,他引:3  
Java的多线程特性能有效地提高各种计算机资源的利用率.但是,多线程并行运行所造成的非确定性使得程序中潜在错误的定位和再现十分困难,这严重阻碍了Java多线程机制的使用.提出了从Java程序到Petri网的转化规则,利用所得的Petri网模型能有效地支持并行和分布式软件的分析.该模型在应用中取得了很好的效果.  相似文献   

14.
给出了一种通过使用实时操作系统μC/OS-II的TCB扩展指针部分,在其上实现多线程程序的方法,此方法对系统实时性的影响在一定程度上是可以忽略的,并对其在实际应用中的相关问题进行了探讨。  相似文献   

15.
同时多线程结构利用线程级并行和指令级并行的优势,提高了指令吞吐率,但线程对关键资源(如指令队列)的竞争会削弱这种优势,造成资源浪费,又会降低处理器性能。提出了指令队列利用参数,通过分析指令队列利用率与处理器性能的关系,用实验评估了在四线程情况下,典型静态指令队列竞争缓解策略(如Dwarn、2OP_Block、Static)及其组合对处理器性能的影响。给出了load依赖链模型,分析了基于load依赖链的基准程序线程特性,提出了一种结合线程特性的指令队列竞争缓解策略。实验结果表明,该策略能够加速执行指令吞吐率较高的线程,通过提升此类线程的性能使整体指令吞吐率进一步增加。  相似文献   

16.
基于控制流的多线程程序的静态切片算法   总被引:2,自引:1,他引:2  
介绍一种基于控制流的多线程程序的静态切片算法, 该算法的主要思想是在构造多线程程序依赖图的同时保留程序的控制流信息, 利用这些信息能 够判断出程序中的多线程可实现路径, 从而提高多线程程序静态切片的精度和效率. 最后给出一个多线程切片的实例.  相似文献   

17.
介绍了一个场面监视雷达计算机显控程序,该程序采用VC++6.0并结合多线程技术编写,用来从CPCI卡上的SRAM以DMA方式读取数据、实现以UDP方式的网络数据传递和计算机的PPI显示。同时良好的线程同步和CPU时间分配解决方法保证了应用程序能够运行更可靠,数据的实时性能更好。  相似文献   

18.
大数据背景下,数据繁杂、数据的广度和深度达到了一定程度,给企业竞争情报的搜集、处理、分析提出了新的、艰巨的挑战.针对大数据的这些特性,需要革新数据处理的技术以适应大数据时代竞争情报的研究趋势.从数据的视角出发,形成了一套基于大数据的企业竞争情报数据共享交换规范,定义了一套基于大数据的企业竞争情报管理标记语言EIMML,...  相似文献   

19.
刘立国  和晓军 《河南科学》2003,21(6):790-794
操作系统分时多任务功能的实现,提高了系统资源的利用率,也带来了进程互斥与同步等方面的复杂性。基于实际生产系统,阐述了一种使用标志位区分地址和数据流,利用进程间互斥和进程内多线程同步技术,实现具有进程安全性的串行通信编程的方法。  相似文献   

20.
给出了一种通过使用实时操作系统μC/OS-Ⅱ的TCB扩展指针部分,在其上实现多线程程序的方法,此方法对系统实时性的影响在一定程度上是可以忽略的,并对其在实际应用中的相关问题进行了探讨。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号