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:
- Multitasking in the Linux Kernel. Interrupts and Tasklets
- Multitasking in the Linux Kernel. Workqueue
- 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.