前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >硬件设备——磁盘相关 原

硬件设备——磁盘相关 原

作者头像
阿dai学长
发布2019-04-03 11:14:56
6440
发布2019-04-03 11:14:56
举报
文章被收录于专栏:阿dai_linux

磁盘

磁盘的组成

本节摘自《鸟哥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)。

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

磁盘访问时间组成

  1. 寻道时间:启动磁臂的时间s与磁头移动n条磁道所花费的时间之和 t1=m*n+s(一般磁盘,m=0.2,高速磁盘,m<=0.1)
  2. 旋转延迟时间:是指定扇区移动到磁头下面所经历的时间t2
  3. 传输时间:指把数据从磁盘读出或向磁盘写入数据所经历的时间若每次读/写的字节数为b,磁盘每秒钟的转速为r,一条磁道上的字节数为N 。t3=b/(rN)

磁盘读写方式

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

顺序读写=读取一个大文件 随机读写=读取多个小文件

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

  1. 顺序读写,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的;随机读写,需要多次寻道和旋转延迟。而这个时间可能是传输时间的许多倍。
  2. 顺序读写,磁盘会预读,预读即在读取的起始地址连续读取多个页面(现在不需要的页面也读取了,这样以后用时就不用再读取,当一个页面用到时,大多数情况下,它周围的页面也会被用到);而随机读写,因为数据没有在一起,将预读浪费掉了。
  3. 文件系统的overhead:读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查,写新文件时还要加上寻找磁盘可用空间的耗时,对于小文件,这些时间消耗的占比就非常大了。

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/08/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 磁盘
    • 磁盘的组成
      • 磁盘分区表
        • 磁盘访问时间组成
          • 磁盘读写方式
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档