Filesystems minix3文件系统实现

Filesystems minix3文件系统实现,filesystems,operating-system,minix,Filesystems,Operating System,Minix,我刚刚阅读了“文件系统实现”的第5.3节,我对使用链表(表实现)进行磁盘管理有疑问 作者提到,使用表实现每个表条目占用3个字节,这是可以理解的。然而,还提到,可以通过使用每个表条目4个字节来执行时间优化 优化是如何工作的?也许4字节是体系结构的字大小,因此CPU可以立即对这些值进行运算?对于3字节的值,您可能需要进行一些位旋转以将其扩展到4字节,然后才能对这些值进行操作 也就是说,与内存相比,CPU的速度非常快,更不用说磁盘、带宽了,因此如果3字节版本在实践中更快,我也不会感到惊讶。我一直在研究

我刚刚阅读了“文件系统实现”的第5.3节,我对使用链表(表实现)进行磁盘管理有疑问

作者提到,使用表实现每个表条目占用3个字节,这是可以理解的。然而,还提到,可以通过使用每个表条目4个字节来执行时间优化


优化是如何工作的?

也许4字节是体系结构的字大小,因此CPU可以立即对这些值进行运算?对于3字节的值,您可能需要进行一些位旋转以将其扩展到4字节,然后才能对这些值进行操作


也就是说,与内存相比,CPU的速度非常快,更不用说磁盘、带宽了,因此如果3字节版本在实践中更快,我也不会感到惊讶。

我一直在研究SystemV(及更早版本)传统UNIX文件系统,inode中保存的地址列表是一个40字节字符的数组,由3字节地址组成。当inode被读入内存时,首先要做的事情之一是将其扩展为一个32位值的内存数组,该数组可以正常使用。在i/o环境中,扩展是廉价的,inode中的节省是值得的。不过,在6TB磁盘和8k块的时代,情况并非如此。