一、IO系统
1.1.IO系统包括:
- 输入、输出设备
- 存储功能的设备
- 设备控制器
二、设备管理的概念
2.1.设备管理程序的功能
- 提供和进程管理系统的接口
- 进行设备分配
- 实现设备和设备之间、设备和CPU之间的并行操作
- 进行缓冲区管理
三、IO控制方式
3.1.IO控制方式分类
- 程序I/O方式
- 中断控制I/O方式
- 直接存储器访问(DMA)方式
- I/O通道控制方式
- 字节多路通道
- 选择通道
- 成组多路通道
四、缓冲管理
4.1.缓冲分类
- 单缓冲
- 多缓冲
- 循环缓冲
- 缓冲池(Buffer Pool)
4.2.引入缓冲区的原因
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
- 提高CPU和I/O设备之间的并行性
4.3.单缓冲
-
在单缓冲情况下,每当用户进程发出一I/O请求时,OS便在主存中为之分配一缓冲区
-
在字符设备输入时,缓冲区用于暂存用户输入的一行数据,在输入期间,用户进程被挂起以等待数据输入完毕;在输出时,用户进程将一行数据输入到缓冲区后,继续执行处理。当用户进程已有第二行数据输出时,如果第一行数据尚未被提取完毕,则此时用户进程应阻塞
4.4.双缓冲
- 为了加快输入和输出速度,提高设备利用率,人们又引入了双缓冲机制,也称为缓冲对换。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。此时OS可以从第一缓冲区中移出数据,并送入用户进程
4.3.循环缓冲区
- 循环缓冲有多个大小相同的缓冲区,缓冲区有三种类型:
- 用于装输入数据的空缓冲区R
- 已装满数据的缓冲区G
- 计算进程正在使用的现行工作缓冲区G
4.4.缓冲池(Buffer Pool)
- 对于既可输入又可输出的公用缓冲池,至少应含三种类型缓冲区
- 空缓冲区
- 装满输入数据的缓冲区
- 装满输出数据的缓冲区
五、设备的分配
5.1.设备分配原则
- 静态分配
- 动态分配
5.2.设备分配策略
- 先请求先分配
- 优先级高者先分配
六、磁盘管理
6.1.查找文件所需条件
- 柱面号(磁道号)
- 盘面号(磁头号)
- 扇区
6.2.磁盘的访问时间
-
寻道时间Ts:把磁臂从当前位置移到指定磁道上所经历的时间
-
旋转延迟时间Tr:指定扇区移动到磁头下面所经历的时间
-
传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间
-
在访问时间中,寻道时间和旋转延迟时间,通常是占据了访问时间的大头。适当地集中数据传输,将有利于提高传输效率
6.3.磁盘调度算法
- 先来先服务
- 最短寻道时间优先
- 扫描(SCAN)算法(电梯调度算法)
- 循环扫描CSCAN
6.4.先来先服务
-
根据进程请求访问磁盘地先后次序进行调度
-
优点:公平、简单,且每个进程地请求都能依次得到处理,不会出现某一进程地请求长期得不到满足的情况
-
缺点:未对寻道进行优化,致使平均寻道时间可能较长。仅适用于请求磁盘I/O的进程数目较少的场合
6.5.最短寻道时间优先SSTF
- 优先满足访问磁道与当前磁头所在磁道距离最近的进程,以使每次的寻道时间最短
- 问题:可能导致某些进程发生“饥饿”。因为只要不断有所要访问的磁道与磁头当前所在磁道的距离较近的新进程到达,就会出现“老进程饥饿”现象。这种调度算法不能保证平均寻道时间最短
6.6.扫描(SCAN)算法(电梯调度算法)
- SCAN算法中磁头移动规律似电梯的运行,又称为电梯调度算法。算法既能获得较好的寻道性能,又能防止进程饥饿,被广泛用于大、中、小型机和网络中的磁盘调度
- 问题:当磁头刚从里向外移动某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重的推迟
6.7.循环扫描CSCAN
- 为了减少请求进程的延迟,CSCAN算法规定磁头单向移动。若规定只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描
七、虚设备与SPOOLing技术
7.1.原理
- 为缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速设备上的数据传送到高速磁盘上;或者相反。
- 这样可以在主机的直接控制下实现脱机输入输出,此时外围操作与CPU对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作
7.2.SPOOLing构成:
- 输入井和输出井,是磁盘上开辟的两个大存储空间
- 输入缓冲区和输出缓冲区。在内存中开辟两个缓冲区,输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备
- 输入进程和输出进程,利用两个进程模拟脱机I/O时的外围处理机
7.3.SPOOLing系统特点:
- 提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾
- 将独占设备改造为共享设备
- 实现了虚拟设备功能。多个进程同时使用一台独占设备,虚拟成了多台设备