linux 高性能学习笔记6
对于中断问的理解与分析
概念
- 中断是一种异步机制,可以提高系统的并发性能
- 中断的理解
- 外卖理论(无中断)
- 订外卖
- 等外卖:要时不时的去看,错过了外卖就走了
- 外卖理论(有中断)
- 订外卖
- 和外卖员协商好,到了给我打电话
- 我可以去干别的了
- 外卖理论(无中断)
- 中断丢失
- 订了两个外卖,分别有不同的外卖员配送
- 也都协商好了到了打电话
- 当第一个外卖员来了,非要跟我电话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锁