Mutexes vs. Semaphores: How to Use Each Properly
Cost: $39 USD
What’s the difference between a mutex, a binary semaphore, and a counting semaphore? Even very experienced embedded programmers fail to fully appreciate the importance of using the correct semaphore for the job at hand. And, unfortunately, misuse of any type of semaphore may lead to unintended failures in embedded systems, with severe consequences in safety-critical medical devices, avionics and transportation equipment. It’s true that all semaphores have similarities in their implementation. However, each type should be used differently. This webinar will teach you how to use mutexes and semaphores most safely and most effectively and why it is important to do so. The course will include a comparison of the actual APIs of the most popular real-time operating systems (RTOSes).
Attend this webinar to learn:
- When and how to use binary vs. counting semaphores
- Why priority inversions are dangerous and how to prevent them
- When and how to use a mutex
- How to write reentrant functions, which can be safely called from two or more tasks
- The most popular RTOS APIs for mutexes and semaphores
Michael Barr, Netrino
Michael Barr is an internationally recognized expert on the design of embedded computer systems. In that role, he has provided expert witness testimony in federal court, appeared on PBS’ American Business Review, and been quoted in various newspapers. He is also the author of three books and more than fifty articles on related subjects. For three and a half years Michael served as editor-in-chief of Embedded Systems Programming magazine. In addition, Michael has been a member of the advisory board of the Embedded Systems Conference. Embedded software he wrote or architected powers millions of products. Michael holds B.S. and M.S. degrees in electrical engineering and has lectured in the Department of Electrical and Computer Engineering at the University of Maryland, from which he also earned an MBA.
Please disable any pop-up blockers for proper viewing of this webinar.