用户程序在使用系统调用后,为什么能从算态进入管态,返回用户程序后又从管态回到算态?
在程序状态字中通常有一字段用来反映程序的运行状态,例如用某一位的“0”表示管态,用“1”表示算态。用户程序在使用系统调用前处于算态,在使用系统调用时,由于系统调用中包含一条访管指令,当执行到访管指令时便引起访管中断。访管中断发生后,中断的硬件机构便保存现场,并取出新的程序状态字放入程序状态字寄存器中,这新程序的状态字中的状态位已预先置好为“0”表示管态。因此,在进入中断处理程序后便进入了管态。当中断处理程序结束后通过恢复现场取出原来的程序状态字,就又从管态回到算态。