小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文介绍IO中断方式中的程序中断方式的工作流程
工作流程
-
中断请求
- 内中断 :处理器和内存内部产生的中断【程序运算引起的各种错误:地址非法、校验错、页面失效、存取访存控制错、算术操作溢出、数据格式非法、除数为0、非法指令、用户程序执行特权指令、分时系统
- 时间片中断及用户态到核心态的切换】
- 外中断:处理器和内存以外的部件引起的中断【IO设备发出的中断、外部信号中断[ESC键]、各种定时器引起的中断】
- 硬件中断:通过外部硬件产生的中断
- 软件中断: 通过某条指令产生的中断
- 非屏蔽中断:这是一种硬件中断,这种中断通过不可屏蔽中断请求NMI控制,不受中断标志位IF的影响
- 可屏蔽中断:也是一种硬件中断,通过中断请求标记触发器INTR控制,且受中断标志位IF的影响
-
中断判优
- 硬件实现通过硬件排队器,软件实现通过查询程序
- 一般来说,硬件故障中断属于最高级,其次是软件中断,非屏蔽中断优于可屏蔽中断,DMA请求优于IO设备传送的中断请求,高速设备优于低速设备,输入优于输出,实时设备优于普通设备
-
CPU响应中断的条件
-
中断隐指令
- 关中断:为了防止中断现场被其他中断打断
- 保存断点:
- 引出中断服务程序:取出中断服务程序入口地址并传送给PC
-
中断向量
- 不同的设备的中断服务程序入口也不同,入口地址则为中断向量
-
中断处理过程
- 123关中断保存断点引出中断服务程序
- 保存现场和屏蔽字
- 开中断
- 执行中断服务程序
- 关中断
- 恢复现场和屏蔽字
- 开中断、中断返回