第四章 设备管理
4.1 I/O系统
★ 设备管理的基本功能
- 为进程管理计算机系统提供接口;
- 按照相关算法分配和释放I/O设备;
- 实现CPU和I/O设备之间、I/O设备和I/O设备之间的并行操作;
- 实现其它功能,如缓冲区的管理、实现设备的独立性、虚拟性等。
★ 设备的分类
- 使用特性(存储设备、输入输出设备)
- 传输速率(低速,中速,高速)
- 信息交换单位(块设备、字符设备)
- 共享属性(独占设备、共享设备、虚拟设备)
★ 块设备 vs 字符设备
块设备 :用于存储信息;信息存取的基本单位是数据块;传输速率高且可寻址
字符设备:用于数据的输入输出;基本单位是字符;传输速率较低且不可寻址
★ 设备控制器
概念:CPU与I/O设备之间的接口;可控制一个或多个设备;可编址设备,设备地址与设备一一对应
基本功能包括:接收和识别命令、数据交换、标识和报告设备的状态、地址识别、数据缓冲和差错控制。
4.2 I/O控制方式
★ 程序I/O方式
CPU代表进程给I/O模块发送I/O命令,该进程进入忙等待,等待操作完成,才可以继续执行。
★ 中断驱动I/O
CPU代表进程给I/O模块发送I/O命令,然后,如果该进程不需要等待I/O,则继续执行后续指令,否则当前进程阻塞,CPU调度其他进程。I/O模块完成操作后,处理器被该模块中断。
★ DMA控制方式
在外围设备和内存之间开辟直接的数据交换通路,成批地进行数据交换,减轻 CPU处理负担。(基本单位:数据块)
(即可以在没有处理器参与的情况下,从内存中移出或者往内存中移入一块数据,仅在传送开始和结束时要用到处理器)
. | 无中断 | 使用中断 |
---|---|---|
通过处理器实现I/O和内存间的传送 | 程序控制I/O | 中断驱动I/O |
I/O和内存间直接传送 | 直接存储器访问 | (DMA) |
★ DMA控制方式与中断控制方式的区别:
. | DMA控制方式 | 中断驱动方式 |
---|---|---|
中断频率 | 一块数据全部传送结束时才中断CPU | 每次传输一个数据即产生中断 |
数据传输 | 数据传送在DMA控制器的控制下完成 | 数据传送在中断处理时由CPU控制完成 |
★ I/O通道控制方式
通道通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序由一系列通道指令(或称为通道命令)所构成的。
与DMA控制方式的区别:
DMA控制方式需要CPU来控制传输的方向、数据块大小和传输的内存位置,而通道控
制程序中这些信息是由通道控制的。
4.3 缓冲管理
★ 缓冲的引入
(如果一个进程发出一个I/O命令并被挂起等待结果,然后在开始I/O操作前被换出,那么该进程被阻塞,其等待I/O事件的发生,I/O操作也被阻塞,它等待该进程被换入。为避免死锁,在发出I/O请求前,参与I/O操作的用户存储空间必须被立即锁定在内存中,即使这个I/O操作正在排队,并且在一段时间内不会执行。同样的考虑也适用于输出操作。所以,为避免这些开销和低效操作,在输入请求发出前就开始执行输入传送,并且在输出请求发出一段时间之后才开始执行输出传送。)
- 缓和CPU与I/O设备之间速度不匹配的矛盾
- 减少对CPU的中断频率
- 提高CPU和I/O设备之间的并行性
★ 缓冲的类型
无缓冲:
单缓冲:
输入传送的数据被放到系统缓冲区中。当传送完成时,进程把该块移到用户空间,并立即请求另一块(这叫做预读或预先输入)。这样做的原因时期望这块数据最终会被使用。由于输入发生在系统内存中而不是用户进程内存,因此操作系统可以将该进程换出。
双缓冲/缓冲对换:
多缓冲(循环缓冲、多缓冲队列)
★ SPOOLing技术(磁盘中的缓冲)
在磁盘中建立I/O缓冲区,缓和CPU的高速性与I/O设备低速性间的矛盾。
在联机(即CPU控制)情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作;
通过SPOOLing技术便可将一台独占物理I/O设备虚拟为多台逻辑I/O设备,从而允许多个用户共享一台物理I/O设备。
组成:输入(输出)进程;输入(输出)井;输入(输出)缓冲
4.4 设备管理软件层次结构
(1)用户进程
(2)设备硬件无关层:实现设备映射功能,把逻辑I/O设备映射到物理I/O设备
设备独立性/设备无关性:应用程序独立于具体使用的物理设备
(3)设备硬件相关层:实现设备驱动功能,控制物理I/O设备以便完成实际的I/O操作
(4)设备硬件
4.5 设备分配
设备分配算法:
- 先来先服务
- 优先级高者优先
安全性: - 安全分配方式
- 不安全分配方式
4.6 磁盘存储器管理
磁盘访问时间 = 寻道时间 + 旋转延迟时间 + 传输时间
寻道时间TS = m * n + s (m-常数,n-移动磁道数,s-启动磁臂时间)
旋转延迟Tr = 1/(2r) (r-磁盘转速-单位:转数/单位时间)
传输时间Tt= b/(rN) (b-每次读写的字节数,r-磁盘转速,N-一条磁道上的字节数)
磁盘调度算法:
4.7 RAID
由来:辅存性能的提高速度远远低于处理器和内存性能的提高速度,那么可以通过使用多个并行的组件来获得额外的性能。-------> 独立并行运行的磁盘阵列的开发
独立磁盘冗余阵列(Redundant Array of Independent Disks)RAID