发生中断时保存的进程状态在哪里?

时间:2016-02-28 18:39:32

标签: operating-system

当进程正在执行并发生中断时,进程的当前状态保存在哪里?流程控制块是否已更新,或者是刚刚推送到内核堆栈的信息?

1 个答案:

答案 0 :(得分:0)

这取决于硬件。通常,切换到内核模式堆栈指针。一些系统具有用于每个处理器模式的专用堆栈指针寄存器和中断堆栈指针。访问SP访问当前模式的寄存器。在这种情况下,无需保存和恢复SP。

中断通常在某种专用中断堆栈上处理(可能是每个处理器,而不是每个进程)。

必须有某种硬件机制才能在中断时切换到受保护的堆栈。该机制通常会自动保存程序计数器和处理器状态寄存器。

由于中断不会导致上下文切换,因此只需保存一组有限的数据。 中断处理程序通常会保存它将在堆栈中使用的其他寄存器。

在返回之前,中断处理程序恢复已保存的寄存器。

然后中断处理程序通过执行某种恢复PC,PS和交换机堆栈的中断返回指令退出。