【问题标题】:Operating Systems: Page table on context switch操作系统:上下文切换上的页表
【发布时间】:2021-12-22 13:03:50
【问题描述】:

我有一个问题:如果发生上下文切换,为什么要重新加载新进程的页表?

【问题讨论】:

    标签: memory process operating-system virtual-memory page-tables


    【解决方案1】:

    不必重新加载新进程的页表。它们仍然位于 RAM 中。我不认为页表可以交换到硬盘上。这意味着页表仍保留在 RAM 中,只有 CR3 寄存器(对于 x86-64)更改为指向正在发生的新进程的页表集。

    我不知道操作系统在多大程度上使用了 x86-64 处理器的功能。我知道,今天,x86-64 处理器有一个标记的 TLB。并且一些页表条目可以通过 G 位设置为“全局”。缓存的翻译(在 TLB 中)不会在 CR3 重新加载时刷新全局条目,因此可以节省上下文切换的一些开销。

    【讨论】:

    • ok,那么当进程切换发生时:TLB失效,缓存也失效,在MMU中加载指向新进程页表的指针?切换进程的页表没有修改?
    • 我还有一个疑问:当内存已满时:页面被覆盖或保存在辅助内存中,因为稍后将需要它们(相关进程将进入执行时)?
    • 嗨,有什么消息吗???
    • 我没有更多关于缓存的信息。也许问其他人可能愿意提供帮助的另一个问题。也许 cs.stackexchange.com(计算机科学)会是一个更好的地方来问这种一般性问题。
    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2020-11-01
    相关资源
    最近更新 更多