2009-05-14 8 views
13

プロセスがSIGKILLで強制終了された場合、メモリマップファイルに対する変更はディスクにフラッシュされますか?私は、OSがSIGKILLを介してプロセスが強制終了されたときに、メモリマップされたファイルがディスクにフラッシュされることを保証していれば、他の終了シグナル(SIGABRT、SIGSEGVなど)でもそうするでしょう。プロセスがSIGKILLされている場合、OS(POSIX)はメモリマップファイルをフラッシュしますか?

答えて

16

メモリマップされたファイルが、変更されたプライベート(MAP_PRIVATE)で開くかどうか(MAP_SHARED)によって異なります。プライベートの場合は、いいえ。変更はディスクに書き戻されません。共有されている場合、カーネルバッファプールには変更されたバッファが含まれており、死亡原因にかかわらず、これらはディスクに書き出されます。

+0

ありがとうございました! この現象についてのドキュメントがありますか?私は何も見つけることができませんでした。 – chila

+4

mmap()のPOSIX標準(http://www.opengroup.org/onlinepubs/9699919799/toc.htm)は次のように述べています。MAP_SHAREDが指定されている場合、書き込み参照は基底のオブジェクトを変更します。 「メモリ書き込みが完了した後、データがディスクにフラッシュされる前にプロセスが強制終了されない限り、 –

関連する問題