The Little Book of Semaphores
Allen B. Downey, Franklin W. Olin College of Engineering
Publisher: Green Tea Press
Read this book
Conditions of Use
The book discusses the concept of semaphores comprehensively. It covers many interesting classical problems and their variants. Avid readers will surely enjoy reading and thinking about those problems. The book also discusses how to implement... read more
The book certainly stays true to its title. Scope of semaphores is discussed in a comprehensive manner; begins with a gentle, but motivational introduction, and covers known and less well-known synchronization problems, and also introduces new... read more
This little gem of a book is an excellent introduction to semaphores and their use in synchronization/concurrency control. The book discusses a large number of concurrency control problems both simple and hard. The book is quite comprehensive in... read more
Table of Contents
- 1 Introduction
- 2 Semaphores
- 3 Basic synchronization patterns
- 4 Classical synchronization problems
- 5 Less classical synchronization problems
- 6 Not-so-classical problems
- 7 Not remotely classical problems
- 8 Synchronization in Python
- 9 Synchronization in C
- A Cleaning up Python threads
- B Cleaning up POSIX threads
About the Book
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.
About the Contributors
Allen B. Downey is an American computer scientist, Professor of Computer Science at the Franklin W. Olin College of Engineering and writer of free textbooks. Downey received in 1989 his BS and in 1990 his MA, both in Civil Engineering from the Massachusetts Institute of Technology, and his PhD in Computer Science from the University of California at Berkeley in 1997. He started his career as Research Fellow in the San Diego Supercomputer Center in 1995. In 1997 he became Assistant Professor of Computer Science at Colby College, and in 2000 at Wellesley College. He was Research Fellow at Boston University in 2002 and Professor of Computer Science at the Franklin W. Olin College of Engineering since 2003. In 2009-2010 he was also Visiting Scientist at Google Inc.