Linux中RT-Mutex实现

    本文主要梳理优先级继承的基本原理,优先级继承主要是用来解决优先级反转,可以简单理解为

一个进程在当前进程拥有的锁上阻塞时,会继承另一个进程的优先级。举个例子说明,进程A、

B、C,其中A优先级最高,B次之,C最小,那么当 A 在 C 拥有的锁上阻塞时,C 将继承 A 的优先

级。因此,如果 B 变为可运行状态,它将不会抢占 C,因为此时 C 具有 A 的高优先级。一旦 C 释

放锁,它将失去继承的优先级,然后 A 可以继续使用 C 拥有的资源。

在linux源码实现中,位置:kernel/locking/rtmutex.c,主要涉及到两个重要步骤:

1、优先级调整;

2、PI(优先级继承)链遍历

优先级调整

该部分实现任务调整的函数分别是rt_mutex_adjust_prio和rt_mutex_setprio,其中

rt_mutex_setprio在rt_mutex_adjust_prio中被调用,rt_mutex_setprio的实现则实在

kernel/sched/core.c中。

static void rt_mutex_adjust_prio(struct task_struct *p)  
{  
    st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

以梦为马无处可栖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值