Q. What are two differences among user-level threads and kernel-level threads? Under what situations is one type better than the other?
Answer:
(1) User-level threads are unidentified by the kernel whereas the kernel is aware of kernel threads.
(2) On systems utilizing either M:1 or M:N mapping user threads are scheduled by the thread library and the kernel schedules kernel threads.
(3) Kernel threads require not be associated with a process where as each user thread belongs to a process. Kernel threads are usually more expensive to maintain than user threads as they must be represented with a kernel data structure.