LV10-03-IO模型-01-驱动中的IO模型
本文主要是驱动中的IO模型的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows | windows11 |
Ubuntu | Ubuntu16.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
SecureCRT | Version 8.7.2 (x64 build 2214) - 正式版-2020年5月14日 |
Linux开发板 | 华清远见 底板: FS4412_DEV_V5 核心板: FS4412 V2 |
u-boot | 2013.01 |
点击查看本文参考资料
参考方向 | 参考原文 |
--- | --- |
点击查看相关文件下载
文件 | 下载链接 |
--- | --- |
IO 指的是 Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作,并非平时所指的GPIO引脚等。
一、阻塞IO
当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程序对应的线程挂起,直到设备资源可以获取为止。
二、非阻塞IO
对于非阻塞 IO,应用程序对应的线程不会挂起,它会一直轮询等待,直到设备资源可以使用,或者就直接放弃。
三、多路复用
其实也是一种阻塞IO,典型的特点就是外部阻塞式,内部监视多路IO。
四、信号驱动
这是一种异步通知,当数据准备好时,内核会发送一个进程会收到一个 SIGIO 信号,然后在信号处理函数中调用 I/O 操作函数处理数据。
五、异步IO
向内核注册操作请求,内核完成操作后给进程发送发通知信号。