码迷,mamicode.com
首页 > 其他好文 > 详细

中断和异常

时间:2015-05-11 08:51:42      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:异步   中断   软中断   内核   linux   

同步中断和异步中断:
  • 同步中断(异常)是当前指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。
  • 异步中断(中断)是由其他硬件设备依照CPU时钟信号随机产生的。
1、中断信号的作用:
2、中断和异常:
(1)中断:可屏蔽中断和非屏蔽中断
(2)异常:
     1)处理器探测异常:故障、陷阱、异常终止
          故障:可以纠正,一旦纠正,程序就可以在不失连贯性的情况下重新开始。
          陷阱:只有当没有必要重新执行已终止的指令时,才触发陷阱。陷阱的主要用途是为了调试程序。
          异常终止:
     2)编程异常:软中断,通常作为陷阱来处理。
(3)IRQ和中断
     1)高级可编程中断控制器
3、异常:
技术分享
4、中断描述符表
技术分享
5、中断和异常处理程序的嵌套执行
     一个中断处理程序可以抢占其他的中断处理程序,也可以抢占异常处理程序。相反,异常处理程序从不抢占中断处理程序。在内核态能触发的唯一异常就是刚刚描述的缺页异常
6、初始化中断描述符
(1)中断门、陷阱门及系统门:中断门、系统门、系统中断门、陷阱门和任务门。
(2)IDT的初始化操作:先由BIOS进行初始化,全部设置成ignore_int(),之后由内核再一次进行初始化,设置成相应的处理函数。
7、异常处理:
(1)两种情况下Linux利用CPU异常更为有效的管理硬件资源:保存和加载FPU、MMX及XMM寄存器和缺页异常。
8、中断处理
(1)I/O中断处理:所有的I/O中断处理程序都执行四个相同的基本操作:
     1)在内核中保存IPQ的值和寄存器的内容
     2)为正在给IRQ线服务的PIC发送一个应答,这将允许PIC进一步发出中断。
     3)执行共享这个IRQ的所有设备的中断服务例程。
     4)跳到ret_from_intr()的地址后终止。
9、软中断和tasklet
(1)软中断可以并发的运行在多个CPU上。因此,软中断是可重入函数而且必须明确地使用自旋锁保护其数据结构。而tasklet与之相反。
     一般而言,在可延迟函数上可以执行四种操作:初始化、激活、屏蔽和执行。
10、软中断
(1)tasklet
(2)工作队列
11、从中断中返回
(1)当中断或异常处理完毕时,会分别从ret_from_intr()或ret_from_exception()返回。

中断和异常

标签:异步   中断   软中断   内核   linux   

原文地址:http://blog.csdn.net/ucan23/article/details/45640151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!