随笔分类 -  内核机制

RT-Mutex-1——内核文档翻译-rt-mutex.rst
摘要:一、rt-mutex.rst 翻译:kernel-5.10\Documentation\locking\rt-mutex.rst 支持 PI 的 RT-mutex 子系统 具有优先级继承的 RT-mutexes 用于支持 PI-futexes,它启用 pthread_mutex_t 优先级继承属性 阅读全文

posted @ 2022-12-25 15:45 Hello-World3 阅读(262) 评论(0) 推荐(0)

RCU-1——内核文档翻译——Expedited-Grace-Periods.rst
摘要:翻译:kernel-5.10\Documentation\RCU\Design\Expedited-Grace-Periods\Expedited-Grace-Periods.rst 网页位置:https://www.kernel.org/doc/html/v6.0-rc7/RCU/Design/E 阅读全文

posted @ 2022-12-23 15:30 Hello-World3 阅读(689) 评论(0) 推荐(0)

RCU-1——内核文档翻译——Data-Structures.rst
摘要:翻译:kernel-5.10\Documentation\RCU\Design\Data-Structures\Data-Structures.rst =TREE_RCU 数据结构导览 [LWN.net] = 2016 年 12 月 18 日 本文由 Paul E. McKenney 提供 介绍 本 阅读全文

posted @ 2022-12-22 20:59 Hello-World3 阅读(578) 评论(0) 推荐(0)

Futex-3—Noraml Futex驱动分析
摘要:基于 Linux-5.15,下文中进程和线程同指向。 一、Noraml Futex驱动简介 futex驱动提供一种内核阻塞用户空间进程的机制。futex系统调用提供了三种配对的调用接口,满足不同使用场合的,分别为 noraml futex,pi-futex,requeue-pi。本文只讲解 fute 阅读全文

posted @ 2022-11-16 21:37 Hello-World3 阅读(810) 评论(0) 推荐(0)

Linux内核机制—percpu
摘要:一、per-cpu变量简介 在多处理器系统中,每处理器变量为每个cpu都生成一个变量的副本,每个处理器使用自己的副本,从而避免了处理器之间的互斥和同步,提高了程序的执行速度。每处理器变量分为静态per-cpu变量和动态per-cpu变量。 二、静态per-cpu变量 1. 静态per-cpu变量使用 阅读全文

posted @ 2022-07-23 21:00 Hello-World3 阅读(2095) 评论(0) 推荐(0)

Linux内核机制—spin_lock
摘要:一、spin_lock概述 1. spin lock 是一种不可休眠锁,可用于原子上下文。当获取不到锁的时候会spin等待,此时是running状态。 2. spin lock 的发展到现在经历了四个阶段 (1) CAS 锁只有一个原子变量,执行单个 compare-and-swap 指令来获取锁。 阅读全文

posted @ 2022-06-12 14:57 Hello-World3 阅读(1295) 评论(0) 推荐(0)

Linux内核机制—percpu_rwsem
摘要:一、相关资料 1. kernel-5.10/Documentation/locking/percpu-rw-semaphore.rst percpu rw 信号量是一种新的读写信号量设计,针对读取锁定进行了优化。 传统的读写信号量的问题在于,当多个内核读取锁时,包含信号量的cache-line在内核 阅读全文

posted @ 2022-06-10 15:41 Hello-World3 阅读(1202) 评论(0) 推荐(1)

Linux内核机制—semaphore
摘要:一、信号量相关结构 1. 信号量描述结构体 struct semaphore { /* 保护信号量的spinlock锁 */ raw_spinlock_t lock; /* * 对于二值信号量,为1表示没有任务在临界区,为0表示只有1个任 * 务在临界区,没有任务等待 在改信号量上,为-n表示有n个 阅读全文

posted @ 2022-05-22 20:10 Hello-World3 阅读(982) 评论(0) 推荐(0)

Linux内核机制—mutex
摘要:一、Mutex锁简介 1. mutex是具有严格语义的简单、直接的互斥锁: (1) 一次只能有一个任务持锁(2) 只有锁的持有者才能释放锁(3) 不允许多次释放锁(4) 不允许递归持锁(5) 必须通过 API 初始化锁(6) 不能通过 memset 或拷贝来初始化锁(7) 任务不应该在持锁的情况下退 阅读全文

posted @ 2022-05-09 23:23 Hello-World3 阅读(3278) 评论(1) 推荐(1)

导航