これは、Allocate On Flushを思い出させます。ファイルシステムがこの機能を使用すると、ディスクに直接データを書き込むのではなく、ディスクの空き領域カウンターから書き込むデータのサイズを減算し、同期システムコールが実行されるか、カーネルが決定するまでデータをメモリに保持しますダーティバッファをフラッシュします。
この場合、ファイルが1つのプロセスによって変更され、別のプロセスによって開かれた場合、後者のプロセスはファイルの変更されていない(または「古い」)バージョンを「参照」します。
もちろん、上記は理論的なものであり、さまざまな要因に依存します。カーネルがダーティページをフラッシュするタイミングが正確にはわからないため、少し予測できないと思います。たとえば、Linuxの場合(Linuxカーネルの理解のセクション15.3を参照することもできます)、次の条件下でダーティページがディスクに書き込まれます。
ページキャッシュがいっぱいになり、より多くのページが必要になるか、ダーティページの数が多くなりすぎます。
ページが汚れたままになってから時間が経過しすぎています。
プロセスは、ブロックデバイスまたは特定のファイルの保留中のすべての変更をフラッシュするように要求します。これは、sync()、fsync()、またはfdatasync()システムコールを呼び出すことでこれを行います。
この機能は、HFS +、XFS、Reiser4、ZFS、Btrfs、ext4ファイルシステムに実装されていることが知られています。