中断和异常


用户态:普通应用程序运行在用户态,有很多权限限制
内核态:操作系统运行在内核态,有完全的权限访问和管理所有资源(硬件,内存)
中断的作用
把CPU从用户态变内核态
异常(内中断)
和执行的指令有关,中断来源于CPU内部。分为终止,陷入和故障
- 终止:当前执行的指令出现不可恢复的错误(在非内核态尝试执行特权指令/整数除0),会直接终止该程序
- 陷入:应用程序主动请求操作系统服务,执行陷入指令。处理完会返回到下一个指令
- 故障:可以被内核程序修复的错误(好像缺页故障只需要把数据从硬盘加载到内存即可)。处理完会返回之前的指令
中断(外中断)
和执行的指令无关,中断来源于CPU外部。分为时钟中断和IO中断
- 时钟中断:系统计时器每隔一段时间给CPU发送中断信号,CPU会处理相应的时钟中断ISR(中断服务程序),然后操作系统会指定接下来执行哪个应用程序
- I/O中断:I/O设备任务完成后会给CPU发出中断信号。CPU收到信号后会暂停当前任务,处理相应的I/O中断服务程序,处理完了再恢复执行之前被中断的任务
中断向量表
每种中断信号都有不同的ISR(中断服务程序)。CPU收到中断信号后,会在这个表查该中断类型的程序在内存中的位置

![[电子电路学]电路分析基本概念1](https://img-blog.csdnimg.cn/direct/d62ffa0f718145248c1e2e57131bd65f.png)


![[Java基础揉碎]反射](https://i-blog.csdnimg.cn/direct/c5e489ebe34d4a608021495397eb8517.png)





![[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式4599张2类别](https://i-blog.csdnimg.cn/direct/94c6196f9c4c4ac3b3b315b68c7ae6b1.png)

![[CAN] 通讯协议手动解析与手动打包 [手撕编码格式]](https://i-blog.csdnimg.cn/direct/7d4182e77f8d4c1dab41562a7d78d1ba.png#pic_center)





