• 为什么所有的进程页表要共享内核页表?


    如果出于内核和用户空间隔离考虑,这里应该不能共享的。共享就会让用户进程能感知到内核的内存布局,不知道会导致什么问题,但是感觉内核的内存布局用户进程应该不能访问。

    通过查一些资料,现在linux这样做的原因是为了性能考虑,解决在用户态和内核态之间切换时可能导致的性能问题。

    这位阿里内核开发的回答:

    问题1:为什么内核空间页表各进程内容是完全一样,还需要每个进程独立一份
    我认为是出于性考虑,如果所有进程在内核态都使用同一份页表,CPU从用户态进入内核态的所有场景(系统调用,硬中断),首先做的一个事情就是切页表,然后得刷TLB等事情,开销较大,不可接受,所以采用每个进程进入内核态进不需要切换页表的方案。


    作者:海枫
    链接:https://www.zhihu.com/question/24916947/answer/138032365
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
          
  • 相关阅读:
    Android记事本05
    Android记事本开发04
    Android记事本开发03
    Android记事本开发02
    Android记事本开发01
    项目目标文档
    利益相关者描述案例
    《软件需求》阅读笔记03
    《软件需求》阅读笔记02
    《软件需求》阅读笔记01
  • 原文地址:https://www.cnblogs.com/caiyao/p/14148611.html
Copyright © 2020-2023  润新知