IO应用程序接口&设备驱动程序接口
一、输入/输出应用程序接口
背景:在设备独立软件层向上提供各种各样的输入/输出应用程序接口的原因是:
用户层的应用程序无法用一个统一的系统调用接囗来完成所有类型设备的 I/O
三种输入/输出应用程序接口:
- 字符设备接口
- 块设备接口
- 网络设备接口
其中网络设备接口相关过程如下:
二、阻塞I/O 和 非阻塞I/O
-
阻塞 I/O:应用程序发出 I/O 系统调用,进程需转为阻塞态等待。
eg:字符设备接口——从键盘读一个字符 get
-
非阻塞 I/O:应用程序发出 I/O 系统调用,系统调用可迅速返回,进程无需阻塞等待。
eg:块设备接口——往磁盘写数据 write
(补充:上文对阻塞和非阻塞的 I/O 介绍较浅,以下参考网上(虽然也不够全面就是了))
参考:https://blog.csdn.net/weixin_58809023/article/details/140418502
三、设备驱动程序接口
理解:这里提到的不同设备的驱动程序接口所统一实现的角度是从特定的操作系统而言,是上一节的驱动程序的相关实现的更进一步(比较抽象)