操作系统--分别用FCFS,SSTF,SCAN,CSCAN算法计算总寻道长度和平均寻道长度例题(详细)

题目:

若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下:55,58,39,18,90,160,150,38,184。分别采用先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN),分别求总寻道长度和平均寻道长度?

解析:

移臂调度算法在于有效利用磁盘,保证磁盘的快速访问。移臂调度主要有以下几种算法:

先来先服务算法(FCFS): 该算法只考虑访问请求的先后顺序。如上题当前位置为100,则顺序为(100),55,58,39,18,90,160,150,38,184。如下表所示:

被访问的下一个磁道号 移动距离(磁道数)
55 45
58 3
39 19
18 21
90 72
160 70
150 10
38 112
184 146

因此磁头总寻道长度: (100-55)+(58-55)+(58-39)+(39-18)+(90-18)+(160-90)+(160-150)+(150-38)+(184-38)= 498平均移动磁道数: 498/9 =55.3

最短寻道时间优先算法(SSTF): 从等待的访问者中挑选寻找时间最短的那个请求执行。如上题当前位置为100,则顺序为(100),90, 58,55,39,38,18,150,160,184。如下表所示:

被访问的下一个磁道号 移动距离(磁道数)
90 10
58 32
55 3
39 16
38 1
18 20
150 132
160 10
184 24

因此磁头总寻道长度: (100-18)+(184-18)=248平均移动磁道数: 248/9= 27.5
缺点:产生饥饿现象

扫描算法(SCAN): 自里向外访问,直到再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。如上题当前位置为100,则顺序为(100),150,160,184,90,58,55,39,38,18。如下表所示:

被访问的下一个磁道号 移动距离(磁道数)
150 50
160 10
184 24
90 94
58 32
55 3
39 16
38 1
18 20

因此磁头总寻道长度: (184-100)+(184-18)=250平均移动磁道数: 250/9= 27.8
优点:不会产生饥饿现象

循环扫描算法(CSCAN): 单向扫描,自里向外扫描,当磁头移动到最外面的磁道并访问后,磁头立即返回到最里面的预访问磁道,即将最小磁道号紧接着最大磁道号构成循环。如上题当前位置为100,则顺序为(100),150,160,184,18,38,39,55,58,90。如下表所示:

被访问的下一个磁道号 移动距离(磁道数)
150 50
160 10
184 24
18 166
38 20
39 1
55 16
58 3
90 32

因此磁头总寻道长度: (184-100)+(184-18)+(90-18)=322平均移动磁道数: 322/9= 35.8
优点:具有较好的寻道性能;且不会产生饥饿现象|

你可能感兴趣的:(操作系统期末复习,操作系统)