繁体   English   中英

如果进程是SIGKILLed,OS(POSIX)是否刷新内存映射文件?

[英]Does the OS (POSIX) flush a memory-mapped file if the process is SIGKILLed?

如果使用SIGKILL终止进程,它对内存映射文件所做的更改是否会刷新到磁盘? 我假设如果操作系统确保在通过SIGKILL终止进程时将内存映射文件刷新到磁盘,那么它也将使用其他终止信号(SIGABRT,SIGSEGV等等)执行此操作。

它取决于是否使用private(MAP_PRIVATE)修改(MAP_SHARED)打开内存映射文件。 如果私有,那么没有; 修改不会写回磁盘。 如果共享,则内核缓冲池包含已修改的缓冲区,并且这些缓冲池将在适当的时候写入磁盘 - 无论死亡原因如何。

我自己提出了一个类似的问题,然后在我对答案不满意时跟进了演示代码。 请参阅mmap,msync和linux进程终止

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM