硬中断vs软中断

前言

在计算机体系中,各种技术,比如虚拟化,分布式,内核,等等技术深入到底层都要考虑中断带来的影响,所以这里讲一下中断

什么是中断

首先中断是一个信号,因为某一些进程或者事件需要立马被关注,这个中断信号发向的目的地是处理器,要求处理器中断当前运行的进程,假如这个中断是由硬件发出的,比如网卡,他会通过总线发送给cpu,这个也叫做ISR

ISR(interrupt service routin)是一个程序,这个程序被谁调用呢?被硬件程序发起的中断调用,ISR在调用发起后处理调用发出的请求,并且发向CPU

硬中断

对于硬中断来说,所有的设备都链接着一个叫做Interrupt Request(IRQ) Line的东西,这个东西链链接硬件和cpu
硬中断的过程
1,硬件发起IRQ,中断控制器收到IRQ会将相应的信号发送给cpu
2,cpu收到IRQ后中断当前运行的程序
3,硬件收到消息,刚刚发送的IRQ被cpu收到
4,request action(ISR)开始运行
5,结束后中断的程序继续执行

软中断

软中断顾名思义是软件发起的中断
通常来说软中断是当前运行的程序用于请求I/O,因为我们知道在中断处理时CPU没法处理其它事物,对于网卡来说,如果每次网卡收包时中断的时间都过长,那很可能造成丢包的可能性,对于某些io请求也许会完成的非常快,但是对于磁盘io来说经常先被放入队列,然后在稍后的事件完成,硬中断是直接对cpu说,软中断是只对内核说,我们的网络io先发起硬中断通知cpu将数据从网卡的缓存中copy到内存中(只是copy其他复杂操作给软中断做),然后触发软中断,由内核去解析内存中的数据包,硬中断要做到快,因为cpu接受到中断会暂停执行当前的程序,如果硬中断慢,那么说明cpu要被挂起相当一段时间

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值