0
當進程正在執行併發生中斷時,進程的當前狀態保存在哪裏?過程控制塊是否已更新,或者是剛推入內核堆棧的信息?發生中斷時保存的進程狀態在哪裏?
當進程正在執行併發生中斷時,進程的當前狀態保存在哪裏?過程控制塊是否已更新,或者是剛推入內核堆棧的信息?發生中斷時保存的進程狀態在哪裏?
這取決於硬件。通常情況下,會切換到內核模式堆棧指針。一些系統有一個專用的堆棧指針寄存器用於每個處理器模式和一箇中斷堆棧指針。訪問SP訪問當前模式的寄存器。在這種情況下,不需要保存和恢復SP。
中斷通常在某種專用中斷堆棧上處理(可能是每個處理器,而不是每個進程)。
必須有某種硬件機制才能切換到中斷上的受保護堆棧。該機制通常會自動保存程序計數器和處理器狀態寄存器。
因爲中斷不會導致上下文切換,所以只需要保存一組有限的數據。 中斷處理程序通常會保存將在堆棧上使用的其他寄存器。
返回之前,中斷處理程序恢復保存的寄存器。
然後中斷處理程序通過執行某種恢復PC,PS和交換機堆棧的中斷返回指令而退出。
架構/操作系統相關。通常都是。 –