【星海出品】计算机科学之磁盘数据读取时间逻辑
Q:假设一个程序重复完成将磁盘上一个 4KB 数据块读出。
进行相应处理后,写回到磁盘的另一个数据区。
各数据块内信息在磁盘上连续存放,数据块随机位于磁盘的一个磁道上。
磁盘转速为每分钟 7200 转,平均寻道时间是 10ms ,磁盘最大内部数据传输率为 40 MB/s ,磁盘控制器的开销为 2ms ,没有其他程序使用磁盘和处理器,并且磁盘读/写 操作和磁盘数据的处理时间不重叠。
若程序对磁盘数据的处理需要 20000 个时钟周期,处理器时钟频率为 500MHz ,则该程序完成一次数据块
“读出 - 处理 - 写入” 操作所需的时间为多少?
每秒钟完成多少次这样的数据块操作?
在操作系统、文件系统和大多数软件中常用的转换方式
1KB = 1024字节(即2 ^ 10 字节)
因此 4KB = 4 * 1024 = 4096 字节
即 2 ^ 12 字节
注:CPU的Ghz 使用的是早期物理概念定义,即使用10进制进行转换,非2进制,既非冯诺依曼体系标准转换。
-
读出分析
》4KB 数据 = 4 * 2 ^ 10
》读出需要 寻道【每分钟7200转,平均10ns】 ,磁盘控制【2ms】,传输【40MB/s】》题目中有秒的问题,我们单位都想秒靠拢
每分钟7200转,每秒为 :7200 / 60 = 120转 / s
传输:40MB / s 等价于 40 * 10 ^ 6 / s
平均延迟,取