---
title: "User-level versus kernel-level threads"
subject: "Embedded System"
chapter: 6
key: "semester_6/embedded_system:user-vs-kernel-threads"
source: https://www.bctengineer.com/q/semester_6/embedded_system/user-vs-kernel-threads
site: BCT Engineering
---

# User-level versus kernel-level threads

Embedded System · Chapter 6: RTOS

- Asked in: 2070 Bhadra, 3 marks; 2075 Baisakh, 3 marks (asked 2 times)
- Video: [5  User Level and Kernel Level thread in OS | user level vs kernel level thread](https://www.youtube.com/watch?v=LrDkbHkJpqY) — Gate TaLkS
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/embedded_system/user-vs-kernel-threads
- Whole chapter: https://www.bctengineer.com/md/semester_6/embedded_system/chapter-6

## Question

Define threads and differentiate between user-level threads and kernel-level threads.

## Short answer

User-level threads are managed by a library in user space; creation is fast but a blocking call halts the entire process. Kernel-level threads are scheduled by the OS, support true parallelism on multicores, but operations involve higher overhead due to system calls.

## Answer

A **thread** is a lightweight unit of execution within a process: it has its own program counter, registers and stack but shares the code, data and resources of the process with its sibling threads.

| Point | User-level thread | Kernel-level thread |
|---|---|---|
| Managed by | User thread library in user space | The operating system kernel |
| Kernel awareness | Kernel sees only one process | Kernel knows and schedules each thread |
| Creation / switch | Fast (no system call) | Slower (system call, kernel work) |
| Blocking | One blocking call blocks the whole process | Other threads continue to run |
| Multiprocessor | Cannot run threads in parallel on several CPUs | Can run on different CPUs in parallel |
| Scheduling | By the library, application-specific | By the kernel scheduler |
| Portability | Easy; runs on any OS | OS dependent |
| Overhead | Low | Higher |
| Examples | Green threads (early Java), GNU Portable Threads | Windows threads, Linux threads (including Pthreads on Linux) |

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does a thread have of its own versus share?
   A. Own code and data; shares the stack
   B. Owns everything
   C. Own PC, registers and stack; shares code, data and resources
   D. Shares everything
   Answer: C. Threads are lightweight units within a process. (Key point: Thread definition)

2. What happens when one user-level thread makes a blocking call?
   A. Other threads continue
   B. Only that thread blocks
   C. The kernel creates another
   D. The whole process blocks
   Answer: D. The kernel sees only one process; kernel threads let others continue. (Key point: Blocking)

3. Which threads can run in parallel on several CPUs?
   A. Neither
   B. Kernel-level threads
   C. Both equally
   D. User-level threads
   Answer: B. The kernel schedules each kernel thread; user-level threads cannot run in parallel on several CPUs. (Key point: Multiprocessor)

4. Why is creating/switching user-level threads faster?
   A. They use the kernel scheduler
   B. No system call is needed
   C. They need more memory
   D. They are OS dependent
   Answer: B. The library manages them in user space. (Key point: Speed)

## Related in Embedded System

- [Kernel and its types](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Akernel-types) — Embedded System, chapter 6, asked 2×
- [Open loop versus closed loop control](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aopen-vs-closed-loop) — Embedded System, chapter 7, asked 6×
- [RTOS versus general-purpose OS](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Artos-vs-gpos) — Embedded System, chapter 6, asked 4×
- [Process versus thread differences](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aprocess-vs-thread) — Embedded System, chapter 6, asked 4×
- [Embedded versus non-embedded systems](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Aembedded-vs-non-embedded) — Embedded System, chapter 1
- [Super scalar versus VLIW architecture](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Asuperscalar-vs-vliw) — Embedded System, chapter 2

## Related in other subjects

- [Process vs thread; user and kernel threads](https://www.bctengineer.com/question.md?key=semester_6%2Foperating_system%3Aprocess-vs-thread-user-kernel-threads) — Operating System, chapter 2
- [Waterfall versus spiral; user participation](https://www.bctengineer.com/question.md?key=semester_5%2Fsoftware_engineering%3Awaterfall-vs-spiral) — Software Engineering, chapter 1
- [Switch versus user defined function](https://www.bctengineer.com/question.md?key=semester_1%2Fcomputer_programming%3Aswitch-vs-user-function) — Computer Programming, chapter 5
- [Process vs threads; importance in DS](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Aprocess-vs-thread) — Distributed System, chapter 3, asked 3×
