页面 table 中的内核 space 和用户 space 布局

Kernel space and user space layout in page table

假设我们有CPU有MMU,它的工作原理如下:

现在想象一下,我们是运行几个进程(当然是在非特权模式下)。当我们想为任何进程分配额外的内存时,我认为它只适用于以下场景。我们执行系统调用,OS 通过更新进程页面 table 或报告一些错误代码来服务(在特权模式下)。

我的问题:但是现在,当我们想为内核分配一些内存时,我们必须更新所有table所有进程 在他们的内核部分地址?据我所知,在 CPUs 中没有任何内核页面 table 理论上可以解决该问题(但会带来其他问题)。那么如何解决这种情况,如果可能发生的话?

对不起我的英语。

终于,我找到了解决办法。我想,这个link说明一切:

ARM Solution

了解 Table 6.13 非常重要。翻译 table 大小 。简而言之,每个进程的虚拟space当然分为内核space和用户space。但是,space 和 都有自己的 table。进程切换时,内核table指针不变,而用户table指针发生变化。我希望,你明白这一点。

对不起我的英语。