资料介绍
阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。
被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程
在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。
驱动程序通常需要提供这样的能力:当应用程序进行 read()、write()等系统调用时,若设备的资源不能
获取,而用户又希望以阻塞的方式访问设备,驱动程序应在设备驱动的 xxx_read()、xxx_write()等操作中将
进程阻塞直到资源可以获取,此后,应用程序的 read()、write()等调用才返回,整个过程仍然进行了正确的
设备访问,用户并没有感知到;若用户以非阻塞的方式访问设备文件,则当设备资源不可获取时,设备驱
动的 xxx_read()、xxx_write()等操作应立即返回,read()、write()等系统调用也随即被返回。
阻塞从字面上听起来似乎意味着低效率,实则不然,如果设备驱动不阻塞,则用户想获取设备资源只
能不停地查询,这反而会无谓地耗费 CPU 资源。而阻塞访问时,不能获取资源的进程将进入休眠,它将
CPU 资源让给其他进程。
因为阻塞的进程会进入休眠状态,因此,必须确保有一个地方能够唤醒休眠的进程。唤醒进程的地方
最大可能发生在中断里面,因为硬件资源获得的同时往往伴随着一个中断。
代码清单 8.1 和代码清单 8.2 分别演示了以阻塞和非阻塞方式读取串口一个字符的代码。实际的串口
编程中,若使用非阻塞模式,还可借助信号(sigaction)以异步方式访问串口以提高 CPU 利用率,而这里
仅仅是为了说明阻塞与非阻塞的区别。
- 《Linux设备驱动开发详解》第4章、Linux内核模块 0次下载
- 《Linux设备驱动开发详解》第5章、Linux文件系统与设备文件系统 0次下载
- 《Linux设备驱动开发详解》第6章、字符设备驱动 23次下载
- 《Linux设备驱动开发详解》第7章、Linux设备驱动中的并发控制 10次下载
- 《Linux设备驱动开发详解》第9章、Linux设备驱动中的异步通知与异步IO 0次下载
- 《Linux设备驱动开发详解》第10章、中断与时钟PDF免费下载 0次下载
- 《Linux设备驱动开发详解》第11章、内存与IO访问 6次下载
- 《Linux设备驱动开发详解》第13章、Linux块设备驱动 18次下载
- 《Linux设备驱动开发详解》第14章、Linux终端设备驱动 8次下载
- 《Linux设备驱动开发详解》第15章、Linux的I2C核心、总线与设备驱动 8次下载
- 《Linux设备驱动开发详解》第16章、Linux网络设备驱动 5次下载
- 《Linux设备驱动开发详解》第17章、Linux音频设备驱动 17次下载
- 《Linux设备驱动开发详解》第18章、LCD设备驱动 13次下载
- 《Linux设备驱动开发详解》第20章、USB主机与设备驱动 8次下载
- 《Linux设备驱动开发详解》第23章、Linux设备驱动的移植 9次下载
- Linux 驱动开发与应用开发,你知道多少? 119次阅读
- 什么是阻塞和非阻塞? 358次阅读
- 一文总结linux的platform驱动 783次阅读
- Verilog中阻塞和非阻塞赋值金规 929次阅读
- 时序逻辑中的阻塞和非阻塞 2851次阅读
- VerilogHDL语言:清阻塞赋值和非阻塞赋值 1062次阅读
- IEEE Verilog阻塞赋值和非阻塞赋值的区别 1.1w次阅读
- 如何写一个Linux设备驱动程序 4314次阅读
- Linux设备驱动开发的基本知识 4260次阅读
- 米尔科技Linux设备驱动研究浅谈 1913次阅读
- 米尔科技LINUX设备驱动程序教程 1965次阅读
- 基于PXA255开发板外围字符设备的嵌入式Linux字符设备驱动设计与应用 1138次阅读
- 想要驾驭Linux驱动开发,必须深刻理解Linux总线设备驱动框架 1w次阅读
- 深入分析verilog阻塞和非阻塞赋值 1283次阅读
- 关于Linux设备驱动中input子系统的介绍 2663次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多