Memory management 为什么不使用‘;块表’;对于文件系统(类似于页表)?

Memory management 为什么不使用‘;块表’;对于文件系统(类似于页表)?,memory-management,operating-system,filesystems,virtual-memory,Memory Management,Operating System,Filesystems,Virtual Memory,文件系统结构类似于内存管理结构: 将非连续物理帧映射到连续虚拟内存 将非连续物理磁盘块映射到连续文件。 为什么不为文件系统使用“块表”(类似于页表)?大多数文件系统都使用某种基于树的表示法来存储数据。然而,文件系统树中要存储的状态(如目录结构、不同长度的文件等)比页面表中要多得多 页表的设计允许硬件: 轻松地将概念上平坦的地址空间(进程内存)转换为另一个概念上平坦的地址空间(物理内存) 快速了解何时生成操作系统要处理的页面错误 任何传统文件系统的内部数据结构都将针对以下方面进行优化: 从目

文件系统结构类似于内存管理结构:

  • 将非连续物理帧映射到连续虚拟内存
  • 将非连续物理磁盘块映射到连续文件。

  • 为什么不为文件系统使用“块表”(类似于页表)?

    大多数文件系统都使用某种基于树的表示法来存储数据。然而,文件系统树中要存储的状态(如目录结构、不同长度的文件等)比页面表中要多得多

    页表的设计允许硬件:

    • 轻松地将概念上平坦的地址空间(进程内存)转换为另一个概念上平坦的地址空间(物理内存)
    • 快速了解何时生成操作系统要处理的页面错误
    任何传统文件系统的内部数据结构都将针对以下方面进行优化:

    • 从目录和文件的逻辑概念映射到平面地址空间(磁盘上的块)
    • 减少磁盘读取次数以执行此操作

    从性能角度来看,页表总是需要精确的日志(N)读取(其中N是地址空间的最大大小)才能访问包含数据的页(忽略转换查找缓冲区中的缓存值)。如果使用类似页表的结构表示文件(这可能有意义,因为这是平面地址空间(文件)到平面地址空间(磁盘)的映射),如果文件非常大且稀疏,则可以将其存储在B树中,B树的级别会更少(log(n),其中n是非空页面的数量)在获取要查找的数据之前进行遍历。每次对旋转磁盘的随机访问都非常昂贵,因此这将是一个有价值的优化。

    他在这里重新发明FAT吗?:)这是大多数文件系统以某种形式所做的。