1. 什么 IRQ?这个号是由谁分配的?
IRQ就是中断要求。当电脑内的周边硬件需要处理器去处理某些工作时,该硬件就会发出信号,通知处理器去执行。这个信号就是IRQ。之所以要叫中断,就是即使是处理器在执行工作,但在收到信号后会停止手中的工作去执行信号的工作,在完成之后会继续去执行中断前的工作。
CPU会给发出中断申请的外部设备一个终端号。故这个号是由CPU分配的。
2. 从列表中,可以看出每个CPU核心被中断的次数,列举几个设备的中断次数
观察上图可以进行分析。在第一行我们可以看得出 1132479731即代表CPU0 被中断了1132479731次。可以以此类推。其中我们可以看得到IRQ决定了执行的优先级,即IRQ号越小优先级越高。
3. 什么是硬中断,有哪几种类型,什么是软中断?
硬中断主要分为两种类别:
(1)非屏蔽中断(NMI):即终端不会被CPU忽略或者取消掉。NMI是在单独的中断线路上进行发送的,它大多应用于关键性硬件发生的错误,如内存错误,风扇故障等。
(2)可屏蔽错误(MI):这些中断是会被CPU忽略或者延迟处理,
软中断:
这些中断是CPU在执行指令的时候产生,因为在执行指令的时候会产生一个异常(这就可以理解为软中断)。
4. 如何对中断进行负载均衡,尽可能让中断在每个CPU上发生,以提升系统的性能?
在Irqbalance是一个linux的实用程序,可以主要是用于分发中断请求到CPU核心上,有助于性能的提升,它的目的是寻求省电和性能优化之间的平衡。Irqbalance对于包含多个核心的系统来说是非常有用的。因为通常中断只被第一个CPU核心服务。