对于中断问的理解与分析

概念

  • 中断是一种异步机制,可以提高系统的并发性能
  • 中断的理解
    • 外卖理论(无中断)
      • 订外卖
      • 等外卖:要时不时的去看,错过了外卖就走了
    • 外卖理论(有中断)
      • 订外卖
      • 和外卖员协商好,到了给我打电话
      • 我可以去干别的了
  • 中断丢失
    • 订了两个外卖,分别有不同的外卖员配送
    • 也都协商好了到了打电话
    • 当第一个外卖员来了,非要跟我电话1个小时,结果我错过了第二个外卖
  • 为了防止中断丢失–软中断
    • 上半部分快速处理中断
    • 下半部分用来延迟,上半部分为完成的部分,通常以内核线程方式运行
  • 网卡接受数据过程
    • 网卡接受到了数据使用硬中断,告诉cpu数据到了
    • cpu立刻中断将数据读取到内存中,最后调用一个软中断
    • 触发下半部分中断,在内核状态下进行处理,解析协议逐层发送到应用
  • 理解
    • 上半部分直接处理硬件中断
    • 下半部分内核触发,就是通常状态下我们说的软中断,特点是延迟处理
      • 软中断不仅仅是延迟处理
      • 还有内核调度
      • RCU 锁(read copy update)
  • 如何查看中断情况
//查看软中断
/pro/softirqs
//查看硬中断
/pro/interrupts
  • 软中断类型
    • HI
    • TIMER
    • NET_TX:网络发送中断
    • NET_RX:网络接受中断
    • BLOCK
    • IRQ_POLL
    • TASKLET:任务中断,最常用的中断类型和cpu绑定(考虑cpu亲和是不利用这种机制实现)
    • SCHED
    • HRTIMER
    • RCU:read copy update锁