zoukankan      html  css  js  c++  java
  • 软中断小结

    内核处理的任务中有的不是那么紧迫的,在必要的时间可以把它们延迟一段时间,这就是软中断形成的背景。这对于哪些期望它们的中断能在几毫秒内得到处理的“急迫”应用来说是非常重要的。由此,硬中断负责处理紧急的任务,软中断负责处理不是那么紧迫的任务。

    Linux 2.6内核提供了两种非紧迫、可中断函数:所谓的延迟函数(包括软中断和tasklets)和通过工作队列来执行的函数。

    软中断和tasklet有密切的关系,tasklet是在软中断之上实现。事实上,出现在内核代码中的术语“软中断(softirq)常常表示可延迟函数的所有种类”。另外一种被广泛使用的术语是“中断上下文”,表示内核当前正在执行一个中断处理程序或一个可延迟的函数。

    软中断的分配是静态的(即在编译时定义),而tasklet的分配和初始化可以在运行时进行(例如,安装一个内核模块时)。软中断(即便是同一种类型的软中断)可以并发地运行在多个CPU上。因此,软中断是可重入函数而且必须明确地使用自旋锁保护其数据结构。tasklet不必担心这个问题,因为内核对tasklet的执行进行了更加严格的控制。相同类型的tasklet总是串行地执行,换句话就是,不能在两个CPU上同时运行相同类型的tasklet。但是,类型不同的tasklet可以在几个不同的CPU上并发执行。tasklet的串行化使tasklet函数不必是可重入的。

  • 相关阅读:
    对单片机存储分配新的认识
    超简单的word转swf 实现
    纯真IP数据库
    webservice 特殊字符处理
    QQ输入法导致win8 x64 装不上vs11,打不开记事本,等各种变态问题
    时间戳转换
    Remote Desktop Organizer 1.4.5
    Xcdoe 4.6 dbank下载
    链接复用
    Visual Studio 2012 序列号
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6173180.html
Copyright © 2011-2022 走看看