|
|
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 |
|
Oracle Solaris threads |
An Oracle
Solaris 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 Oracle 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. |