【发布时间】:2015-12-20 23:45:05
【问题描述】:
我发现这个链接描述了中断以及 CPU 如何管理它们。
http://www.ni.com/white-paper/2874/en/
我记得我在计算机科学的研究中,当中断发生时,cpu 会将其保存在其寄存器中的内容并将其存储在属于实际进程的 PCB(进程控制块)中。
但在这篇文章中,人们可以阅读以下内容:
中断是处理器的特殊输入。当处理器收到中断发生的信号时,处理器完成当前正在执行的指令并将指令指针和状态字保存到堆栈中。堆栈是一个特殊的内存块,用于在函数调用和中断期间跟踪信息。处理器使用一个称为堆栈指针的特殊寄存器来跟踪堆栈顶部的位置,也就是最后一项添加到堆栈的位置。
所以这里的上下文似乎被保存到堆栈中,而不是 PCB。
那么 - 这个问题的答案是什么?它只是在不同的系统和架构之间有所不同吗?
(在下注或关闭此问题之前 - 让我有机会将问题迁移到另一个论坛。我选择了 stackoverflow,因为其他人似乎错过了问题的适当标签)
【问题讨论】:
标签: stack cpu-registers context-switch