Chapter 7: Time, Delays, and Deferred Work

At this point, we know the basics of how to write a full-featured char module. Real-world drivers, however, need to do more than implement the operations that control a device; they have to deal with issues such as timing, memory management, hardware access, and more. Fortunately, the kernel exports a number of facilities to ease the task of the driver writer. In the next few chapters, we'll describe some of the kernel resources you can use. This chapter leads the way by describing how timing issues are addressed. Dealing with time involves the following tasks, in order of increasing complexity:

  • Measuring time lapses and comparing times
  • Knowing the current time
  • Delaying operation for a specified amount of time
  • Scheduling asynchronous functions to happen at a later time

...

Download PDF.