磁道优化分布的一道题

有人问的一个问题,发现在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题与前两题的差别。

相关推荐
JoyCong199825 分钟前
高效远程协作指南:基于ToDesk的六大应用场景详解
运维·服务器·远程工作·远程操作
wniuniu_1 小时前
增加依据。。
服务器·网络·数据库
三不原则1 小时前
实战:混沌工程入门,模拟服务器宕机的故障演练
运维·kubernetes·chaos mesh
cws2004012 小时前
MFA双因素用户使用手册
运维·windows·网络安全·github·邮件·邮箱
颜子鱼2 小时前
Linux驱动-INPUT子系统
linux·c语言·驱动开发
Lueeee.2 小时前
llseek 定位设备驱动实验
linux·驱动开发
Jason_zhao_MR2 小时前
YOLO5目标检测方案-基于米尔RK3576开发板
linux·人工智能·嵌入式硬件·目标检测·计算机视觉·目标跟踪·嵌入式
小小程序媛(*^▽^*)2 小时前
Claude Code 新手保姆级安装与使用指南 (ZCF 版)
linux·编辑器·vim
筱谙2 小时前
BES BLE低功耗蓝牙技术实现分析
服务器·网络·网络协议
鱼香rose__2 小时前
管道、环境变量与常用命令
linux