为什么内核添加内核主页表到进程的页表?它可以和所有进程共享,如果主页表改变了,那么内核需要更新所有进程的页表呢?
每个进程需要页表的内核部分来访问内核内存(例如处理中断或系统调用)。
内核实际上是否需要单独更新所有进程的页面映射取决于页面映射的完成方式。
对于处于保护模式下的基于x86的系统,页面映射是使用包含一组页表的引用的页面目录完成的,页目录又被用于管理特定内存块中的每个单页。
因此,必须将特定页面的更改带入特定的页面表中。 但是因为使用特定于进程的页面目录来引用页表,所以不需要为每个进程复制内核页表, 所有进程特定的页面目录都可以引用同一组内核页表。
因此,对内核页表的改变不需要被复制到每个进程,因为它已经是(由于通过页目录进行引用),并且因此只有处理器的内存地址查找表必须被改变,使得新的映射从内存加载。
由于这部分高度依赖于使用中的实际硬件,所以通常可能不适用。 理论上有可能存在一个处理器,要求内核将内核页面的更改复制到每个进程。