Sim*_*mon 1 linux windows memory-mapped-files
我的意思是在不使用write()的情况下直接在内存中更新数据.
在linux中我认为在msync调用中指定的所有数据都被刷新了.
但是在Windows中,FlushViewOfFile的文档说"写脏页",所以操作系统知道哪些页面已被更新.
这是如何运作的 ?我们是否必须使用WriteFile来更新映射内存?如果我们在linux中使用write(),msync只会同步脏页吗?
在运行Linux或Windows的大多数(也许是全部)现代计算机上,CPU代表操作系统跟踪脏页.该信息存储在页面表中.
(例如,参见" 英特尔®64和IA-32架构软件开发人员手册"第3,4 卷第4.8节和" AMD64架构程序员手册第2 卷"第5.4.2节.)
如果特定CPU上没有该功能,则操作系统可以使用页面错误来检测对页面的第一次写入,如datenwolf的回答中所述.
归档时间: |
|
查看次数: |
450 次 |
最近记录: |