目态程序运行的时候,发生中断,中断装置响应中断,进入操作系统,操作系统进行中断处理,处理过程中如果发生优先级更高的中断,就会发生中断嵌套,中断乃至嵌套中断的现场保存在什么地方?系统栈,大家一定记住;中断处理过程中,如果因为等待或者被剥夺处理机,现行进程会进入等待或就绪状态,处理机会分给另外一个就绪进程,此处会发生进程切换,那么,进程切换时的现场保存在什么地方呢?PCB,再次请大家记住,中断的现场保存在系统栈,切换的现场保存在PCB。
3.2.3节的中断处理逻辑图,是想进一步说明,目态进程因中断进入操作系统之后,可能会多次等待,多次被剥夺处理机,可能既有等待又有剥夺发生,等待或剥夺时现行进程现场保存到其PCB中;以后被唤醒并获得处理机时由其PCB中恢复现场,继续运行。中断处理完,如果是嵌套中断,由系统栈恢复现场回到上层中断,如果不是嵌套中断,由系统栈恢复现场回到目态。这个中断处理逻辑给出了中断处理的完整过程,从中断发生,到处理完毕。
以read为例理解此过程:
传送第15块发生中断