1).实验内容
1. 本实验是模拟操作系统的磁盘寻道方式,运用磁盘访问顺序的不同来设计磁盘的调度算法。
2. 实现的磁盘调度算法有 FCFS,SSTF,SCAN,CSCAN 和 NStepSCAN 算法。
3. 设定开始磁道号寻道范围,依据起始扫描磁道号和最大磁道号数,随机产生要进行寻道的磁道号序
列。
4. 选择磁盘调度算法,显示该算法的磁道访问顺序,计算出移动的磁道总数和平均寻道总数。
5.按算法的寻道效率进行排序,并对各算法的性能进行分析比较。
2).实验要求
1. 详细描述实验设计思想、程序结构及各模块设计思路;
2. 详细描述程序所用数据结构及算法;
3. 明确给出测试用例和实验结果;
4. 为增加程序可读性,在程序中进行适当注释说明;
5. 认真进行实验总结,包括:设计中遇到的问题、解决方法与收获等;
6. 实验报告撰写要求结构清晰、描述准确逻辑性强;
7. 实验过程中,同学之间可以进行讨论互相提高,但绝对禁止抄袭。
3)实验方案
对于随机产生的一组需要进行寻道的磁道号序列,分别采用 FCFS,SSTF,SCAN,CSCAN
和 NStepSCAN 算法,对该组磁道号序列进行访问,显示该算法的磁道访问顺序,计算出移动
的磁道总数和平均寻道总数,并对各算法的性能进行分析比较。
算法描述:
(1)先来先服务算法(FCFS):根据进程请求访问磁盘的先后顺序进行调度
(2)最短寻道时间优先算法(SSTF):其要求访问的磁道与当前磁头所在的磁道距离最近
(3)扫描算法(SCAN):
1.首先自里向外访问,下一个对象是其欲访问的磁道既在当前磁道之外,又是距离最近的;
2.直至无更外的磁道需要访问时,才将磁臂换向为自外向里移动;
3.下一个访问的磁道在当前位置内为距离最近者;直至再无更里面的磁道要访问;
(4)循环扫描算法(CSCAN):
1.首先自里向外访问,当磁头移到最外的磁道并访问后,磁头返回到最里的欲访问磁道,
即将最小磁道号紧接着最大磁道号构成循环,继续循环扫描
2.直至无更外的磁道需要访问时,才将磁臂换向为自外向里移动;
3. 下一个访问的磁道在当前位置内为距离最近者;直至再无更里面的磁道要访问。
(5)N 步扫描算法(NStepSCAN):把磁盘请求队列分为若干个长度为 N 的子队列,按照 FCFS
顺序访问这些子队列,但是每个子队列里面都是按照 SCAN 算法处理。