RCU(2)- 使用方法
作者:沙漠之狐 发布于:2019-5-24 19:36 分类:内核同步机制
本文介绍RCU的使用方法。标签: 无锁编程
RCU(1)- 概述
作者:沙漠之狐 发布于:2019-5-24 19:30 分类:内核同步机制
本文介绍RCU。标签: 无锁编程
Linux内核的自旋锁
作者:沙漠之狐 发布于:2019-5-17 19:11 分类:内核同步机制
自旋锁用于处理器之间的互斥,适合保护很短的临界区,并且不允许在临界区睡眠。申请自旋锁的时候,如果自旋锁被其他处理器占有,本处理器自旋等待(也称为忙等待)。
进程、软中断和硬中断都可以使用自旋锁。
自旋锁的实现经历了3个阶段:
(1) 最早的自旋锁是无序竞争的,不保证先申请的进程先获得锁。
(2) 第2个阶段是入场券自旋锁,进程按照申请锁的顺序排队,先申请的进程先获得锁。
(3) 第3个阶段是MCS自旋锁。入场券自旋锁存在性能问题:所有申请锁的处理器在同一个变量上自旋等待,缓存同步的开销大,不适合处理器很多的系统。MCS自旋锁的策略是为每个处理器创建一个变量副本,每个处理器在自己的本地变量上自旋等待,解决了性能问题。
浅谈Cache Memory
作者:smcdef 发布于:2019-5-2 21:14 分类:内存管理
今天探究的主题是cache。我们围绕几个问题展开。为什么需要cache?如何判断一个数据在cache中是否命中?cache的种类有哪些,区别是什么?