Skip to content

Read more about The Little Book of Semaphores

The Little Book of Semaphores

(3 reviews)

Allen B. Downey, Franklin W. Olin College of Engineering

Copyright Year: 2016

Publisher: Green Tea Press

Language: English

Formats Available

Conditions of Use

Attribution-NonCommercial-ShareAlike Attribution-NonCommercial-ShareAlike


Learn more about reviews.

Reviewed by Shaikh Arifuzzaman, Assistant Professor, University of New Orleans on 5/21/18

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

Reviewed by Ray Kresman, Professor, Bowling Green State University on 2/1/18

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

Reviewed by Mukul Goyal, Associate Professor, University of Wisconsin Milwaukee on 1/7/16

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

Ancillary Material

  • Green Tea Press
  • 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.

    Contribute to this Page

    Suggest an edit to this book record