我正在学习操作系统课程,我们有关于过程的这一章。在本章中,我们定义了过程控制块,它保存有关过程的信息,例如程序计数器,寄存器内容,状态,优先级等。在本章中,它说当处理器切换到另一个进程(通过中断)时,信息将保存在此过程控制块(PC,寄存器......)中。在另一章(1.4中断)中,它表示当一个进程被中断时,PSW,PC和寄存器被放入堆栈,当处理器重新控制这个进程时,它会从堆栈中获取它。
这里似乎有两种不同的解释,说明发生中断时会发生什么。它们是同时发生还是发生什么?任何人都可以向我解释这个吗?
提前致谢 桑德
答案 0 :(得分:0)
将中断视为函数调用,区别在于它在堆栈上存储更多信息,并且随时发生在程序指令的正常流程中。因此,如果中断处理函数决定仅从中断调用返回,则从堆栈恢复状态。
否则,如果在中断调用内,OS决定抢占当前用户进程,它会将所有进程状态保存到PCB并将堆栈切换到另一个进程。
顺便说一句,切换到另一个进程不仅可以通过中断发生,也可以在任何正常调用OS内核API(系统调用)期间发生。