首页 > 试题广场 >

若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下

[不定项选择题]
若磁头的当前位置在第100磁道,现在有一磁盘读写请求序列如下:23,376,205,132,19,61,190,398,29,4,18,40。若采用最短寻道时间优先算法,则平均寻道长度是多少?
  • 133
  • 58.3
  • 57.7
  • 70.9
卧槽,把61给算漏了,结果还刚还得到了C答案
编辑于 2019-11-09 22:56:58 回复(0)
发表于 2017-08-18 22:05:12 回复(12)
计算的答案是57.7,不知道为什么是58.3
发表于 2017-08-17 22:28:44 回复(0)
先排序
4.18.19.23.   29.40.61.132.   190.205.376.398
然后分别计算相邻之间的大小关系。寻道较短时间的进行排序
得到
100 132 190 205     61 40 29 23      19 18 4 376      398
然后求出递增和递减临界点
100 205 4 398
计算相邻之差和
105 + 201 + 394 = 700
最后求平均值
编辑于 2017-08-28 22:31:11 回复(2)
正确答案
B
答案解析

最短寻道时间优先算法(SSTF):从等待的访问者中挑选寻找时间最短的那个请求执行。当前位置为100,则顺序为(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/12 =58.3。

发表于 2018-09-09 18:41:01 回复(0)
这里按照磁道排序4.18.19.23.29.40.61.132.190.205.376.398,当前磁道在100位置,按照最短优先,则为先寻址到132

则长度,为32,当前为132,同理寻址道长x=(32+58+15+144+21+11+6+4+1+14+372+22)/12 = 58.333

发表于 2017-08-18 11:33:34 回复(3)
int main()
{
    vector<int> nums={23,376,205,132,19,61,190,398,29,4,18,40};
    sort(nums.begin(),nums.end());
    int res=0;
    int tmp=0;
    int target=100;
    while(nums.size()>0){
        tmp=0;
        for(int i=0;i<nums.size();i++){
            if(abs(nums[tmp]-target)>abs(nums[i]-target)){
                tmp=i;
            }
        }
        res+=(abs(target-nums[tmp]));
        target=nums[tmp];
        nums.erase(nums.begin()+tmp);
    }
    return 0;
}

发表于 2020-01-31 14:23:14 回复(0)
你妹的,算的58.3给我来个多选题是吧😭,又乱选了一个
发表于 2022-11-15 22:50:16 回复(0)
发表于 2021-07-03 10:50:57 回复(0)
 最短寻道时间优先,其要求访问的磁道与当前磁头所在的磁道距离最近?????? 不是这样??。 怎么是先对请求序列排序然后再从中选取按从小到大磁道选取?
发表于 2017-08-19 23:18:25 回复(0)