操作系统 --- 磁盘调度算法


多道环境下,进程并发运行随机提出 I/O 请求,需要操作系统为每个磁盘维护一个访问请求队列。如何选择者就是 磁盘调度算法 。磁盘调度算法考虑的就是使得平均寻道时间最短 。

例题:假定磁盘有200个磁道,当前有9个访问者(进程)先后提出IO操作,需要访问的磁道分别为:55,58,39,18,90,160,150,38,184,又假定当前磁头位置为100#。磁头正从外向里运动。

1、先来先服务调度算法(FCFS)

按请求访问者的先后顺序
在这里插入图片描述优点:这个策略是公平的,每个请求都会得到处理
缺点:该算法本身出发点未考虑寻道优化,性能接近于随机调度,因此性能很差。

2、最短寻找时间调度算法(SSTF)

选择寻找时间最短的访问者调度
策略:选择使磁头臂从当前位置开始移动距离最短的IO访问者,即最短寻道时间的请求者,
问题:每次选择距离最短者同时,忽略了可能由于不断的有新的IO请求进程加入队列中,且与当前磁头位置较近,会使得原请求队列中的距离远的访问者总得不到调度,产生"饥饿现象"。
在这里插入图片描述

3、电梯调度算法(SCAN)

从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个柱面的访问者

磁道编号是从外到里的,即由内到外磁道号越来越小。
从当前所在磁道号,从外向里运动,再从里向外运动,或反之。这样就避免了饥饿现象,由于这种移臂调度规律颇似电梯的运动,因而称为电梯算法。

在这里插入图片描述

4、循环扫描算法(CSCAN)

为了减少这种延迟,规定磁头单向读 为了减少这种延迟,规定磁头单向读/写运动 写运动 (如只能由内向外),完成读写后 ,立即返到最小/大磁道号的位置 (构成循环 ),再进行扫描。即 CSCAN算法。
在这里插入图片描述

5、磁盘调度算法练习题

题目:
在这里插入图片描述答案:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44571270/article/details/105901892