# PriChain **Repository Path**: qi-1940/PriChain ## Basic Information - **Project Name**: PriChain - **Description**: 2025-CSCC-Linux锁优先级传递 - **Primary Language**: C - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-17 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # proj62-linux-lock-priority-inheritance ### 项目名称 Linux 锁优先级传递 ### 项目描述 优先级翻转是指当一个高优先级任务通过锁等机制访问共享资源时, 该锁如果已被一低优先级任务占有, 将可能造成高优先级任务被许多具有较低优先级任务阻塞. 优先级翻转问题是影响 linux 实时性的障碍之一, 甚至引起很多稳定性问题. ### 特征 * 优先级继承、传递 * 实时性 ## 项目完成情况 |预期目标|实现情况| |:---:|:---:| |解决mutex的优先级翻转问题|已完成| |实现rb_mutex的优先级继承链|未完成| |实现rwlock的优先级继承支持|未完成| |实现rwsem的优先级继承支持|未完成| |通过宏开关优先级继承相关特性|已完成| |可以编译安装运行修改后的内核|已完成| |提供与原生锁等在时延方面的测试数据|已完成| |发送补丁到openruler社区|已完成| ## 维护者邮箱 xin_hang_mu@qq.com。欢迎咨询和讨论。 ## 关于决赛最终版的留言 如何复现此项目呢? 1. 首先,准备linux4.19.325版本的内核源码。将此项目目录下的drivers目录和include目录里的内容添加到源码中,形成修改后的内核源码。然后编译更换内核(**强烈建议使用虚拟机**)。 2. 进入tests目录,运行tests.sh脚本,测试结果会保存在tests_output.txt文件中。测试脚本会加载六个测试模块,但不会卸载它们。如果手动卸载,可能导致内核崩溃。在tests/rb_mutex目录中有个deadlock_test.c。这是我们额外做的死锁检测模块。在这个目录下运行make,然后安装这个模块,再读取内核日志即可。当然,手动卸载这个模块也会导致死机。 ## 视频展示 [!点击此处跳转视频(讲解版)!](https://pan.baidu.com/s/12Rqxtuzu2J_XnAWs8-Yy_A?pwd=tv25) 百度网盘提取码: tv25