Rensar OS (POSIX) en minnesmappad fil om processen är SIGKILLed?

Rensar OS (POSIX) en minnesmappad fil om processen är SIGKILLed?


Om en process dödas med SIGKILL, kommer ändringarna den har gjort i en minnesmappad fil att tömmas till disken? Jag antar att om operativsystemet säkerställer att en minnesmappad fil töms till disken när processen dödas via SIGKILL, så kommer det också att göra det med andra avslutande signaler (SIGABRT, SIGSEGV, etc...).


Svar:


Det beror på om den minnesmappade filen öppnas med modifieringar privat (MAP_PRIVATE) eller inte (MAP_SHARED). Om privat, så nej; ändringarna kommer inte att skrivas tillbaka till disken. Om den delas innehåller kärnbuffertpoolen de modifierade buffertarna, och dessa kommer att skrivas till disken i sinom tid - oavsett dödsorsaken.