---

Kernel APIs, Part 3: Timers and lists in the 2.6 kernel

[ Thanks to An Anonymous Reader for
this link. ]

“This article continues the topic of work deferral I
started in “Kernel APIs, Part 2: Deferrable functions, kernel
tasklets, and work queues” (developerWorks, March 2010). This time,
I discuss the timer application programming interface (API) and a
core element to all work deferral schemes, the kernel list
construct. I also explore the kernel list API, which timers and
other work deferral mechanisms (such as work queues) use. Timers
are an integral part of any operating system, and you’ll find
multiple timer mechanisms. Let’s begin with a quick overview of the
Linux timer schemes before delving further into their operation.

“Origin of (Linux) time

“In the Linux kernel, time is measured by a global variable
named jiffies, which identifies the number of ticks that have
occurred since the system was booted. The manner in which ticks are
counted depends, at its lowest level, on the particular hardware
platform on which you’re running; however, it is typically
incremented through an interrupt.

“The tick rate (jiffies’s least significant bit) is
configurable, but in a recent 2.6 kernel for x86, a tick equals 4ms
(250Hz). The jiffies global variable is used broadly in the kernel
for a number of purposes, one of which is the current absolute time
to calculate the time-out value for a timer (you’ll see examples of
this later).”


Complete Story

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis