Front | Back |
Atomic operation
|
A sequence of one or more statements that appears to be indivisible; that it, no other process can see an intermediate state or interrupt the operation
|
Critical Section
|
A section of code within a process that requires access to shared resources and that must not be executed while another process is in a corresponding section of code
|
Deadlock
|
A situation in which two or more processes are unable to proceed because each is waiting for one of the others to do something.
|
Livelock
|
A situation in which two or more processes continually change their states in response to changes in the other process(es) without doing any useful work.
|
Mutual Exclusion
|
The requirement that when one process is in a critical section that accesses shared resources, no other process may be in a critical section that accesses any of those shared resources
|
Race Condition
|
A situation in which multiple threads or processes read and write a shared data item and the final result depends on the relative timing of their execution
|
Starvation
|
A situation in which a runnable process is overlooked indefinitely by the scheduler; although it is able to proceed, it is never chosen
|
What design and management issues are raised by the existence of concurrency?
|
The OS must:
- Keep track of various resources - Allocated and de-allocate resources - Protect the data and resources against interference by other processes - Ensure that the processes and outputs are independent of the processing speed |
Semaphore
|
An integer value used for signalling among processes
|
What 3 operations may be performed on a semaphore? (all atomic)
|
- Initialize
- Decrement - Increment |
What is a Monitor?
|
A programming language construct that provides equivalent functionality to that of semaphores and that is easier to control
|
What are some chief characteristics of a monitor?
|
1) Local data variables are accessible only by the monitor
2) Process enters monitor by invoking one of its procedures 3) Only one process may be executing in the monitor at a time |
What is Synchronization?
|
The idea that multiple processes are to join up or handshake at a
certain point, so as to reach an agreement or commit to a certain
sequence of action
|
What two requirements must be satisfied in order for processses to interact with one another?
|
1) Synchronization
2) Communication (Message Passing is one solution to this one) |
Direct Addressing
|
Send primative includes a specific id of the dest process
Receive primitive could know ahead of time which process a message is expected Received primitive could use source prarameter to return a value when the receive operation has been performed |