Light-weight process

In computer operating systems, a light-weight process (LWP) is a means of achieving multitasking. In the traditional meaning of the term, as used in Unix System V and Solaris, a LWP runs in user space on top of a single kernel thread and shares its address space and system resources with other LWPs within the same process. Multiple user-level threads, managed by a thread library, can be placed on top of one or many LWPs - allowing multitasking to be done at the user level, which can have some performance benefits.[1]

In some operating systems, there is no separate LWP layer between kernel threads and user threads. This means that user threads are implemented directly on top of kernel threads. In those contexts, the term "light-weight process" typically refers to kernel threads and the term "threads" can refer to user threads.[2] On Linux, user threads are implemented by allowing certain processes to share resources, which sometimes leads to these processes to be called "light weight processes".[3][4] Similarly, in SunOS version 4 onwards (prior to Solaris) "light weight process" referred to user threads.[1]

  1. ^ a b Vahalia, Uresh (1996). "Threads and Lightweight Processes". UNIX Internals - The New Frontiers. Prentice-Hall Inc. ISBN 0-13-101908-2.
  2. ^ "IBM AIX Compilers". IBM. 2004. Archived from the original on 2012-07-14. Retrieved 24 Jan 2010. On AIX, the term lightweight process usually refers to a kernel thread.
  3. ^ Bovet, Daniel P.; Cesati, Marco (2005). "3.1. Processes, Lightweight Processes, and Threads". Understanding the Linux Kernel (3rd ed.). O'Reilly Media.
  4. ^ Walton, Sean (1996). "Linux Threads Frequently Asked Questions (FAQ)". Retrieved 24 Jan 2010.