磁道优化分布的一道题

有人问的一个问题,发现在C站里也挂了很久,没人解答。

磁道优化分布计算处理时间的问题-CSDN社区

这里只解释一下第3题,第1题和第2题是同样的思路。前两题的用时只计算到 "全部读出",第3题的用时要计算到 "全部处理完",也就是差最后一个记录的处理时间1ms。

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| (3)假设每条磁道被分为8个扇区,每个扇区存放一个记录,处理程序顺序处理这8个记录L1,L2,...,L8。每次请求从磁盘上读一个记录,然后对读出的记录花1ms的时间进行处理,以后再读下一个记录进行处理。磁盘旋转一周花费16ms(即每读一个扇区需2ms)。若将这8个记录在一条磁道上进行优化分布,则全部处理完这8个记录至少需要多少ms? |

这个题,有人说可以用什么公式来计算,但计算的答案也不对。所以,还是从原理上进行分析。

这个题里,读每个扇面的用时是 16/8=2 ms。先将记录 L1 块放在下图中的OA扇区,读出L1的对应的时间段是从 t=0-2ms;然后程序开始处理L1,花费1 ms,对应的时间段是从 t=2-3 ms。在 t=3时点,磁盘一直在旋转,磁头位于AB之间,且还有1ms到达B点。因此,优化分布的结果,一定是把记录L2在BC扇区(如下图右侧图所示)。1ms后(也就是 t=4ms 时点)磁头到达B点,然后开始读取L2,对应的时间段从 t=4 - 6ms。

随后,t=6ms时L2记录被读取完,磁头到达C点。然后程序开始处理L2,花费1 ms,对应的时间段是从 t=6-7 ms。在 t=7 ms 时点,磁盘在继续旋转,磁头位于CD之间,且还有1ms到达D点。因此,优化分布的结果,一定是把记录L3放在DE扇区(如下图右侧图所示)。1ms后(也就是 t=8ms 时点)磁头到达D点,然后开始读取L3,对应的时间段从 t=8-10ms。

随后,t=10ms时L3记录被读取完,磁头到达E点。然后程序开始处理L2,花费1 ms,对应的时间段是从 t=10-11 ms。在 t=11 ms 时点,磁盘在继续旋转,磁头位于EF之间,且还有1ms到达F点。因此,优化分布的结果,一定是把记录L4放在FG扇区(如下图右侧图所示)。1ms后(也就是 t=12ms 时点)磁头到达F点,然后开始读取L4,对应的时间段从 t=12-14ms。

随后,t=14ms时L4记录被读取完,磁头到达G点。然后程序开始处理L4,花费1 ms,对应的时间段是从 t=14-15 ms。在 t=15 ms 时点,磁盘在继续旋转,磁头位于GO之间,且还有1ms到达O点。因此,优化分布的结果,本来一定是把记录L5放在OA扇区,但因为OA扇区已有L1,所以一定是把记录L5不得不放在AB扇区(如下图右侧图所示,这里一定要注意!)。1ms后(也就是 t=16ms 时点)磁头到达O点,继续在t=16-18ms 这段时间转到A点。然后开始读取L5,对应的时间段从 t=18-20ms。

随后,恢复正常,t=20ms时L5记录被读取完,磁头到达B点。然后程序开始处理L5,花费1 ms,对应的时间段是从 t=20-21 ms。在 t=21 ms 时点,磁盘在继续旋转,磁头位于BC之间,且还有1ms到达C点。因此,优化分布的结果,一定是把记录L6放在CD扇区(如下图右侧图所示)。1ms后(也就是 t=22ms 时点)磁头到达C点,然后开始读取L6,时间从 t=22-24ms。

同样道理,L7放在EF扇区,L8放在GO扇区。直到 L8 在GO扇区被读取完,再花费1ms进行处理。

因此,实际上的总用时就是磁盘旋转了2圈后磁头又位于O点的用时,再加上最后1ms的处理时间,一共是16*2+1=33ms。

如果这道题像前两道题那样,只是问"全部读出的时间",那就不算最后的1ms的处理时间,也就是32ms,这就是第3题与前两题的差别。

相关推荐
YuMiao6 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器