1 实验问题描述
设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法(对应其他参考书的LOOK和C-LOOK)的工作过程。假设有trackNum个磁道号所组成的磁道访问序列,给定开始磁道号initTrackNum和磁头移动的方向direction(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。最后,对四种算法做出比较评价。
程序要求如下:
利用先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN算法模拟磁道访问过程。
模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离。
输入:磁道个数n和磁道访问序列,开始磁道号initTrackNum和磁头移动方向direction(对SCAN和C-SCAN算法有效)。
其中,输入与算法的对应关系如下表:
输入 | 对应算法 |
1 | FCFS |
2 | SSTF |
3 | SCAN |
4 | C-SCAN |
输出:四种算法的每次磁头移动寻道长度和平均寻道长度。
输出示例如下:
2 测试数据
trackNum=9, initTrackNum=143;
trackOrder = [86 1470 913 1774 948 1509 1022 1750 130]
3 流程图
4 实验结果
FCFS
SSTF
SCAN(一些教材书上是LOOK)
direction=0,即从外到内;
direction=1,即从内到外;
C-SCAN(一些教材书上是C-SCAN)
direction=0,即从外到内;
direction=1,即从内到外;
5 实验代码
请见GitHub。
OS-Experiments/exp5 at main · Jackkee27/OS-Experiments