Before jumping into the threading model. Let’s understand the kernel scheduling entity. For any kernel, the scheduling entity could be a process or thread. Some kernels are not multi-threaded, the scheduling entity will be processed. Most of the recent kernels are multi-threaded. This helped in general for someone implementing threading in userspace vs depending on kernel threading.
There are three different threading models we can see Mx1, 1x1, MxN
Mx1 — There are two different possible operating systems, where scheduling entity for kernel is a process or a thread. Either case one would have implemented Mx1 threading model in userspace.
In this implementation, kernel is not aware of any of the user threads. a scheduled user thread maps to kernel thread/process based on the scheduling entity in kernel. …