【问题标题】:Why does kernel add kernel master page table to process's page table?为什么内核将内核母版页表添加到进程的页表中?
【发布时间】:2015-02-20 15:14:22
【问题描述】:

内核为什么要在进程的页表中添加内核主页表?它可以与所有进程共享,如果主页表在任何时候发生变化,那么内核也需要更新所有进程的页表?

【问题讨论】:

    标签: linux linux-kernel


    【解决方案1】:

    每个进程都需要页表的内核部分才能访问内核内存(例如,处理中断或系统调用)。

    内核是否真的需要单独更新所有进程的页面映射取决于页面映射是如何完成的。

    对于处于保护模式的基于 x86 的系统,页面映射是使用包含对一组页表的引用的页目录完成的,这些页表又用于管理特定内存块中的每个单独的页。
    因此,必须将特定页面的更改取出到特定页表中。但是因为使用特定于进程的页目录来引用页表,所以不需要为每个进程复制内核页表,即。所有特定于进程的页目录都可以引用同一组内核页表。
    因此,内核页表的更改不需要复制到每个进程,因为它已经是(由于通过页目录进行引用),因此只需更改处理器的内存地址查找表,以便新的映射是从内存中加载的。
    因为这部分高度依赖于实际使用的硬件,所以这可能并不普遍适用,即。从理论上讲,可能存在一个处理器,需要内核将内核页面更改复制到每个进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 2013-05-14
      • 2011-09-18
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      相关资源
      最近更新 更多