[发明专利]一种时序验证方法、验证装置、电子设备及存储介质在审
申请号: | 201911158307.3 | 申请日: | 2019-11-22 |
公开(公告)号: | CN112835686A | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 陈琨 | 申请(专利权)人: | 北京金山云网络技术有限公司;北京金山云科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/48;G06F9/50 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 项京;丁芸 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 时序 验证 方法 装置 电子设备 存储 介质 | ||
本发明实施例提供了一种时序验证方法、验证装置、电子设备及存储介质,其中方法包括:针对并发线程中的各个线程,确定该线程中的各原子操作以及各原子操作的执行顺序;对并发线程的所有原子操作进行排序,得到多个不同的原子操作顺序,其中,任一个所述原子操作顺序是按照所述并发线程中各线程的原子操作的执行顺序确定的;获取并发线程在按照各原子操作顺序执行外部执行参数后得到的执行结果;基于执行结果对并发线程的时序进行验证。本发明实施例相比于现有的TLA+验证方法更加简单,有效降低了时序验证的难度。
技术领域
本发明涉及计算机技术领域,特别是涉及一种时序验证方法、验证装置、电子设备及存储介质。
背景技术
并发系统是指能够同时执行多个任务的系统,随着计算机技术的发展,目前的线上系统通常都是并发系统,这样才能满足同时服务多个用户的需求。
并发系统通常采用多线程模式运行,因而能够同时执行多个任务或请求,这就可能出现并发时序问题,例如,出现死锁问题,死锁是指两个或两个以上的线程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些线程都将无法向前推进,产生上述问题的原因通常为线程推进顺序不当,而线程推进顺序通常与时序相关。因此,在测试并发系统的过程中,需要对并发系统中线程间的时序进行验证。
现有的时序验证方法通常利用TLA+(temporal logical action,形式规格说明语言)方法实现,TLA+用于验证系统的设计和算法的正确性,但是,由于TLA+是对系统更高层的建模,这就需要验证者掌握抽象数学思维,通过定义数学范式的方式对系统进行抽象,然后验证数学范式本身,因此存在验证难度大的问题。
发明内容
本发明实施例的目的在于提供一种时序验证方法、验证装置、电子设备及存储介质,以降低在对系统进行时序验证时的验证难度。具体技术方案如下:
第一方面,本发明实施例提供了一种时序验证方法,包括:
针对并发线程中的各个线程,确定该线程中的各原子操作以及各原子操作的执行顺序;
对所述并发线程的所有所述原子操作进行排序,得到多个不同的原子操作顺序,其中,任一个所述原子操作顺序是按照所述并发线程中各线程的原子操作的执行顺序确定的;
获取所述并发线程在按照各原子操作顺序执行外部执行参数后得到的执行结果;
基于所述执行结果对所述并发线程的时序进行验证。
可选的,所述对所述并发线程的所有所述原子操作进行排序的步骤,包括:
按照预设的排序规则,对所述并发线程的所有所述原子操作进行排序,所述排序规则为:属于同一个线程的各原子操作间的排列顺序与该线程中各原子操作的执行顺序一致,属于不同线程的原子操作间的排列顺序随机排列。
可选的,所述获取所述并发线程在按照各原子操作顺序执行外部执行参数后得到的执行结果的步骤,包括:
将所述外部执行参数输入所述并发线程,使所述并发线程按照不同的所述原子操作顺序执行所述外部执行参数,得到不同的执行结果。
可选的,所述基于所述执行结果对所述并发线程的时序进行验证的步骤,包括:
判断各所述执行结果是否符合预设的目标执行结果,以得到判断结果;
根据所述判断结果验证所述并发线程中的时序问题。
可选的,所述根据判断结果验证所述并发线程中的时序问题的步骤,包括:
如果所述执行结果符合所述目标执行结果,则确定所述并发线程中不存在时序问题;
如果所述执行结果不符合所述目标执行结果,则确定所述并发线程中存在时序问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司;北京金山云科技有限公司,未经北京金山云网络技术有限公司;北京金山云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911158307.3/2.html,转载请声明来源钻瓜专利网。