Linux Interrupt 中断介绍

发布时间: 更新时间: 总字数:641 阅读时间:2m 作者: IP上海 分享 网址

Linux Interrupt(中断) 是指处理器接收到来自硬件或软件的信号,提示发生了某个事件应该被注意,这种情况就称为中断。

分类

  • 硬中断:接收到来自外围硬件(相对于中央处理器和内存)的异步信号,导致处理器通过一个执行 信息切换(context switch) 来保存执行状态(以程序计数器程序状态字寄存器信息为主)
  • 软中断:接受来自软件的同步信号,通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种执行信息切换,并将处理导向一段中断处理代码

其中,发出中断的信号称为进行中断请求(interrupt request,IRQ)

特点

  • 硬中断服务函数不能传递参数和返回值,软中断可以
  • 中断通常用来处理比较紧急的事情
  • 响应及时,如果数据量较小,则不会占用太多的CPU事件

中断上半部分和下半部分

  • 上半部分:中断处理程序是上半部分。上半部分在收到中断后立即运行,仅执行对时间要求严格的工作,例如确认收到中断或重置硬件
  • 下半部分:可以在以后执行的工作推迟到下半部分。下半部分将在更方便的时间运行,并启用所有中断

相关文件

  • /proc/interrupts : 系统中断信息
  • /proc/irq/ : 查看指定进程的irq的信息
cat /proc/interrupts
            CPU0       CPU1
   0:        131          0   IO-APIC-edge      timer
   1:         13          0   IO-APIC-edge      i8042
   8:          1          0   IO-APIC-edge      rtc0
   9:          0          0   IO-APIC-fasteoi   acpi
  12:         16          0   IO-APIC-edge      i8042
  14:          0          0   IO-APIC-edge      ata_piix
  15:     115907          0   IO-APIC-edge      ata_piix
  16:        189          0   IO-APIC-fasteoi   vmwgfx
  17:       7091       2638   IO-APIC-fasteoi   ioc0
  19:         37     180949   IO-APIC-fasteoi   ens33
  24:          0          0   PCI-MSI-edge      PCIe PME, pciehp
...
 NMI:          0          0   Non-maskable interrupts
 LOC:    4319054    4488832   Local timer interrupts
 SPU:          0          0   Spurious interrupts
 PMI:          0          0   Performance monitoring interrupts
 IWI:     128419     131150   IRQ work interrupts
 RTR:          0          0   APIC ICR read retries
 RES:     452676     472036   Rescheduling interrupts
 CAL:       4007       6384   Function call interrupts
 TLB:      54125      50163   TLB shootdowns
 TRM:          0          0   Thermal event interrupts
 THR:          0          0   Threshold APIC interrupts
 DFR:          0          0   Deferred Error APIC interrupts
 MCE:          0          0   Machine check exceptions
 MCP:        398        398   Machine check polls
 ERR:          0
 MIS:          0
 PIN:          0          0   Posted-interrupt notification event
 NPI:          0          0   Nested posted-interrupt event
 PIW:          0          0   Posted-interrupt wakeup event
$ ls /proc/irq/1/
affinity_hint  i8042  node  smp_affinity  smp_affinity_list  spurious
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数