假定有一个具有200个磁道(0-199磁道)的移动头磁盘,在完成了125磁道的请求后,当前正在磁道143处为一个请求服务。若请求队列请求的读写磁道为: 86,147,91,177,94,150,102,175,130,对于下列每种磁盘调度算法FCFS,SSTF,SCAN,C-SCAN,求磁头总寻道长度、平均寻道长度各是多少?
时间: 2024-03-14 14:50:04 浏览: 164
首先需要说明的是,磁头总寻道长度和平均寻道长度都是以磁道数为单位的。
其次,FCFS调度算法是先来先服务,按照请求的顺序依次处理。SSTF调度算法是最短寻道优先,每次选择离当前磁头最近的磁道进行访问。SCAN调度算法是电梯算法,磁头先向一个方向移动,直到最边缘,然后改变方向继续移动,直到处理完所有请求。C-SCAN调度算法也是电梯算法,不同之处在于磁头到达最边缘时直接返回起点,继续处理请求。
对于给定的请求序列,各算法的磁头总寻道长度和平均寻道长度如下表所示(假设每次磁头移动1个磁道):
|调度算法|磁头总寻道长度|平均寻道长度|
|:-----:|:--------:|:-------:|
| FCFS | 862 | 86.2 |
| SSTF | 592 | 59.2 |
| SCAN | 876 | 87.6 |
|C-SCAN | 886 | 88.6 |
因此,SSTF调度算法的磁头总寻道长度最短,平均寻道长度最小,是最优的选择。
相关问题
请简述设备分配过程 二、假定有一个具有200个磁道(0-199磁道)的移动头磁盘,在完成了125磁道的请求后,当前正在磁道143处为一个请求服务。若请求队列请求的读写磁道为: 86,147,91,177,94,150,102,175,130,对于下列每种磁盘调度算法FCFS,SSTF,SCAN,C-SCAN,求磁头总寻道长度、平均寻道长度各是多少?
一、设备分配过程:
设备分配是指操作系统为进程分配所需的资源,其中包括CPU、内存、I/O设备等。设备分配过程主要包括以下几个步骤:
1. 请求资源:进程向操作系统提出请求所需的资源,包括设备名称、数量等。
2. 分配资源:操作系统根据请求的资源类型、数量等信息进行资源分配,如果资源已经被占用,则进程等待。
3. 占用资源:进程获得资源后,开始使用该资源进行相应的操作。
4. 释放资源:进程使用完资源后,释放该资源,使其可以被其他进程使用。
二、磁盘调度算法:
1. FCFS(先来先服务):按照磁盘请求的先后顺序进行服务,没有优先级的概念。
2. SSTF(最短寻道时间优先):选择距离当前磁道最近的请求进行服务,每次选择完后重新计算距离。
3. SCAN(扫描):按照一个方向进行磁盘寻道服务,直到该方向的终点,然后改变方向,继续服务,直到服务完所有请求。
4. C-SCAN(循环扫描):与SCAN类似,但是在一个方向的终点时,直接跳到另一个方向的起点,然后继续服务。
三、解题过程:
1. FCFS算法:
磁头总寻道长度 = |143-86| + |86-147| + |147-91| + |91-177| + |177-94| + |94-150| + |150-102| + |102-175| + |175-130|
= 1029
平均寻道长度 = 磁头总寻道长度 / 请求的磁道数 = 1029 / 9 ≈ 114.33
2. SSTF算法:
按照距离当前磁道最近的请求进行服务,每次选择完后重新计算距离。
首先服务请求147,然后是150、130、175、177、94、91、102、86。
磁头总寻道长度 = |143-147| + |147-150| + |150-130| + |130-175| + |175-177| + |177-94| + |94-91| + |91-102| + |102-86|
= 278
平均寻道长度 = 磁头总寻道长度 / 请求的磁道数 = 278 / 9 ≈ 30.89
3. SCAN算法:
按照一个方向进行磁盘寻道服务,直到该方向的终点,然后改变方向,继续服务,直到服务完所有请求。
在本题中,当前正在磁道143处,向磁道0的方向服务,直到磁道0,然后改变方向,服务到磁道199。
服务请求86、0、91、94、102、130、147、150、175、177、199。
磁头总寻道长度 = |143-86| + 86 + |91-0| + |94-91| + |102-94| + |130-102| + |147-130| + |150-147| + |175-150| + |177-175| + 199-177|
= 1214
平均寻道长度 = 磁头总寻道长度 / 请求的磁道数 = 1214 / 10 = 121.4
4. C-SCAN算法:
与SCAN类似,但是在一个方向的终点时,直接跳到另一个方向的起点,然后继续服务。
在本题中,当前正在磁道143处,向磁道0的方向服务,直到磁道0,然后跳到磁道199的起点,服务到磁道86。
服务请求86、91、94、102、130、147、150、175、177、199、0。
磁头总寻道长度 = |143-86| + |91-86| + |94-91| + |102-94| + |130-102| + |147-130| + |150-147| + |175-150| + |177-175| + |199-177| + 199
= 1234
平均寻道长度 = 磁头总寻道长度 / 请求的磁道数 = 1234 / 11 ≈ 112.18
综上所述,FCFS算法的平均寻道长度最大,SSTF算法的平均寻道长度最小,SCAN算法和C-SCAN算法的平均寻道长度相对较大。
假定磁盘有200个磁道,当前有8个进程先后提出I/O操作,需要访问的磁道分别为:98,183,37,122,14,124,65,67,当前读写头起始位置为53,正在向小号移动。请采用扫描算法,计算总的磁头移动次数是多少?
根据扫描算法,磁头按一个方向移动,直到到达磁盘的一端,然后改变方向,继续移动,直到到达另一端。在这个过程中,磁头会经过所有需要访问的磁道。
根据题目,当前读写头起始位置为53,正在向小号移动,因此我们需要先将需要访问的磁道按照距离当前位置的距离从小到大排序。排序后的磁道为:65,67,37,14,98,122,124,183。
然后我们按照扫描算法的规则,从当前位置53开始,向小号方向移动,直到到达磁盘的一端,再改变方向,继续移动,直到经过所有需要访问的磁道。在这个过程中,磁头移动的距离就是总的磁头移动次数。
具体计算过程如下:
1. 从53到0,移动距离为53。
2. 从0到14,移动距离为14。
3. 从14到37,移动距离为23。
4. 从37到65,移动距离为28。
5. 从65到98,移动距离为33。
6. 从98到122,移动距离为24。
7. 从122到124,移动距离为2。
8. 从124到183,移动距离为59。
9. 从183到200,移动距离为17。
10. 从200到67,移动距离为133。
11. 从67到53,移动距离为14。
总的磁头移动距离为:53+14+23+28+33+24+2+59+17+133+14=380。
因此,总的磁头移动次数为380。
阅读全文