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.

[3][4] Similarly, in SunOS version 4 onwards (prior to Solaris) "light weight process" referred to user threads.

LWPs (in systems where they are a separate layer) bind to kernel threads and provide a user-level context.

This provides a significant performance improvement in thread creation time and context switches.

Prior to version 9, Solaris allowed a many-to-many mapping between LWPs and user threads.

However, this was retired due to the complexities it introduced and performance improvements to the kernel scheduler.

[1][6] UNIX System V and its modern derivatives IRIX, SCO OpenServer, HP-UX and IBM AIX allow a many-to-many mapping between user threads and LWPs.