Concepts of parallel processing
Various concepts have developed that help us understand the complexities
of parallel processing.
- Synchronization: Any constraint on the order in which operations are carried out with the implication that the operations belong to different processes.
- Concurrent Processes: Whenever the first operation of one process is started before the last operation of some other process is completed.
- Simultaneous Processes: When the operations of several processes can occur during the same moment of time. Notice that simultaneous processes are concurrent processes, but the opposite is not necessarily the case.
- Mutual Exclusion: When, for the purpose of exclusively using a shared resource, one process blocks the further progress of other concurrent processes that require the use of the same resource.
- Critical Region: A set of operations within a process that invoke mutual exclusion. This implies that most of a process does not operate within a critical region.
- Lock: An implementation of mutual exclusion in which a shared resource is explicitly identified.
- Mutual exclusion is necessary when:
- A shared resource can be used by only one process at a time and
- Access to a shared resource must be granted to one of several concurrent processes within a finite time and
- A process must release a shared resource within a finite time.
- Deadlock: A state where some processes fail to terminate because they are waiting on (shared) resources that are being held by each other. See Table 1.
| Time | Process X action | Process Y action |
|---|---|---|
| t(1) | Process acquires resource A | Process acquires resource B |
| t(2) | Holding A | Process requests A but is told to wait; Holding B |
| t(3) | Process requests B but is told to wait; Holding A | Waiting for A; Holding B |
| t(4) | Waiting for B; Holding A | Waiting for A; Holding B |
| ⋮ | ⋮ | ⋮ |
| t(infinity) | Waiting for B; Holding A | Waiting for A; Holding B |