将页面插入大型mmap()文件而不复制数据
我想知道是否有办法在我用mmap()打开的大(多GB)文件的开头附近插入空白页。显然,可以在最后添加一两页,并使用memcpy()将所有内容向前移动,但这会弄脏每个页面,并且在最终刷新到磁盘时需要很长时间。
我猜测解决方案需要在自定义文件系统和页面表的手动操作之间进行一些复杂的协调:向inode添加一个块,以某种方式更新VMM中的缓存页面以反映这一点,然后以某种方式将页面表调到比赛。这听起来非常重要,这让我想知道是否有更好的方法。
这是关于Linux上的内存和文件操作的一个有点深层次的问题,尽管我很高兴听到如何在其他系统中完成此操作。我对涉及使复制更有效的解决方法不是特别感兴趣,尽管需要重新映射但避免磁盘IO的技术将是一个良好的开端。
没有找到相关结果
已邀请:
1 个回复
勺的驴吓识