
Linux内核同步互斥机制
文章平均质量分 78
研究Linux内核同步互斥机制:内存屏障、原子指令、自旋锁、互斥锁、实施互斥锁、自旋锁、RCU、pre-cpu变量、信号量等机制
兔斯基灬木木
一个Linux爱好者,专注Linux内核机制研究和学习。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux实时内核 - RCU机制x - rcu性能测试
是 Linux 内核中的一个配置选项,主要用于启用 RCU(Read-Copy Update)机制的性能测试功能。当你在编译内核时选择了这个选项,它会包含一系列用于测量和评估 RCU 实现性能的测试代码。原创 2025-03-21 10:55:41 · 184 阅读 · 0 评论 -
Linux实时内核 - RCU机制x - RCU_BOOST 提高RCU线程优先级
在可抢占 RCU 环境下,内核允许在 RCU 读侧临界区内进行抢占。确实,CONFIG_RCU_BOOST 是 Linux 内核中的一个配置选项,它与可抢占 RCU (Preemptible RCU) 配合使用,旨在解决低优先级进程长期占用RCU读侧临界区的问题,进而避免由于这些临界区长时间不退出导致的内存耗尽等问题。简而言之,通过配合使用 CONFIG_RCU_BOOST 和可抢占 RCU,Linux 内核能够更好地管理 RCU 读侧临界区的生命周期,防止因低优先级任务导致的系统性能下降或资源耗尽问题。原创 2025-03-26 08:54:38 · 104 阅读 · 0 评论 -
Linux实时内核 - RCU机制x - 模拟RCU stall 实验
Linux内核 - RCU原理1。原创 2025-03-21 13:03:03 · 91 阅读 · 0 评论 -
Linux实时内核 - RCU机制x - rcu内核参数配置
Linux内核 - RCU原理1。原创 2025-03-21 15:56:51 · 130 阅读 · 0 评论 -
Linux实时内核 - RCU机制x - rcu stall 分析
这表示 RCU 等待某些 CPU 或任务完成,但超时。原创 2025-02-28 13:45:50 · 450 阅读 · 0 评论 -
Linux内核实时机制18 - 实时优化案例 - RCU stall 异常案例分析1
### **增加 RCU 同步点的作用**- 确保在释放内存或修改共享数据时,所有读者线程都已退出临界区。- 避免读者线程访问已释放的内存,导致内存错误。#### **使用 `call_rcu` 的优势**- 避免写者线程阻塞在 `synchronize_rcu()` 上,提高系统响应速度。- 将内存释放操作推迟到 RCU 宽限期结束后执行,确保安全性。#### **适用场景**- 高并发系统中,频繁访问和修改共享数据。- 需要避免阻塞的场景,如实时系统或高性能数据库。代码。原创 2025-02-28 14:16:27 · 266 阅读 · 0 评论 -
Linux内核实时机制17 - 实时优化机理 - RCU同步机制
1、__rcu_read_lock不再调用preempt_disable关闭抢占,而是调用rcu_preempt_read_enter,为当前进程增加一个RCU读者的引用计数。2、rcu_read_lock_nesting定义在task_struct中,当前线程调用__rcu_read_lock时,引用计数加1,可嵌套。原创 2025-02-28 13:36:25 · 83 阅读 · 0 评论 -
Linux内核实时机制16 - 实时优化机理 - rt-mutex中 调整优先级
1、正常情况下,持有锁的任务继承了优先级之后,不会被低优先级抢占,在释放锁之后,会恢复到原有的优先级。2、如果高优先级的任务在阻塞过程中被signal中断或timeout退出等待,这时要将持有锁的任务优先级恢复到原来的状态,同时将整个优先级继承链恢复到原来的状态。3、如上分析,rt-mutex解决了优先级反转带来的不确定性,但同时增大了很多开销。1、T0时刻,优先级为10的Task10开始运行。2、T1时刻,Task10申请并获得了锁M,进入临界区。原创 2025-02-28 10:14:40 · 127 阅读 · 0 评论 -
Linux内核实时机制15 - 实时优化机理 - rt-mutex上 优先级继承
通过优先级继承关系链,当任务A持锁失败时,锁的owner task(任务C)临时把优先级上升和任务A一样的优先级,在释放锁时在将优先级进行恢复。为了能够让PI正常起作用,优先级继承的任务必须维持这样的关系,处于PI chain中右侧的任务优先级 必须大于等于左侧的任务们。但是Task90 和 Task50没有竞争关系,但是Task50比Task90优先得到调度,这就是所谓的优先级反转。,Task90 和Task10由于处于同一临界区的原因,会造成资源的竞争,这符合逻辑。2、增加复杂的任务和锁的逻辑图。原创 2025-02-27 14:52:34 · 204 阅读 · 0 评论 -
Linux内核实时机制14 - 实时优化机理 - 自旋锁之休眠改造
1、preempt rt使用rt_mutex对spinlock进行了改造,即解决了spinlock关抢占关中断的问题,也利用rt_mutext解决了优先级翻转的问题,很简单,也很巧妙。2、经过改造后的spinlock,申请者可以休眠等待锁的释放。3、那么为什么申请者的休眠不会造成死锁的现象呢?由中断线程化可知,在preempt rt方案中,绝大部分的中断处理函数是运行在一个内核线程的上下文中,是可休眠,可调度的,原创 2025-02-26 10:08:57 · 117 阅读 · 0 评论 -
Linux内核实时机制13 - 实时改造机理 - 自旋锁之qspinlock
3、因为queued_fetch_set_pending_acquire是一个等待的过程,这个过程之后val的值可能发生变化。2、atomic_cond_read_relaxed 函数来自旋等待,即循环读取lock->val,直到脱离这个状态。1、判断pending域和tail域是否有值,其中_Q_LOCKED_MASK为0xff。2、运行到这,意味只有locked被置位,pending和tail都为0。5、设置:0,1,0 -> 0,0,1,成功持有锁,pending域清零。<2> 慢速获取自旋锁。原创 2025-02-26 14:08:42 · 130 阅读 · 0 评论 -
Linux内核实时机制12 - 实时改造机理 - 自旋锁spinlock
当我们的临界区代码,有可能被进程或者中断访问时,就需要在进程上下文中,自旋锁保证了不受其他CPU或者单CPU内的抢占进程的干扰,原创 2025-02-27 10:38:57 · 122 阅读 · 0 评论 -
Linux内核实时机制11 - 实时改造机理 - 自旋锁之MCS算法
osq_lock函数用于申请mcs锁。原创 2025-02-26 09:57:02 · 175 阅读 · 0 评论 -
工具博文记录
Shell文本处理三剑客精讲实战(grep/sed/awk)https://edu.csdn.net/course/detail/6309?ops_request_misc=%7B%22request_id%22%3A%22158337817519724846443253%22%2C%22scm%22%3A%2220140713.130063507..%22%7D&request_id=...原创 2020-03-06 13:42:38 · 204 阅读 · 0 评论 -
优秀博文整理
优秀博文整理记录。原创 2020-04-24 08:12:16 · 168 阅读 · 0 评论 -
Linux & shell 介绍
1. Linux & shell 介绍1.1 Linux的发展 (1)Unix的起源 1)1969年,由kenthompson在AT&T贝尔实验室实现的。使用的是汇编语言。 2)1970年,KenThompson和DennisRitchie是使用C语言对整个系统进行了再加工和编写,是的Unix能够很容易的移植到其他硬件的计算机上。 3)...原创 2020-04-23 10:14:38 · 179 阅读 · 0 评论 -
kernel 启动流程博文记录
(第三章)uboot流程——uboot-spl代码流程https://www.cnblogs.com/leaven/p/6296160.htmlkernel 启动流程https://blog.csdn.net/ooonebook/article/details/52690132原创 2020-03-25 09:44:41 · 161 阅读 · 0 评论 -
博文地址
https://wenku.baidu.com/view/29c6bb6f7e21af45b307a88c.htmlhttps://www.cnblogs.com/yanghong-hnu/p/4705755.html原创 2020-03-08 12:51:19 · 237 阅读 · 0 评论