|
|
Process |
The UNIX
environment, such as file descriptors, user ID, and so on, created with the
fork(2) system call, which is set up to run a program. |
Thread |
A sequence of
instructions executed within the context of a process. |
POSIX pthreads |
|
Solaris threads |
A Sun Microsystems
threads interface that is not POSIX threads compliant. A predecessor of pthreads. |
|
Restricts access
to a single thread. Execution is through sequential processing, limited to one thread
of control. |
|
Allows access to two or more threads. Execution occurs in more
than one thread of control, using parallel or concurrent processing. |
User-level or Application-level threads
|
Threads managed by threads routines in user space, as opposed
to kernel space. The POSIX pthreads and Solaris threads APIs are used to
create and handle user threads. In this manual, and in general, a thread
is a user-level thread.
Note - Because this manual is for application programmers, kernel thread programming is
not discussed.
|
|
Kernel threads, also called LWPs, that execute kernel
code and system calls. LWPs are managed by the system thread scheduler, and
cannot be directly controlled by the application programmer. Beginning with Solaris 9, every user-level
thread has a dedicated LWP. This is known as a 1:1 thread
model. |
Bound thread (obsolete term) |
Prior to Solaris 9, a user-level thread that is
permanently bound to one LWP. Beginning with Solaris 9, every thread has a
dedicated LWP, so all threads are bound threads. The concept of an unbound
thread no longer exists. |
Unbound thread (obsolete term) |
Prior to Solaris 9, a user-level
thread that is not necessarily bound to one LWP. Beginning with Solaris 9,
every thread has a dedicated LWP, so the concept of unbound threads no
longer exists. |
Attribute object |
Contains opaque data types and related manipulation functions. These data types
and functions standardize some of the configurable aspects of POSIX threads, mutual exclusion
locks (mutexes), and condition variables. |
|
Objects used to lock and unlock
access to shared data. Such objects are also known as mutexes. |
Condition variables |
Objects
used to block threads until a change of state. |
Read-write locks |
Objects used to
allow multiple read-only access to shared data, but exclusive access for modification of
that data. |
|
A memory-based synchronization mechanism in which a non-negative
integer count is used to coordinate access by multiple threads to shared resources. |
Parallelism |
A
condition that arises when at least two threads are executing simultaneously. |
Concurrency |
A condition
that exists when at least two threads are making progress. A more
generalized form of parallelism that can include time-slicing as a form of virtual
parallelism. |