Processes and Process Context Mutual Exclusion and Synchronisation Allowing multiple processes access to the same resources in a time sliced manner or potentially consecutively in the case of multiprocessor systems can cause many problems. This is due to the need to maintain data consistency, maintain true temporal dependencies and to ensure that each thread will properly release the resource as required when it has completed its action. A low priority process never gets access to the processor due to the higher effective processor access of other processes.
Solution is to cause processes to 'age' or decline in priority as they use up CPU quanta.
Process deadlock Two or more processes are competing for resources, each blocking the other. The processing result depends on when and how fast two or more processes complete their tasks. The data consistency and race condition problems may be addressed by the implementation of Mutual Exclusion and Synchronisation rules between processes whereas starvation is a function of the scheduler. Events A thread may wait for events such as the setting of a flag, integer, signal or presence of an object. Until that event occurs the thread will be blocked and will be removed from the run queue.