| |
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.
|