磁盘调度算法(FCFS、SSTF)例题

一、原理

先来先服务(FCFS,first-come first-service)根据进程请求访问磁盘的先后次序进行调度。

最短寻道时间优先(SSTF,Shortest Seek Time First)选择访问的磁道与当前磁头所在的磁道距离最近的进程,以使每次的寻道时间最短。

注意(不论被访问的下一个磁道号是几,计算移动距离都是:大数减小数

二、例题

(一)FCFS调度算法 和 SSTF调度算法
若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下:55,58,39,18,90,160,150,38,184。分别采用先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),求总寻道长度和平均寻道长度。
磁盘调度算法(FCFS、SSTF)例题_第1张图片
因此磁头总寻道长度: (100-55)+(58-55)+(58-39)+(39-18)+(90-18)+(160-90)+(160-150)+(150-38)+(184-38)= 498,平均移动磁道数: 498/9 =55.3;
磁盘调度算法(FCFS、SSTF)例题_第2张图片
因此磁头总寻道长度: (100-18)+(184-18)=248,或者10 + 32 +3+ 16 +1+20 + 132 + 10 + 24=248,平均移动磁道数: 248/9= 27.5;
注: (100-18)+(184-18)为拿初始值减去最小值最大值减去最小值相加,这里碰巧了184为其中最大且为最后一个所以可以这样算,其原理可以从下图的例子看出
磁盘调度算法(FCFS、SSTF)例题_第3张图片
FCFS,SSTF,SCAN,CSCAN算法计算总寻道长度和平均寻道长度例题
磁盘调度算法带图详解

(二)若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。
(1)先来先服务算法;
(2)最短寻找时间优先算法。
答:
(1)40 → 20 → 44 → 40 → 4 → 80 → 12 → 76
距离:(20)(24)(4)(36)(76)(68)(64) 共移动292柱面
(2)40 → 44 → 20 → 12 → 4 → 76 → 80
距离:(4)(24)(8)(8)(72) (4) 共移动120柱面

(三)【2018腾讯秋招题目】若磁头当前位置为100磁道,磁头由外向内移动,现有一磁盘读写请求队列(共12个):23,376,205,132,19,61,190,398,29,4,18,40。若采用先来先服务、最短寻道时间优先算法,试计算出平均寻道长度各为多少?
答:
(1)算法思想:
FCFS算法(先来先服务)的思想是根据磁盘读写请求的先后次序来访问。
SSTF算法(最短寻道时间优先)的思想是每次总是寻找离当前柱面(或磁道)最近的优先访问。

(2)平均寻道分析
采用FCFS处理次序为:100-23-376-205-132-19-61-190-398-29-4-18-40,因此磁头移动磁道总数为(100-23)+(376-23)+(376-205)+ (205-132)+(132-19)+(61-19)+(190-61)+(398-190)+(398-29)+(29-4)+(18-4)+(40-18) = 1596。总柱面数为:1596,因此平均寻道长度为1596/12=133。

采用SSTF处理次序为:100-132-190-205-61-40-29-23-19-18-4-376-398,因此磁头移动磁道总数为(132-100)+(190-132)+(205-190)+(205-61)+(61-40)+(40-29)+(29-23)+(23-19)+(19-18)+(18-4)+(376-4)+(398-376)=700。总柱面数为:700,因此平均寻道长度为700/12≈58.3。

你可能感兴趣的:(操作系统基础知识,操作系统,磁盘调度算法,FCFS,SSTF,算法)