Since user threads are mapped to kernel threads, why don't we create all threads as kernel threads that is a process with zero user thread. Doesn't mapping of user thread to kernel thread create overhead?
Why user threads are mapped to Kernel threads
multithreadingoperating systems
Best Answer
That is what is typically done. Most modern platforms don't really have user threads any more. You will find two technologies that are similar to user threads, coroutines and strands/fibers. But they're not pre-emptive. So real user threading has pretty much died out in favor of kernel threads.
(To avoid confusion, by "kernel threads", we mean threads that are scheduled by the kernel, not threads that execute in kernel space. By "user threads", we mean threads that are not individually scheduled by the kernel but where a user space scheduler decides which user space thread to run.)