死锁检测与恢复模拟器

C++17Qt 6CMake

功能介绍

死锁检测与恢复模拟器面向操作系统课程学习者和授课演示人员,通过可视化的进程—资源分配图展示死锁形成、检测和恢复过程。使用者可以随机生成图,也可以拖拽节点、增删请求边与分配边,并通过双击进程调整终止或回滚代价,构造不同资源竞争场景。

点击执行死锁检测后,系统通过图遍历与 Tarjan 强连通分量分析识别环路,在图中高亮相关结构。使用者随后选择恢复方式:终止环路中最小代价进程,或通过资源抢占回滚处理。单步播放和自动播放入口便于观察每一步图状态变化。

典型教学场景是先生成存在环路的资源图,执行检测,再分别运行两种策略;调整进程代价后重复比较,观察恢复选择如何变化。工程将图模型、随机生成、检测、恢复、控制器和界面分层组织,便于结合源码理解算法与可视化之间的关系。

用例图/使用场景

生成或编辑进程资源图 → 执行死锁检测 → 观察环路高亮 → 选择终止进程或资源抢占回滚 → 单步或自动播放恢复过程 → 修改代价后比较策略。下面为现有模拟器用例图。

演示截图

技术栈

采用 C++17、Qt 6、Qt Widgets 与 CMake,界面通过 QGraphicsScene/QGraphicsView 展示图结构;Qt Core、Gui 和 Widgets 为应用依赖,Qt Test 用于工程已有测试。核心算法包含图遍历与 Tarjan SCC。附件保留源码、实验及演示资料,排除构建目录、编译二进制和缓存。

项目资料附件

分片附件需全部下载并解压,按包内重组说明将同组 .part 文件按编号顺序二进制拼接,恢复原 ZIP 后解压。

定制服务:+v pink996611