Unit 03 Flashcards
atomic action
An indivisible action – that is, either the action happens completely, or it does not happen at all. See also fine-grained and coarse-grained atomic actions.
atomic objects
Also known as fully synchronised objects, atomic objects are objects which have all their methods declared as synchronized. The data is fully encapsulated and there is no public access to the data fields of the object apart from through such synchronized methods.
binary semaphore
A semaphore used to guard exclusive access to a shared resource.
blocking semaphore
A semaphore used for the synchronisation of cooperating processes.
buffer
An area of temporary storage to allow a reader and writer to operate at different rates.
busy-waiting
A technique whereby a process repeatedly checks to see if a condition is true such as waiting for keyboard input or waiting for a lock to become available.
See also spin lock.
circular buffer
A buffer (data storage area) which is logically said to be circular – when a process gets to the end of the buffer, it can start again at the beginning.
coarse-grainedatomic action
An atomic action implemented by a sequence of finegrained atomic actions.
condition synchronisation
A mechanism for ensuring that a process is blocked if some condition is not fulfilled (for example, a producer process requires a buffer to be not full for it to be able to proceed).
condition variables
Used in the operations of a monitor to provide conditional synchronisation.
consistent state
A sensible state for a system as a whole (or the individual objects within the system) to be in, such that it conforms to a given specification. It usually refers to the values that are held by the variables in the system and whether these are within the range as set out by the specification.
counting semaphore
A semaphore used to control access to shared resources – may be used for any number of resources.
critical region
A sequence of instructions that access shared data.
deadlock
A situation in which a process is prevented, for all time, from continuing because it is waiting for an event that will never happen, or for a resource that will never become free.
entry protocol
The code that must be executed by a process prior to entering its critical region – it is designed to prevent the process from entering its critical region if another process is already in its associated critical region. An entry protocol together with its associated exit protocol should ensure mutual exclusion.
exit protocol
The code that a process must execute immediately on completion of its critical region to ensure that other waiting processes may now enter their associated critical regions. Together, entry protocols and exit protocols are designed to ensure mutual exclusion.
fairness
Fairness is concerned with guaranteeing that a process will be given the chance to proceed, regardless of how other processes behave.
fine-grained atomic action
An atomic action implemented directly by an indivisible machine instruction.