Linux では、パイプへの書き込み時に、データがメモリ ページ サイズ (64 ビット rhel で少なくとも 4k) 以下の場合、OS は書き込み全体が成功するか失敗するかを保証しますが、破損はありません。複数のプロセスが同時に書き込みを行っている場合のデータの。これは、通常のファイルへの書き込みにも適用されます。
私の質問は、この原子性は Linux の仮想メモリの機能ですか? はいの場合は、2 つのプロセス間の共有メモリ シナリオを検討してください。このシナリオでは、1 つのプロセスがスケジューラによる書き込みの途中でスワップ アウトされます。仮想メモリ サブシステムは、2 番目のプロセスが同じページに書き込めないように、プロセスが書き込んでいたメモリ ページもロックされることを保証しますか?
ページ レベルでのこの原子性は、プロセス全体、または同じプロセスのスレッド間でも適用できますか?