1,假设磁头当前位于第105道,正在向磁道序号增加的方向移动,现有一个磁道访问请求序列为:35,45,12,68,100,180,170,195,试用先来先服务调度算法
给出响应序列并计算移道总次数。(需给出每次移动的磁道数)
解析:先来先服务(FCFS)调度算法就是说 根据进程请求访问磁盘的先后次序进行调度。此算法的有优点是公平、简单,且每个进程的请求都能依次的得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,导致平均寻道时间可能较长。故FCFS算法仅适用于请求磁盘I/O的进程数目较少的场合。
说白了就是按顺序访问就可以了
移动距离(磁道数):上一个从磁道号与下一个磁道号之间的磁道数
移道总次数:所有的移动距离(磁道数)之和
平均寻道长度:移道总次数/寻道次数
从105号磁道开始
被访问的下一个磁道号 | 移动距离(磁道数) |
---|---|
35 | 70 |
45 | 10 |
12 | 33 |
68 | 56 |
100 | 32 |
180 | 80 |
170 | 10 |
195 | 25 |
移道总次数: | 316 |
平均寻道长度: | 39.5 |
2,假设磁头当前位于第105道,正在向磁道序号增加的方向移动,现有一个磁道访问请求序列为:35,45,12,68,100,180,170,195,试用最短距离优先调度算法
给出响应序列并计算移道总次数。
解析:最短寻道时间优先(SSTF)调度算法就是说 要求访问的磁道与当前磁头所在的磁道距离最近,使得每次寻道时间最短,但这种算法不能保证平均寻道时间最短。
说白了就是左右比,哪个最近优先访问哪个
移道总次数:所有的移动距离(磁道数)之和
平均寻道长度:移道总次数/寻道次数
比如这里是从105开始的,100和170离105最近的是100,故先访问100号磁道。
从105号磁道开始
被访问的下一个磁道号 | 移动距离(磁道数) |
---|---|
100 | 5 |
68 | 32 |
45 | 23 |
35 | 10 |
12 | 23 |
170 | 158 |
180 | 10 |
195 | 15 |
移道总次数: | 276 |
平均寻道长度: | 34.5 |
3,假设磁头当前位于第105道,正在向磁道序号增加的方向移动,现有一个磁道访问请求序列为:35,45,12,68,100,180,170,195,试用扫描调度算法
给出响应序列并计算移道总次数。
解析:扫描(SCAN)算法就是说 每次选择访问的磁道在当前位置内为距离最近者。这里的当前位置为磁头,做为参考。这样,避免了出现"饥饿"现象。由于这种算法中磁头移动的规律颇似电梯的运行,因而又称为电梯调度算法。
说白了就是按顺序将磁道号排序,然后从磁头开始进行向增加方向访问,到头之后,再以当前位置开始向减少的方向访问
移道总次数:所有的移动距离(磁道数)之和
平均寻道长度:移道总次数/寻道次数
比如这里是从105开始的,从增加方向开始,也就是从170开始,到195为顶,再从105为当前位置向下访问,即访问100磁道号。
从105道磁头开始(向磁道号增加方向访问)
被访问的下一个磁道号 | 移动距离(磁道数) |
---|---|
170 | 65 |
180 | 10 |
195 | 15 |
100 | 95 |
68 | 32 |
45 | 23 |
35 | 10 |
12 | 23 |
移道总次数: | 273 |
平均寻道长度: | 34.125 |
4,假设磁头当前位于第105道,正在向磁道序号增加的方向移动,现有一个磁道访问请求序列为:35,45,12,68,100,180,170,195,试用循环扫描调度算法
给出响应序列并计算移道总次数。
解析:循环扫描(CSCAN)算法就是说 规定磁头单项移动。
说白了就是按顺序将磁道号排序,然后从磁头开始进行向增加方向访问,到头之后,再从最小磁道号开始按增加方向访问
移道总次数:所有的移动距离(磁道数)之和
平均寻道长度:移道总次数/寻道次数
比如这里是从105开始的,从增加方向开始,也就是从170开始,到195为顶,再从12最小的磁道号开始向增加方向访问。
从105道磁头开始(向磁道号增加方向访问)
被访问的下一个磁道号 | 移动距离(磁道数) |
---|---|
170 | 65 |
180 | 10 |
195 | 15 |
12 | 183 |
35 | 23 |
45 | 10 |
68 | 23 |
100 | 32 |
移道总次数: | 361 |
平均寻道长度: | 45.125 |