中断和异常
最后更新于
最后更新于
人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行
本质:发生中断就意味着需要操作系统介入,开展管理工作
当中断发生时,CPU立即进入核心态
当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
信号来源CPU内部,与当前执行的指令有关
内中断分为自愿中断(如系统调用时使用的trap指令)和强迫中断(如硬件故障:缺页;软件中断:除0)
信号来源CPU外部,与当前执行的指令无关
外中断分为外设请求(I/O完成后的中断信号)和人工干预(用户强行终止一个进程)
执行完每个指令之后,CPU都要检查当前是否有外部中断信号
如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、 程序计数器PC、各种通用寄存器)
根据中断信号类型转入相应的中断处理程序(进入内核态)
恢复原进程的CPU环境并退出中断,返回原进程继续往下执行