International audienceThe traditional approach to multitasking synchronization has been to use Mutexes, Semaphores, and Critical sections. However, those primitives can lead to inefficiency or, even worse, to error conditions such as, for example, dead or live locks or priority inversion. The problems with those primitive are particularly vivid with real-time systems. Also, with the rapid deployment of multi-core systems, those traditional mechanisms are showing new classes of issues. This talk will discuss how the use of non-blocking algorithms through atomic and barrier operations can lead to more robust, deterministic and higher performance systems