一、 实验目的
模拟设计一个磁盘调度程序,观察调度程序的动态运行过程,理解和掌握磁盘调度的职能。
二、 实验内容
对磁盘进行移臂操作,模拟磁盘调度算法并计算平均寻道时间
三、 实验主要设备及使用要求
计算机1台,VC++ 6.0
四、 实验准备:
- 相关理论知识:
(1)假设磁盘只有一个盘面,并且磁盘是可移动头磁盘。
(2)磁盘是高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出工作,在现代计算机系统中往往同时会有若干个要求访问磁盘的输入输出要求。系统可采用一种策略,尽可能按最佳次序执行访问磁盘的请求。由于磁盘访问时间主要受寻道时间T的影响,为此需要采用合适的寻道算法,以降低寻道时间。
(3)磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用磁盘调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。 - 测试数据:
磁盘读写请求队列:20,44,40,4,80,12,76
当前磁头位置:50
五、 实验过程
-
实验代码:
-
测试不同寻道算法:
自定义磁道序列:43 68 49 15 37 95 46 23
均以25作为当前磁道号,方便比较平均寻道长度
A. 选择先来先服务算法:
B. 选择最短寻道时间算法:
C. 设当前移动臂为向外,选择扫描调度算法:
设当前移动臂为向内,选择扫描调度算法:
D. 选择循环扫描算法:
实验显示:当磁道序列为:43 68 49 15 37 95 46 23,且以25作为当前移动臂位置时,最短寻道时间算法和设当前移动臂为向内,扫描调度算法的平均寻道长度最短:11.25
磁盘调度的详细过程和四种调度算法(先来先服务算法;最短寻道时间优先算法;扫描算法;循环扫描算法)以及四种调度算法之间的差异和共性。在扫描算法中还要设定移动臂的扫描方向,不同的扫描方向会有不同的扫描序列和平均寻道长度。