<Li> message passing; </Li> <Li> tuple space . </Li> <P> Many forms of mutual exclusion have side - effects . For example, classic semaphores permit deadlocks, in which one process gets a semaphore, another process gets a second semaphore, and then both wait till the other semaphore to be released . Other common side - effects include starvation, in which a process never gets sufficient resources to run to completion; priority inversion, in which a higher priority thread waits for a lower - priority thread; and high latency, in which response to interrupts is not prompt . </P> <P> Much research is aimed at eliminating the above effects, often with the goal of guaranteeing non-blocking progress . No perfect scheme is known . Blocking system calls used to sleep an entire process . Until such calls became threadsafe, there was no proper mechanism for sleeping a single thread within a process (see polling). </P>

What is mutual exclusion and multithreading in os