Description
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming. In most computer science curricula/ synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions/ but most students don't get a good understanding of the material or the ability to solve similar problems. The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem/ the book offers a hint before showing a solution/ giving students a better chance of discovering solutions on their own. The book covers the classical problems/ including "Readers-writers/" "Producer-consumer"/ and "Dining Philosophers." In addition/ it collects a number of not-so-classical problems/ some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.