mmaped 文件写回期间出现 I/O 错误

I/O error during writeback of mmaped file

提问人:firk 提问时间:11/8/2020 更新时间:11/8/2020 访问量:61

问:

是否有任何标准(POSIX 等)操作系统行为用于在 mmap 写回期间处理错误? 这甚至在某个地方被记录为稳定的实现吗?

案例一: 一些程序正在执行,写入该内存区域,然后执行或。在这种情况下,有明确的地方可以报告写回错误,但我不知道是否应该以任何标准报告它们。mmap()munmap()msync(MS_SYNC)munmap()msync()

案例二: 一些程序正在做,写入该内存区域,然后做.写回应该由操作系统异步完成,但现在没有显式的地方来报告写回中的任何错误。但是,操作系统可以将 SIGBUS 发送到程序。同样,我不知道这是否标准化。mmap()sleep(1000)

案例三: 两个程序(A 和 B)对同一个文件执行。程序 A 将某些内容写入该内存,程序 B 应立即看到此更改并可能依赖它们。一段时间后,操作系统在尝试写回时出现错误。现在,我认为唯一合理的行为是扼杀这两个进程,因为它们依赖于无法进行的更改。但这看起来很奇怪。mmap(MAP_SHARED)

UNIX POSIX MMAP 错误报告

评论


答: 暂无答案