🏷️ 知识点:机械硬盘
一个交叉存放信息的磁盘,信息存放方式如图所示,磁盘旋转方向为逆时针方向。每个磁道有 8 个扇区,每个扇区 512 字节,旋转速度为 3000 转/分。假定磁头已在读取信息的磁道上,0 扇区转到磁头下需要 1/2 转,且设备对应的控制器不能同时进行输入/输出,在数据从控制器传送至内存的这段时间内,从磁头下通过的扇区数为 2,问依次读取一个磁道上所有的扇区所需时间和该磁盘的数据传输速度依次是( )。
A. 0.07s,58.5KB/s B. 0.07s,57.1KB/s C. 0.08s,57.1KB/s D. 0.08s,58.5KB/s
[tag_link]
正确答案:A
本题考查磁盘读取的速度。
首先注意磁盘旋转方向为逆时针方向,对于磁头和磁盘的运动实际上是磁头不动,磁盘转的,而磁盘逆时针方向旋转按扇区来看即 0、3、6……这个顺序。 而每个号码连续的扇区正好相隔 2 个扇区,即是数据从控制器传送到内存的时间,所以相当于磁头连续工作。
由题中条件知,旋转速度为 3000 转/分 = 50 转/秒,即 20ms/转。 读一个扇区需要时间为 20/8 = 2.5ms。 读一个扇区并将扇区数据送入内存需要时间为 2.5 × 3 = 7.5ms。 读出一个磁道上的所有扇区需要时间为 20/2 + 8 × 7.5 = 70ms = 0.07s。 每磁道数据量为 8 × 512 = 4KB。 数据传输速度为 4 × 1024 / (1000 × 0.07 s) = 58.5KB/s。 故依次读出一个磁道上的所有扇区需要 0.07s,其数据传输速度为 58.5KB/s。
注意:硬盘传送速率中的 K 是按 1000 来计算的,并不是 1024。
设一个磁道访问请求序列为 55,58,39,18,90,160,150,38,184,磁头的起始位置为 100。若采用 SSTF(最近寻道时间优先)算法,则磁头移动( )个磁道。
A. 55
B. 184
C. 200
D. 248
[tag_link]
正确答案:D
采用 SSTF 算法,磁头从起始位置 100 开始,每次选择距离当前磁头位置最近的请求进行服务。 具体过程如下: 初始位置 100,距离最近的请求是 90(距离 10),磁头移动到 90,移动 10 磁道。 位置 90,最近请求是 58(距离 32),移动到 58,累计移动 42 磁道。 位置 58,最近请求是 55(距离 3),移动到 55,累计 45 磁道。 位置 55,最近请求是 39(距离 16),移动到 39,累计 61 磁道。 位置 39,最近请求是 38(距离 1),移动到 38,累计 62 磁道。 位置 38,最近请求是 18(距离 20),移动到 18,累计 82 磁道。 位置 18,剩余请求中最近的是 150(距离 132),移动到 150,累计 214 磁道。 位置 150,最近请求是 160(距离 10),移动到 160,累计 224 磁道。 位置 160,最后请求 184(距离 24),移动到 184,累计 248 磁道。 因此,磁头总移动磁道数为 248,对应选项 D。
某计算机系统中的磁盘有 300 个柱面,每个柱面有 10 个磁道,每个磁道有 200 个扇区,扇区大小为 512B。文件系统的每个簇包含 2 个扇区。请回答下列问题:
(1) 磁盘的容量是多少?
(2) 假设磁头在 85 号柱面上,此时有 4 个磁盘访问请求,簇号分别为 100260、60005、101660 和 110560。若采用最短寻道时间优先 (SSTF) 调度算法,则系统访问簇的先后次序是什么?
(3) 第 100530 簇在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程是由 I/O 系统的什么程序完成的?
[tag_link]
1)磁盘容量 = 磁盘的柱面数每个柱面的磁道数每个磁道的扇区数每个扇区的大小 =(300×10×200×512/1024)KB=3×105KB。
2)磁头在 85 号柱面上,对 SSTF 算法而言,总是访问当前柱面距离最近的地址。注意每个簇包含 2 个扇区,通过计算得到,85 号柱面对应的簇号为 85000~85999。通过比较得出,系统最先访问离 85000~85999 最近的 100260,随后访问离 100260 最近的 101660,然后访问 110560,最后访问 60005。顺序为 100260、101660、110560、60005。
3)参考 CHS 地址,第 100530 簇在磁盘上的物理地址由其所在的柱面号、磁道号、扇区号构成。柱面号= ⌊簇号/每个柱面的簇数⌋ = ⌊100530/(10×200/2)⌋ = 100。磁道号 = ⌊(簇号%每个柱面的簇数)/每个磁道的簇数⌋ = ⌊530/(200/2)⌋ = 5。扇区号 = 扇区地址%每个磁道的扇区数 = (530×2) % 200 = 60。将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。