<- People Behind Informatics


All 0-9 A B C D E F G H I J K L M N O P Q R S T U V W XY Z




 
Mutual Exclusion
Situations, where two or more processes are reading and/or writing some shared data and the final result depends on who runs precisely when, are called race conditions. Code sections containing race conditions can be regarded as “critical”, because such code can lead to inconsistent data. To avoid inconsistence in critical sections, exclusive access to shared data must be granted. This is called mutual exclusion, because if two processes compete for access then they have to exclude each other mutually. The choice of appropriate primitive operations for achieving mutual exclusion is a major design issue in any operating system. We need four conditions to hold to have a good solution: 1. No two processes may be simultaneously inside their critical sections. 2. No assumptions are made about relative process speeds or number of CPUs. 3. No process stopped outside its critical section should block other processes. 4. No process should wait arbitrarily long to enter its critical section. The first conceptually sound and general solution for the mutual exclusion problem is given by Dijkstra, with his semaphores. Animation: Mutual exclusion Mutual Exclusion Demonstration using Semaphores [Source: Laszlo Böszörmenyi: Notes to the Virtual Exhibition "People behind Informatics"]
 

 

<- People Behind Informatics


Home  |  Top  |  Search  |  Gallery  | Glossary  | Sitemap  |  Making Of  |  Help