gpt4 book ai didi

process - 进程之间的上下文切换是否会使 MMU(内存控制单元)失效?

转载 作者:行者123 更新时间:2023-12-05 00:49:25 26 4
gpt4 key购买 nike

这是我系统讲座的 PowerPoint 中的一句话,但我不明白为什么上下文切换会使 MMU 失效。我知道它会使缓存无效,因为缓存包含另一个进程的信息。但是,对于 MMU,它只是将虚拟内存映射到物理内存。如果上下文切换使其无效,这是否意味着 MMU 在不同进程中使用不同的映射机制?

最佳答案

Does this mean the MMU use different mechanism of mapping in different processes?

你的结论基本上是对的。
每个进程都有其从虚拟地址到物理地址的映射(称为上下文)。
例如,地址 0x401000 可以转换为进程 A 的 0x01234567 和进程 B 的 0x89abcdef。
拥有不同的上下文可以轻松实现进程的 isolation、轻松的按需分页和简化的重定位。

因此每次上下文切换都必须使 TLB 无效,否则 CPU 将继续使用旧的转换。

然而,有些页面是全局的,这意味着它们具有独立于当前进程地址空间的相同转换。
例如,内核代码以相同的方式映射到每个进程,因此不需要重新映射。

所以最后只有一部分 TLB 失效了。
您可以阅读 Linux handles the process address space 如何获取应用理论的真实示例。

关于process - 进程之间的上下文切换是否会使 MMU(内存控制单元)失效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439408/

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