1. 程式人生 > >定時器,tasklet,工作佇列

定時器,tasklet,工作佇列

1 定時器和tasklet
  Tasklets resemble kernel timers in 3 ways.
      1)They are always run at interrupt time,
      2)they always run on the same CPU that schedules them,
      3)and they receive an unsigned long argument.

  Unlike kernel timers, however, you can’t ask to execute the function at a specific time.

2 tasklet和工作佇列
    Workqueues are, superficially, similar to tasklets; they allow kernel code to request
    that a function be called at some future time. There are, however, some significant
    differences between the two, including:
        1) Tasklets run in software interrupt context with the result that all tasklet code
        must be atomic. Instead, workqueue functions run in the context of a special
        kernel process; as a result, they have more flexibility. In particular, workqueue
        functions can sleep.
        2)Tasklets always run on the processor from which they were originally submitted.
        Workqueues work in the same way, by default.
        3)Kernel code can request that the execution of workqueue functions be delayed
        for an explicit interval.