输入/输出系统
2025/12/3大约 2 分钟
第8章 输入/输出系统
I/O设备分类
- 按传输速度:
- 高速设备:磁盘、网卡等
- 中速设备:打印机等
- 低速设备:键盘、鼠标等
- 按信息交换单位:
- 字符设备:以字符为单位传输
- 块设备:以数据块为单位传输
- 按共享属性:
- 独占设备:同一时间只能被一个进程使用
- 共享设备:可被多个进程同时访问
- 虚拟设备:通过Spooling技术将独占设备虚拟为共享设备
I/O控制方式
- 程序控制方式(轮询):CPU不断查询设备状态
- 中断驱动方式:设备完成操作后发中断通知CPU
- DMA方式:直接内存访问,CPU只在开始和结束时介入
- 通道方式:专门的I/O处理器控制I/O操作
中断处理过程
- 中断响应:CPU检测到中断,保存当前执行状态
- 中断识别:确定中断源和优先级
- 中断处理:执行中断服务程序
- 中断返回:恢复原程序执行
Spooling技术(假脱机)
Spooling(Simultaneous Peripheral Operations On-Line)是通过磁盘作为中间存储,将独占设备虚拟为共享设备的技术。
- 输入井:磁盘上的输入缓冲区
- 输出井:磁盘上的输出缓冲区
- 输入缓冲区:内存中的输入缓冲区
- 输出缓冲区:内存中的输出缓冲区
Spooling系统的组成
- 输入井:磁盘上开出的一个存储区域,用来存放作业的输入数据
- 输出井:磁盘上开出的一个存储区域,用来存放作业的输出数据
- 输入进程:负责将作业从输入设备读入输入井
- 输出进程:负责将输出井中的结果输出到输出设备
Spooling技术的特点
- 提高了I/O速度:将低速I/O设备上的数据传送到高速磁盘上
- 将独占设备改造为共享设备:多个用户共享磁盘上的虚拟设备
- 实现了虚拟设备功能:每个用户都感觉自己在独占一台设备
缓冲区管理
什么是缓冲区?为什么需要?
- 用于临时存储 IO 数据
- 作用:
- 减少系统调用次数(降低开销)
- 平滑 IO 峰值
- 提高整体吞吐量
I/O多路复用
select、poll、epoll 区别?
- select:监听数量有限制(1024)
- poll:无数量限制,但每次扫描全部 FD
- epoll:事件驱动,只监听变化的 FD(性能最高)
中断机制
什么是中断?
- 硬件或软件向 CPU 发出的事件通知
- 异步发生,CPU 会保存当前状态并处理中断
- 用于 IO、时钟、系统调用等