版权归原作者所有,如有侵权,请联系我们

[科普中国]-磁盘文件访问

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

磁盘存储器是用表面涂有磁性材料的圆盘作为记录介质的存储装置。由盘组、驱动和控制等部分组成。磁盘存储器不仅容量大,存取速度快,而且可以实现随机存取,是当前存放大量程序和数据的理想设备,故在现代计算机系统中,都配置了磁盘存储器,并以它为主来存放文件。这样,对文件的操作,都将涉及到对磁盘的访问。磁盘文件访问是指对存储在磁盘上的文件进行访问。对磁盘文件访问影响因素有磁盘访问时间、磁盘调度。

磁盘访问时间磁盘设备在工作时以恒定速率旋转。为了读或写,磁头必须能移动到所要求的磁道上,并等待所要求的扇区的开始位置旋转到磁头下,然后再开始读或写数据。故可把对磁盘的访问时间分成以下三部分。

寻道时间这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间 s 与磁头移动 n 条磁道所花费的时间之和,即

= m × n + s

其中,m 是一常数,与磁盘驱动器的速度有关。对于一般磁盘,m = 0.2;对于高速磁盘m≤0.1,磁臂的启动时间约为 2 ms。这样,对于一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是 5~30 ms。

旋转延迟时间这是指定扇区移动到磁头下面所经历的时间。不同的磁盘类型中,旋转速度至少相差一个数量级,如软盘为 300 r/min,硬盘一般为 7200~15 000 r/min,甚至更高。对于磁盘旋转延迟时间而言,如硬盘,旋转速度为 15 000 r/min,每转需时 4 ms,平均旋转延迟时间 为 2 ms;而软盘,其旋转速度为 300 r/min 或 600 r/min,这样,平均 为 50~100 ms。1

传输时间这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。的大小与每次所读/写的字节数 b 和旋转速度有关:

其中,r 为磁盘每秒钟的转数;N 为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,相同。因此,可将访问时间 Ta 表示为

由上式可以看出,在访问时间中,寻道时间和旋转延迟时间基本上都与所读/写数据的多少无关,而且它通常占据了访问时间中的大头。例如,我们假定寻道时间和旋转延迟时间平均为 20 ms,而磁盘的传输速率为 10 MB/s,如果要传输 10 KB 的数据,此时总的访问时间为 21 ms,可见传输时间所占比例是非常小的。当传输 100 KB 数据时,其访问时间也只是 30 ms,即当传输的数据量增大 10 倍时,访问时间只增加约 50%。目前磁盘的传输速率已达 80 MB/s 以上,数据传输时间所占的比例更低。可见,适当地集中数据(不要太零散)传输,将有利于提高传输效率。

磁盘调度磁盘是可供多个进程共享的设备,当有多个进程都要求访问磁盘时,应采用一种最佳调度算法,以使各进程对磁盘的平均访问时间最小。由于在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。