Lightweight processes and threads concurrency level
The SVR4.2MP and UnixWare 2.0 operating system
kernel is not aware of the multithreading
of any process using the Threads Library.
The kernel supports an entity known as a ``lightweight process'' (LWP).
-
There may be many LWPs associated with a single process.
-
Each LWP of a process
shares the process address space with its ``sibling'' LWPs.
-
Each LWP has its own scheduling context.
-
On multiprocessor machines, several LWPs of a process might
be running on different processors simultaneously (true concurrency).
-
Each LWP has access to all of the resources of the process
such as
open file descriptors,
access rights and privileges, and
resource limits.
Many of these are features of threads as well.
This is no coincidence.
Threads have many of these features because
a thread only executes once it has been ``picked up'' by an LWP.
However, a process typically has more threads than LWPs.
Conceptually,
an LWP is a dearer resource than a thread.
The Threads Library will typically maintain a pool of LWPs
that are shared by the set of runnable threads in a process.
NOTE:
Analogously,
the operating system arranges for the sharing of a relatively
small number of (hardware) processors among a much greater number of processes
or LWPs.
Next topic:
Multiplexed threads
Previous topic:
Thread-to-thread signaling
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004