答案1
内存页大小
内存页面大小的限制主要来自 MMU(内存管理单元)硬件和性能标准。显然,所选的页面大小必须由 MMU(即提供虚拟内存转换的页面映射硬件)支持。页面大小的选择取决于发生页面错误时应换入或换出的代码或数据量(小函数不在内存中,因此我们是换出数据并只读入 1K 代码还是读入 8K 代码?),以及传输该数量代码/数据的成本(例如,读取两个扇区比读取 16 个扇区更快)。从历史上看,
4KiB 是许多系统的合适平衡。实际使用的大小在操作系统的虚拟内存代码中指定。
簇的大小
簇大小纯粹是文件系统单位,术语“簇”主要是 Microsoft 术语。通用术语是文件系统内的分配单位。分配单位是文件系统特定安装所固有的(即,一个 NTFS 分区的簇大小可以为 4 KiB,而同一磁盘驱动器上的另一个 NTFS 分区的簇大小可以为 64KiB)。
文件系统分配单元主要用于记录分区中空闲(即未分配)和正在使用(即分配给文件和目录)的磁盘扇区。每个文件由有序的分配单元列表(即簇)组成。
分配大小是在创建文件系统(即格式化)时选择/指定的,并且必须基于某个扇区数(但最好是 2 的幂),因为扇区大小是访问和物理磁盘 I/O 的基本单位。较小的分配大小(例如只有 1 个扇区)往往会对文件系统(和磁盘)性能产生更多的负面(而不是正面,即更少的浪费的松弛空间)影响,例如更大的分配表、更多的簿记。较小的分配大小还会限制分配寻址和总文件系统容量。当文件系统必须跨越大分区和/或典型文件大小很大(大簇大小可以减少碎片)时,较大的分配大小是有益的,但代价是更多的浪费的松弛空间。
请注意,磁盘 I/O 不必以分配大小为单位执行(例如,如果文件长度小于 512 字节扇区,则操作系统可以选择仅读取第一个扇区而不是整个簇)。但任何访问文件系统的操作系统都必须遵守其固有的分配大小(即分配大小不能更改)。
另请参阅磁盘扇区有何用途?和分配单元尺寸较小的缺点