zoukankan      html  css  js  c++  java
  • 磁盘存放数据原理

    磁盘结构作用数据原理

    拓扑图


    盘面(side)

    • 模型:
    • 1、磁盘圆形盘面,一个磁盘内含有多个盘面。
    • 2、层叠关系,每个盘面之间不会贴着。
    • 3、第一个盘的正面成为0面,反面为1面;第二个盘正面为2面,反面为3面,以此类推。
    • 4、第一个盘面磁头为0磁头,背面为1磁头..第二个盘正面为2磁头,反面为3磁头,以此类推。
    • 5、一个磁头用于读写数据,盘面数和磁头数是相等的。
    • 作用:
    • 盘面主要作用于划分多个扇区用来存放数据。

    磁头(head)

    • 模型:
    • 磁头放置在盘面的上面与下面,磁头是不触碰到盘面本身的,每个盘面会有两个磁头分别代表读与写。
    • 作用:
    • 磁头是在盘面中起到读写数据的作用。

    扇区(Sector)

    • 模型:
    • 1、每个磁道上可以存储数KB的数据,但计算机并不需要一次读写这么多数据。在这一这基础上,又把每个磁道划分成若干弧段, 每段称为一个扇区。
    • 2、扇区是分布在盘面的数据分割区,以扇形区分,一个盘面可分多个扇区,扇区大小可根据系统自定义规划。
    • 3、扇区是硬盘上存储的物理单位,每个扇区可存储128×2N次方(N=0,1,2,3)字节的数据。
    • 4、从DOS时代起,每扇区是128×22=512字节,现在已经成了业界不成文的规定,也没有哪个硬盘厂商试图去改变这种约定。
    • 5、即使计算机只需要硬盘上存储的某个字节,也须一次把这个字节所在的扇区中的全部512字节读入内存,再选择所需的那个字节。
    • 6、扇区的编号是从1开始,而不是0
    • 作用:
    • 扇形主要用来存放系统数据。

    磁道(Track)

    • 模型:
    • 1、每个盘片的每个盘面被划分成多个狭窄的同心圆环,数据就是存储在这样的同心圆环上,我们将这样的圆环称为磁道每个盘面可以划分多个磁道。
    • 2、在每个盘面的最外圈,离盘心最远的地方是“0”磁道,向盘心方向依次增长为1磁道,2磁道,等等。硬盘数据的存放就是从最外圈开始。
    • 作用:
    • 磁道是磁头访问盘面扇区的隧道,磁盘转起后磁头读取扇区内的数据。

    :磁道再分扇区时,扇区边缘磁道会占用磁盘资源空间。


    柱面(Cylinder)

    • 解释:
    • 1、离盘心最远的磁道为0磁道,依此往里为1磁道,2磁道,3磁道....,不同面上相同磁道编号则组成了一个圆柱面,即所称的柱面。
    • 2、硬盘数据的读写是按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面( 即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可 ,而选取柱面则必须通过机械切换。电子切换比从在机械上磁头向邻近磁道移动快得多。因此,数据的读写按柱面进行,而不 按盘面进行。 读写数据都是按照这种方式进行,尽可能提高了硬盘读写效率。

    簇(Cluster)

    • 解释:
    • 将物理相邻的若干个扇区称为了一个簇。操作系统读写磁盘的基本单位是扇区,而文件系统的基本单位是簇。在Windows下,随便找个几字节的文件,在其上面点击鼠标右键选择属性,看看实际大小与占用空间两项内容,如大小:15 字 节 (15 字节), 占用空间:4.00 KB (4,096 字节)。这里的占用空间就是你机器分区的簇大小,因为再小的文件都会占用空 间,逻辑基本单位是4K,所以都会占用4K。 簇一般有这几类大小 4K,8K,16K,32K,64K等。簇越大存储性能越好,但空间浪 费严重。簇越小性能相对越低,但空间利用率高。NTFS格式的文件系统簇的大小为4K。


    硬盘读写数据的过程

    现代硬盘寻道都是采用CHS(Cylinder Head Sector)的方式,硬盘读取数据时,读写磁头沿径向移动,移到要读取的扇区所在磁 道的上方,这段时间称为寻道时间(seek time)。因读写磁头的起始位置与目标位置之间的距离不同,寻道时间也不同。目前硬盘一 般为2到30毫秒,平均约为9毫秒。磁头到达指定磁道后,然后通过盘片的旋转,使得要读取的扇区转到读写磁头的下方,这段时间称 为旋转延迟时间(rotational latencytime)

    •  一个7200(转/每分钟)的硬盘,每旋转一周所需时间为60×1000÷7200=8.33毫秒,则平均旋转延迟时间为8.33÷2=4.17毫秒(平均情况下,需要旋转半圈)。平均寻道时间和平均选装延迟称为平均存取时间。
    • 硬盘的容量计算公式:硬盘容量=盘面数×柱面数×扇区数×512字节

    磁盘读写数据所花费的时间

    在了解了硬盘的基本原理之后,不难推算出,磁盘上数据读取和写入所花费的时间可以分为三个部分。

    1.寻道时间
    所谓寻道时间,其实就是磁臂移动到指定磁道所需要的时间,这部分时间又可以分为两部分:
    寻道时间=启动磁臂的时间+常数*所需移动的磁道数
    其中常数和驱动器的的硬件相关,启动磁臂的时间也和驱动器的硬件相关

    2.旋转延迟
    旋转延迟指的是把扇区移动到磁头下面的时间。这个时间和驱动器的转数有关,我们通常所说的7200转的硬盘的转就是这个。
    平均旋转延迟=1/(2*转数每秒)
    比如7200转的硬盘的平均旋转延迟等于1/2*120≈4.17ms
    旋转延迟只和硬件有关。

    3.传输时间
    传输时间指的是从磁盘读出或将数据写入磁盘的时间。
    这个时间等于:所需要读写的字节数/每秒转速*每扇区的字节数


    硬盘软盘区

    别软盘的一个磁道中,扇区号一般依次编排,如1号,2号,3号...以此类推。但在硬盘磁道中,扇区号是按照某个间隔跳跃着编排。比 如,2号扇区并不是1号扇区后的按顺序的第一个而是第八个,3号扇区又是2号扇区后的按顺序的第八个,依此类推,这个“八”称为 交叉因子。


     其他

    :磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离不到1微米(约为头发直径的百分之一),可以在 极短的时间内精确定位到计算机指令指定的磁道上。

  • 相关阅读:
    CentOS下MySQL的彻底卸载
    cent 7.0 安装mysql
    centos 安装mysql Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
    使用注解配置SQL映射器
    bean
    转:最简日志打印规范
    快速搭建sonar代码质量管理平台
    (转)Where与Having的总结
    一个问题,日后会写为什么贴出来
    hive Tutorial
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/9629243.html
Copyright © 2011-2022 走看看