图3
图4
五、实验结果分析
实验结果:
如图1~4所示,创建一个c文件,使用g++编译器编译并执行程序后,成功运行程序并且按照提示输入功能,即可以计算不同的磁盘调度算法的输出结果。
结果分析:
① 通过模拟常见的几种磁盘寻道算法,通过计算平均寻道的长度,我们可以很直观的了解
到不同寻道算法的效率,以加深对FCFS、最短寻道时间以及电梯等磁盘调度算法的理解。让我们更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解。
② 下面客观分析实验模拟的常见寻道算法的效率:
a. 先来先服务(FCFS算法)
这是一个简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平简单,这个算法虽然简单自然,但是由于未对寻道进行优化,致使平均寻道时间可能较长。
b. 最短寻道时间优化(SSTF算法)
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道最近,以使每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。 c. 扫描算法(SCAN算法)
SCAN算法不是考虑到欲访问的磁道与当前磁头的距离,而是优先考虑的是磁头当前移动的方向。比如说,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应该是其余访问的磁道即在当前磁道之外,有是距离最近的。这样自里向外的访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。由于这种算法中磁头移动的规律颇似电梯的运行,故而又称为电梯调度算法。