Multithreading Models in Modern Operating System

2021/05/25

There are two types of threads to be managed in a modern system: User threads and kernel threads. User threads are supported above the kernel, without kernel support. These are the threads that application programmers would put into and manage in their programs. Kernel threads are supported within the kernel of the OS itself. All modern OSes support kernel level threads, allowing the kernel to perform multiple simultaneous tasks and/or to service multiple kernel system calls simultaneously. In a specific implementation, the user threads must be mapped to kernel threads, using one of the following strategies.

Many-To-One Model (N:1 Model)

One-To-One Model (1:1 Model)

Many-To-Many Model (N:N Model)