概述
一、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中的块交叉校验:
在磁盘条带化的基础上,在每组磁盘中设置一个校 验盘,该盘上任一位的内容为组中其余所有数据盘 同一位的校验(如:奇偶校验)。
在写组中任一数据盘的任一块时,都要计算新的校 验并写入校验盘相同块。
- 当一个数据盘出故障时,可以根据其余数据盘和校 验盘的内容,计算并恢复故障盘内容。
最后
以上就是坦率网络为你收集整理的操作系统-9——I/O管理和磁盘调度一、I/O功能的组织的全部内容,希望文章能够帮你解决操作系统-9——I/O管理和磁盘调度一、I/O功能的组织所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复