计算机组成与体系结构------磁盘调度
Posted Timer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机组成与体系结构------磁盘调度相关的知识,希望对你有一定的参考价值。
一.磁盘结构与参数
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
- 规定磁头单向移动,消除对两端磁道不公平的算法。
-
-
以上是关于计算机组成与体系结构------磁盘调度的主要内容,如果未能解决你的问题,请参考以下文章
系统架构设计师计算机组成与体系结构 ① ( 计算机组成 | CPU | 存储器 | 总线 | IO 外设 | CPU 组成 | 运算器 | 控制器 )