第6章 输入输出系统-磁盘性能和调度
6.8.1 磁盘性能简述
- 磁盘、磁道、扇区的概念
磁盘的表面由一些磁性物质组成,可用这些磁性物质来记录二进制数据 ;
磁盘包括一个或多个物理盘片,每片分两面 ;
每面分成若干条同心环磁道,磁道又被分成许多扇区。
每个扇区上可存储相同数目的二进制位,例如512字节。
柱面:不同盘片相同半径的磁道所组成的圆柱称为柱面,柱面数=磁道数。
- 磁盘的物理地址
硬盘的CHS:Cylinder(柱面)、Head(磁头)、Sector(扇区)
- 磁盘数据读写方式
- 根据柱面号移动磁臂,让磁头指向指定柱面(磁道) ;
- 激活指定盘面对应的磁头 ;
- 磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读写 ;
- 所有的磁头都是连在同一个磁臂上的,因此,所有磁头只能共进退。
-
磁盘容量:存储容量=柱面数×磁头数×扇区数×512B;
-
一次磁盘读写操作需要的时间——磁盘访问时间
磁盘设备在工作时以恒定速率旋转。读写时,磁头必须能移动到指定磁道上,并等待所指定的扇区的开始位置旋转到磁头下,然后再开始读写。对磁盘的访问时间分三部分:
- 寻道时间Ts:把磁头移动到指定磁道上所经历的时间。 启动磁臂时间s+磁头移动n条磁道时间Ts=m*n+s;寻道时间随寻道距离的变化而变,5-30ms ; 磁盘移动一个磁道约需要0.2ms, 磁臂启动时间为2ms;
- 旋转延迟时间Tr:指定扇区移动到磁头下面所经历的时间。转速:7200r/min,约为每转时间的一半,即4ms。
- 传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间。与每次所读的字节数b和旋转速度有关。10kb约为1ms。
- 磁盘调度的目标:寻道时间是最耗时的操作,使各进程对磁盘的平均寻道时间最少,从而减少对文件的访问时间。
- 早期的磁盘调度算法:
- 先来先服务(FCFS)
- 最短寻道时间优先(Shortest Seek Time First,SSTF)
- 基于扫描的磁盘调度算法
- 扫描(SCAN)算法-类似电梯调度算法
- 循环扫描(CSCAN)算法
6.8.2 先来先服务调度算法
- 先来先服务(FCFS)
- 根据进程请求访问磁盘的先后次序进行调度。
- 例:9个进程先后提出IO请求,按FCFS进行调度的情况。(如下图)
- 磁头改变方向的次数:5次。
-
优点: 简单公平,每个进程的访问请求依次处理,不会出现某个进程的访问请求长时间得不到满足的情况。
-
例题分析
例:假设某磁盘的一组I/O操作的柱面号访问请求顺序依次是55、72、100、88、93和66,当前磁盘位于90号柱面。试求采用FCFS算法时,系统服务的顺序、磁头移动的距离以及磁头改变方向的次数。
解答:服务顺序:90→55→72→100→88→93→66
移动距离:35+17+28+12+5+27=124(跨越的柱面总数)
磁头改变方向的次数:4次。
6.8.3 最短寻道时间优先算法
- 最短寻道时间优先(SSTF)
- 选择进程,其要求访问的磁道与当前磁头所在的磁道距离最近。
- 例:9个进程先后提出IO请求,按SSTF进行调度的情况。(如下图)
- 每次的寻道时间最短。
- 磁头改变方向的次数:1次
- 例题分析
例:假设某磁盘的一组I/O操作的柱面号访问请求顺序依次是55、72、100、88、93、66,当前磁盘位于90号柱面。试用SSTF算法求系统服务的顺序、磁头移动的距离以及磁头改变方向的次数。
解答:服务顺序:90→88→93→100→72→66→55
移动距离:2+5+7+28+6+11=59(跨越的柱面总数)
磁头改变方向的次数:2次。
6.8.4 基于扫描的磁盘调度算法
- 扫描(SCAN)算法-电梯调度算法
- 策略:减少磁头改变方向。
- 思想:考虑磁盘请求的磁头移动方向,在方向一致的情况下优先调度与当前磁头最近的请求。
- 则可防止低优先级进程出现“饥饿”现象。
- 例题分析
例:设某磁盘的一组I/O操作的柱面号访问请求顺序依次是:55、72、100、88、93和66,当前磁盘位于90号柱面。试用SCAN算法求系统服务的顺序、磁头移动的距离以及磁头改变方向的次数。
解答:服务顺序:90→88→72→66→55→93→100
移动距离:2+16+6+11+38+7=80 (跨越的柱面总数)
磁头改变方向的次数:1次。
- 循环扫描(CSCAN)算法
- 磁头单向移动。即没有访问请求时磁头不动,有访问请求时向一个方向扫描。
- 如自里向外移动,当磁头移动最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,进行循环扫描。
- 例题分析
例:假设某磁盘的一组I/O操作的柱面号访问请求顺序依次是:55、72、100、88、93和66,当前磁盘位于90号柱面。试用CSCAN求系统服务的顺序、磁头移动的距离以及磁头改变方向的次数。(向磁道号增加方向访问)
解答:服务顺序:90→ 93→100→55→66→72→88
移动距离:3+7+45+11+6+16= ?(跨越的柱面总数)
磁头改变方向的次数:1次。
绝对扇区-逻辑扇区转换
磁盘的物理地址CHS:Cylinder(柱面)、Head(磁头)、Sector(扇区)
- 绝对扇区地址和逻辑扇区号
- 以柱面、磁头、扇区表示的为绝对扇区,又称物理磁盘地址CHS 单一数字表示的为相对扇区号,又称逻辑扇区号;
- 例:磁盘有 6个磁头,3个柱面,每磁道有8个扇区,共144扇区;
- 编码原则:假设柱面、磁头、扇区从0开始
柱面0,磁头0,扇区0-7
柱面0,磁头1,扇区0-7
柱面0,磁头2,扇区0-7- 比如:求逻辑扇区120对应的绝对扇区号:
C=120/(68)=2,H=[120%(68)]/8=3,S=[120%(6*8)]%8=0
第6章 输入输出系统-磁盘性能和调度和第8章的磁盘存储空间的管理的练习紧密,后面再讲第8章的内容。
练习题
- 磁盘调度算法的目的是什么?常用移臂调度算法有哪些?
答:磁盘移臂调度的目的是尽可能地减少输入输出操作中的寻
道时间。常用的移臂调度算法有:
- 先来先服务算法—FCFS
- 最短寻找时间优先算法—SSTF
- 电梯调度算法—SCAN
- 单向扫描算法—CSCAN