本文共 1426 字,大约阅读时间需要 4 分钟。
所谓中断是指CPU对系统发生的某个事件作出的一种反应,让CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程:CPU在遇到某个事件时,暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。事实上CPU对于中断和异常的具体处理机制本质上是完全一致的
即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
广义的中断包含异步中断和同步中断。同步中断又称为异常(exception),异步中断则被称为中断(interrupt)。我们通常讲的中断指的都是异步中断。
外部中断,就是通常所讲的“中断”(interrupt),狭义中断。对于执行程序来说,这种“中断”的发生完全是异步的,因为不知道什么时候会发生。CPU对其的响应也完全是被动的,但是可以屏蔽掉。
异步中断是指由其他硬件设备依照 CPU 时钟信号随机产生,即意味着中断能够在指令之间发生,例如键盘中断。
异步中断可分为可屏蔽中断(Maskable interrupt)和非屏蔽中断(Nomaskable interrupt)。
类型 | 原因 | 异步/同步 | 返回行为 |
中断 | 来自I/O设备的信号 | 异步 | 总是返回到下一条指令 |
在Intel的手册中,异步中断被称之为异常。
异常可分为故障(fault)、陷阱(trap)、终止(abort)三类。
类型 | 原因 | 异步/同步 | 返回行为 |
陷阱 | 有意的异常 | 同步 | 总是返回到下一条指令 |
故障 | 潜在可恢复的错误 | 同步 | 返回到当前指令 |
终止 | 不可恢复的错误 | 同步 | 不会返回 |
软中断是通信进程之间用来模拟硬中断的一种信号通信方式。是属于一种编程手段,也有称之为软中断通信机制。
硬中断一般就是指的硬件中断,也就是常说的中断,由硬件触发。
当系统返现除零时,会抛出异常,如果程序不处理这个异常,那么操作系统将发出一个异步信号终止当前执行的程序。
产生的位置 | 发生的时刻 | 时序 | |
中断 | CPU外部 | 随机 | 异步 |
异常 | CPU内部 | 一条指令终止后 | 同步 |
转载请注明: »