linux下与中断相关的概念

中断(interrupt)、软件断、异常(exception)、陷阱(trap)、故障(fault)、终止(abort)、信号、同步、异步、阻塞、非阻塞之间的区别

1、中断与异常

广义的讲,linux下只有两种中断,同步的中断和异步的中断,这是中断最基本的两种概念,同步和异步中断就说明了中断的所有类型。 同步的中断:一条指令执行完后,才可能发生;该中断由CPU的控制单元产生。 异步的中断:可以在指令执行过程中发生(中断发生是随机的,但必须在指令执行后才能跳转去执行IRQ);异步中断由CPU的外部硬件产生。 而Intel 的官方资料,将同步中断称为异常(exception),异步中断被称为中断(interrupt)。2、中断、故障、陷阱、终止、软中断 把同步的中断和异步的中断分类在细一些,可以分成这四种,故障、陷阱、终止都是同步的中断。 中断:来自I/O设备的信号,就是异步的中断,由cpu的外部硬件产生。 故障:潜在的可恢复的错误,cpu执行指令产生(除零)。 陷阱:有意的异常,指令执行或执行完成后(int软中断,调试)。(内存溢出 和 除法溢出属于哪类???) 终止:不可恢复的错误,cpu不知道该干什么了。 陷阱即所谓的软中断,是一种同步的中断,是CPU内部的控制单元产生的中断。3、同步、异步、阻塞、非阻塞 消息发送: 同步:等待消息发送完成,收到回复语句后,在执行其他功能(发送下一个数据包) 异步:消息发送后就,不等接收方回复,直接执行其他功能 等待消息: 阻塞: 非阻塞:同步和异步这两个概念与消息的通知机制有关;阻塞和非阻塞这两个概念与程序等待消息(无所谓同步或者异步)时的状态有关;同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制。4、信号 中断和异常都可以产生信号,比如按键(ctrl+c),除0,引用无效内存,kill函数。参考:[1]http://aplawrence.com/Words/2004_08_14.html[2] http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/[3]http://blog.csdn.net/OhFish/article/details/2948740[4]http://www.cppblog.com/converse/archive/2009/05/13/82879.html[5] apue青春不是年华,而是心境;青春不是桃面丹唇柔膝,

linux下与中断相关的概念

相关文章:

你感兴趣的文章:

标签云: