Geometry---郁闷我很长时间的问题

2009-05-13 02:56:57来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


http://www.cublog.cn/u/4206/showart.php?id=107626
这个词好像很多人都没弄明白,包括我,放假没事,整理整理吧。
一:geometry应该翻译为几何数据,其实就是指的CHS(Cylinder、Head、Sector/Track)
。C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,编号从0开始,最大为1023,表示有1024个磁道(用10个二进制位存储);H-
Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,编号从0开始,最大为255,表示有256个磁头(用8个二进制位存储);S-
Sector/Track扇区数表示每条磁道上有几个扇区,编号从1开始,最大为63,表示63个扇区(用6个二进制位存储),每个扇区512字节,它是
硬盘的最小存储单位。我们可以算一下:1024个柱面×63个扇区×256个磁头×512byte=8455716864byte。即通常的8.4GB
(实际上应该是7.8GB左右)限制。实际上磁头数通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。当然
现在的硬盘早就超过8.4GB了。
二:除了CHS,我们还需要了解block,因为现在的硬盘早就不以CHS来设定了。不论我们的操作系统用的是哪一种 filesystem
,数据总是需要储存的吧!既然硬盘是用来储存数据的,想当然尔, 数据就必须写入硬盘啦!我们知道硬盘的最小储存单位是 sector
,不过数据所储存的最小单位并不是 sector 喔,因为用 sector 来储存太没有效率了。怎么说呢?因为一个 sector 只有 512
Bytes ,而磁头是一个一个 sector 的读取,也就是说,如果我的档案有 10 MBytes ,那么为了读这个档案,
我的磁头必须要进行读取 (I/O) 20480 次!
为了克服这个效率上的困扰,所以就有逻辑区块( Block )的产生了! 逻辑区块是在 partition 进行 filesystem
的格式化时, 所指定的『最小储存单位』,这个最小储存单位当然是架构在 sector 的大小上面( 因为 sector
为硬盘的最小物理储存单位啊! ),所以啦, Block 的大小为 sector 的 2 的次方倍数。此时,磁头一次可以读取一个 block
,如果假设我们在格式化的时候,指定 Block 为 4 KBytes ( 亦即由连续的八个 sector 所构成一个 block
),那么同样一个 10 MBytes 的档案, 磁头要读取的次数则大幅降为 2560 次,这个时候可就大大的增加档案的读取效能啦!
不过,Block 单位的规划并不是越大越好!怎么说呢?因为一个 Block 最多仅能容纳一个档案 !这有什么问题呢?举例来说好了,假如您的
Block 规划为 4 KBytes ,而您有一个档案大小为 0.1 KBytes ,这个小档案将占用掉一个 Block 的空间,也就是说,该
Block 虽然可以容纳 4 Kbytes 的容量,然而由于档案只占用了 0.1 Kbytes ,所以,实际上剩下的 3.9 KBytes
是不能再被使用了,所以,在考虑 Block 的规划时,需要同时考虑到:
档案读取的效能
档案大小可能造成的硬盘空间浪费
因此,在规划您的磁盘时,需要留意到您主机的用途来进行规划较佳!例如 BBS 主机由于文章较短, 也就是说档案较小,那么 Block 小一点的好;而如果您的主机主要用在储存大容量的档案, 那么考虑到效能,当然 Block 理论上,规划的大一点会比较妥当啦!
三:SCSI 硬盘上的 physical geometry 跟 FreeBSD 上的 disk blocks 是完全无关的。事实上,
就硬盘上扇区密度的变化而言,并没有所谓『physical geometry』这种东西。 硬盘制造商所说的『physical
geometry』通常是指: 硬盘上所使用最小空间来存放数据的设定参数(geometry)。 以 IDE 硬盘而言,FreeBSD
用以存取硬盘设定的方式是 C/H/S , 然而,目前市面上的硬盘早就在内部运作时,就自动转换为 block 方式 了。
真正关键的地方,其实是在于 『logical geometry』─ 这是 BIOS 侦测硬盘时所得到的设定,并且用来决定硬盘存取方式。 由于

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:pf中文手册(for openbsd,但同样适用FREEBSD)

下一篇:FB6的基本汉化