中断是什么?
中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。早期计算机中各个程序只能串行执行,这样引入中断机制后,就可以实现多道程序的并发执行,提高了系统资源的利用率。
中断的过程?
- 执行完每个指令后,CPU都要检查当前是否有外部中断信号(有的话需要进行内核态和用户态的切换)
- 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器、各种通用寄存器)
- 根据中断信号类型转入相应的中断处理程序。
- 恢复进程的CPU环境并退出中断,返回原进程继续往下执行。
中断的类型
中断可以分为:内中断和外中断 内/软中断:内中断的信号来源于CPU内部、与当前执行的指令有关。如一些对I/O的请求、整数除0。 外/硬中断:外中断的信号来源于CPU外部、与当前执行的指令无关。如用户强制结束一个进程、时钟、IO设备完成操作发生的中断信号。
