实验四 磁盘调度一、实验目的:本实验要求学生模拟设计一个磁盘调度程序,观察调度程序的动态运行过程
通过实验让学生理解和掌握磁盘调度的职能
二、实验内容:对磁盘进行移臂操作,模拟磁盘调度算法并计算平均寻道时间三、实验准备:1
相关理论知识:(1)假设磁盘只有一个盘面,并且磁盘是可移动头磁盘
(3)磁盘是高速、大容量、旋转型、可直接存取的存储设备
它作为计算机系统的辅助存储器,担负着繁重的输入输出工作,在现代计算机系统中往往同时会有若干个要求访问磁盘的输入输出要求
系统可采纳一种策略,尽可能按最佳次序执行访问磁盘的请求
由于磁盘访问时间主要受寻道时间T的影响,为此需要采纳合适的寻道算法,以降低寻道时间
(2)磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务
当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束
当有多个进程提出输入输出请求而处于等待状态时,可用磁盘调度算法从若干个等待访问者中选择一个进程,让它访问磁盘
测试数据:磁盘读写请求队列:20,44,40,4,80,12,76当前磁头位置:50 试问采纳 FCFS、SSTF、SCAN 磁盘调度算法时寻道顺序及平均寻道时间分别为多少
四、实验过程:1
流程图 SCAN 算法(扫描算法)流程图:2
源代码#include#include#include#include#define maxsize 1000求平均寻道长度选择移动臂移动方向,开始扫描移动到最小(大)号,改向外(内)移动扫描未扫描的磁道输出移动的平均磁道数输出排好序的磁道序列开始结束输 入 磁 道号使用冒泡法从小到大排序输入当前磁道号推 断 当 前 磁 头在 序 列 中 的 位置/*********************推断输入数据是否有效**************************/int de