【问题标题】:Why's filesystem has your own block size, instead of using hard disk block size?为什么文件系统有自己的块大小,而不是使用硬盘块大小?
【发布时间】:2021-11-27 13:28:36
【问题描述】:

简而言之,文件系统如何与块设备通信?

【问题讨论】:

    标签: linux ubuntu operating-system filesystems


    【解决方案1】:

    我不太了解块大小。我认为 ext4(Linux)的文件系统的块大小是 4KB,考虑到现代处理器的页面大小(4KB),这是合乎逻辑的。现在我认为现代 SSD 的块大小(最小可寻址单元)是 256KB 或 4MB,具体取决于磁盘。这可能是由几个因素造成的(内存吞吐量、成本与性能等)。

    简而言之,文件系统如何与块设备通信?

    文件系统不与块设备通信,操作系统会。在 x86 上,操作系统设置称为 AHCI (https://www.intel.com/content/www/us/en/io/serial-ata/serial-ata-ahci-spec-rev1-3-1.html) 的 PCI DMA 主机控制器的寄存器。操作系统以 256KB/4MB 的块触发对 RAM 的读/写周期。它可能包含它在启动时加载的文件系统的结构。因此它已经知道不同文件的位置(它有一个缓存)。它将加载它需要的文件系统部分,读/写文件,然后大块重写磁盘上的修改。

    此外,AHCI 会在命令完成时触发 MSI 中断。基本上,操作系统代表用户模式进程触发 DMA 读/写周期。然后它将这些进程放在等待 IO 队列中。中断时,它会将进程放回运行队列。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2013-12-05
      • 2015-07-03
      • 2010-12-02
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2019-01-25
      相关资源
      最近更新 更多