gpt4 book ai didi

memory - 倒排页表如何处理多个进程访问同一帧

转载 作者:行者123 更新时间:2023-12-05 07:42:52 25 4
gpt4 key购买 nike

我看过其他帖子,但没有一个有同样的问题,所以根据我的理解,倒排页表的条目取决于进程id和虚拟页号,在实际页表中如果进程id的信息和虚拟页码匹配然后索引是物理页码/帧号。我的问题是当超过 1 个进程需要该帧/物理内存时会发生什么。你不能将 id 或 vpn 存储在同一个索引中

最佳答案

有趣的问题!我猜这是倒排页表不太流行的原因之一。

一种解决方案是为每个条目附加一个“共享”位,并为每个 pid 创建一个哈希表。当遇到设置了“共享”位的页框时,MMU 应触发一个故障,该故障将导致操作系统使用请求进程的 pid 和虚拟地址索引到哈希表中。在这一点上,它的行为与全局哈希表相同,其中哈希条目包含对。

这样做的一个好处是我们仍然可以在页表条目中使用 pid 字段,因此 1 个共享 pid 将会命中。

一些缺点是每个 pid 的哈希表可能与全局哈希表的大小相同,因此我们有效地将全局哈希表的大小增加了 2^16(或者不管支持多少 pid)!当然,每个 pid 的哈希表可能不会那么大,所以我们可以根据正在使用的条目数动态更改大小。但是,这有其自身的副作用,每当我们想要增加大小时,我们可能不得不驱逐其他页面。

我确信有更好的解决方案,我很想听听他们的意见。

关于memory - 倒排页表如何处理多个进程访问同一帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44159535/

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