gpt4 book ai didi

c - 将映射交换到虚拟内存中两个页面的两个物理页面

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:44 26 4
gpt4 key购买 nike

情况是这样的:

一个进程有两个页面vp1和vp2。这两个页面映射到 2 个物理页面或 swap 中的 2 个页面。我们称这些物理(或交换)页面为 pp1 和 pp2。映射是:

vp1->pp1

vp2->pp2

现在,如果我想将映射更改为:

vp1->pp2

vp2->pp1

也就是说,进程从vp2读取,会得到vp1原来的内容。有没有一种方法可以在不更改 Linux 内核的情况下执行此操作?

最佳答案

是的,但你必须先做一些工作。实现此目的的一种方法是创建两个共享内存对象。然后您可以映射和取消映射进程地址空间中的共享内存对象。有关详细信息,请参阅系统调用 shmatshmdtshmgetshmctl

映射和取消映射可能需要相当长的时间,因此与使用一些指针方案来选择进程用于访问数据的地址相比,它可能不会节省时间。

关于c - 将映射交换到虚拟内存中两个页面的两个物理页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com