Skip to content

oscomp/first-prize-osk2025-linux-rtmutex

Repository files navigation

proj62-Linux 锁优先级传递

  • 赛题:Linux 锁优先级传递
  • 队名:PriChain
  • 成员:钟家意 汪文琦 慕欣杭
  • 学校:华中科技大学

项目描述

​ 本项目旨在为 Linux 内核设计并实现一种统一的锁优先级传递机制,主要解决实时系统中的优先级反转问题。通过对互斥锁(mutex)、读写锁(rwlock)和读写信号量(rwsem)三类常用内核同步原语进行扩展,实现递归优先级传递、死锁检测与链路追踪等功能,并提供与原生锁时延对比数据结果,提升系统在高优先级任务竞争资源时的实时性和可靠性。项目支持通过内核宏开关灵活控制,便于在不同场景下进行性能与功能的权衡。

实现内容

  • 优先级传递:

    优先级传递互斥锁,优先级传递读写互斥锁,优先级传递读写信号量

  • 死锁机制:

    死锁检测与日志追踪,支持链路追踪和调试分析

  • 测试验证:

    提供配套的用户态测试程序

  • 宏开关实现:

    支持内核 Kconfig 配置,便于功能裁剪和定制化部署

  • 提供与原生锁或原生信号量的时延测试结果比较,rb_mutex性能优化约44.05%, rb_rwmutex性能优化约26.85%,rb_rwsem性能优化约25.29%

预期功能编号 完成情况 预期功能说明
1 已完成 解决mutex的优先级反转问题
2 已完成 实现rb_mutex的优先级继承链
3 已完成 实现rwlock和rwsem的优先级继承支持
4 已完成 通过宏开关优先级继承相关特性
5 已完成 可以编译安装修改后的内核
6 已完成 提供与原生锁等在时延方面的测试数据
7 已完成 把工作上传到openEuler社区主线

仓库文件树说明

├── README.md
├── drivers                                      # 锁和信号量代码
│   ├── Kconfig
│   ├── Makefile
│   └── PriChain_codes
│       ├── Makefile
│       ├── rb_mutex
│       │   ├── Kconfig
│       │   ├── Makefile
│       │   └── rb_mutex.c
│       ├── rb_rwmutex
│       │   ├── Kconfig
│       │   ├── Makefile
│       │   └── rb_rwmutex.c
│       └── rb_rwsem
│           ├── Kconfig
│           ├── Makefile
│           └── rb_rwsem.c
├── envr                                         # 测试环境配置
│   
├── img                                          # 图片
│   
├── include
│   └── linux
│       ├── rb_mutex.h
│       ├── rb_rwmutex.h
│       └── rb_rwsem.h
├── log                                          # 日志文件
│   
├── proj62-Linux 锁优先级传递.md                  # 项目文档
└── tests                                        # 测试程序
    ├── mutex
    │   ├── Makefile
    │   └── mutex_test.c
    ├── rb_mutex
    │   ├── Makefile
    │   └── rb_mutex_test.c
    ├── rb_rwmutex
    │   ├── Makefile
    │   └── rb_rwmutex_test.c
    ├── rb_rwsem
    │   ├── Makefile
    │   └── rb_rwsem_test.c
    ├── rtmutex
    │   ├── Makefile
    │   └── rtmutex_test.c
    ├── rwlock
    │   ├── Makefile
    │   └── rwlock_test.c
    └── rwsem
        ├── Makefile
        └── rwsem_test.c

核心文件说明

文档内容

代码内容

演示视频

!点击此处跳转视频1(精简版)!

  • 百度网盘提取码: 0531

!点击此处跳转视频2(讲解版)!

  • 百度网盘提取码: tv25

其他说明

当前的工作成果已上传至openEuler的社区,等待审核。

上传至社区

增量开发说明:虽发现了往届开源作品,但未在其基础上进行增量开发。开发借鉴了官方rtmutex实时补丁。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published