【发布时间】:2018-04-05 10:04:47
【问题描述】:
背景:在 Java 中,我正在内存映射文件(共享)。
我正在该文件的地址 0 处写入一些值。我了解 PAGE CACHE 中对应的 PAGE 被标记为 DIRTY,稍后将根据dirty_ratio 等设置写入。
到目前为止一切顺利。
但是我想知道当内核将脏页写回文件时再次在地址 0 处写入时会发生什么。我的进程是否以某种方式阻塞等待写回完成?
【问题讨论】:
-
内存映射文件的权限是什么?一个 sn-p 的代码会很有帮助。
-
-rw-rw-r-- :至于代码:一旦我得到内存映射文件缓冲区,我只是 buffer.putInt( addr, value ) 很随机地可能会写入几次不同的值在文件中的同一地址。
标签: java linux linux-kernel memory-mapped-files page-caching