假设我们有具有MMU的CPU,其工作方式如下:
现在想象一下,我们正在运行多个进程(当然是在非特权模式下)。当我们想为任何进程分配额外的内存时,它只是在我看来应用以下场景。我们执行系统调用,OS通过更新进程页表或报告一些错误代码来提供(在特权模式下)。
我的问题:但是现在,当我们想为内核分配一些内存时,我们必须在其内核部分地址中更新所有进程的所有表吗?据我所知,没有任何内核页表,理论上可以解决这个问题(但带来其他问题),在类似工作的CPU中。那么如何解决这种情况,是否有可能发生?
抱歉我的英文。
答案 0 :(得分:0)
最后,我找到了解决方案。我想,这个链接说明了一切:
非常重要的是要理解表6.13。翻译表大小。简而言之,每个进程的虚拟空间当然分为内核空间和用户空间。但是,两个空格都有自己的表格。当进程切换时,内核表指针是常量,但用户表指针被改变。我希望,你明白这一点。
抱歉我的英文。