第五章:输入输出管理¶
约 1513 个字 预计阅读时间 5 分钟
概念¶
按传输速率分类:低速设备(键盘,鼠标等),中速设备,高速设备。
按信息交换的单位分类:
- 块设备:传输快,可寻址
- 字符设备:传输慢,不可寻址,常采用中断驱动方式
设备控制器¶
组成:
- CPU 与控制器之间的接口
- IO逻辑
- 控制器与设备之间的接口
实现的功能:
- 接受和识别CPU 发出的命令
- 向 CPU 报告设备的状态
- 数据交换
- 地址识别
IO端口:设备控制器中的寄存器。
- 寄存器独立编址
- 统一编址:与内存地址统一编制
IO控制方式¶
程序直接控制方式:CPU 轮询检查,每次一个字。
中断驱动方式:CPU和IO可并行工作,每次一个字。
DMA方式(直接存储器存取,Direct Memory Access)
- 每次一个块或多个快(连续)
- 只在传送开始和结束时,需要CPU干预
- 数据 不经过 CPU,直接读入内存。
- 寄存器:数据计数器(DC,Data Counter),数据寄存器(DR,Data Register)
通道管理方式
- 通道:专门负责IO的处理机
- 每次一组块
软件层次结构¶
- 用户层软件:实现了与用户交互的接口
- 设备独立性软件:逻辑设备地址
- 设备驱动程序
- 中断处理程序
- 硬件
设备独立性¶
缓冲区¶
数据先输入到缓冲区,然后传送到用户区,再处理。
- 缓冲区空时,只能输入
- 缓冲区未空时,只能输出
- 读入缓冲区,送入用户区,处理数据
- 时间 = 不重合的部分 * 块数 + 重合的部分(一个)
单缓冲

双缓冲
有两个缓冲区,并行的两个缓冲区,可以一个读入,一个传送。

设备的分配与回收¶
设备的分类:独占设备,共享设备,虚拟设备。
一个「通道」控制多个「设备控制器」,一个设备控制器控制多个「设备」
数据结构
系统设备表(SDT,System Device Table):记录系统中全部设备的情况
设备控制表(DCT,Device Control Table):每个设备一张DCT,用于记录设备情况
控制器控制表(COCT,Controller of Control Table):每个设备控制器一张COCT
通道控制表(CHCT,Chanel Control Table):每个通道一张CHCT
设备分配的步骤
- 根据进程请求的「物理设备名」查找 系统设备表
- 根据 系统设备表 找到 设备控制表
- 根据 设备控制表 找到 控制器控制表
- 根据 控制器控制表 找到 通道控制表
增加一张「逻辑设备表」(LUT,Logical Unit Table):将逻辑设备名转化为物理设备名
假脱机技术(SPOOLing)¶
为了缓和 CPU 和 IO 设备速度之间的矛盾,引入了 脱机输入/输入技术
假脱机技术(SPOOLing技术):用软件模拟脱机技术。
- 输入过程:输入设备
->输入缓冲区->输入井 - 输出过程:输出井
->输出缓冲区->输出设备
用假脱机技术将「独占式设备」改造成「共享设备」
- 不直接分配给进程设备,用户进程实际分配到的是 外存区,即虚拟设备
- 在输出井中分配空间,暂存数据
磁盘¶
物理地址:可以用 (柱面号,盘面号,扇区号) 来表示一个磁盘块。
- 盘面号:哪一层
- 柱面号:某层的哪一圈
- 扇区号:某层的某圈的那一扇

磁盘的管理:磁盘初始化,分区,引导块,坏块。
磁盘调度算法¶
一次磁盘的读写
寻道时间:找到柱面(哪一圈)
- 磁头臂启动时间为 s
- 跨越一个磁道耗时 m,跨 n 个
- 时间 \(= s + m * n\)
延迟时间:找到扇区(哪一扇)
-
转一圈的时间为 \(\frac{1}{r}\) ,平均转半圈。
-
平均延迟时间 \(= \frac{1}{2} * \frac{1}{r}\)
传输时间:写入数据的时间
- 假设磁盘转速为 r ,写入的字节数为 b,每个磁道上的字节数为 N
- 转一圈的时间为 \(\frac{1}{r}\) ,转 \(\frac{b}{N}\) 圈
- 时间 \(= \frac{1}{r} * \frac{b}{N}\)
先来先服务(FCFS)
按先后顺序进行处理
最短寻找时间优先(SSTF)
先处理与当前磁头最近的磁道
优点:性能较好,平均寻道时间短
缺点:可能会饥饿
扫描算法(SCAN)
只有磁头移动到 最外侧磁道 的时候才能往内移动,移动到 最内侧磁道 的时候才能往外移动。
像扫描一样,从内到外,从外到内,周而复始。
优点:性能较好,平均寻道时间较短,不会饥饿
LOOK算法
扫面算法的改进,如果在磁头移动方向上已经没有别的请求,就改变移动方向
循环扫描算法(C-SCAN)
规定只有磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端市不处理任何请求。
C-LOOK算法
循环扫描算法的改进,如果在磁头移动方向上已经没有别的请求,就改变移动方向
降低延迟时间的方法:读完一个扇区后需要一段时间处理才能读下一个
- 交替编号:让编号相邻的 扇区 在物理上不相邻
- 错位命名:让相邻 盘面 的扇区编号错位
固态硬盘(SSD)¶
原理
基于闪存技术 Flash Memory,属于电可擦除ROM,即 EEPROM
读写性能特征
以 页(page)为单位读写,以 块(block)为单位“擦除”
支持随机访问,读快、写慢。
磨损均衡技术
将 “擦除” 平均分布在各个块上,以提升使用寿命
- 动态磨损均衡:写入数据时,优先擦除次数少的
- 静态磨损均衡:让老旧的闪存块承担储存任务,新的闪存块承担写任务。
Last update: April 24, 2026
Discussion