当提到文件系统和磁盘时,“磁盘扇区”、“磁盘块”、“块大小”和“磁盘记录”是同一个东西吗?

当提到文件系统和磁盘时,“磁盘扇区”、“磁盘块”、“块大小”和“磁盘记录”是同一个东西吗?

我很确定扇区基本上就是一个块,但我对块大小尤其是记录感到困惑。某些系统调用要求内存中缓冲磁盘数据的区域是磁盘记录大小的倍数。这是什么意思?

答案1

几年前我曾经做过一些文件系统开发。以下是我们在项目中使用的术语。

磁盘扇区是介质上最小的可寻址字节集。通常,大多数设备的扇区大小为 512 字节,但 4096 字节的扇区大小正变得越来越常见。

文件系统以物理块的形式访问设备。物理块可以是一个或多个连续的扇区(通常是 2 的幂)。

文件系统中的文件以逻辑块的形式访问数据。逻辑块是一个或多个连续的物理块。

答案2

部门是磁盘驱动器上的物理区域,扇区大小由硬件设置。对磁盘盘片的读取和写入都是以扇区为单位进行的。数据以扇区大小进行传输。

(我编写的第一个磁盘控制器(用于 14 英寸磁盘驱动器)不使用扇区,而是使用(磁盘)记录。每个轨道都必须使用记录布局进行格式化。如果你想要疯狂一点,轨道上的每个记录都可以有一个唯一的长度。但通常,整个磁盘卷的每个轨道上的所有记录都使用相同的记录长度进行格式化。现代磁盘驱动器不再具有这样的格式化功能,而是使用部门。从那时起,我就不记得听过“磁盘记录”这个短语了。注意:8 英寸软盘有一个类似但简化的格式化方案,称为“软扇区”,因为记录的长度始终一致,但不固定。)

(在设备层面,术语记录也用于物理块,例如磁带记录或磁盘记录。磁带传输或磁盘驱动器技术文档可能指记录作为 I/O 的最小物理块。但除非您实际使用磁带或在磁盘控制器级别工作,记录可以被视为用户空间/文件/文件系统实体。

记录是(最常用的)文件系统(或逻辑)概念,并且(因此)与较低(磁盘) I/O 级别无关(即读取或写入记录仅发生在用户到系统的接口上)。记录的内容和大小可以由用户定义或由文件决定。记录可能固定长度并对应于一个数据结构,或者记录可以是可变长度(例如一行文本新队分隔符)。

无论记录的长度如何,文件系统都会利用中间缓冲区来允许用户/应用程序执行记录的读取/写入,并在扇区中执行实际的设备 I/O。将设备中的扇区或物理块读入“系统缓冲区”,然后提取“逻辑”记录通常称为“解块”。

记录的大小可以是任意的。理想情况下,记录大小的选择应使其倍数等于扇区(或物理块)大小,然后块输入/输出(直接到/从用户缓冲区)可以代替缓冲 I/O. 块 I/O 速度更快,因为它涉及的复制更少,并且使用的缓冲区也更少,尽管用户程序可能必须自己执行记录的阻塞和解除阻塞。

相关内容