![每个柱面有多少个字节?](https://linux22.com/image/1423899/%E6%AF%8F%E4%B8%AA%E6%9F%B1%E9%9D%A2%E6%9C%89%E5%A4%9A%E5%B0%91%E4%B8%AA%E5%AD%97%E8%8A%82%EF%BC%9F.png)
考虑具有以下规格的硬盘。
• 3.5 in diameter
• 3840 RPM
• 10 platters, and 2 surfaces each platter
• Usable capacity: 10GB
• Number of cylinders: 256
• 1 block = 4 KB
• 20% overhead between blocks (gaps)
• Average seek time: 20 ms.
Compute the following numbers:
1. How many bytes are in each cylinder?
2. How many blocks are in each cylinder?
有人可以帮帮我吗?
答案1
这是基础数学。使用位计算器 - 在位/字节/千位/千字节/兆位/兆字节/千兆位/千兆字节之间进行转换。
给出的数据:
- 可用容量:10 GiB
- 气缸数:256
- 块 = 4 KB
每个柱面有多少个字节?
10 GiB = 10485760 kb = 10737418240 bytes
每柱面字节数 = 容量(字节数)(10737418240)/柱面数(256)
10737418240 / 256 = 41943040
因此41943040每个圆柱体中有字节。
每个气缸有多少个缸体?
41943040 bytes = 40960 kb
每柱面块数 = 每柱面 kb (40960) / 4
40960 / 4 = 10240
因此10240每个气缸中的缸体
答案2
你说的是 256 个柱面?伙计,那可是个小硬盘……
当我到这里时:
http://www.rajeshvu.com/san/utils/general/CylindersToGigaByte
并输入 256,它表示只有 240 mb。基于 512 字节块(或扇区),但您的示例基于 4 k 块,因此您必须将我的答案乘以 4 才能得到您的答案
1024 字节块 x 4 = 4 k,我知道计算中有些错误,但我的观点是现在没有人真正做这种数学运算了。如今大多数 PC 和硬盘驱动器实际上不再使用块寻址,而是使用 LBA 块寻址
最好的做法(在现实世界中而不是在学校里)是,通常,我会去驱动器制造商的网站并输入硬盘的序列号并获取驱动器的规格。
在现实世界中,我们只关心成本和驱动器的大小......
互联网上确实有很多有关硬盘历史的优秀文档(如果您对这类东西感兴趣,这篇值得一读),因为您很可能再也找不到 10GB 的硬盘了……
这是真正的公式:
计算
由于现代磁盘驱动器在界面上显示为一组连续的逻辑块,因此可以通过将块数乘以块大小来计算其总容量。此信息可从制造商的规格书或驱动器本身获取,方法是使用调用低级命令的特殊实用程序。[61][62]
旧硬盘的总容量可以通过将驱动器每个区域的柱面数乘以磁头数乘以每个区域的扇区数乘以每个扇区的字节数(最常见的是 512),然后将所有区域的总数相加来计算。一些现代 SATA 驱动器还会向 CPU 报告柱面-磁头-扇区 (C/H/S) 值,但它们不再是实际的物理参数,因为报告的数字受到历史操作系统界面的限制。
旧的 C/H/S 方案已被逻辑块寻址取代。在某些情况下,为了尝试将 C/H/S 方案“强制安装”到大容量驱动器,磁头数量被指定为 64,尽管现代驱动器没有接近 32 个盘片:截至 2013 年,典型的 2 TB 硬盘有两个 1 TB 盘片(4 TB 驱动器使用四个盘片)。
这是取自这里: