向勇 陈渝 李国良
2022年春季
包含上述外设的嵌入式开发板
字符设备:如GPIO, 键盘/鼠标, 串口等
GPIO LED light
键盘
字符设备:如GPIO, 键盘/鼠标, 串口等 UART 串口通信
块设备:如: 磁盘驱动器、磁带驱动器、光驱等 磁盘
网络设备:如ethernet、wifi、bluetooth 等 网卡
字符设备
块设备
网络设备
程序控制 I/O(PIO, Programmed I/O)
中断传输方式
DMA 传输方式
基于轮询的抽象设备接口:状态 命令 数据
基于中断的抽象设备接口:状态 命令 数据 中断
基于文件的 I/O 设备抽象
基于流的 I/O 设备抽象
基于virtio的 I/O 设备抽象
当一个用户进程发出一个 read I/O 系统调用时,主要经历两个阶段:
基于阻塞 I/O(blocking I/O)模型的文件读系统调用–read 的执行过程是:
基于非阻塞 IO(non-blocking I/O)模型的文件读系统调用–read 的执行过程:
所以,在非阻塞式 I/O 的特点是用户进程不会被内核阻塞,而是需要不断的主动询问内核所需数据准备好了没有。
多路复用 I/O(I/O multiplexing)的文件读系统调用–read 的执行过程:
此模型的特点是,采用了回调机制,这样开发和调试应用的难度加大。