5、磁盘管理

绿色的是磁道,等分为扇区,有多个盘面,最外圈是 0 号磁道

每个盘面有一个磁头,所有磁头连接主杆,所有磁头一起移动,固定方向持续移动
时间
读取磁盘数据的时间包括:
- 找磁道时间(寻道时间)
- 找块(扇区)时间,即旋转延迟时间(等待时间)
- 传输时间(看题目有没有定义)
存取时间 = 寻道时间(磁头移动到磁道所需时间) + 等待时间(等待读写的扇区转到磁头下方所用的时间)
磁盘平均存取时间例题
某磁盘磁头从一个磁道移至另一个磁道需要 10ms。文件在磁盘上非连续存放逻辑上相邻数据块的平均移动距离为 10 个磁道,每块的旋转延迟时间及传输时间分别为 100ms 和 2ms,则读取一个 100 块的文件需要()ms 时间。
- 寻道时间/块:10ms * 10 个磁道 = 100ms
- 旋转延迟时间/块:100ms
- 传输时间/块:2ms
得出读取一块的平均时间是: 寻道时间/块 + 旋转延迟时间/块 + 传输时间/块 = 100ms + 100ms + 2ms = 202ms
所以读取 100 块的平均时间是: 202ms * 100 = 20200ms
磁盘优化分布存取时间例题
假设某磁盘的每个磁道划分成 11 个物理块,每块存放 1 个逻辑记录。逻辑记录 R。,R1,···,Rg,R1o 存放在同一个磁道上,记录的存放顺序如下表所示:
物理块 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
逻辑记录 | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 |
如果磁盘的旋转周期为 33ms,磁头当前处在 R。的开始处。若系统使用单缓冲区顺序处理这些记录,每个记录处理时间为 3ms,则处理这 11 个记录的最长时间为();若对信息存储进行优化分布后,处理 11 个记录的最少时间为()。
第一问
- 转一圈 33ms,有 11 个物理块,读取一个信息的记录是 3ms
- 单缓冲区说明缓冲区只能有一个数据
- R0:没有寻道时间(顺序存放),没有旋转延迟时间(磁头在起始位置),需要 3ms 存入缓冲区时间,3ms 读取信息时间
- R1 - R10:R0 处理完以后磁盘不会停止,3ms 以后刚好错过 R1,旋转延迟时间为 30ms 需要 3ms 存入缓冲区时间,3ms 读取信息时间
- 一共 6 + (30 + 3 + 3)* 10 = 366ms
第二问
- 优化分布,即自己选择存放位置
物理块 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
逻辑记录 | R0 | R6 | R1 | R7 | R2 | R8 | R3 | R9 | R4 | R10 | R5 |
- 相当于转了两圈,33ms * 2 = 66ms
xxx
某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间 T 为 10μs,由缓冲区送至用户区的时间 M 为 6μs,系统对每个磁盘块数据的处理时间 C 为 2μs。若用户需要将大小为 10 个磁盘块的 Doc1 文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用双缓冲需要花费的时间为(问题 1)μs,比使用单缓冲节约了(问题 2)μs 时间。
双缓冲
- 双缓冲情况下,读入(T)和传输 + 处理(M+C)可以并行(流水线)
- 第一个磁盘块没有并行可能 10 + 6 + 2 = 18μs
- 第二块开始,一边读下一个块(10),一边处理上一个块(6 + 2),瓶颈为读入 T,每个块新增时间为 10
- 18 + 9 * 10 = 108μs
单缓冲
- 单缓冲是串行的
- 每个块时间为 T + M + C = 10 + 6 + 2 = 18μs
- 10 * 18 = 180μs
移臂调度算法
先寻道,再考虑扇区(从小到大)
先来先服务(FCFS)

最短寻道时间优先(SSTF)【贪心算法】
