Tutorial :Does the OS (POSIX) flush a memory-mapped file if the process is SIGKILLed?


If a process is killed with SIGKILL, will the changes it has made to a memory-mapped file be flushed to disk? I assume that if the OS ensures a memory-mapped file is flushed to disk when the process is killed via SIGKILL, then it will also do so with other terminating signals (SIGABRT, SIGSEGV, etc...).


It will depend on whether the memory-mapped file is opened with modifications private (MAP_PRIVATE) or not (MAP_SHARED). If private, then no; the modifications will not be written back to disk. If shared, the kernel buffer pool contains the modified buffers, and these will be written to disk in due course - regardless of the cause of death.


I posed a similar question myself and then followed up with demonstration code when I was unsatisfied with the answers. See mmap, msync and linux process termination

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »