I/O基本概念
- I/O系统的主要对象:I/O设备和对应的设备控制器
- I/O系统的主要任务
- 完成用户提出的I/O请求
- 提高I/O速率
- 改善I/O设备的利用率
- I/O系统的基本功能
- 隐藏物理设备的细节
- 与设备的无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制
- 确保对设备的正确共享
- 错误处理
- 设备独立性:应用程序独立于具体使用的物理设备
- 在应用程序中使用逻辑设备名来请求使用某类设备
- I/O系统的核心是I/O管理和控制
- I/O应用接口
- I/系统调用 将设备的行为 封装成一些通用类型
- 设备驱动层对内核隐藏了I/O控制器的不同细节
- 设备在许多方面有很大差异
I/O控制方式
- 对I/O设备的控制方式
- 使用轮询的可编程I/O方式(基本不用)
- 使用中断的可编程I/O方式(广泛采用)
- 可使CPU与I/O设备并行工作
- 直接存储器访问(DMA)方式
- I/O通道控制方式
- 使用轮询的可编程I/O方式
- CPU定时发出询问,询问设别是否忙,进程进入忙等
- 不忙就进行I/O,否则转第一步
- 中断机制
- CPU执行完每一条指令后,检测IRL(CPU硬件中一根中断请求线)
- 若检测到信号,CPU保存当前状态,跳转到中断处理程序
- 执行中断处理程序
- 执行完后,清除中断,返回。
- 中断
- 中断interrupt是CPU对I/O设备发来中断信号的一种响应;陷入trap是CPU内部事件所引起的中断
- 中断向量表:每个设备的中断处理程序的入口地址等组成的表
- 中断优先级
- 中断源:引起中断的事件
- 直接存储器访问(DMA)方式:绕过CPU,直接在I/O设备和内存之间传输数据
I/O内核子系统
- 缓冲:几乎所有I/O设备在于CPU交换数据时,都用了缓冲区
- 缓冲区是一个存储区域
- 解决了设备之间的速度差异;协调传输数据大小不一致;维持“复制语义”。
- 高速缓存(Cache):保留数据拷贝的高速内存
- 与缓冲的区别:缓冲可能是数据的唯一一个副本;高速缓存是其他地方数据在高速存储上的一个副本。
- 假脱机SPOOLing
- 程序1模拟脱机输入,把低速I/O上的数据传送到高速磁盘上;程序2模拟脱机输出,把数据从磁盘传送到低速输出设备。
- 在联机情况下实现的同时外围操作称为假脱机技术SPOOLing
- I/O内核子系统
- 错误处理
- I/O保护:定义I/O指令为特权指令;应用程序的I/O操作必须通过系统调用实现
- 内核数据结构:文件打开表;网络连接;字符设备状态..