【问题标题】:Does OS read a block first in order to write to block device?操作系统是否首先读取块才能写入块设备?
【发布时间】:2014-04-02 03:06:01
【问题描述】:

让我们先把写缓冲放在一边。

由于操作系统在块设备上操作的基本单元是一个块,对于没有块对齐的写入,操作系统是否需要先从磁盘读取这样的块才能写入?

我知道这种方案称为读-修改-写。这种方案通常用于未对齐的写入吗?这对我来说似乎有点违反直觉,因为在这种情况下我们将 IO 增加一倍。

即使有写缓冲,如果我们有很多彼此不连续的未对齐写入,操作系统是否需要先读取这些未对齐写入的每个块,然后将它们写入磁盘?

谢谢。

【问题讨论】:

    标签: linux windows operating-system


    【解决方案1】:

    至少对于 SATA,是的:要处理部分扇区写入,操作系统必须读取扇区,更改它,然后写回整个扇区。 SATA command set 没有用于寻址扇区内单个字节范围的命令 - 只有完整扇区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多