10、Linux内核中的延迟工作与中断处理机制

Linux内核延迟工作与中断处理机制解析

Linux内核中的延迟工作与中断处理机制

1. Linux内核操作上下文

Linux内核在两种上下文中执行操作:
- 进程上下文 :内核代表用户进程执行操作时所处的模式,例如执行系统调用内核服务例程。工作队列和线程化中断调度的延迟工作也在进程上下文中执行。这些内核线程在内核空间进程上下文中运行,但不代表任何用户进程。在进程上下文中执行的代码可以阻塞。
- 中断上下文 :由硬件中断控制器异步请求触发。此特殊上下文也称为“原子上下文”,因为在此上下文中执行的代码无法阻塞。中断不可调度,它们发生并执行中断处理程序,创建自己的上下文。软中断、小任务和定时器在中断上下文中运行,这意味着它们不能调用阻塞函数。

下面是一个简单的mermaid流程图,展示这两种上下文的关系:

graph LR
    A[Linux内核操作] --> B[进程上下文]
    A --> C[中断上下文]
    B --> D[可阻塞代码]
    C --> E[不可阻塞代码]

2. 延迟工作

延迟工作允许将代码调度到稍后执行。调度的代码可以使用工作队列或线程化中断在进程上下文中运行(这两种方法都使用内核线程),也可以使用软中断、小任务和定时器在中断上下文中运行。工作队列和线程化中断的底半部基于能够阻塞的内核线程实现,而小任务和定时器基于不能调用阻塞函数的软中断实现。

延迟工作用于补充中断处理程序的功能,因为中断有重要的要求和限制:
-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值