《操作系统》实验报告 【实验题目】:磁盘调度算法 【实验目的】 通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS,最短寻道时间优先SSTF,SCAN 和循环SCAN 算法的实现方法
【实验内容】 问题描述: 设计程序模拟先来先服务FCFS,最短寻道时间优先SSTF,SCAN和循环SCAN 算法的工作过程
假设有 n个磁道号所组成的磁道访问序列,给定开始磁道号 m 和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度
程序要求如下: 1)利用先来先服务FCFS,最短寻道时间优先SSTF,SCAN 和循环SCAN 算法模拟磁道访问过程
2)模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离
3)输入:磁道个数 n和磁道访问序列,开始磁道号 m 和磁头移动方向(对SCAN 和循环SCAN 算法有效),算法选择 1-FCFS,2-SSTF,3-SCAN,4-循环SCAN
4)输出:每种算法的平均寻道长度
实验要求: 1) 上机前认真复习磁盘调度算法,熟悉FCFS,SSTF,SCAN 和循环SCAN 算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)
实验代码: #include #include #include using namespace std; const int MaxNumber=100; int TrackOrder[MaxNumber]; int MoveDistance[MaxNumber];//移动距离 int FindOrder[MaxNumber];//寻好序列 double AverageDistance;//平均寻道长度 bool direct