Process 中断时的过程信息:堆栈或过程控制块

Process 中断时的过程信息:堆栈或过程控制块,process,stack,controls,block,interrupt,Process,Stack,Controls,Block,Interrupt,我正在学习一门操作系统课程,这一章是关于过程的。在本章中,我们定义了进程控制块,它保存有关进程的信息,如程序计数器、寄存器内容、状态、优先级等。在本章中,它指出当处理器切换到另一个进程(通过中断)时,信息将保存在该进程控制块(PC、寄存器等)中。在另一章(1.4中断)中,它说当一个进程被中断时,PSW、PC和寄存器被放在堆栈上,当处理器重新控制这个进程时,它从堆栈中取出它 这里似乎有两种不同的解释来解释当中断发生时会发生什么。它们是同时发生还是怎样?谁能给我解释一下吗 提前谢谢 Sander将中

我正在学习一门操作系统课程,这一章是关于过程的。在本章中,我们定义了进程控制块,它保存有关进程的信息,如程序计数器、寄存器内容、状态、优先级等。在本章中,它指出当处理器切换到另一个进程(通过中断)时,信息将保存在该进程控制块(PC、寄存器等)中。在另一章(1.4中断)中,它说当一个进程被中断时,PSW、PC和寄存器被放在堆栈上,当处理器重新控制这个进程时,它从堆栈中取出它

这里似乎有两种不同的解释来解释当中断发生时会发生什么。它们是同时发生还是怎样?谁能给我解释一下吗

提前谢谢
Sander

将中断视为一种函数调用,不同之处在于它在堆栈上存储了更多信息,并随时中断程序指令的正常流程。因此,如果中断处理函数决定只从中断调用返回,则从堆栈恢复状态

否则,如果在中断调用中,操作系统决定抢占当前用户进程,它会将所有进程状态保存到PCB,并将堆栈切换到另一个进程


顺便说一句,切换到另一个进程不仅可以通过中断发生,而且可以在对OS内核API(syscall)的任何正常调用期间发生。

那么,当处理器从短期队列中控制新进程时,某个进程的PCB会去哪里?该进程的PCB是否保留在内存中?因此,如果我理解正确,如果是中断,信息会被放在堆栈上,这意味着进程没有暂停,但处理器被分配给I/O控制器,当整个进程暂停(中断或系统调用?)时,信息会被放在PCB中(或更新)另一个进程在处理器中占据了它的位置?PCB总是在内存中。据Anton所说,它可以是内核堆栈的一部分。周一我有一个关于操作系统(暂停)的考试,你提供的信息肯定会帮助我理解!