首页
›
Linux内核与驱动
›
072-嵌入式Linux驱动
›
《嵌入式Linux驱动并发同步设计与竞态调试》
VIP10
本课程属于:072-嵌入式Linux驱动
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
嵌入式Linux驱动并发同步设计与竞态调试
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
并发与竞态
并发编程基础概念 · 竞态条件定义 · 临界区概念
并发
竞态
02
内核并发源
SMP多核并发 · 中断上下文 · 软中断与tasklet
内核并发源
SMP
03
锁的分类
自旋锁(spinlock)与互斥锁(… · 适用场景
锁的分类
spinlock
04
自旋锁原理
自旋锁的忙等待机制 · 原子操作与内存屏障 · 自旋锁的变体
自旋锁原理
自旋锁的忙等待机…
05
自旋锁API
spin_lock_init · spin_lock · spin_unlock
API
自旋锁
06
自旋锁使用场景
中断上下文 · 临界区极短 · 不可睡眠场景
自旋锁使用场景
断上下文
07
自旋锁注意事项
死锁风险 · 自旋时间过长 · 中断上下文中的锁使用
自旋锁注意事项
死锁风险
08
读写自旋锁
rwlock_t · read_lock · write_lock
读写自旋锁
rwlock
09
顺序锁(seqlock)
seqlock原理 · 写者优先 · 读者不阻塞写者
seqlock
顺序锁
10
RCU机制
RCU基本原理 · 读侧无锁 · 写侧延迟回收
RCU
机制
11
互斥锁(mutex)原理
睡眠等待机制 · 优先级继承 · mutex vs spinlock
mutex
互斥锁
12
互斥锁API
mutex_init · mutex_lock · mutex_unlock
API
互斥锁
13
互斥锁使用场景
进程上下文 · 临界区较长 · 允许睡眠
互斥锁使用场景
进程上下文
14
互斥锁注意事项
不可在中断上下文使用 · 死锁预防 · 嵌套锁
互斥锁注意事项
不可
15
信号量(semaphore)
计数信号量 · 二值信号量 · 与mutex的区别
semaphore
信号量
16
完成量(completion)
completion机制 · wait_for_completio… · complete
completion
完成量
17
原子操作
atomic_t · atomic_set · atomic_add
原子操作
atomic
18
内存屏障
mb · rmb · wmb
内存屏障
mb
19
per-CPU变量
per-CPU变量定义 · 使用 · 避免锁竞争
per-CPU
变量
20
锁的调试
lockdep · spin_lock_check · 死锁检测
锁的调试
lockdep
21
锁的优化
减小临界区 · 锁粒度细化 · RCU替代
锁的优化
减小临界区
22
中断上下文锁
中断处理函数中的锁 · 下半部中的锁 · 软中断锁
断上下文锁
断处理函数
23
进程上下文锁
系统调用中的锁 · ioctl中的锁 · 文件操作中的锁
进程上下文锁
系统调用
24
驱动实例
字符设备驱动中的锁设计 · 并发访问控制
驱动实例
字符设备驱动
25
驱动实例
网络设备驱动中的锁 · NAPI与锁
驱动实例
网络设备驱动
26
驱动实例
块设备驱动中的锁 · 请求队列与锁
驱动实例
块设备驱动
27
驱动实例
I2C/SPI总线驱动中的锁 · 总线访问同步
驱动实例
I2C/SPI
28
驱动实例
DMA驱动中的锁 · DMA描述符保护
驱动实例
DMA
29
驱动实例
时钟与电源管理驱动中的锁 · 状态机保护
驱动实例
时钟
30
总结与最佳实践
锁选择决策树 · 性能权衡 · 常见错误模式
最佳实践
锁选择决策树
所属VIP或分类
同VIP:I2C-SPI外设驱动与DMA传输结合实现高性能通信
同VIP:I2C外设驱动结合中断处理实现传感器数据采集
同VIP:SPI外设驱动与DMA传输结合内存映射性能调优