操作系统-9——I/O管理和磁盘调度

一、I/O功能的组织

四种技术:

  • 程序控制I/O:CPU忙等I/O结束,串行工作。
  • 中断驱动I/O:各种设备通用,中断次数多。
  • 直接存储器访问DMA:速度快、数据量大。在完成一个数据块I/O之后,下个CPU发出一次中断,中断次数少。适合于磁盘,网络接口等的I/O。
  • **通道Channe**l:比DMA效率跟高,通道具有自己的指令系统和专用的I/O处理器,独立完成I/O操作。

1.1直接存储器访问——DMA

DMA工作原理和过程:

  • CPU向DMA控制器发出I/O数据块的指令: <读/写操作、源/目的地址、传送字(节)数>;
  • 由DMA控制器完成设备的一个连续数据块与一个连续 内存区之间的直接传送(不断地抢占总线挪用CPU工作
    周期,将缓冲中的数据写入内存单元,或从内存单元读 出写到缓冲),传送字(节)数递减至0;
  • 一个数据块I/O完后,DMA控制器向CPU发中断;
  • 发出数据传送请求的进程被唤醒。 I/O效率高;DMA传送时,CPU执行效率略降低。

1.2磁盘调度

  • 扇区是小寻址单位和存取单位(但不是分配单位)。
  • 分配磁盘空间时以盘块(簇)为单位。1盘块=2n扇区
  • 一磁道内扇区数可能固定或不固定,但数据传输率 (kb/s)应保持恒定。

1.2.1磁盘性能参数

  • 磁盘访问时间包括如下三部分:Ta=Ts+Tr+Tt
  • 寻道时间Ts = 启动磁盘时间+横跨n条磁道时间 目前,典型的磁盘平均寻道时间Ts小于10ms。

  • 旋转延迟时间Tr = 将待访问扇区转到磁头下的时间 若15000转/分钟,则每转4ms,Tr平均约2ms。

  • 传输时间Tt =(读写字节数b ) /(旋转速度r * 每磁道字节数N )
  • 寻道时间对磁盘访问时间影响大。

    1.2.2磁盘调度策略

  • 磁盘调度:调整多个磁盘访问请求的服务顺序,以 降低平均磁盘服务时间。

  • 磁盘调度算法减少的是磁头移动距离(寻道时间)。

4种磁盘调度算法:

 - 先进先出(FIFO, First-In-First-Out)

 - SCAN扫描算法

 - C-SCAN 循环扫描算法
  • 先进先出(FIFO):按请求的接受顺序服务。

这里写图片描述

  • 后进先出(LIFO):先处理最新提出的请求。
    事务处理时,读取文件具有局部性,LIFO可减少磁臂移动,提高吞吐量,当先提出的请求会饥饿。
  • 最短服务时间有限算法(SSTF):也成为最短寻道时间有限算法。有限选择距当前磁头位置最近的访问请求进行服务。

这里写图片描述

  • SCAN扫描算法:也称作电梯算法。选择位于磁头移动方向前方距磁头位置最近的访问请求进行服务。当前方没有访问请求时,立即改变磁头移动方向(LOOK);或继续扫描到磁盘便捷后再转向(SCAN)。

    这里写图片描述

  • C-SCAN循环扫描算法:磁头从磁盘的一端一道另一端,随着移动而不断处理请求,当磁头一道另一端时,马上返回磁盘起始,返回时不处理请求。

    这里写图片描述

1.3RAID-独立磁盘冗余阵列

  • RAID用多个小容量磁盘代替单个大容量磁盘。

    • 优势是:增加数据容量,多个磁盘并行I/O可提高 速度,设置冗余磁盘可提高可靠性。
    • RAID是一组磁盘阵列,但OS视其为一个整体。
    • 除数据盘外,另有冗余磁盘保存(奇偶)校验信息, 作为校验盘,在某个磁盘失效时用于恢复数据。
  • RAID级别:0~6。常用:RAID 0、1、5、6

    三个关键技术:

  • RAID中的磁盘条带化: 将N个(一组)磁盘看作是一个存储部件。将每个数 据盘块划分为几个子块(条带strip),把每个子块的
    数据分别存储到各个不同磁盘的相同位置上。

  • RAID中的并行访问: 读写时,N个磁盘并行地读写各个子块。磁盘数据 传输率提高了N-1倍。

  • RAID中的块交叉校验:

    • 在磁盘条带化的基础上,在每组磁盘中设置一个校 验盘,该盘上任一位的内容为组中其余所有数据盘 同一位的校验(如:奇偶校验)。

    • 在写组中任一数据盘的任一块时,都要计算新的校 验并写入校验盘相同块。

    • 当一个数据盘出故障时,可以根据其余数据盘和校 验盘的内容,计算并恢复故障盘内容。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值