Linux内核分析与应用5-中断

本文围绕Linux内核的中断机制进行探讨,包括中断处理流程、系统门、软中断、小任务(tasklet)、时钟中断以及hrtimer使用红黑树的数据结构。作者分享了学习资源并引发关于中断返回和下半部处理机制的思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好,推荐观看

留此记录,蜻蜓点水,可作抛砖引玉


alt

中断机制概述


中断是CPU对系统发生的某个事件作出的一种反应, 当中断发生时,CPU暂停正在执行的程序,保留现场后,自动转去执行相应事件的处理程序,处理完成后,返回断点,继续执行被打断的程序.

中断是操作系统的脉搏,是并发处理的基础.

中断的引入,是为了支持CPU和设备之间的并行操作.


alt
alt
alt
alt
alt

中断看似简单,但工程性非常强



5.2 中断处理机制


0x80,系统门的编号

alt
alt
alt
alt
alt
alt
alt

思考:

"中断返回"除了返回现场外,从源代码角度分析内核还做了什么?



5.3 中断下半部处理机制


软中断机制

alt
alt

小任务(tasklet)机制

alt

思考:

  1. 为什么要有中断下半部分处理机制?而且有好几种机制?

  2. 中断下半部分处理机制中,你认为是否还有改进的余地?



5.4 时钟中断机制


alt
alt
alt

在考察了如基树树,哈希表等多种数据结构后, hrtimer使用了红黑树(rbtree). 树最左边的节点是最快到期的时间

alt

在内核中,除了被广泛使用的双向链表,红黑树使用场景也非常多.

alt

参考资料

[1]

Linux 内核分析与应用: https://next.xuetangx.com/course/XIYOU08091001441/1516763

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值