资源下载地址:https://download.csdn.net/download/sheziqiong/87578591
资源下载地址:https://download.csdn.net/download/sheziqiong/87578591
磁盘调度算法的实现
实验要求:
1. 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。
2. 实现的磁盘调度算法有 FCFS,SSTF,SCAN,CSCAN 和 NStepSCAN 算法。
3. 设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序列。
4. 选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。
5. 按算法的寻道效率进行排序,并对各算法的性能进行分析比较。
实验任务:
用 线性表 和 排序算法 模拟 磁道访问顺序
步骤:
(1)先来先服务算法(FCFS):根据进程请求访问磁盘的先后次序进行调度
最短寻道时间优先算法(SSTF):要求访问的磁道与当前磁头所在的磁盘距离最近,以使每次的寻道时间最短
扫描算法(SCAN):优先考虑的是磁头当前的移动方向,即自里向外移动,访问既在当前磁道之外,同时又是距离最近的磁道;直到再无更外的磁道需要访问时,才将磁臂换向自外向里移动。也称电梯调度算法
循环调度算法(CSCAN):规定磁头单向移动,只是自里向外移动。当磁头移到最外的磁道并访问后,磁头立即返回到最里的需访问的磁道,即
将最小磁道号紧接着最大磁道号构成循环,进行循环扫描
NStepSCAN 调度算法:将磁盘请求队列分成若干个长度为 N 的子队列,磁盘调度将按 FCFS 算法依次处理这些子队列。而每处理一个队列又是按 SCAN 算法,对一个队列处理完后,再处理其他队列
(2)设计测试数据:
以书本的数据为例:100#磁道开始,待访问 磁道 150,160,184,18,38,39,55,58,90
(3)按照每种调度方法逐步输出模拟磁盘分配的状态,进行查看
(4)调试完成后,依次随机产生多个需要访问的磁盘号后,
按照每种调度方法逐步输出模拟磁盘分配的状态,进行查看
(5)再次分析程序运行情况,并进行调试
算法描述:
(1)随机产生多个需要访问的磁盘号
(2)依次按照 FCFS,SSTF,SCAN,CSCAN,NStepSCAN 显示分配状态,
同时计算出 平均寻道长度(Average Seek Time)
(3)用冒泡排序,按照 平均寻道长度 从小到大(按效率高低)对每种算法进行排序
(4)显示每种算法关于 平均寻道长度 的排序结果
测试结果:
按照原先设计的数据进行测试的结果:
产生多个随机数后进行测试的结果:
资源下载地址:https://download.csdn.net/download/sheziqiong/87578591
资源下载地址:https://download.csdn.net/download/sheziqiong/87578591