zoukankan      html  css  js  c++  java
  • linux中断的下半部机制

    一、中断处理为什么要下半部?Linux在中断处理中间中断处理分了上半部和下半部,目的就是提高系统的响应能力和并发能力。通俗一点来讲:当一个中断产生,调用该中断对应的处理程序(上半部)然后告诉系统,对应的后半部可以执行了。然后中断处理程序就返回,下半部会在合适的时机有系统调用。这样一来就大大的减少了中断处理所需要的时间。

    二、那些工作应该放在上半部,那些应该放在下半部?
    没有严格的规则,只有一些提示:
    1、对时间非常敏感,放在上半部。
    2、与硬件相关的,放在上半部。
    3、不能被其他中断打断的工作,放在上半部。
    以上三点之外的,考虑放在下半部。

    三、下半部机制在Linux中是怎么实现的?
    下半部在Linux中有以下实现机制:
    1、BH(在2.5中删除)
    2、任务队列(task queue,在2.5删除)
    3、软中断(softirq,2.3开始。本文重点)
    4、tasklet(2.3开始)
    5、工作队列(work queue,2.5开始)

    四、软中断是怎么实现的(以下代码出自2.6.32)?
    软中断不会抢占另外一个软中断,唯一可以抢占软中断的是中断处理程序。
    软中断可以在不同CPU上并发执行(哪怕是同一个软中断)
  • 相关阅读:
    代理模式
    适配器模式
    策略模式
    原型模式
    内存溢出
    jvm常用参数
    单例模式
    抽象工厂
    工厂方法模式
    选择器代码
  • 原文地址:https://www.cnblogs.com/Ph-one/p/8526730.html
Copyright © 2011-2022 走看看