文件的磁盘访问代价的计算

磁盘访问代价

 名词解释

簇:多个扇区集结形成簇,簇是文件分配的最小单位。

rpm:Rotations per minute, 表示每分钟多少转。

访问磁盘中信息的主要代价一般是寻道时间。其中,寻道时间又可以分为磁道-磁道寻道时间随机访问平均寻道时间
  磁道-磁道寻道时间:
    磁头从一个磁道移到相邻磁道的最短时间
  随机访问平均寻道时间:
    一次随机访问的平均寻道时间

 部分工作说明

平均情况下,磁盘需要旋转半圈才能使要读取的第一个扇区处于I/O磁头之下,并且再旋转一圈完成整个磁道的读取。(即通常要转1.5圈)

 例题(通过题目来了解计算方法)

有一个16.8GB的磁盘(名义上),分布在10个盘片上,那么每个盘片上都有1.68GB。
其中每个盘面有13085个磁道,每个磁道有256个扇区(经格式化),每个扇区有512字节的大小。
磁盘-磁盘寻道时间是2.2ms,随机访问平均寻道时间是9.5ms。
假定操作系统维护的簇大小是8个扇区(4kb),则每个磁道有32个簇(256/8)。
磁盘的旋转速率是5400rpm(即90转/s,即11.1ms/转)。

如果一个文件的长度是1MB,并分成了2048个记录,则每个记录的长度为512字节(1024*1024/2048)并等于扇区大小。则这个文件应当存储在256个簇中(2048/256)。
求读取该文件所花费的时间。

 解

   若文件的存储方式是填充8个相邻的所有扇区
该方式下,读取第一个扇区的代价就是第一个扇区的寻道时间(第一次一般是进行随机寻道),
然后等待初始旋转延迟(转半圈),接下来就是文件的读取时间(需要磁盘再旋转一圈),即总共转了(一点五圈)。
则读取第一个磁道花费时间:
			9.5 + 11.1 × 1.5 = 26.2 ms
接下来,由于剩下的七个磁道之间都是相邻的,故只需要磁道-磁道寻道时间。
则剩下的七次每次读一个磁道花费时间:
			2.2 + 11.1 × 1.5 = 18.9 ms
因此,总花费时间为:
			26.3 + 7 × 18.9 = 158.5 ms
   若文件的存储方式是文件的簇随机分布在整个磁盘
该方式下,需要为每一个簇完成一次寻道,并紧接着一个旋转延迟(磁盘旋转半圈)。
一旦簇的第一个扇区旋转到I/O磁头下,只需要很少的时间就可以读取簇了,因为只有8/256的磁道需要旋转到磁头下。
此时不用再转一整圈来读取数据啦,只需要1/32(8/256)就可以读完数据啦。
则每次读一个簇花费时间:
			9.5 + 11.1 × (0.5 + 1/32) = 15.4 ms
因此,总花费时间为:
			256 × 15.4 = 3942.4 ms

猜你喜欢

转载自blog.csdn.net/hacker_Dem_br/article/details/85268116