第6章 输入输出系统-磁盘性能和调度

6.8.1 磁盘性能简述

  1. 磁盘、磁道、扇区的概念

磁盘的表面由一些磁性物质组成,可用这些磁性物质来记录二进制数据 ;
磁盘包括一个或多个物理盘片,每片分两面 ;
每面分成若干条同心环磁道,磁道又被分成许多扇区。
每个扇区上可存储相同数目的二进制位,例如512字节。
柱面:不同盘片相同半径的磁道所组成的圆柱称为柱面,柱面数=磁道数。
在这里插入图片描述

  1. 磁盘的物理地址

硬盘的CHS:Cylinder(柱面)、Head(磁头)、Sector(扇区)

  1. 磁盘数据读写方式
  1. 根据柱面号移动磁臂,让磁头指向指定柱面(磁道) ;
  2. 激活指定盘面对应的磁头 ;
  3. 磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读写 ;
  4. 所有的磁头都是连在同一个磁臂上的,因此,所有磁头只能共进退。
  1. 磁盘容量:存储容量=柱面数×磁头数×扇区数×512B;

  2. 一次磁盘读写操作需要的时间——磁盘访问时间

磁盘设备在工作时以恒定速率旋转。读写时,磁头必须能移动到指定磁道上,并等待所指定的扇区的开始位置旋转到磁头下,然后再开始读写。对磁盘的访问时间分三部分:

  1. 寻道时间Ts:把磁头移动到指定磁道上所经历的时间。 启动磁臂时间s+磁头移动n条磁道时间Ts=m*n+s;寻道时间随寻道距离的变化而变,5-30ms ; 磁盘移动一个磁道约需要0.2ms, 磁臂启动时间为2ms;
  2. 旋转延迟时间Tr:指定扇区移动到磁头下面所经历的时间。转速:7200r/min,约为每转时间的一半,即4ms。
  3. 传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间。与每次所读的字节数b和旋转速度有关。10kb约为1ms。
  1. 磁盘调度的目标:寻道时间是最耗时的操作,使各进程对磁盘的平均寻道时间最少,从而减少对文件的访问时间。
  2. 早期的磁盘调度算法:
  1. 先来先服务(FCFS)
  2. 最短寻道时间优先(Shortest Seek Time First,SSTF)
  1. 基于扫描的磁盘调度算法
  1. 扫描(SCAN)算法-类似电梯调度算法
  2. 循环扫描(CSCAN)算法

6.8.2 先来先服务调度算法

  1. 先来先服务(FCFS)
  1. 根据进程请求访问磁盘的先后次序进行调度。
  2. 例:9个进程先后提出IO请求,按FCFS进行调度的情况。(如下图)
    在这里插入图片描述
  3. 磁头改变方向的次数:5次。
  1. 优点: 简单公平,每个进程的访问请求依次处理,不会出现某个进程的访问请求长时间得不到满足的情况。

  2. 例题分析

例:假设某磁盘的一组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 最短寻道时间优先算法

  1. 最短寻道时间优先(SSTF)
  1. 选择进程,其要求访问的磁道与当前磁头所在的磁道距离最近。
  2. 例:9个进程先后提出IO请求,按SSTF进行调度的情况。(如下图)
    在这里插入图片描述
  3. 每次的寻道时间最短。
  4. 磁头改变方向的次数:1次
  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 基于扫描的磁盘调度算法

  1. 扫描(SCAN)算法-电梯调度算法
  1. 策略:减少磁头改变方向。
  2. 思想:考虑磁盘请求的磁头移动方向,在方向一致的情况下优先调度与当前磁头最近的请求。
  3. 则可防止低优先级进程出现“饥饿”现象。
    在这里插入图片描述
  1. 例题分析

例:设某磁盘的一组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次。

  1. 循环扫描(CSCAN)算法
  1. 磁头单向移动。即没有访问请求时磁头不动,有访问请求时向一个方向扫描。
  2. 如自里向外移动,当磁头移动最外的磁道并访问后,磁头立即返回到最里的欲访问磁道,进行循环扫描。
    在这里插入图片描述
  1. 例题分析

例:假设某磁盘的一组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(扇区)

  1. 绝对扇区地址和逻辑扇区号
  1. 以柱面、磁头、扇区表示的为绝对扇区,又称物理磁盘地址CHS 单一数字表示的为相对扇区号,又称逻辑扇区号;
  2. 例:磁盘有 6个磁头,3个柱面,每磁道有8个扇区,共144扇区;
  3. 编码原则:假设柱面、磁头、扇区从0开始
    柱面0,磁头0,扇区0-7
    柱面0,磁头1,扇区0-7
    柱面0,磁头2,扇区0-7
  4. 比如:求逻辑扇区120对应的绝对扇区号:
    C=120/(68)=2,H=[120%(68)]/8=3,S=[120%(6*8)]%8=0
    在这里插入图片描述

第6章 输入输出系统-磁盘性能和调度和第8章的磁盘存储空间的管理的练习紧密,后面再讲第8章的内容。

练习题

  1. 磁盘调度算法的目的是什么?常用移臂调度算法有哪些?

答:磁盘移臂调度的目的是尽可能地减少输入输出操作中的寻
道时间。常用的移臂调度算法有:

  1. 先来先服务算法—FCFS
  2. 最短寻找时间优先算法—SSTF
  3. 电梯调度算法—SCAN
  4. 单向扫描算法—CSCAN
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值