• 硬盘的原理


    Content

    0.简介

    1.基本原理

    2.磁盘读写三步骤

    0.简介

      硬盘作为现在计算机内部最后的机械存储部件,速度相比较内存和Cache而言会慢好几个数量级。但所幸的是,硬盘的成本是远远低于内存的。因此硬盘作为永久存储器是比较合适的,所幸的是为了克服硬盘慢速带来的问题,操作系统会对硬盘的使用有一个优化,下面让我们先来看硬盘的原理。

    1.基本原理

      一个抽象的的硬盘结构如图1所示。

      

       图1.一个抽象的硬盘

       由图1可以看到,硬盘上磁盘进行高速旋转,磁头臂在磁盘上来回移动进行数据的读取和写入。这也是为什么我们说硬盘是一个机械部件的原因。磁盘由圆心向外被划分为多个磁道,所谓摆臂在磁道上来回移动也就是摆臂在磁道间的来回移动,除了磁道之外,为磁道、扇区、柱面这几个虚拟的概念,如图2所示。

      

      图2.逻辑结构图

      磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫磁道。磁道上的磁道是一组记录密度不同的同心圆,如图。磁表面存储器是在不同形状(如盘状、带状等)的载体上,涂有磁性材料层,工作时,靠载磁体高速运动,由磁头在磁层上进行读写操作,信息被记录在磁层上,这些信息的轨迹就是磁道。这些磁道用肉眼是根本看不到的,因为他们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相隔太近时磁性会产生相互影响,同时也为磁头的读写带来困难,通常盘片的一面有成千上万个磁道。

      扇区:分区格式化磁盘时,每个盘片的每一面都会划分很多同心圆的磁道,而且还会将每个同心圆进一步的分割为多个相等的圆弧,这些圆弧就是扇区。为什么要进行扇区的划分呢?因为,读取和写入数据的时候,磁盘会以扇区为单位进行读取和写入数据,即使电脑只需要某个扇区内的几个字节的文件,也必须一次把这几个字节的数据所在的扇区中的全部512字节的数据全部读入内存,然后再进行筛选所需数据,所以为了提高电脑的运行速度,就需要对硬盘进行扇区划分。另外,每个扇区的前后两端都会有一些特定的数据,这些数据用来构成扇区之间的界限标志,磁头通过这些界限标志来识别众多的扇区。扇区是硬盘寻址的最小单位,但实际上分配空间时最小的单位是簇(Clusters)。这也就是为什么硬盘上文件的实际大小和占用空间不同的原因。

      柱面:硬盘通常由一个或多个盘片构成,而且每个面都被划分为数目相等的磁道,并从外缘开始编号(即最边缘的磁道为0磁道,往里依次累加)。如此磁盘中具有相同编号的磁道会形成一个圆柱,此圆柱称为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有一个磁头,因此,盘面数等于总的磁头数。

    2.磁盘读写三步骤
       在了解了硬盘的基本原理之后,不难推算出,磁盘上数据读取和写入所花费的时间可以分为三个部分。
          ① 寻道时间
            所谓寻道时间,其实就是磁臂移动到指定磁道所需要的时间,这部分时间又可以分为两部分:
            寻道时间=启动磁臂的时间+常数*所需移动的磁道数
            其中常数和驱动器的的硬件相关,启动磁臂的时间也和驱动器的硬件相关
          ② 旋转延迟
           旋转延迟指的是把扇区移动到磁头下面的时间。这个时间和驱动器的转数有关,我们通常所说的7200转的硬盘的转就是这个。
           平均旋转延迟=1/(2*转数每秒)
           比如7200转的硬盘的平均旋转延迟等于1/2*120≈4.17ms
           旋转延迟只和硬件有关。
        ③ 传输时间
         传输时间指的是从磁盘读出或将数据写入磁盘的时间。
         这个时间等于:所需要读写的字节数/每秒转速*每扇区的字节数

     
     
  • 相关阅读:
    Redis指令(2) ------String
    Redis指令(1) ------常用指令
    Redis数据类型
    Python set集合
    Python random 模块
    Python random 模块
    Python time 模块
    Python sys模块
    Python 递归函数
    Python 局部变量和全局变量
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/9963283.html
Copyright © 2020-2023  润新知