目录
0.前言
1.I/O设备
2.I/O功能的组织
3.Operating System Design Issues
4.I/O缓冲
4.1 单缓冲Single Buffer
4.2 双缓冲Double Buffer
4.3 循环缓冲
5.磁盘调度Disk Scheduling
5.1 磁盘性能参数
5.2 磁盘调度策略
①First-in,first-out(FIFO)
②Priority优先级
③Last-in,first-out(LIFO)
④Shortest Service Time First(SSTF)
⑤SCAN电梯算法
⑥circular SCAN(c-SCAN)
⑦N-step-SCAN
⑧FSCAN
6.Redundant Array of Independent Disks(RAID)独立冗余磁盘阵列
6.1 RAID 0(non-redundant)
6.2 RAID 1(mirrored)
6.3 RAID 3(bit-interleaved parity)
6.4 RAID 4 (block-level parity)
6.5 RAID 5 (block-level distributed parity)
0.前言
本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。
1.I/O设备
分类:
- 人可读Human readable(用户之间通信):字符流(Printers、Display、Keyboard、Mouse)
- 机器可读Machine readable(与电子设备通信):字符流和块数据(Disk and tape drives、Sensors、Controllers)
- 通信Communication(与远端设备通信):报文message(Digital line drivers、Modems、Network device)
差异:
- Data rate 传输速率
- Application
- Complexity of control
- Unit of transfer
- Data representation
- Error conditions
2.I/O功能的组织
- synchronous同步通信
- Wait:发出读写请求,然后阻塞,等待服务完成中断后,继续执行
- Not Wait:直接读或者写
- asynchronous communication异步通信
- 利用缓冲区
- 发出读写请求,及设置缓冲区地址
- 进程返回继续执行不阻塞
- 等待服务完成中断通知CPU
I/O功能的发展:
- 处理器直接控制I/O设备
- 增加了控制器或I/O模块
- 中断驱动的控制器或I/O模块
- 直接存储器访问Direct Memory Access(DMA):传送单位为块block,不需要经过CPU
- I/O被增强为单独的处理器
- I/O处理器
3.Operating System Design Issues
两个重要目标:
- Efficiency效率:操作系统应支持多道程序(并发),需要更多就绪队列
- Generality通用性:希望在统一模式下处理所有I/O设备
4.I/O缓冲
- Block-oriented面向块:信息存储在固定大小的块(block)中,每次传一个块(disk、tape)
- Stream-oriented面向流:以字节流(byte)形式传输信息(terminals、printers、communication ports、mouse)
4.1 单缓冲Single Buffer
- 面向块的单缓冲:操作系统在系统空间中为 I/O 请求分配一个缓冲区
- 优点:缓冲期间允许把进程换出(交换可发生);用户进程可在读入下一个数据块时处理一个数据块
- 缺点:OS要追踪进程对应缓冲区;同一磁盘中的交换会受影响
- 面向流的单缓冲
- Line-at-a-time fashion行缓冲:一行一行传输,行末有回车
- Byte-at-a-time fashion字节缓冲:传输遵循生产者模型
- 没有缓冲的处理时间:T+C
- 单缓冲的处理时间:max(T,C)+M
4.2 双缓冲Double Buffer
处理时间:max(T, C),如果C<T,则效果更明显
4.3 循环缓冲
5.磁盘调度Disk Scheduling
5.1 磁盘性能参数
- Seek time寻道时间:磁头从该磁道移动到目标磁道所需时间
- 假设启动磁头需要s,每移动一个磁道耗时m,总共需要移动n条磁道,则=s+m*n
- Rotational delay旋转延迟:转到目标扇区所需时间(设转盘转速为r,平均1/2圈,则旋转延迟为1/2r)
- Transfer time传输时间:从磁盘读出或向磁盘写入数据所经历的时间,设转速r,写入/读出字节数b,每个磁道上字节数为N,则传输时间=b/rN
- Access time存取时间
5.2 磁盘调度策略
关键:减少寻道时间
①First-in,first-out(FIFO)
②Priority优先级
短批处理作业可能有更高的处理级
③Last-in,first-out(LIFO)
对事物处理型(transaction processing)友好,可能有饥饿产生
④Shortest Service Time First(SSTF)
按照寻道时间从低到高执行,可能有饥饿
⑤SCAN电梯算法
朝一个方向单增/单减至头(到达请求的端点就可返回),然后再朝反方向行进
⑥circular SCAN(c-SCAN)
仅单增,到达头后回到底部再单增
⑦N-step-SCAN
将请求队列分为几个大小为N的子序列,子序列使用SCAN一次处理一个,当所有均被处理完后,新请求被加到其他队列
⑧FSCAN
两个队列,其中一个队列接收新请求
6.Redundant Array of Independent Disks(RAID)独立冗余磁盘阵列
数据分布在阵列的物理驱动器上
6.1 RAID 0(non-redundant)
- RAID 0无冗余,冗余磁盘容量用于存储奇偶校验
- 条带分布数据->可并行访问、高响应率
- 无纠错->不稳定
6.2 RAID 1(mirrored)
- 条带分布数据->可并行访问、高响应率
- 镜像纠错
- 写速度降低,读相应较好(可以并行任意读取一个)
6.3 RAID 3(bit-interleaved parity)
- 条带分布数据
- 位奇偶校验可纠错,一次只能一个I/O请求
6.4 RAID 4 (block-level parity)
- 条带分布数据
- 块奇偶校验位纠错->每次写需要操作2次读和2次写,X4成为性能瓶颈
6.5 RAID 5 (block-level distributed parity)
- 条带分布数据
- 分散块奇偶校验位纠错->解决X4性能瓶颈