程序检测方法及装置制造方法及图纸

技术编号:33996747 阅读:24 留言:0更新日期:2022-07-02 11:04
本申请提供一种程序检测方法及装置,能够帮助用户快速完成程序运行在弱内存环境上的检查,可以提高程序的检测效率,可应用于程序检测中。该方法包括:接收用户提供的程序,根据查询参数和程序获得程序运行在弱内存环境上的结果。其中,查询参数用于指示程序的两条操作发生重排序的最大间隔。作发生重排序的最大间隔。作发生重排序的最大间隔。

【技术实现步骤摘要】
程序检测方法及装置


[0001]本申请涉及通信领域,尤其涉及一种程序检测方法及装置。

技术介绍

[0002]强内存模型(strong memory model)和弱内存模型(weakly ordered memory model)为两种存储模型。其中,强内存模型描述的是每一条指令都隐含获取(acquire)和释放(release)语义,获取语义可用于阻止读获取(read

acquire)和它之后的任何读写操作的乱序,释放语义可用于阻止写释放(write

release)和它之前的任何读写操作的乱序,即一个核(core)对内存进行的写操作序列可以被中央处理器(central processing unit,CPU)的其他核以相同的次序观察到。弱内存模型描述的是在一个独立的线程内,任意对内存的读写操作都可以与其它读写操作交换顺序,而不改变该线程的行为。
[0003]由于弱内存模型的软件生态环境的滞后,可能会导致基于强内存模型平台开发的程序,在移植到弱内存模型平台后,出现程序崩溃、重启或计算结果错误等异本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种程序检测方法,其特征在于,包括:接收用户提供的程序;根据查询参数和所述程序,获得所述程序运行在弱内存环境上的结果;其中,所述查询参数用于指示所述程序的两条操作发生重排序的最大间隔。2.根据权利要求1所述的程序检测方法,其特征在于,所述根据查询参数和所述程序,获得所述程序运行在弱内存环境上的结果,包括:根据所述查询参数、所述程序的第一线程中的第一操作与所述第一线程中的第二操作的间隔、和所述程序的第二线程中的第三操作与所述第二线程中的第四操作的间隔,获得所述程序运行在所述弱内存环境上的结果;其中,所述第一操作和所述第三操作为对同一变量进行的一对读写操作,所述第二操作和所述第四操作为对同一变量进行的一对读写操作,所述第一操作和所述第二操作为对不同变量进行的操作,所述第三操作和所述第四操作为对不同变量进行的操作。3.根据权利要求2所述的程序检测方法,其特征在于,还包括:采用内存读写模式查询规则,对所述程序的第一线程中的第一操作、所述第一线程中的第二操作、所述程序的第二线程中的第三操作和所述第二线程中的第四操作进行检测,获得所述程序运行在所述弱内存环境上的结果。4.根据权利要求3所述的程序检测方法,其特征在于,所述内存读写模式查询规则是根据所述查询参数确定的,所述内存读写模式查询规则用于确定所述第一线程和所述第二线程在时间上是否发生重叠。5.根据权利要求1

4中任一项所述的程序检测方法,其特征在于,所述查询参数是所述用户确定的,所述查询参数包括片内写操作延迟。6.根据权利要求1

5中任一项所述的程序检测方法,其特征在于,所述弱内存环境为非统一内存访问架构NUMA的运行设备对应的运行环境。7.根据权利要求1

6中任一项所述的程序检测方法,其特征在于,还包括:向所述用户提供所述结果,其中,所述结果包括修改建议。8.根据权利要求7所述的程序检测方法,其特征在于,还包括:响应于所述用户的确定指示,根据所述修改建议修改所述程序。9.一种程序检测装置,其特征在于,包括:接收单元和获取单元;其中,所述接收单元,用于接收用户提供的程序;所述获取单元,用于根据查询参数和所述程序,获得所述程序运行在弱内存环境上的结果;其中,所述查询参数用于指示所述程序的两条操作发生重排序的最大间隔。10.根据权利要求9所述的程序检测装置,其特征在于,所述获取单元,还用于根据所述查询参数、所述程序的第一线...

【专利技术属性】
技术研发人员:张汝涛周卿
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1