三种常见的设备接口类型
- 字符设备(键盘鼠标、串口等)
- 块设备(磁盘、磁带、光驱等)
- 网络设备(以太网、无线等)
- 阻塞IO
Wait
:读数据时,进程进入等待状态,直到数据读取完成;写数据时,进程进入等待状态,直到设备完成数据写入 - 非阻塞IO
Don't Wait
:立即从读写系统调用返回,返回值成功传输字节数 - 异步IO
Tell me later
:读数据时,使用指针标记好数据缓存区,立即返回,稍后内核将填充缓冲区并通知用户
;写数据时,使用指针标记好用户缓冲区,立即返回,稍后内核将处理数据并返回给用户
。
设备 -> 设备控制器 -> 设备驱动 -> IO子系统 -> 内核
- 缓存:数据传输双方访问速度差距较大,引入的速度匹配中间层。磁盘缓存是磁盘扇区在内存中的缓冲区