在学习APUE时学习信号编程,很多地方不是理解,便查阅了网络上的相关资料,最常见的一句话就是“信号是中断机制的一种模拟”,既然提到了中断,那就首先了解了一下中断的具体分类以及实现,最后再找出中断和信号的区别。
LINUX中断机制与信号
中断和异常
l 中 断(也称硬件中断)
定义:中断是由其他硬件设备依照CPU时钟周期信号随机产生的。
分类: 可屏蔽中断
非可屏蔽中断
来源:间隔定时器和I/O
l 异 常(也称软件中断)
定义:当指令执行时由CPU控制单元产生的,异常也称为“异步中断”是因为只有在 一条指令终止执行后CPU才会发出中断。
分类: 处理器探测到的异常
² 故障
² 陷阱
² 异常终止
编程异常(也称软中断)
² int指令
来源:程序的错误产生的
内核必须处理的异常(例如:缺页和内核服务的请求-int)
异常处理
l 当发生异常时,CPU控制单元产生一个硬件出错码。
l CPU根据该中断吗找到中断向量表内的对应向量,根据该向量转到中断处理程序。