# The Little Book of Semaphores

- By: Allen B. Downey
- Publisher: Green Tea Press
- Source: [Open Textbook Library](https://open.umn.edu/opentextbooks/textbooks/the-little-book-of-semaphores)
- Licence: Attribution-NonCommercial-ShareAlike
- PDF: https://greenteapress.com/wp/semaphores/
- LaTeX: https://github.com/AllenDowney/LittleBookOfSemaphores

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.

