【发布时间】:2022-01-05 13:31:25
【问题描述】:
我已经搜索并阅读了几个类似的问题但仍然不明白:
-
PSW 是一组处理器标志(进位、溢出等)。 我的书说,当产生中断时,PSW 和 PC 保存在控制堆栈中,中断处理程序启动,最后 CPU 状态恢复:所有剩余的寄存器,例如用户寄存器?作者只是忘记了他们,还是根本没有得救?
-
为什么 PSW 和 PC 保存在控制堆栈上而不是 PCB 上(所有处理器寄存器都将保存在哪里)?
我可以理解何时执行系统调用(它是同步中断):处理器切换到内核模式并在内核堆栈上工作。但是什么时候发生时钟中断并且操作系统决定切换到另一个进程?在那种情况下,必须使用 PCB 而不是正确的堆栈?
我的结论是,有些中断可以通过内核区域中的单独堆栈进行管理,但其他中断需要将 PSW 和 PC 保存在 PCB 中,而不是与其他寄存器一起保存在堆栈中。 但是,我希望各位专家回答我的问题 =) 提前致谢!
【问题讨论】:
-
'但是什么时候发生时钟中断并且操作系统决定切换到另一个进程?'钟?您的意思是“任何导致设备驱动程序在退出中断状态时请求调度运行的硬件中断”。
标签: operating-system stack kernel cpu context-switch