计算机组成与体系结构------磁盘调度

一.磁盘结构与参数

  1.磁盘结构

    1)磁道:

      • 磁盘上的一组同心圆
      • 磁盘上的数据都是存放在磁道上的
      • 其宽度和磁头宽度相同
      • 为减少磁道和磁道之间的干扰,之间要保持一定的间隔

    

    2)道密度

      • 沿磁盘半径的方向单位长度内磁道的数目简称为道密度,简称为TPI(每一英寸/道),实际计算中,也有以毫米为单位 。
      • 称最外层为0道,由外向内递增

      3)位密度

      • 沿磁道方向单位长度内存储的二进制的信息的个数成为位密度(每毫米/位)      
      • 为了简化电路的设计。每个磁道存储的位数都是相同的,但是由于磁道半径的变化,所以磁盘的位密度也是由外向内逐步增加的,密度也就越来越大

    4)扇区

      • 磁盘传输的数据是以块,或者说以记录为单位,因此,磁盘上的数据以块的方式进行存放,而这些块通常称为扇区。  
      • 每个磁道所包括的扇区不等,一般是10~100个扇区,为避免干扰,扇区之间也留有空隙。

    5)柱面

      • 柱面的概念,柱面是若干个记录面组成的磁盘组
      • 所有盘面上相同位置的磁道就称为一个柱面,具有N个磁盘记录面的磁盘,每个柱面就有N个磁道,若每个磁盘记录面有N个磁道,那么这个磁盘组就有N个柱面。

       

  2.磁盘容量

    1)总磁道数:

        • m:磁盘的记录面数
        • TPI:磁盘的道密度
        • de:最外圈的直径
        • di:最内圈的直径              

            

    2)非格式化容量

        • w:位密度(每毫米的位数)
        • d:最内圈的直径
        • m:磁盘记录的面数
        • n:每一面的磁道数

          

    3)磁盘格式化容量

        • 能够实际存储有用信息的总量
        • 格式化容量=磁盘存储容量
        • s:每一个磁道的扇区数 
        • b:每个扇区所存储的字节数             

            

  3.数据存取过程

    1)磁盘存放数据规则

        • 在向磁盘记录一个文件时,应将文件尽可能记录在同一柱面上
        • 当一个柱面记录不下时,再记录到相邻的柱面上
        • 当一个文件超出一个磁道容量时,剩下的部分应该存放在其他盘面同一编号的磁道上,同一柱面的其他磁道上
        • 为存取磁盘上的一个物理记录,必须具有三个参数,分别是柱面号,磁头号(盘面号),扇区号。
        • 磁盘根据柱面号来控制移动壁做径向运动沿着半径,带动读写头到达所需的柱面,从磁头号来确定哪一个磁头来读写数据,然后等待访问的信息块旋转到读写头下时来进行存取。

    2)磁盘存取数据操作

        • 磁盘在实现这些操作时,分为查找,搜索,读,写和控制。
        • 查找:将读写头定位到指定的柱面并选择指定的磁头
        • 搜索:指定的磁头寻找要访问的记录块

    3)平均存取时间

        • 平均存取时间是反映磁盘数据操作速度的指标,单位是毫秒(ms)。
        • 它包括三个时间段,分别是平均寻道时间,平均定位时间和转动延迟。
        • 平均定位时间+转动延迟统称为等待时间

  

  4.数据传输速率  

    1)计算公式

        • TB:一个磁道上记录的字节数
        • T:磁盘每旋转一圈所需要的时间         

          

        • s:每个磁道的扇区数
        • b:每个扇区所存储的字节数

        • rpm磁盘转速

          

     2)计算公式变形

          

  3)如果未给出每次到的扇区数以及每扇区的存储字节数,则可以根据以下公式计算磁盘的平均数据传输速率 

                

    4)举例说明

  假设一个有3个盘片的硬盘,共有4个记录面,转速为7200转/分,盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为8道/mm,每磁道分为16个扇区,每扇区512字节。

        • 总磁道数=4*8*(30-10)/2*10=3200道

        • 非格式化容量=道密度w*3.14*最内圈直径*总磁道数/8bit/1024/1024=(250*3.14*10*10*3200)/8/1024/1024=29.95MB

        • 格式化容量=总磁道数*每一个磁道的扇区数*每扇区的字节数=3200*16*512/1024/1024=25MB

        • 平均数据传输速率=TB/T=(16*512*7200/60)/1024=960kb/s    

 

  5.磁盘调度算法 

    1)磁盘调度定义

  磁盘是一个可以被多个进程共享的一个设备,当多个进程请求访问磁盘的时候,为了保证信息的安全,系统在每一时刻只允许一个进程输入输出磁盘,其余进程只能等待,因此,操作系统应该采用一种适当的调度算法,使各进程对磁盘的平均访问时间最短,这里指的一般是寻道时间,因为等待时间与磁盘本身的结构有关。(平均等待时间是磁盘转速时间的一半)磁盘调度分为移臂调度和旋转调度两类,并且要先进行移臂调度然后再进行旋转调度,由于磁盘最耗时的是寻道时间,因此,磁盘调度的目标使磁盘的平均时间最短,当磁盘的移动壁定位后,有多个进程等待访问这个柱面的时候,应当如何决定这些进程的访问顺序呢?这就是旋转调度要考虑的问题。系统应该选择延迟时间最短的进程对磁盘的扇区进行访问, 当有若干个等待进程请求访问磁盘上的信息时,旋转调度应考虑三种情况1.进程请求访问的是同一磁道上不同编号的扇区2.进程请求访问的是不同磁道上不同标号的扇区3.进程秦请求的是不同磁道上统一编号的扇区,对于1、2两种情况,旋转调度总是让首先到达旋转磁头位置下的扇区进行传输操作,而对于不同磁道同一扇区编号的请求操作,旋转调度可以任选一个读写磁头位置下的扇区进行操作。   

          

      

    2)磁盘调度算法种类

      • FCFS:先来先服务算法

        • 按照先来后到的顺序,没有做任何优化
        • 优点:公平简单,使每个请求都会得到处理,不会出现某个请求长时间得不到请求的情况
        • 缺点:平均寻道时间可能比较长  
      • SSTF:最短寻道时间优先算法

        • 访问的磁道距离当前磁头所在的磁道最近
        • 优点:这样就可以使每次寻道所用的时间最短,FCFS算法会引起磁头在盘面上大范围的移动 
        • 缺点:会因为距离过长而推迟一些请求的服务,甚至导致无限拖延,这种情况称为饥饿。 
      • SCAN:扫描算法(也称电梯算法)

        • 不仅考虑到下一个访问磁道与当前磁道的距离,而且优先考虑再磁头前进方向上的最短查找时间,排除了磁头在磁盘上某个位置的往复移动。就像电梯一样,电梯到了10楼,往上走,即使按下9楼,也不会往回走,而是走到最高目标层再下来,而不是在9层和10层之间做往复运动。 
        • 优点:很大程度上消除了SSTF的不公平性,有利于对中间磁道的请求  
        • 缺点:当磁头由里向外移动过某一磁道的时候,这是恰有一个进程请求访问这个磁道,这是进程必须等待磁头由里向外,再由外向里扫描完要访问的磁道,才能处理这个进程的请求。
      • N-SCAN

      • C-SCAN

        • 规定磁头单向移动,消除对两端磁道不公平的算法。  

        

  

    

原文地址:https://www.cnblogs.com/TimeIsChoice/p/8342628.html