[发明专利]基于Petri网的Rust语言自动建模与死锁检测方法及软件工具在审
申请号: | 202310629386.1 | 申请日: | 2023-05-31 |
公开(公告)号: | CN116661751A | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 刘关俊;张凯文 | 申请(专利权)人: | 同济大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41;G06F9/52 |
代理公司: | 上海诺衣知识产权代理事务所(普通合伙) 31298 | 代理人: | 胡英瑛 |
地址: | 200092 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 petri rust 语言 自动 建模 死锁 检测 方法 软件 工具 | ||
1.基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,包括以下步骤:
步骤S1、Rust程序源代码分析;
步骤S2、创建Rust程序中间代码;所述中间代码隐含了所述源代码的控制流图和数据流图;
步骤S3、指定检测Rust程序中的锁类型;不同的所述锁类型对应不同的Petri网模型和操作语义;
步骤S4、生成锁数据流图:在所述控制流图的基础上,根据所述步骤S3中锁类型进行提取的锁执行路径;
步骤S5、转换所述锁数据流图为Petri网:通过提前定义好的映射关系来完成所述锁数据流图到Petri网模型的映射,对所述映射关系进行形式化表述,确保不会发生操作语义的变更;
步骤S6、分析Petri网,生成死锁检测报告;所述死锁检测报告包括在程序中发现可能造成的锁结构信息。
2.根据权利要求1所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S2中,中间代码是由Rust编译器生成的控制流图的数据结构,是表达程序逻辑的基本元素。
3.根据权利要求1所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S3中,所述锁类型指用户指定要检测的锁类型,包括可单独检测,也可同时检测的互斥锁和读写锁。
4.根据权利要求1所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S4中,基于生成的所述控制流图,根据指定的所述锁类型进行遍历,裁剪不包含锁操作的路径。
5.根据权利要求1所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S5中,将所述锁数据流图转换为Petri网包括将程序中锁的执行语义映射为所述Petri网模型基本结构的操作,包括加锁、解锁和分支中的任意一种或多种的组合。
6.根据权利要求1所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S5包括以下步骤:
步骤S51、从Rust编译器前端获取所有函数的单态表示,构建函数调用图,收集函数中锁的位置、锁所在的函数ID等信息;
步骤S52、使用安德森指针分析来分析这两个锁是否相同;
步骤S53、遍历指定的所述锁类型,并根据其给出的规则完成源代码到Petri网模型的映射。
7.根据权利要求6所述的基于Petri网的Rust语言自动建模与死锁检测方法,其特征在于,所述步骤S5中,所述映射过程的主结构体Translator,tcx中保存了所有函数实例的所述控制流图,lockguard_map记录了所有锁在所述控制流图中的位置,调用图用于生成不同函数的Petri网之间进行绑定;在所有的锁相关实例生成后,链接程序结束的库所。
8.基于Petri网的Rust语言自动建模与死锁检测的软件工具,其特征在于,用以执行如权利要求1至7中任一项所述的Rust语言自动建模与死锁检测方法,包括:
用户界面模块,调用Cargo以自动锁定输入包的依赖项并收集所有需要的源文件;
Rust程序源代码分析模块,用于分析Rust程序源代码并创建Rust程序中间代码;
映射到Petri网模块,用于生成锁数据流图,并将所述锁数据流图转换为Petri网;
Bug检测模块,调用Petri网分析工具,根据Petri网的可达性检测潜在的死锁并生成对应的诊断信息。
9.根据权利要求8所述的一种基于Petri网的Rust语言自动建模与死锁检测软件工具,其特征在于,所述用户界面模块调用Cargo的自定义子命令,读取一个Rust crate作为输入,连同用户提供的锁类型转换过程行为的选项,并收集所有需要的源文件。
10.根据权利要求8所述的一种基于Petri网的Rust语言自动建模与死锁检测软件工具,其特征在于,所述Petri网分析工具为PIPE工具。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310629386.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种集装箱吊具起吊安全检测方法和系统
- 下一篇:一种耳内等离子电极刀头