输入输出管理
第五章_输入输出管理
5.1 I / O 管理概述
5.1.1 I / O 设备分类
I / O 设备分类:
-
按使用特性分类(无明确界限)
- 人机交互类外部设备
- 存储设备
- 网络通信设备
-
按传输速率分类(无明确界限)
- 低速设备
- 中速设备
- 高速设备
-
按信息交换的单位分类
- 块设备(传输快,可寻址)
- 字符设备(传输慢,不可寻址,常采用中断驱动方式)
5.1.2 I / O 接口(设备控制器)
I / O 接口主要实现以下功能:
- 接受和识别CPU发出的命令(要有控制寄存器)
- 向CPU报告设备的状态(要有状态寄存器)
- 数据交换(要有数据寄存器,暂存输入/输出的数据)
- 地址识别(由I/O逻辑实现)
其内部构造图与两种寄存器编址方式在《计算机组成原理》中已经介绍过,这里不再进行介绍,仅贴一张图:

5.1.3 I / O 控制方式
5.1.3.1 程序直接控制方式(程序查询方式)

5.1.3.2 中断驱动方式

5.1.3.3 DMA 方式
DMA 控制器的结构如下:
DMA 方式过程如下:

5.1.4 I / O 软件的结构层次
5.1.4.1 I / O 软件的结构层次
其中又能够细分为 I / O 核心子系统,如图所示:

5.1.4.2 输入输出应用程序接口(应用程序接口)
该层次结构主要目的有二:
- 让应用程序无需关心底层硬件的具体实现细节。
- 使新设备能够以模块化的方式方便的加入系统,而无需改动内核代码。
这里顺便提一句什么是 阻塞与非阻塞 I / O 设备:
- 阻塞 I/O:应用程序发出 I/O 系统调用,进程需转为阻塞态等待。 eg:字符设备接口 —— 从键盘读一个字符 get
- 非阻塞 I/O:应用程序发出 I/O 系统调用,系统调用可迅速返回,进程无需阻塞等待。 eg:块设备接口 —— 往磁盘写数据 write
5.1.4.3 驱动程序接口

5.1.4.4 假脱机技术(SPOOLing技术)
本小节思维导图如下:
假脱机技术是为了缓和 CPU 的高速性与 I / O 设备低速性之间的矛盾。其思想来源于早期的 脱机 I / O 方式:
在输入的时候,外围机将低速输入设备(如纸带机)上的数据预先读入高速磁盘。
在输出的时候,CPU 先将结果高速写入磁盘,再由外围机将数据送至低速输出设备(如打印机)。
而现代常用软件的方式对脱机技术进行实现,因此叫做 假脱机技术。假就体现在 以多道程序和磁盘空间代替外围机,进而将一台物理独占设备虚拟为多台逻辑设备,实现设备共享:
通过 共享打印机 这种案例进行进一步的熟悉:

5.1.4.5 设备的分配与回收
本小节思维导图如下:
首先关于设备的分配与回收,我们 需要考虑如下因素:
关于 数据分配有如下这些数据结构:
设备分配的步骤 如下:
关于上述步骤的缺点,我们还能够做如下这些 步骤改进:

5.1.4.6 缓冲区管理
本小节 思维导图 如下:
关于 缓冲区的作用,如图所示:
而缓冲区又分为单缓冲区和双缓冲区的情况,
单缓冲区 的情况如下图所示:
双缓冲区 的情况如下图所示:
不难理解,若采用单缓冲区的策略,在通信的时候,任一时刻只能实现数据的单向传输。若采用双缓冲区的策略,在通信的时候,同一时刻能够实现数据的双向传输。
另外关于 循环缓冲区 的概念,简单了解即可:
关于 缓冲池 的概念如下所示:

5.2 磁盘和固态硬盘
5.2.1 磁盘的结构
磁盘的结构 如图所示:
磁盘的分类 如图所示:

5.2.2 磁盘调度算法
本小节思维导图如下:
首先来看 一次磁盘寻址究竟涉及到哪些时间开销:

5.2.2.1 先来先服务算法(FCFS)

5.2.2.2 最短寻道时间优先算法(SSTF)

5.2.2.3 扫描算法(SCAN)

5.2.2.4 LOOK 算法

5.2.2.5 C-SCAN 算法

5.2.2.6 C-LOOK 算法

5.2.3 减少磁盘延迟时间的方法
前面说的磁盘调度算法,优化的只能是寻道时间,而下面介绍的是关于其他方面优化的方法。
本小节思维导图如下图所示:

5.2.3.1 交替编号

5.2.3.2 磁盘地址结构的设计

5.2.3.3 错位命名

5.2.4 磁盘的管理
磁盘刚开始使用要进行 磁盘的初始化,即低级格式化:
引导块 的概念如下:
注意:磁盘上专门存放引导程序的一块区域叫做引导块,不是 BIOS 芯片。
对于 坏块的处理 如下图所示:

5.2.5 固态硬盘
本小节思维导图如下:
固态硬盘(SSD)是一种基于闪存技术(前面讲过的 ROM)的存储设备。其存储介质与 U 盘 类似,但容量更大,存储性能更优。
而固态硬盘具体长下面这个样子,由于 “块、页” 等术语经常会在 408 中的不同地方出现,注意进行区分,可以把块看成磁盘中的磁道,页看成磁道对应的扇区。
最后放个图,机械硬盘(磁盘)和固态硬盘的真实样子:
