【问题标题】:How do the instruction sequences differ, when seen by CPU vs. seen by the process?CPU 看到的指令序列与进程看到的指令序列有何不同?
【发布时间】:2019-02-11 11:35:46
【问题描述】:

这是我目前所能收集到的,可能过于简单了:

  • CPU 根据指令指针获取下一条要执行的指令,这是当前运行进程的一部分。因此,CPU 并没有真正的指令序列概念,它只知道当前要执行的指令。
  • 属于进程的指令保存在其.text 段中。因此,一个进程可以读取它的指令列表(?)。进程可以修改其指令指针

现在我真的不明白这将如何帮助我回答标题中的问题。除了我提到的之外,是否还有我遗漏的概念差异?

【问题讨论】:

    标签: operating-system


    【解决方案1】:

    内存包含数据。如何解释该数据取决于处理器如何访问它。内存中的相同位置可以解释为指令、整数、字符或浮点数。

    使内存位置成为指令的唯一因素是程序计数器寄存器指向它。 CPU 在程序计数器的位置获取数据。然后它执行指令。程序计数器必须知道该指令的长度,除非它是分支指令,否则必须将该长度添加到 PC。

    大多数处理器允许将内存页面标记为不执行/执行。

    链接器将在可执行文件中设置初始 PC 值。除此之外,通常没有什么说“这是说明”。

    【讨论】:

      【解决方案2】:

      CPU 看到的指令序列与进程看到的指令序列有何不同?

      这看起来像是一个家庭作业问题,其中预期的答案取决于提出问题之前提出的任何内容。

      随机假设的例子:

      • 如果课程讨论了乱序执行,那么答案可能类似于“进程认为指令按照给定的顺序一次发生一个,而 CPU 知道它们不会一次发生一个时间,不要按照给定的顺序发生”。

      • 1234563 CPU 看到的指令”
      • 如果课程谈到调度,那么答案可能是“进程认为它的指令是唯一执行的指令,但 CPU 可能会定期在来自许多不同进程的指令流之间切换”。

      • 1234563最后;并且进程不知道这正在发生" 1234563进程不知道的花哨的技巧”

      【讨论】:

        猜你喜欢
        • 2016-08-08
        • 2013-05-28
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 2017-10-30
        • 1970-01-01
        • 2019-03-01
        相关资源
        最近更新 更多