The Little Book of Semaphores

(3 reviews)


Allen Downey, Franklin W. Olin College of Engineering

Pub Date:

ISBN 13:

Publisher: Green Tea Press

Read This Book

Conditions of Use



  All reviews are licensed under a CC BY-ND license.

Learn more about reviews.


Reviewed by Shaikh Arifuzzaman, Assistant Professor, University of New Orleans, on 5/22/2018.

The book discusses the concept of semaphores comprehensively. It covers many interesting classical problems and their variants. Avid readers will … read more



Reviewed by Ray Kresman, Professor, Bowling Green State University, on 2/2/2018.

The book certainly stays true to its title. Scope of semaphores is discussed in a comprehensive manner; begins with a gentle, but motivational … read more



Reviewed by Mukul Goyal, Associate Professor, University of Wisconsin Milwaukee, on 1/8/2016.

This little gem of a book is an excellent introduction to semaphores and their use in synchronization/concurrency control. The book discusses a large … read more


Table of Contents

  • Chapter 1 Introduction 
  • Chapter 2 Semaphores 
  • Chapter 3 Basic synchronization patterns 
  • Chapter 4 Classical synchronization problems 
  • Chapter 5 Less classical synchronization problems 
  • Chapter 6 Not-so-classical problems 
  • Chapter 7 Not remotely classical problems 
  • Chapter 8 Synchronization in Python 
  • Chapter 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.