操作系统是否会在写入磁盘时调度事件?

操作系统是否会在写入磁盘时调度事件?

我想知道是否有某种方法可以确定文件完成在 Windows 和 Linux 上写入目录(显然,它们可能是两个不同的命令)。

这样做主要是为了,我可以设置一个程序来简单地监听写入磁盘的完成情况,而不是不断地轮询目录中是否有新的非临时文件(这样做似乎更好)。

答案1

  1. 文件不会“写入目录”。数据被写入文件,文件可能(硬)链接到目录中。但将数据写入文件的过程与目录无关;硬链接过程是原子的,无需等待“完成”。
  2. 在 Windows 上,您要查找的功能是FindFirstChangeNotification()
  3. 这是一个 StackOverflow 主题,而不是 SuperUser 主题。

答案2

对于 Linux,你可以看看在这个问题上,讨论是在 c++ 中,但想法(来自答案,而不仅仅是选择的一个)仍然很好。基本上,在 linux 中,您可以使用一些标志,或者观察进程/proc/pid/fd

答案3

Windows 至少从 Vista 开始就有一个 I/O 调度系统:

Windows Vista 中的 I/O 优先级

此外,AHCI 模式下的现代 SATA 磁盘也有自己的集成调度程序 - 称为本机命令队列 (NCQ)

相关内容