首页
›
嵌入式与底层系统
›
024-Linux驱动实战案例与100例
›
《Linux驱动开发实战 驱动等待队列与阻塞I O实现》
VIP15
本课程属于:024-Linux驱动实战案例与100例
嵌入式与底层系统 · 共 15 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
Linux驱动开发实战:驱动等待队列与阻塞I O实现
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
阻塞与非阻塞I/O概念 · 等待队列在驱动中的作用 · 本课程学习目标与前置知识
课程导论
I/O
02
Linux内核调度基础
进程状态 · 上下文切换 · 调度器与睡眠机制简介
Linux
内核调度基础
03
等待队列数据结构
wait_queue_head_t · wait_queue_entry_t…
等待队列数据结构
wait
04
等待队列初始化
静态初始化(DECLARE_WAIT…
等待队列初始化
DECLARE
05
等待队列核心API
wake_up · wake_up_interrupti… · wait_event
API
等待队列核心
06
等待队列的底层机制
add_wait_queue · remove_wait_queue · default_wake_funct…
等待队列的底层机…
add
07
阻塞I/O驱动框架
file_operations中的r… · 等待队列与进程睡眠的关联
I/O
阻塞
08
无等待队列的轮询驱动实现
一个简单的字符驱动(无阻塞) · 演示其CPU占用问题
无等待队列的轮询…
一个简单的字符驱…
09
引入等待队列
改造上述驱动 · 实现阻塞读 · 当设备无数据时进程睡眠
引入等待队列
改造上述驱动
10
阻塞读实现详解
在read函数中调用wait_eve… · 条件满足时唤醒
阻塞读实现详解
read
11
阻塞写实现详解
在write函数中处理缓冲区满的情况 · 使用等待队列让写进程睡眠
阻塞写实现详解
write
12
中断与等待队列协同
在中断处理函数中调用wake_up · 唤醒等待数据的读进程
等待队列协同
wake
13
等待队列与互斥锁
在等待队列中使用自旋锁保护条件变量 · 避免竞态
等待队列
互斥锁
14
等待队列超时机制
wait_event_timeout…
等待队列超时机制
wait
15
可中断与不可中断睡眠
TASK_INTERRUPTIBLE…
不可
断睡眠
16
独占等待与共享等待
WQ_FLAG_EXCLUSIVE标… · 避免惊群效应的原理与实现
独占等待
共享等待
17
等待队列的自定义唤醒函数
自定义wake function实现…
等待队列的自定义…
wake
18
等待队列与poll/select系统调用
驱动中实现poll函数 · 关联等待队列与内核poll机制
poll/select
等待队列
19
驱动中实现非阻塞I/O
O_NONBLOCK标志的处理 · 在read/write中返回-EAG…
I/O
驱动
20
等待队列与异步通知(fasync)
结合等待队列实现SIGIO信号驱动的…
fasync
等待队列
21
等待队列与内核定时器
使用定时器延迟唤醒等待队列中的进程
等待队列
内核定时器
22
等待队列与工作队列
在工作队列中唤醒等待队列 · 实现下半部唤醒机制
等待队列
工作队列
23
等待队列与Completion机制
对比等待队列与completion接…
Completion
等待队列
24
等待队列与kfifo结合
使用内核无锁环形缓冲区(kfifo)… · 等待队列实现同步
kfifo
等待队列
25
等待队列调试技巧
使用/proc/waitqueues · ftrace · printk跟踪等待队列状态
等待队列调试技巧
proc/waitque…
26
等待队列性能分析
测量上下文切换开销 · 优化等待队列使用以减少延迟
等待队列性能分析
测量上下文切换开…
27
等待队列常见错误
忘记初始化 · 条件变量未保护 · 在中断中睡眠
等待队列常见错误
忘记初始化
28
等待队列在USB驱动中的应用
USB urb提交与等待队列实现批量…
USB
等待队列
29
等待队列在网络驱动中的应用
NAPI与等待队列结合 · 实现数据包接收的阻塞等待
等待队列
网络驱动
30
课程总结与实战项目
综合实现一个字符设备驱动 · 支持阻塞读/写 · poll
课程总结
实战项目
所属VIP或分类
同VIP:drm_encoder驱动中LVDS时钟配置与链路训练工程
同VIP:Linux-ALSACodec驱动实战100例
同VIP:Linux-BSP驱动开发实战100例