CN112631925A - 一种单变量原子违背缺陷的检测方法 - Google Patents
一种单变量原子违背缺陷的检测方法 Download PDFInfo
- Publication number
- CN112631925A CN112631925A CN202011591752.1A CN202011591752A CN112631925A CN 112631925 A CN112631925 A CN 112631925A CN 202011591752 A CN202011591752 A CN 202011591752A CN 112631925 A CN112631925 A CN 112631925A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- program
- main program
- analysis
- global variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims abstract description 74
- 238000004880 explosion Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 64
- 230000000694 effects Effects 0.000 claims description 21
- 238000005206 flow analysis Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Abstract
本申请公开了一种单变量原子违背缺陷的检测方法,该方法包括:将预设中断驱动型软件的源代码转换为中间表示形式LLVM IR,根据中间表示形式构建程序依赖图;根据程序依赖图以及预设IFDS框架构建得到爆炸超图,根据爆炸超图对主程序数据流分析确定每个全局变量串行可达的两次访问序,并对两次访问序的可行性进行分析得到第一分析结果;根据第一分析结果确定出至少一个共享全局变量,以及确定出每个共享全局变量对应的三次访问序,对三次访问序的可行性进行分析得到第二分析结果,根据第二分析结果确定原子违背缺陷并生成缺陷报告。本申请解决了现有技术中单变量原子性违背缺陷检测的准确性和效率较低的技术问题。
Description
技术领域
本申请涉及中断并发程序缺陷技术领域,尤其涉及一种单变量原子违背缺陷的检测方法。
背景技术
中断数据访问冲突是中断驱动型软件中的一种并发缺陷,具体指主程序和中断(或中断与中断)之间在特定时序下访问同一个共享数据,导致软件出现变量取值被意外修改、计算过程原子性被破坏等异常,这些异常直接影响航天嵌入式软件可信性。中断数据访问冲突包括数据竞争、原子违背以及顺序违背等,其中,原子违背缺陷是指主程序中任意两次对相同变量的连续访问作为原子区,根据该原子区与其他中断程序中对同一共享变量进行读写访问交迭的情况定义可串行性。但是,以下四种不可串行化的执行被视为缺陷:R-W-R、W-W-R、W-R-W、R-W-W,其中,R表示读,W表示写。
目前,对于原子违背缺陷检测的方法主要是:通过对主程序和中断程序访问同一变量的情况进行静态分析确定所有程序路径,从所有程序路径确定出不可串行化执行的路径,这些不可串行化执行的路径即被视为缺陷。但是,由于主程序和中断程序在实际执行过程中存在不可行的程序路径,即所确定出的有些不可串行化执行的路径在实际运行过程中是不会发生的。因此,现有技术针对原子违背缺陷检测存在误报情况,这些误报需要进一步的人工筛查。由于中断驱动型软件往往具有较大规模,这种筛查的任务将耗费大量的人力和时间,导致单变量原子性违背缺陷检测的准确性和效率较低。
发明内容
本申请解决的技术问题是:针对现有技术中单变量原子性违背缺陷检测的准确性和效率较低,本申请提供了一种单变量原子违背缺陷的检测方法,本申请实施例所提供的方案中,分别对主程序两次访问序的可行性进行分析,以及根据主程序两次访问序的可行性分析结果对加上中断程序访问的三次访问序进行可行性分析,即通过多阶段分析的方式,提高了原子违背缺陷检测的准确性;以及通过采用自底向上的模块化分析方式,不仅避免重复分析,减少大量的计算开销,提高原子违背缺陷检测的效率,还避免了传统方法路径爆炸,无法处理中大型程序的缺点。
第一方面,本申请实施例提供一种单变量原子违背缺陷的检测方法,该方法包括:
将预设中断驱动型软件的源代码转换为中间表示形式LLVM IR,根据所述中间表示形式构建程序依赖图,其中,所述预设中断驱动型软件包括主程序、多个中断程序;
根据所述程序依赖图以及预设IFDS框架构建得到爆炸超图,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,并对所述两次访问序的可行性进行分析得到第一分析结果,其中,所述爆炸超图表示数据流所映射的有向图;
根据所述第一分析结果确定出至少一个共享全局变量,以及确定出每个所述共享全局变量对应的三次访问序,对所述三次访问序的可行性进行分析得到第二分析结果,根据所述第二分析结果确定原子违背缺陷并生成缺陷报告,其中,所述共享全局变量是指对中断执行路径和所述主程序执行路径之间具有副作用的变量。
本申请实施例所提供的方案中,通过构建程序依赖图,然后根据程序依赖图以及预设IFDS框架构建得到爆炸超图,根据爆炸超图对主程序数据流分析确定每个全局变量串行可达的两次访问序,并对两次访问序的可行性进行分析得到第一分析结果,然后根据第一分析结果确定出至少一个共享全局变量,以及确定出每个所述共享全局变量对应的三次访问序,对三次访问序的可行性进行分析得到第二分析结果,根据所述第二分析结果确定原子违背缺陷并生成缺陷报告,因此,本申请实施例所提供的方案中,分别对主程序两次访问序的可行性进行分析,以及根据主程序两次访问序的可行性分析结果对加上中断程序访问的三次访问序进行可行性分析,即通过多阶段分析的方式,提高了原子违背缺陷检测的准确性。
可选地,根据所述中间表示形式构建程序依赖图,包括:
对所述中间表示形式分别进行函数调用关系分析、控制流分析、数据流分析、指向分析和内存分析得到函数调用图、控制流图和数据依赖图;
对所述控制流图进行前向支配分析构造得到前向支配树,根据所述前向支配树构建得到控制依赖图;
根据所述函数调用图、所述控制依赖图和所述数据依赖图构建得到所述程序依赖图。
可选地,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,包括:
根据所述函数调用图对所述主程序按照由被调函数到主函数顺序进行模块化分析构建得到每个函数的函数摘要,所述函数摘要用于表达所述每个函数的副作用;
根据所述函数摘要构建所述每个函数的入口到共享变量的第一路径约束条件,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件;
根据预设串行可达的两次访问序从所述所有两次访问序中选择出所述每个全局变量串行可达的两次访问序。
本申请实施例所提供的方案中,通过采用自底向上的模块化分析方式,不仅避免重复分析,减少大量的计算开销,提高原子违背缺陷检测的效率,还避免了传统方法路径爆炸,无法处理中大型程序的缺点。
可选地,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件,包括:
根据所述第一路径约束条件对所述主程序进行数据流分析,直接调用所述主程序所包含的调用函数对应的所述函数摘要;
将所述函数摘要插入到所述主程序中确定出所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件。
可选地,所述共享全局变量,包括:所述主程序中对中断程序执行路径约束条件产生副作用的全局变量和所述中断程序对主程序执行路径约束条件产生副作用的全局变量。
可选地,根据所述第一分析结果确定出至少一个共享全局变量,包括:
根据所述第一分析结果从所述多个中断程序中确定出可构成并发缺陷的至少一个中断程序;
对所述主程序和所述至少一个中断程序进行干扰分析确定出所述至少一个共享全局变量。
可选地,确定出每个所述共享全局变量对应的三次访问序,包括:
根据所述至少一个共享全局变量对所述至少一个中断程序中每个中断程序进行分析构建中断摘要,所述中断摘要是指所述每个中断程序对所述主程序路径的副作用;
构建所述至少一个中断程序与所述主程序之间的第三路径约束条件,根据所述第三路径约束条件确定所述主程序中的中断点,直接所述将所述中断摘要插入到所述中断点,并根据所述中断点确定所述三次访问序。
附图说明
图1为本申请实施例所提供的一种单变量原子违背缺陷的检测方法的流程示意图;
图2为本申请实施例所提供的一种将源程序代码转换为中间表示形式的结构示意图。
具体实施方式
本申请实施例提供的方案中,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合说明书附图对本申请实施例所提供的一种单变量原子违背缺陷的检测方法做进一步详细的说明,该方法具体实现方式可以包括以下步骤(方法流程如图1所示):
步骤101,将预设中断驱动型软件的源代码转换为中间表示形式LLVM IR,根据所述中间表示形式构建程序依赖图,其中,所述预设中断驱动型软件包括主程序、多个中断程序。
具体的,在本申请实施例所提供的方案中,首先利用轻量级编译器Clang预设中断驱动型软件的源代码转换为编程语言无关的统一中间表示形式LLVM IR,其中,LLVM IR具有单静态赋值形式和无限寄存器的特征,并采用3地址码形式组织指令,使得操作间的依赖关系更容易分析的特性。参见图2,为本申请实施例所提供的一种将源程序代码转换为中间表示形式的结构示意图。
然后,根据中间表示形式构建程序依赖图,具体的,构建程序依赖图的方式有多种,下面以其中一种为例进行说明。
在一种可能实现的方式中,根据所述中间表示形式构建程序依赖图,包括:对所述中间表示形式分别进行函数调用关系分析、控制流分析、数据流分析、指向分析和内存分析得到函数调用图、控制流图和数据依赖图;对所述控制流图进行前向支配分析构造得到前向支配树,根据所述前向支配树构建得到控制依赖图;根据所述函数调用图、所述控制依赖图和所述数据依赖图构建得到所述程序依赖图。
具体的,在本申请实施例所提供的方案中,程序依赖图是由节点和边组成的带有标记的有向多重图,其中,节点代表程序点,边代表上述两种依赖关系,为之后分析提供稀疏的程序表示。
步骤102,根据所述程序依赖图以及预设IFDS框架构建得到爆炸超图,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,并对所述两次访问序的可行性进行分析得到第一分析结果,其中,所述爆炸超图表示数据流所映射的有向图。
在一种可能实现的方式中,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,包括:根据所述函数调用图对所述主程序按照由被调函数到主函数顺序进行模块化分析构建得到每个函数的函数摘要,所述函数摘要用于表达所述每个函数的副作用;根据所述函数摘要构建所述每个函数的入口到共享变量的第一路径约束条件,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件;根据预设串行可达的两次访问序从所述所有两次访问序中选择出所述每个全局变量串行可达的两次访问序。
在一种可能实现的方式中,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件,包括:根据所述第一路径约束条件对所述主程序进行数据流分析,直接调用所述主程序所包含的调用函数对应的所述函数摘要;将所述函数摘要插入到所述主程序中确定出所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件。
在本申请实施例所提供的方案中,在得到程序依赖图之后,首先,根据函数调用图,对主程序按照由被调函数到主调函数的方式,进行自底向上的模块化分析,构建每个函数的函数摘要,该摘要表达了函数的副作用,刻画了从函数入口到共享变量的路径约束条件。在此基础上,对主程序进行基于摘要的过程间数据流分析,获取所有存在两次读写访问的全局变量有序对及它们之间的路径约束条件。具体的,采用IFDS框架,该框架可以对程序构建一个爆炸超图,将数据流问题映射为图可达性问题。在图上对所有的全局变量进行分析,判断是否存在串行可达的两次访问序(R-R、R-W、W-W、W-W)。其中,在遇到函数调用时,将已有的函数摘要信息直接插入,不再重复分析,避免冗余开销。最后,对获取的两次有序对进行分析,收集有序对之间的路径约束条件,并采用可满足性约束理论,通过约束求解器(SMT)对其进行求解,确定主程序两次串行访问序的可行性得到第一分析结果。
本申请实施例所提供的方案中,通过采用自底向上的模块化分析方式,不仅避免重复分析,减少大量的计算开销,提高原子违背缺陷检测的效率,还避免了传统方法路径爆炸,无法处理中大型程序的缺点。
步骤103,根据所述第一分析结果确定出至少一个共享全局变量,以及确定出每个所述共享全局变量对应的三次访问序,对所述三次访问序的可行性进行分析得到第二分析结果,根据所述第二分析结果确定原子违背缺陷并生成缺陷报告,其中,所述共享全局变量是指对中断执行路径和所述主程序执行路径之间具有副作用的变量。
在本申请实施例所提供的方案中,第一分析结果包括两次串行访问序的可行和两次串行访问序的不可行。当两次串行访问序的可行时,根据所述第一分析结果确定出至少一个共享全局变量。具体的,共享全局变量的种类有多种下面以部分种类为例进行说明。
进一步,在一种可能实现的方式中,所述共享全局变量,包括:所述主程序中对中断程序执行路径约束条件产生副作用的全局变量和所述中断程序对主程序执行路径约束条件产生副作用的全局变量。
进一步,在一种可能实现的方式中,根据所述第一分析结果确定出至少一个共享全局变量,包括:根据所述第一分析结果从所述多个中断程序中确定出可构成并发缺陷的至少一个中断程序;对所述主程序和所述至少一个中断程序进行干扰分析确定出所述至少一个共享全局变量。
进一步,在一种可能实现的方式中,确定出每个所述共享全局变量对应的三次访问序,包括:根据所述至少一个共享全局变量对所述至少一个中断程序中每个中断程序进行分析构建中断摘要,所述中断摘要是指所述每个中断程序对所述主程序路径的副作用;构建所述至少一个中断程序与所述主程序之间的第三路径约束条件,根据所述第三路径约束条件确定所述主程序中的中断点,直接所述将所述中断摘要插入到所述中断点,并根据所述中断点确定所述三次访问序。
具体的,在本申请实施例所提供的方案中,根据第一分析结果得到可能存在潜在缺陷的全局变量,针对这些全局变量,对中断程序进行匹配分析,获取可能构成并发缺陷的中断程序;然后,对主程序和这些中断程序进行干扰分析,获取并发流和子路径之间具有副作用的共享全局变量,包括主程序中对中断程序子路径约束条件产生副作用的共享全局变量和中断程序对主程序子路径约束条件产生副作用的共享全局变量。在此基础上,对每个中断程序进行分析,并构建中断摘要,刻画中断程序对主程序子路径的副作用。随后,对缺陷点之间的路径约束表达式进行构建,并在中断点插入相对应的中断摘要,避免对中断的重复分析,提高分析效率。最后合并中断摘要副作用并对完整的三次访问序路径约束条件进行约束求解,若不可行,则为误报;若可行,则该访问序为真正的单变量原子性违背,并生成缺陷报告。
本申请实施例所提供的方案中,通过构建程序依赖图,然后根据程序依赖图以及预设IFDS框架构建得到爆炸超图,根据爆炸超图对主程序数据流分析确定每个全局变量串行可达的两次访问序,并对两次访问序的可行性进行分析得到第一分析结果,然后根据第一分析结果确定出至少一个共享全局变量,以及确定出每个所述共享全局变量对应的三次访问序,对三次访问序的可行性进行分析得到第二分析结果,根据所述第二分析结果确定原子违背缺陷并生成缺陷报告,因此,本申请实施例所提供的方案中,分别对主程序两次访问序的可行性进行分析,以及根据主程序两次访问序的可行性分析结果对加上中断程序访问的三次访问序进行可行性分析,即通过多阶段分析的方式,提高了原子违背缺陷检测的准确性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (7)
1.一种单变量原子违背缺陷的检测方法,其特征在于,包括:
将预设中断驱动型软件的源代码转换为中间表示形式LLVM IR,根据所述中间表示形式构建程序依赖图,其中,所述预设中断驱动型软件包括主程序、多个中断程序;
根据所述程序依赖图以及预设IFDS框架构建得到爆炸超图,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,并对所述两次访问序的可行性进行分析得到第一分析结果,其中,所述爆炸超图表示数据流所映射的有向图;
根据所述第一分析结果确定出至少一个共享全局变量,以及确定出每个所述共享全局变量对应的三次访问序,对所述三次访问序的可行性进行分析得到第二分析结果,根据所述第二分析结果确定原子违背缺陷并生成缺陷报告,其中,所述共享全局变量是指对中断执行路径和所述主程序执行路径之间具有副作用的变量。
2.如权利要求1所述的方法,其特征在于,根据所述中间表示形式构建程序依赖图,包括:
对所述中间表示形式分别进行函数调用关系分析、控制流分析、数据流分析、指向分析和内存分析得到函数调用图、控制流图和数据依赖图;
对所述控制流图进行前向支配分析构造得到前向支配树,根据所述前向支配树构建得到控制依赖图;
根据所述函数调用图、所述控制依赖图和所述数据依赖图构建得到所述程序依赖图。
3.如权利要求2所述的方法,其特征在于,根据所述爆炸超图对所述主程序数据流分析确定每个全局变量串行可达的两次访问序,包括:
根据所述函数调用图对所述主程序按照由被调函数到主函数顺序进行模块化分析构建得到每个函数的函数摘要,所述函数摘要用于表达所述每个函数的副作用;
根据所述函数摘要构建所述每个函数的入口到共享变量的第一路径约束条件,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件;
根据预设串行可达的两次访问序从所述所有两次访问序中选择出所述每个全局变量串行可达的两次访问序。
4.如权利要求3所述的方法,其特征在于,根据所述函数摘要和所述第一路径约束条件对所述主程序进行数据流分析得到所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件,包括:
根据所述第一路径约束条件对所述主程序进行数据流分析,直接调用所述主程序所包含的调用函数对应的所述函数摘要;
将所述函数摘要插入到所述主程序中确定出所述每个全局变量对应的所有两次访问序对及两次访问之间的第二路径约束条件。
5.如权利要求4任一项所述的方法,其特征在于,所述共享全局变量,包括:所述主程序中对中断程序执行路径约束条件产生副作用的全局变量和所述中断程序对主程序执行路径约束条件产生副作用的全局变量。
6.如权利要求5所述的方法,其特征在于,根据所述第一分析结果确定出至少一个共享全局变量,包括:
根据所述第一分析结果从所述多个中断程序中确定出可构成并发缺陷的至少一个中断程序;
对所述主程序和所述至少一个中断程序进行干扰分析确定出所述至少一个共享全局变量。
7.如权利要求1~6任一项所述的方法,其特征在于,确定出每个所述共享全局变量对应的三次访问序,包括:
根据所述至少一个共享全局变量对所述至少一个中断程序中每个中断程序进行分析构建中断摘要,所述中断摘要是指所述每个中断程序对所述主程序路径的副作用;
构建所述至少一个中断程序与所述主程序之间的第三路径约束条件,根据所述第三路径约束条件确定所述主程序中的中断点,直接所述将所述中断摘要插入到所述中断点,并根据所述中断点确定所述三次访问序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011591752.1A CN112631925A (zh) | 2020-12-29 | 2020-12-29 | 一种单变量原子违背缺陷的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011591752.1A CN112631925A (zh) | 2020-12-29 | 2020-12-29 | 一种单变量原子违背缺陷的检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112631925A true CN112631925A (zh) | 2021-04-09 |
Family
ID=75286081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011591752.1A Pending CN112631925A (zh) | 2020-12-29 | 2020-12-29 | 一种单变量原子违背缺陷的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631925A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722218A (zh) * | 2021-08-23 | 2021-11-30 | 南京审计大学 | 一种基于编译器中间表示的软件缺陷预测模型构建方法 |
CN115033472A (zh) * | 2022-04-18 | 2022-09-09 | 大连理工大学 | 基于线程循环调度顺序化的中断驱动程序模型检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204119A1 (en) * | 2004-03-09 | 2005-09-15 | Bratin Saha | Synchronization of parallel processes |
US20070156780A1 (en) * | 2005-12-16 | 2007-07-05 | Intel Corporation | Protecting shared variables in a software transactional memory system |
CN103678136A (zh) * | 2013-12-30 | 2014-03-26 | 北京控制工程研究所 | 一种基于控制流的数据竞争误报降低方法 |
CN106844215A (zh) * | 2017-01-24 | 2017-06-13 | 东南大学 | 一种基于约束求解的原子违背探测方法 |
CN109522207A (zh) * | 2018-09-26 | 2019-03-26 | 东南大学 | 一种基于约束求解的原子集合序列化违背探测方法 |
CN111159022A (zh) * | 2019-12-20 | 2020-05-15 | 北京轩宇信息技术有限公司 | 基于单变量访问序模式的中断数据访问冲突检测方法及装置 |
-
2020
- 2020-12-29 CN CN202011591752.1A patent/CN112631925A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204119A1 (en) * | 2004-03-09 | 2005-09-15 | Bratin Saha | Synchronization of parallel processes |
US20070156780A1 (en) * | 2005-12-16 | 2007-07-05 | Intel Corporation | Protecting shared variables in a software transactional memory system |
CN103678136A (zh) * | 2013-12-30 | 2014-03-26 | 北京控制工程研究所 | 一种基于控制流的数据竞争误报降低方法 |
CN106844215A (zh) * | 2017-01-24 | 2017-06-13 | 东南大学 | 一种基于约束求解的原子违背探测方法 |
CN109522207A (zh) * | 2018-09-26 | 2019-03-26 | 东南大学 | 一种基于约束求解的原子集合序列化违背探测方法 |
CN111159022A (zh) * | 2019-12-20 | 2020-05-15 | 北京轩宇信息技术有限公司 | 基于单变量访问序模式的中断数据访问冲突检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
MOSTAFA SADIK等: "Shared variables analysis for real-time embedded systems using predefined patterns for C language", 《2015 6TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS)》, 30 November 2015 (2015-11-30), pages 100 - 105 * |
朱一清: "并发程序原子图挖掘及违背检测", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 December 2012 (2012-12-15), pages 138 - 24 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722218A (zh) * | 2021-08-23 | 2021-11-30 | 南京审计大学 | 一种基于编译器中间表示的软件缺陷预测模型构建方法 |
CN115033472A (zh) * | 2022-04-18 | 2022-09-09 | 大连理工大学 | 基于线程循环调度顺序化的中断驱动程序模型检测方法 |
CN115033472B (zh) * | 2022-04-18 | 2024-03-22 | 大连理工大学 | 基于线程循环调度顺序化的中断驱动程序模型检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | Making k-object-sensitive pointer analysis more precise with still k-limiting | |
Prähofer et al. | Static code analysis of IEC 61131-3 programs: Comprehensive tool support and experiences from large-scale industrial application | |
US10394694B2 (en) | Unexplored branch search in hybrid fuzz testing of software binaries | |
CN111104335B (zh) | 一种基于多层次分析的c语言缺陷检测方法及装置 | |
US20190265970A1 (en) | Automatic identification of relevant software projects for cross project learning | |
KR20110071097A (ko) | 소스 코드 처리 방법, 시스템, 및 프로그램 | |
EP2912548B1 (en) | Partial vectorization compilation system | |
US20150286203A1 (en) | System and method for an optimized operation of real-time embedded solutions in industrial automation | |
Li et al. | Practical symbolic race checking of GPU programs | |
CN112631925A (zh) | 一种单变量原子违背缺陷的检测方法 | |
US8365114B2 (en) | Logic modification synthesis | |
Sundermann et al. | Evaluating state-of-the-art# SAT solvers on industrial configuration spaces | |
Huang et al. | Improving the detection of artifact anomalies in a workflow analysis | |
CN114139923A (zh) | 任务关联性分析方法、装置及计算机可读存储介质 | |
Chatelain et al. | VeriTracer: Context-enriched tracer for floating-point arithmetic analysis | |
US20140046992A1 (en) | Parallelization method, system, and program | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
JP2007122207A (ja) | プログラム分析プログラム、プログラム分析装置、プログラム分析方法 | |
Biallas et al. | {Counterexample-Guided} Abstraction Refinement for {PLCs} | |
Mendonça et al. | Test2feature: Feature-based test traceability tool for highly configurable software | |
Sofranac et al. | Accelerating domain propagation: An efficient gpu-parallel algorithm over sparse matrices | |
CN114153750B (zh) | 代码检查方法及装置、代码编写方法、电子设备 | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
Nozdrzykowski et al. | Testing the significance of parameters of models estimating execution time of parallel program loops according to the Open MPI Standard | |
CN115982058B (zh) | 一种计算流体力学代码错误定位方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |