[发明专利]基于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工具。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于同济大学,未经同济大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202310629386.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top