计算机系统的一个重要组成部分是 I / O 系统。
I / O 系统包括:
- 输入、输出设备
- 存储功能的设备
- 设备控制器
一、设备管理的概念
设备管理程序提供下述功能:
- 提供和进程管理系统的接口
- 进行设备分配
- 实现设备和设备之间、设备和CPU之间的并行操作
- 进行缓冲区管理
二、I / O 控制方式
(1)程序 I / O 方式:CPU每传入一个字或者一个位都需要CPU控制,无并行能力
(2)中断控制 I / O 方式:有个设备与CPU具有并行能力,如打印机、扫描仪
(3)直接存储器访问(DMA)方式:一次传一个块
(4)I / O 通道控制方式:适用于巨型机、大型机,不能用于计算,只能用于 I / O 控制
- 字节多路通道
- 选择通道
- 成组多路通道
三、缓冲弄个管理
引入缓冲区的主要原因:
- 缓和 CPU 与 I / O 设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 提高CPU 和 I / O 设备之间的并行性。
(1)单缓冲
在单缓冲情况下,每当用户进程发出 I / O 请求时,OS便在主存中为之分配一缓冲区。
在字符设备输入时,缓冲区用于暂存用户输入的一行数据,在输入期间,用户程序被挂起以等待数据输入完毕;在输出时,用户进程将一行数据输入到缓冲区后,继续执行处理。当用户进程已有第二行数据输出时,如果第一行数据尚未被提取完毕,则此时用户进程应阻塞。
(2)多缓冲
为了加快输入和输出速度,提高设备利用率,引入双缓冲机制。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时OS可以从第一缓冲区中移除数据,并送入用户进程。
(3)循环缓冲
具有多个大小相同的缓冲区,缓冲区有三种类型:
- 用于装输入数据的空缓冲区R
- 已装满数据的缓冲区G
- 计算进程正在使用的现行工作缓冲区C
(4)缓冲池
对于既可输入又可输出的公用缓冲池,至少应含三种类型缓冲区:
- 空缓冲区
- 装满输入数据的缓冲区
- 装满输出数据的缓冲区
四、设备分配
1、设备分配原则:
- 静态分配(不会发生死锁现象)
- 动态分配
2、设备分配策略
- 先请求先分配
- 优先级高者优先分配
五、磁盘管理
查找文件存放位置需要三个参数:
- 柱面号(磁道号):不同的盘面相同的磁道组成
- 盘面号(磁头号)
- 扇区号
1、磁盘的访问时间
- 寻道时间Ts:把磁臂从当前位置移到指定磁道上所经历的时间
- 旋转延迟时间Tr:指定扇区移动到磁头下面所经历的时间
- 传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间
在访问时间中,寻道时间和旋转延迟时间通常占据了访问时间的大头,适当的集中数据传输,有利于提高传输效率。
(1)先来先服务(FCFS)
- 优点:公平、简单,且每个进程的请求都能依次得到处理,不会出现某一个进程的请求长期得不到满足的情况。
- 缺点:未对寻道进行优化,致使寻道时间可能比较长,仅适用于请求磁盘 I / O 的进程数目较少的场合。
(2)最短寻道时间优先(SSTF)
优先满足访问磁道与当前磁头所在磁道距离最近的进程,使每次的寻道时间最短。不能保证平均寻道时间最短。
(3)扫描(SCAN)算法(电梯调度算法)
能够得到较好的寻道性能,寻道时间比较短。
当磁头刚从里到外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。
(4)循环扫描CSCAN算法
为了减少请求进程的延迟,CSCAN算法规定磁头单向移动。
五、虚设备与SPOOLing技术
为缓和CPU的高速性与 I / O 设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速设备上的数据传送到高速磁盘上;或者相反。
- 输入井和输出井。是磁盘上开辟的两个大存储空间。
- 输入缓冲区和输出缓冲区。在内存中开辟两个缓冲区,输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备。
- 输入进程和输出进程。利用两个进程模拟脱机 I / O 时的外围处理机。
特点:
- 提高了 I / O 的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和 I / O 设备速度不匹配的矛盾。
- 将独占设备改造为共享设备。
- 实现了虚拟设备功能。多个进程同时使用一台独占设备,虚拟成了多台设备。