操作系统提高磁盘系统的性能分析与探讨

时间:2022-06-08 01:33:30

操作系统提高磁盘系统的性能分析与探讨

【摘要】磁盘驱动调度对磁盘的效率有重要影响。磁盘驱动调度算法的好坏直接影响辅助存储器的效率,从而影响计算机系统的整体效率。本文针对四种不同的调度算法进行分析,通过具体的参数进行探讨。了解了磁盘调度不同算法的优劣。

【关键词】磁盘;调度;算法;效率

1.磁盘调度主要思想

操作系统中设备管理的主要任务就是能充分有效地使用I/O设备,并且使它们能够高效与并行。而在设备中按信息组织方式可分为块设备和字符设备。磁盘属于其中的块设备。因为在系统资源中CPU和内存的访问速度比磁盘要快若干个数量级,所以如何很好地提高磁盘性能是磁盘设备管理的主要目标。它的性能对整个系统的性能有重要影响。

2.认识磁盘

要很好地提高调度的效率,先要了解一下被调度的物理设备磁盘。磁盘是将若干个涂有铁磁的圆形金属或塑料片组合在一起构成的盘组,每个圆盘有上下两个盘面每个盘面有一个读写磁头,读写磁盘时,磁头通过存取臂在盘面上移动,而盘体绕中心轴高速旋转。盘组旋转一周,磁头在盘面上的移动轨迹称为磁道(一个圆),各个盘面上半径相同的磁道合起来构成一个柱面,一个磁道又被分成许多扇区,每个扇区的字节数相同(一般为512bytes)。

3.磁盘I/O访问时间的组成

磁盘除了正常设备调度的时间如设备占用等待时间的通道占用等待时间外,由于此设备的机械特性它自己的访问时间由三部分组成。柱面定位时间指磁头移动到指定柱面的机械运动时间又叫寻道时间;旋转延迟时间指磁盘旋转到指定扇区的机械运动时间它与磁盘转速相关。数据传送时间指从指定扇区读写数据的时间。所以一次访盘时间=定位时间+延迟时间+存取时间。所以操作系统管理磁盘的这部分工作就是尽量减少设备机械运动所带来的时间浪费,减少柱面定位时间,减少旋转延迟时间。其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。

4.调度算法描述

4.1 先来先服务算法(First Come First Served,FCFS)

先来先服务调度是按先来后到次序服务,未作优化。这个算法不考虑访问者要求访问的物理位置,而只是考虑请求的先后次序。采用先来先服务算法决定等待访问者执行输入输出操作的次序时,移动臂来回地移动。先来先服务算法花费的寻找时间较长。例如假设磁头初始位置是100,磁盘访问请求柱面序列:55、58、39、18、90、160、150、38、184。那么磁头移动总距离(道数)为45+3+19+21+72+70+10+112+146=498。平均寻道长度为498/9=55.33,移臂图见图一。

4.2 最短寻道时间优先算法(Shortest Seek Time First,SSTF)

最短寻找时间优先调度算法总是从等待访问者中挑选寻找时间最短的那个请求先执行的,而不管访问者到来的先后次序。用同一个例子来讨论。请求柱面序列:55、58、39、18、90、160、150、38、184。调度顺序为90、58、55、39、38、18、150、160、184磁头移动总距离(道数)10+32+3+16+1+20+132+10+24=248;平均寻道长度为248/9=27.55。移臂见图二。

4.3 SCAN算法(电梯调度算法)

此算法既考虑了距离,同时又考虑了方向。具体做法是当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。(就像我们日常乘坐的电梯)利用同一个例子来讨论。请求柱面序列:55、58、39、18、90、160、150、38、184。如果假设原方向是磁道递增方向调度顺序为150、160、184、90、58、55、39、38、18。磁头移动总距离(道数)50+10+24+94+32+3+16+1+20=250。平均寻道长度为250/9=27.78。移臂见图三。

4.4 循环扫描算法(CSCAN)

单项扫描调度算法的基本思想是,不考虑访问者等待的先后次序,总是从0号柱面开始向里道扫描,按照各自所要访问的柱面位置的次序去选择访问者。在移动臂到达最后一个柱面后,立即快速返回到0号柱面,返回时不为任何的访问者等待服务。在返回到0号柱面后,再次进行扫描。请求柱面序列:55、58、39、18、90、160、150、38、184。调度顺序向里扫顺序为150、160、184、18、38、39、55、58、90。磁头移动总距离(道数)50+10+24+166+20+1+16+3+34=324;平均寻道长度为324/9=36

4.5 几种算法的比较

如表1所示,除了“先来先服务”调度算法外,其余三种调度算法都是根据欲访问的柱面位置来继续调度的。在调度过程中可能有新的请求访问者加入。在这些新的请求访问者加入时,如果读写已经超过了它们所要访问的柱面位置,则只能在以后的调度中被选择执行。

5.总结

在多道程序设计系统中,在等待访问磁盘的若干访问者请求中,可能要求访问的柱面号相同,但在同一柱面上的不同磁道,或访问同一柱面中同一磁道上的不同扇区。所以,在进行移动调度时,在按照某种算法把移动臂定位到某个柱面后,应该在等待访问这个柱面的各个访问者的输入输出操作都完成之后,再改变移动臂的位置。所以实际系统普遍采用最短寻道时间算法较多。因为它简单有效,性价比好。而先来先服务算法适用于磁盘负担轻的系统。扫描算法更适用于磁盘负担重的系统。

参考文献

[1]张菊.移臂调度算法研究[J].沈阳化工大学学报,2012 (02).

[2]张顺香,朱广丽.基于导向的计算机专业实践教学方法探索[J].计算机教育,2010(06).

[3]彭广习,余胜生,周敬利.基于磁盘性能模型的优化调度算法[J].计算机工程,2002(05).

[4]张磊,赵跃龙.智能网络磁盘调度算法[J].计算机工程, 2007(18).

[5]庞丽萍.操作系统原理[M].华中科技大学出版社,2008,4.

基金项目:校级重点科研项目(编号:11YJZ11A)。

作者简介:李芳(1971—),女,湖北理工学院计算机学院副教授,主要研究方向:计算机网络。

上一篇:翼机通在我校的运行现状分析 下一篇:智能网球捡球机的研制