Multitasking in the Linux Kernel: Interrupts and Tasklets


In the previous article I mentioned about multithreading. The article covered such basic notions as types of multitasking, the scheduler, scheduling strategies, the state machine, and other.

This time, I want to look at the problem of scheduling from another perspective. Namely, I’m going to tell you about scheduling not threads, but their “younger brothersâ€. Since the article turned out to be quite long, at the last moment I decided to break it up into several parts:

  1. Multitasking in the Linux Kernel. Interrupts and Tasklets
  2. Multitasking in the Linux Kernel. Workqueue
  3. Protothread and Cooperative Multitasking

In the third part, I will also try to compare all of these seemingly different entities and extract some useful ideas. After a little while, I will tell you about the way we managed to apply these ideas in practice in the Embox project, and about how we started our operating system on a small board with almost full multitasking.

Read more at Vita Loginova’s blog.