您的位置:首页 > 其它

硬件设备——磁盘相关

2017-08-02 00:00 253 查看
摘要: 本文简单介绍了磁盘组成、分区表、磁盘访问时间组成以及磁盘读写方式,作为对计算机基础知识的一个简单了解。

磁盘

磁盘的组成

本节摘自《鸟哥Linux私房菜》

磁盘的组成:主要由盘片、机械手臂、磁头、与主轴马达所组成。而数据的写入其实是在盘片上面。盘片上面又可细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。假设磁盘只有一个盘片,那么盘片如图所示:



那么是否每个扇区都一样重要呢?其实整块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息。磁盘的第一个扇区主要记录了两个重要的信息,分别是:

MBR(Master Boot Record )主引导分区:可以安装引导加载程序的地方,有446bytes。

分区表(partition table):记录整块硬盘分区的状态,有64bytes。

MBR是很重要的,因为当系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何进行开机。如果你要安装多重引导的系统,MBR这个区块的管理就非常重要了!
那么分区表又是什么?其实你刚才拿到的整块硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段,这个区段才能够再制作成为你想要的家具。如果没有进行切割,那么原木就不能被有效地使用。同样道理,你必须要针对你的硬盘进行分区,这样硬盘才可以被你使用。

磁盘分区表

本节摘自《鸟哥Linux私房菜》

但是硬盘总不能真的拿锯子来切割吧?那硬盘还真的是会坏掉去。那怎么办?在前一小节的图示中,我们有看到"开始与结束柱面"吧?那是文件系统的最小单位,也就是分区的最小单位。我们就是利用参考柱面号码的方式来处理。在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的柱面号码。若将硬盘以长条形来看,然后将柱面以柱形图来看,那么那64bytes的记录区段如图:



假设上面的硬盘设备文件名为/dev/hda时,那么这四个分区在Linux系统中的设备文件名如下所示,重点在于文件名后面会再接一个数字,这个数字与该分区所在的位置有关。
P1:/dev/hda1

P2:/dev/hda2

P3:/dev/hda3

P4:/dev/hda4

上图中我们假设硬盘只有400个柱面,共分区成为四个分区,第四个分区所在为第301到400号柱面的范围。当你的操作系统为Windows时,那么第一到第四个分区的代号应该就是C, D, E, F。当你有数据要写入F盘时,你的数据会被写入这块磁盘的301~400号柱面之间。

由于分区表就只有64bytes而已,最多只能容纳四个分区,这四个分区被称为主(Primary)或扩展(Extended)分区。根据上面的图示与说明,我们可以得到几个重点信息:

其实所谓的"分区"只是针对那个64bytes的分区表进行设置而已。

硬盘默认的分区表仅能写入四组分区信息。

这四组分区信息我们称为主(Primary)或扩展(Extended)分区。

分区的最小单位为柱面(cylinder)。

当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。

磁盘访问时间组成

寻道时间:启动磁臂的时间s与磁头移动n条磁道所花费的时间之和 t1=m*n+s(一般磁盘,m=0.2,高速磁盘,m<=0.1)

旋转延迟时间:是指定扇区移动到磁头下面所经历的时间t2

传输时间:指把数据从磁盘读出或向磁盘写入数据所经历的时间若每次读/写的字节数为b,磁盘每秒钟的转速为r,一条磁道上的字节数为N 。t3=b/(rN)

磁盘读写方式

磁盘读写方式:顺序读写、随机读写。

顺序读写=读取一个大文件

随机读写=读取多个小文件

顺序读写比随机读写快,原因:

顺序读写,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的;随机读写,需要多次寻道和旋转延迟。而这个时间可能是传输时间的许多倍。

顺序读写,磁盘会预读,预读即在读取的起始地址连续读取多个页面(现在不需要的页面也读取了,这样以后用时就不用再读取,当一个页面用到时,大多数情况下,它周围的页面也会被用到);而随机读写,因为数据没有在一起,将预读浪费掉了。

文件系统的overhead:读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查,写新文件时还要加上寻找磁盘可用空间的耗时,对于小文件,这些时间消耗的占比就非常大了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息