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函数。


参考:
[5] apue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值