Notes on “Threads”


The thread defines a sequential execution stream within a process.


The process defines the address space and general process attributes (everything but threads of execution)

Kernel-level thread

OS-managed threads are called kernel-level threads or lightweight processes.

  • Thread operations still require system calls
  • Kernel-level threads have to be general to support the needs of all programmers, languages, runtimes, etc.

User-level thread

Kernel-level threads are managed by the OS, User-level threads are managed entirely by the run-time system (user-level library).
A thread is simply represented by a PC, registers, stack, and small thread control block (TCB). Creating a new thread, switching between threads, and synchronizing threads are done via procedure call.

  • User-level threads are invisible to the OS
  • As a result, the OS can make poor decisions

Leave a Reply