中断处理与进程调度的区别与联系
中断处理
中断(Interruption)又称外中断,指CPU所执行指令之外的事件发生,如时钟中断。
异常(Exception)又称内中断、例外、陷入(trap),指来自CPU内部执行指令的事件发生,对异常的处理一般依赖当前程序的运行现场,且异常不能被屏蔽。
中断处理的主要目的是利用中断服务程序对中断源进行处理,以下从外中断与内中断两个例子进行分析:
- 系统会依赖时钟中断定期的获取到系统的控制权,如果没有时钟中断的话操作系统有可能永远获取不到处理机,也就无法实现对其它进程的时间片管理等工作。
- 请求系统调用服务必须利用到内中断,此内中断的根本目的就是获取中断服务程序所提供的只能在核心态实现的服务。
总结下上述文字:中断的目的地是程序。
进程调度
在进程调度完成之后,往往会立刻进行进程切换,涉及到进程切换的具体过程就不再展开了,但是现在已经能够发现进程调度和中断处理的区别了,那就是进程调度的目的地是切换进程。
那为什么刚学习的时候会分不清中断与调度的关系呢,那就是因为进程切换是在核心态下执行,从用户态转到核心态的唯一方式是通过中断,也就是进程调度切换一定是通过中断实现的。(这里后续详细的说下,该吃饭了。。。)