中断、软中断、信号

         最近学习了linux关于中断方面的知识,现根据自己的理解,分析三者之间的联系。

    中断:

     中断更倾向于硬件,外部设备状态变化时发送给cup的一个信号,但是cpu如何捕捉这样的一个信号呢,原来cpu的控制单元会检查在执行前一条指令的过程中是否有中断或异常发生。当捕捉到这样一个信号后,便开始立即执行do_irq()函数,执行相应的中断处理程序(上半部),从cpu开始处理中断至此,cpu对于其他的中断都是不处理的,上半部主要负责一些要紧但是不耗时的操作,后来的操作便由下半部来处理。对于上半部如何与下半部联系起来,便是用接下来要说的软中断了。

   软中断:

软中断是内核的一种机制,模拟硬中断(即上面所说的中断)的实现,既然是对中断的模拟,对于某个软中断向量便会有对应的软中断处理函数,对于多核cpu(SMP),存在这样的规则,哪个cpu触发的软中断,便由哪个cpu来执行相应的中断程序,中断处理程序(包括上半部和下半部)没有自己的堆栈,执行的时候都是使用的当前用户进程的内核栈,若当前没有用户进程,便使用idle进程的内核栈。软中断处理程序的执行在某一个cpu(多核中的一个)上应是线性的,只有上一个软中断处理完成之后才能执行下一个软中断处理程序。


   信号:

          信号应该就是进程对内核软中断的一种模拟了,主要用于进程之间的信息的传递,触发的相应的处理函数在进程的用户空间里执行。



            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值