本科生操作系统原理学习记录
学习记录全家桶
第十三章 I/O系统
13.1 I/O基本概念
13.1.1 I/O系统的基本概述
I/O系统的核心是:I/O的控制和管理
计算机2个主要任务:
- I/O操作-更加频繁
- 计算
I/O设备特点:
- 种类繁多,不断有新设备出现
- 接口标准化:如USB
13.1.2 I/O系统的基本功能
- 隐藏物理设备的细节
- 与设备的无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制
- 确保对设备的正确共享
- 错误处理
设备独立性:
为了提高操作系统的可适应性和可扩展性
-
现代操作系统中实现了设备独立性,也称为设备无关性
-
应用程序独立于具体使用的物理设备
实现方法
-
引入逻辑设备和物理设备
-
在应用程序中 使用逻辑设备名来请求使用某类设备
-
而系统在实际执行时使用物理设备名
-
系统必须具有将逻辑设备名转换为物理设备名的功能
I/O应用接口
- I/O系统调用将设备的行为封装成一些通用类型
- 设备驱动层对内核隐藏了I/O控制器的不同细节
- 设备在许多方面有很大差异
13.1.3 I/O硬件控制
控制设备方法(通过设备地址):
- 直接I/O指令:IN AL, 60H
- 内存映射I/O:设备地址和内存地址同一编址
I/O寄存器:
- 状态寄存器
- 控制寄存器
13.1.4 I/O设备的类型
按使用特性分类:
- 存储设备、I/O设备
按传输速率分类
- 低速设备:键盘、鼠标器、语音的输入
- 中速设备:行式打印机、激光打印机
- 高速设备:磁带机、磁盘、光盘
按信息交换的单位分类
- 块设备、字符设备
按设备的共享属性分类
- 共享设备、独占设备
13.2 I/O设备的控制方式
使用轮询的I/O可编程方式:现在基本不用
使用中断的可编程I/O方式:可以使CPU与I/O设备并行工作
直接存储器访问DMA方式:进一步提高了CPU与I/O设备的并行操作程度
I/O通道控制方式
主频:3.0GHz
中断机制
CPU硬件上有一根中断请求线IRL
基本中断工作机制
- CPU执行完每条指令后,检测IRL
- 如检测到信号,CPU保存当前状态,并跳转到中断处理程序
- 执行中断处理程序
- 执行完后,清除中断,返回
中断处理程序
① 检测是否有未响应的中断信号
② 保护被中断进程的CPU环境
③ 转入相应的设备处理程序
④ 中断处理
⑤ 恢复CPU的现场并退出中断
DMA直接内存访问
为了避免用程序控制I/O来传输大量数据,需要
-
DMA控制器
-
绕过CPU,直接在I/O设备和内存之间传输数据
13.3 I/O内核子系统
提供了与I/O有关的服务,建立在硬件和设备驱动程序结构之上,还负责保护自己免受错误进程和恶意用户的危害
13.3.1 I/O调度
某些I/O请求要按照设备队列排序
于是就有类似于先来先服务算法的使用。
13.3.2 缓冲
现代的操作系统之中,CPU和I/O设备交换数据之间,都有缓冲区
缓冲区是一个存储区域,可以由专门的硬件组成;更多的是利用内存
引入缓冲的理由:
- 缓解I/O设备和高速设备之间的速度差异
- 协调数据传输数据大小不一致
- 维持“复制语义”
在CPU和I/O设备之间引入缓冲的理由:
- 缓和CPU与I/O设备之间速度不匹配的矛盾
- 减少CPU的中断频率,放宽中断响应时间的限制
- 提高CPU和I/O设备之间的并行性
13.3.3 高速缓存
cache——保留数据拷贝的高速内存
- 仅仅是一个拷贝
- 关键是性能问题
与缓冲的区别:
- 缓冲可能是数据的唯一一个副本
- 高速缓存是其他地方数据在高速存储设备上的一个副本
13.3.4 假脱机SPOOLing
为了缓和CPU的高速性与I/O设备的低速性间的矛盾而引入了脱机输入、脱机输出技术。
-
程序模拟脱机输入,把低速I/O设备上的数据传送到高速磁盘上
-
另一程序模拟脱机输出,把数据从磁盘传送到低速输出设备
此时,外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为假脱机技术SPOOLing
SPOOLing系统的组成
SPOOLing系统的特点
- 提高了I/O设备的速度
- 将独占设备改为共享设备
- 实现了虚拟设备的功能