System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于验证并发程序原子性违反的方法、装置及电子设备制造方法及图纸_技高网

用于验证并发程序原子性违反的方法、装置及电子设备制造方法及图纸

技术编号:40033564 阅读:11 留言:0更新日期:2024-01-16 18:37
本发明专利技术提供一种用于验证并发程序原子性违反的方法、装置及电子设备,其中,该方法包括:探索当前路径,生成所述当前路径对应的当前轨迹;根据所述当前轨迹,编码所述当前轨迹的等价约束,以及编码并发程序的原子性违反约束;根据所述原子性违反约束和所述当前轨迹的等价约束,使用约束求解器进行推理,验证所述当前路径是否违反原子性;其中,所述当前轨迹的等价约束包括以下一种或多种:所述当前轨迹的读写事件的数据有效性约束;所述当前轨迹的路径条件约束;所述当前轨迹的同步约束。从而可以对并发程序中各个路径的原子性是否违反都进行验证,更全面地验证并发程序中的原子性违反。

【技术实现步骤摘要】

本专利技术涉及软件安全,尤其涉及一种用于验证并发程序原子性违反的方法、装置及电子设备


技术介绍

1、目前有许多自动修复技术自动生成补丁来修复原子性违反(atomicityviolation)错误,这些技术依赖于bug报告中的信息,无法验证修复后的程序是否能验证不同的路径满足原子性地执行。

2、利用swan可以根据观察到的错误执行轨迹来验证原子性违反修复的正确性,但是swan只能在观察到的轨迹所显示的固定输入和一小部分线程调度空间下验证修复的正确性,如果程序在swan没有捕获的不同输入或不同线程调度下运行,则仍然可能发生相同的或其他的原子性违反。


技术实现思路

1、本专利技术提供一种用于验证并发程序原子性违反的方法、装置及电子设备,用以解决现有技术中只能观察错误执行轨迹中验证原子性违反的缺陷,实现更全面地验证并发程序中的原子性违反。

2、本专利技术提供一种用于验证并发程序原子性违反的方法,包括:

3、探索当前路径,生成所述当前路径对应的当前轨迹;

4、根据所述当前轨迹,编码所述当前轨迹的等价约束,以及编码并发程序的原子性违反约束;

5、根据所述原子性违反约束和所述当前轨迹的等价约束,使用约束求解器进行推理,验证所述当前路径是否违反原子性;

6、其中,所述当前轨迹的等价约束包括以下一种或多种:

7、所述当前轨迹的读写事件的数据有效性约束;

8、所述当前轨迹的路径条件约束;

9、所述当前轨迹的同步约束。

10、根据本专利技术提供的一种用于验证并发程序原子性违反的方法,所述方法还包括:

11、计算所述当前轨迹的锁事件图,以及根据所述锁事件图编码所述当前轨迹的死锁约束;

12、根据所述当前轨迹的死锁约束和所述当前轨迹的等价约束,使用约束求解器进行推理,检测所述当前路径是否存在死锁。

13、根据本专利技术提供的一种用于验证并发程序原子性违反的方法,在探索当前路径之前,所述方法还包括:

14、基于已探索的路径,计算未探索的路径对应的线程调度与程序输入组合。

15、根据本专利技术提供的一种用于验证并发程序原子性违反的方法,在存在多个未探索的路径的情况下,所述方法还包括:

16、基于所述未探索的路径以及所述未探索的路径对应的线程调度与程序输入组合,重新确定当前路径,以及重新生成当前轨迹;

17、根据重新生成的当前轨迹,重新编码当前轨迹的等价约束;

18、根据所述原子性违反约束和重新编码的等价约束,使用约束求解器进行推理,验证重新确定的当前路径是否违反原子性;

19、不断重复所述重新确定当前路径、所述重新生成当前轨迹、重新编码当前轨迹的等价约束、以及所述验证重新确定的当前路径是否违反原子性的步骤,直至所有未探索的路径均被验证是否违反原子性。

20、根据本专利技术提供的一种用于验证并发程序原子性违反的方法,所述方法还包括:

21、对所述并发程序中的路径进行裁剪。

22、根据本专利技术提供的一种用于验证并发程序原子性违反的方法,所述对所述并发程序中的路径进行裁剪,包括:

23、对所述并发程序进行静态分析,删除与原子性违反无关的分支路径;和/或,

24、基于所述并发程序中各个线程之间的等价性,消除冗余路径。

25、本专利技术还提供一种用于验证并发程序原子性违反的装置,包括:

26、生成轨迹模块,用于探索当前路径,生成所述当前路径对应的当前轨迹;

27、编码约束模块,用于根据所述当前轨迹,编码所述当前轨迹的等价约束,以及编码并发程序的原子性违反约束;

28、推理验证模块,用于根据所述原子性违反约束和所述当前轨迹的等价约束,使用约束求解器进行推理,验证所述当前路径是否违反原子性;

29、其中,所述当前轨迹的等价约束包括以下一种或多种:

30、所述当前轨迹的读写事件的数据有效性约束;

31、所述当前轨迹的路径条件约束;

32、所述当前轨迹的同步约束。

33、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述用于验证并发程序原子性违反的方法。

34、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述用于验证并发程序原子性违反的方法。

35、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述用于验证并发程序原子性违反的方法。

36、本专利技术提供的用于验证并发程序原子性违反的方法、装置及电子设备,通过生成当前路径对应的当前轨迹后,编码当前轨迹的等价约束,以及编码并发程序的原子性违反约束,然后根据原子性违反约束和当前轨迹的等价约束,使用约束求解器推理来验证当前路径是否违反原子性,从而可以对并发程序中各个路径的原子性是否违反都进行验证,更全面地验证并发程序中的原子性违反。

本文档来自技高网...

【技术保护点】

1.一种用于验证并发程序原子性违反的方法,其特征在于,包括:

2.根据权利要求1所述的用于验证并发程序原子性违反的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的用于验证并发程序原子性违反的方法,其特征在于,在探索当前路径之前,所述方法还包括:

4.根据权利要求3所述的用于验证并发程序原子性违反的方法,其特征在于,在存在多个未探索的路径的情况下,所述方法还包括:

5.根据权利要求1至4任一所述的用于验证并发程序原子性违反的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的用于验证并发程序原子性违反的方法,其特征在于,所述对所述并发程序中的路径进行裁剪,包括:

7.一种用于验证并发程序原子性违反的装置,其特征在于,包括:

8.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述用于验证并发程序原子性违反的方法。

9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述用于验证并发程序原子性违反的方法。

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述用于验证并发程序原子性违反的方法。

...

【技术特征摘要】

1.一种用于验证并发程序原子性违反的方法,其特征在于,包括:

2.根据权利要求1所述的用于验证并发程序原子性违反的方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的用于验证并发程序原子性违反的方法,其特征在于,在探索当前路径之前,所述方法还包括:

4.根据权利要求3所述的用于验证并发程序原子性违反的方法,其特征在于,在存在多个未探索的路径的情况下,所述方法还包括:

5.根据权利要求1至4任一所述的用于验证并发程序原子性违反的方法,其特征在于,所述方法还包括:

6.根据权利要求5所述的用于验证并发程序原子性违反的方法,其特征在于,所述对所述并发程序中的路径...

【专利技术属性】
技术研发人员:易秋萍李壮
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1