【问题标题】:Program counter in processes进程中的程序计数器
【发布时间】:2021-06-08 23:37:13
【问题描述】:

我在理解 Tanenbaum 现代操作系统一书中的这段话时遇到了一些问题:

“我们看到四个进程,每个进程都有自己的控制流(即,它自己的 逻辑程序计数器),并且每个都独立于其他运行。 当然,物理程序计数器只有一个,所以每个进程运行时, 它的逻辑程序计数器被加载到真正的程序计数器中”。这是段落中所示的图表。

我遇到的问题是不是每个进程都有自己的程序计数器吗?并且由于每个程序已经是一个正在执行的单独进程,为什么它需要加载回“真实”程序计数器?我不明白这个真正的程序计数器是从哪里来的?

【问题讨论】:

    标签: process operating-system program-counter


    【解决方案1】:

    为什么它需要加载回“真实”的程序计数器?

    当 Tanenbaum 说“真正的程序计数器”时,他指的是与 CPU 关联的单个程序计数器。程序计数器只是另一个 CPU 寄存器,但它有一个特定的用途,即指向当前正在执行的指令。

    不是每个进程都有自己的程序计数器吗?

    每个进程都有自己的程序计数器 (PC),但每个处理器内核只有一台 PC。因此,当一个进程在 CPU 上运行时,内核会将 PC 寄存器设置为该进程保存的 PC。如果进程暂时停止,则内核将进程 PC 从 PC 寄存器保存到内存中某个明确定义的位置。

    每个进程都有一些与之相关的簿记,其中之一是进程的寄存器状态。因此,当前未运行的每个进程都将其 PC 保存在内存中。

    【讨论】:

      猜你喜欢
      • 2015-04-06
      • 1970-01-01
      • 2013-08-22
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      相关资源
      最近更新 更多