网易首页 > 网易号 > 正文 申请入驻

Linux 内核处理中断全过程解析

0
分享至

  中断是现代 CPU 工作方式中重要的部分。例如:当你每次在键盘上按下一个按键后,CPU 会被中断以使得 PC 读取用户键盘的输入。这个过程发生得相当快,以至于在使用体验上你不会感到任何变化或损害。

  此外,键盘并不是导致中断的唯一组件。一般来说,有三种类型的事件会导致 CPU 发生中断:硬件中断、软件中断和异常。在具体介绍不同类型的中断前,我需要先定义一些术语。

  定义

  中断请求(IRQ)是由可编程的中断控制器(PIC)发起的,其目的是为了中断 CPU 和执行中断服务程序(ISR)。中断服务程序(ISR)是一个小的程序,用来处理具体的数据,其具体的处理方式依赖于造成中断请求(IRQ)的原因。之前正在运行的进程在中断服务程序(ISR)运行结束前都会被中断。

  在过去,中断请求由单独的芯片处理(中断控制器芯片 PIC),I/O 设备直接与中断控制器(PIC)相连。中断控制器(PIC)管理着多种硬件的中断请求(IRQ),并且可以直接与 CPU 通信。当一个中断请求(IRQ)产生后,中断控制器(PIC)向 CPU 写入数据,并且触发中断请求引脚(INTR)。

  现如今,中断请求(IRQ)由 CPU 中的高级可编程中断控制器advanced programmable interrupt controller(APIC)部分来处理。每个核中都拥有属于自己的高级可编程中断控制器。

  中断的类型

  正如我前文中提到的,中断可以根据其来源分为三种类型。

  硬件中断

  当一个硬件设备想要告诉 CPU 某一需要处理的数据已经准备好后(例如:当键盘被按下或者一个数据包到了网络接口处),它将会发送一个中断请求(IRQ)来告诉 CPU 数据是可用的。接下来会调用在内核启动时设备驱动注册的对应的中断服务程序(ISR)。

  软件中断

  当你在播放一个视频时,音频和视频是同步播放是相当重要的,这样音乐的速度才不会变化。这是由软件中断实现的,由精确的计时器系统(称为 jiffies)重复发起的。这个计时器会使得你的音乐播放器同步。软件中断也可以被特殊的指令所调用,来读取或写入数据到硬件设备。

  当系统需要实时性时(例如在工业应用中),软件中断会变得重要。你可以在 Linux 基金会的文章中找到更多相关信息:面向嵌入式开发者的实时 Linux 介绍。

  异常

  异常exception是你可能之前就知道的中断类型。当 CPU 执行一些将会导致除零或缺页错误的指令时,任何其他运行中的程序都会被中断。在这种情况下,你会被一个弹窗提醒,或在控制台输出中看到**段错误segmentation fault(核心已转储core dumped)**。但并不是所有异常都是由指令错误引起的。

  异常可以进一步分为错误Fault、陷阱Trap和终止Abort。

  • 错误:错误是系统可以纠正的异常。例如当一个进程尝试访问某个已经被换出到硬盘的页时。当请求的地址在进程的地址空间中,并且满足访问权限时,如果页不在内存(RAM)中,将会产生一个中断请求(IRQ),并开始启用缺页异常处理程序把所需的页加载到内存中。如果操作成功执行,程序将继续运行。
  • 陷阱:陷阱主要用在调试中。如果你在某个程序中设置了一个断点,你就插入了一条可以触发陷阱执行的特殊指令。陷阱可以触发上下文切换来允许你的调试器读取和展示局部变量的值。之后程序可以继续运行。陷阱同样也是运行系统调用的方式(如杀死一个进程)
  • 终止:终止是由系统表中的硬件错误或值不一致而导致的。终止不会报告造成异常的指令的所在位置。这是最严重的中断,终止将会调用系统的终止异常处理程序来结束造成异常的进程。

  动手实践

  中断请求按照高级可编程中断控制器(APIC)中的优先级高低排序(0是最高优先级)。前 32 个中断(0~31)是由 CPU 指定的固定序列。你可以在 OsDev 异常 页面找到关于它们的概述。随后的中断请求可以以不同的方式进行分配。中断描述表interrupt descriptor table(IDT)中记录了中断请求(IRQ)和中断服务程序(ISR)的对应关系。Linux 中定义了从 0 到 256 的 IRQ 向量。

  为了打印出在你的系统中已注册的中断,打开一个终端并输入:

  cat /proc/interrupts

  你应该会看到类似如下图的结果:

  内核版本为5.6.6中注册的中断 (Stephan Avenwedde, CC BY-SA 4.0)

  从左到右各列的含义依次为:中断向量号、每个 CPU(0~n)中断发生次数、硬件来源、硬件源通道信息、以及造成中断请求的设备名。

  在表的末尾,有一些非数字的中断。它们是特定于体系结构的中断,如本地计时器中断local timer interrupt(LOC)的中断请求(IRQ)号为 236。其中一些在 Linux 内核源树中的Linux IRQ 向量布局中指定。

  特定于体系结构的中断 (Stephan Avenwedde, CC BY-SA 4.0)

  如果要实时获取该表,请运行如下命令:

  watch -n1 "cat /proc/interrupts"

  总结

  正确的中断请求(IRQ)处理对于硬件、驱动和软件的正常交互是必要的。幸运地是,Linux 内核很好地完成了它,一个 PC 的普通用户几乎不会注意到内核的整个中断处理过程。
中断相当复杂,本文仅仅是一个关于中断的概述。如果想要深入了解该主题可以阅读 Linux Inside 电子书(CC BY-NC-SA 4.0)和 Linux 内核教程 仓库。

本文地址:https://www.linuxprobe.com/linux-irq.html

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
卡帅神了!1-0通杀英超4强队+前五稳了,曼联还不让他转正欺负人

卡帅神了!1-0通杀英超4强队+前五稳了,曼联还不让他转正欺负人

体育知多少
2026-04-19 07:38:28
曝王思聪近况:暴瘦脱相 秃顶脱发,拒付200万后,黄一鸣频繁发声

曝王思聪近况:暴瘦脱相 秃顶脱发,拒付200万后,黄一鸣频繁发声

东方不败然多多
2026-04-18 15:31:29
郑丽文之后,国民党大佬抵京!她的2个“必然”、狠狠打脸赖清德

郑丽文之后,国民党大佬抵京!她的2个“必然”、狠狠打脸赖清德

呼呼历史论
2026-04-19 15:51:45
若没有此人,中国历史或将改写!晚年离休后享受什么待遇?

若没有此人,中国历史或将改写!晚年离休后享受什么待遇?

史之铭
2026-04-19 15:49:20
失败了!送出全明星首发+1亿美金,换了31岁黑洞,真不如去马刺啊

失败了!送出全明星首发+1亿美金,换了31岁黑洞,真不如去马刺啊

篮球信息社
2026-04-19 20:46:27
官媒对张颂文称呼变了,五字之差释放强烈信号,家暴传闻早有真相

官媒对张颂文称呼变了,五字之差释放强烈信号,家暴传闻早有真相

老好人的愤怒
2026-04-18 11:37:40
破防!雷军15小时京沪续航自证清白,恳求全网帮帮小米

破防!雷军15小时京沪续航自证清白,恳求全网帮帮小米

雷科技
2026-04-18 12:38:28
瑞典:国王拒绝与泽连斯基握手的说法,是“错误且丑陋的”。俄媒在这个问题上断章取义!

瑞典:国王拒绝与泽连斯基握手的说法,是“错误且丑陋的”。俄媒在这个问题上断章取义!

李未熟擒话2
2026-04-19 17:08:59
一夜暴跌25%!小马哥最怕的事还是发生了:年轻人正在从腾讯溜走

一夜暴跌25%!小马哥最怕的事还是发生了:年轻人正在从腾讯溜走

潮鹿逐梦
2026-03-21 11:54:42
胡锡进以安全代言沃尔沃,是整个社会的耻辱

胡锡进以安全代言沃尔沃,是整个社会的耻辱

黔有虎
2026-04-19 17:34:12
中甲积分榜:无锡吴钩落败,广州豹登顶,石家庄功夫被逆转绝杀

中甲积分榜:无锡吴钩落败,广州豹登顶,石家庄功夫被逆转绝杀

足球狗说
2026-04-19 21:31:02
22岁能跟小罗争辉的天才,24岁却与劳尔同病相怜,还被庸医坑惨了

22岁能跟小罗争辉的天才,24岁却与劳尔同病相怜,还被庸医坑惨了

足篮大世界
2026-04-19 17:53:44
悬殊的7-2!丁俊晖接近会师赵心童,6-4到6-10,中国出局首人确定

悬殊的7-2!丁俊晖接近会师赵心童,6-4到6-10,中国出局首人确定

小火箭爱体育
2026-04-19 20:41:49
肯帕努:中国联赛水平远高于罗马尼亚;中国发展水平遥遥领先

肯帕努:中国联赛水平远高于罗马尼亚;中国发展水平遥遥领先

懂球帝
2026-04-19 11:49:41
有一种痛苦叫买了“连廊中间户”的房子,住了三年,天天想换房

有一种痛苦叫买了“连廊中间户”的房子,住了三年,天天想换房

装修秀
2026-04-19 10:30:09
斯诺克世锦赛:丁俊晖首败!土豆哥单杆70分追平,张安达优势缩水

斯诺克世锦赛:丁俊晖首败!土豆哥单杆70分追平,张安达优势缩水

刘姚尧的文字城堡
2026-04-19 18:05:31
突发!两家A股公司遭立案,超6万股东踩雷

突发!两家A股公司遭立案,超6万股东踩雷

财经智多星
2026-04-19 08:05:32
上海中环拥堵愈演愈烈!南北高架段通行骤降,职住失衡成核心诱因

上海中环拥堵愈演愈烈!南北高架段通行骤降,职住失衡成核心诱因

媛来这样
2026-04-19 00:01:46
匈牙利巨变:记者继续当喉舌是羞耻的

匈牙利巨变:记者继续当喉舌是羞耻的

黔有虎
2026-04-18 20:58:58
硬碰硬了,日本战舰横穿台海第2天,东部战区立马开始行动了!

硬碰硬了,日本战舰横穿台海第2天,东部战区立马开始行动了!

阿龙聊军事
2026-04-19 08:49:55
2026-04-19 23:04:49
linux系统运维之家
linux系统运维之家
科技资讯
1392文章数 7550关注度
往期回顾 全部

科技要闻

50分26秒破人类纪录!300台机器人狂飙半马

头条要闻

男子直播看得"心痒痒"贷款几十万赌石:不敢告诉老婆

头条要闻

男子直播看得"心痒痒"贷款几十万赌石:不敢告诉老婆

体育要闻

湖人1比0火箭:老詹比乌度卡像教练

娱乐要闻

张天爱评论区沦陷!被曝卷入小三风波

财经要闻

华谊兄弟,8年亏光85亿

汽车要闻

29分钟大定破万 极氪8X为什么这么多人买?

态度原创

艺术
旅游
房产
健康
军事航空

艺术要闻

拿下阿联酋高铁,中东成了中国基建的“第二主场”!

旅游要闻

[视频]村里有了“小而美” 游客爱上“慢时光”

房产要闻

官宣签约最强城更!海口楼市,突然杀入神秘房企!

干细胞抗衰4大误区,90%的人都中招

军事要闻

伊朗逼退美扫雷艇:美方求给15分钟撤退

无障碍浏览 进入关怀版