> # ♻️ 资源
> **大小:** 439KB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010767**](https://www.yuque.com/sxbn/ks/100010767)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87450281**](https://download.csdn.net/download/s1t16/87450281)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 磁盘调度算法的实现
**实验要求:**
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://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163037-4c985308-a731-4db0-b691-e4a85696cb2d.png#averageHue=%23ededed&from=url&id=Mwduo&originHeight=357&originWidth=486&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
测试结果:
按照原先设计的数据进行测试的结果:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163126-e814b013-e098-4b2a-aa37-92bba79cadaf.png#averageHue=%23121212&from=url&id=wxK93&originHeight=737&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163176-c49cf07f-b43a-49c2-8d63-452679398bde.png#averageHue=%230d0d0d&from=url&id=C7o5F&originHeight=284&originWidth=664&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163235-53981088-434a-4698-a306-7350d1b5fbf0.png#averageHue=%23171716&from=url&id=WwNoa&originHeight=582&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
产生多个随机数后进行测试的结果:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163293-21eb8315-669a-4794-b40c-356afb030d8c.png#averageHue=%23111111&from=url&id=mOHWz&originHeight=719&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163352-379e1b80-ecd2-43e0-bc1b-33926dc49e89.png#averageHue=%230f0f0f&from=url&id=EMQje&originHeight=469&originWidth=664&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715560163430-16fdf0ed-eaee-43e3-ac81-743cb0303329.png#averageHue=%23161615&from=url&id=DORxa&originHeight=646&originWidth=669&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
- 1
- 2
前往页