linux内核—中断下半部

1.中断处理分为两部分的原因

在这里插入图片描述
下半部实现机制:软中断、tasklets和工作队列

2. 软中断机制

中断处理程序(也就是中断上半部)在返回前,标记它所对应的软中断,稍后在合适的时刻,软中断就会被执行

2.1软中断实现
在这里插入图片描述
2.2 软中断的使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. tasklet机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.ksoftirqd线程

对于软中断,内核会选择在几个特殊时机进行处理。而在中断处理程序返回时处理是最常见的。软中断被触发的频率有时可能很高(像在进行大流量的网络通信期间)。更不利的是,处理函数有时还会自行重复触发。也就是说,当一个软中断执行的时候,它可以重新触发自己以便再次得到执行(事实上,网络子系统就会这么做)。如果软中断本身出现的频率就高,再加上它们又有将自己重新设置为可执行状态的能力,那么就会导致用户空间进程无法获得足够的处理器时间,因而处于饥饿状态。而且,单纯的对重新触发的软中断采取不立即处理的策略,也无法让人接受。

解决方案:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chengcheng1024/article/details/114134932