The Little Book of Semaphores, Second Edition

Introduces the principles of synchronization for concurrent programming. Covers the classical problems, including Readers-writers, Producer-consumer, and Dining Philosophers, plus a number of not-so-classical problems.

**Tag(s):**
Concurrent Programming

**Publication date**: 20 Mar 2009

**ISBN-10**:
1441418687

**ISBN-13**:
9781441418685

**Paperback**:
294 pages

**Views**: 17,342

**Publisher**:
CreateSpace Independent Publishing Platform

**License**:
GNU Free Documentation License

**Post time**: 20 Feb 2007 12:03:45

The Little Book of Semaphores, Second Edition

Introduces the principles of synchronization for concurrent programming. Covers the classical problems, including Readers-writers, Producer-consumer, and Dining Philosophers, plus a number of not-so-classical problems.

Terms and Conditions:

Book Summary:

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.

Allen B. Downey wrote:This is a Free Book, which means that anyone is welcome to read, copy, modify and redistribute it, subject to the restrictions of the license, which is the GNU Free Documentation License. I hope that people will find this book useful, but I also hope they will help continue to develop it by sending in corrections, suggestions, and additional material. Thanks!

Book Summary:

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.

Tweet

About The Author(s)

Allen B. Downey (born May 11, 1967) 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.

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.

Book Categories

Computer Science
37
Introduction to Computer Science
36
Algorithms and Data Structures
18
Object Oriented Programming
21
Theory of Computation
18
Formal Methods
17
Functional Programming
10
Logic Programming
21
Artificial Intelligence
21
Computer Vision
6
Big Data
3
Neural Networks
18
Compiler Design and Construction
15
Computer Organization and Architecture
8
Parallel Computing
3
Concurrent Programming
20
Operating Systems
19
Data Communication and Networks
24
Information Security
6
Information Theory
23
Digital Libraries
14
Information Systems
60
Software Engineering
17
Game Development and Multimedia
7
Data Mining
18
Machine Learning

Mathematics
61
Mathematics
8
Algebra
5
Calculus
5
Category Theory
23
Linear Algebra
14
Computer Aided Mathematics
1
Proofs
8
Discrete Mathematics
6
Numerical Methods
2
Number Theory
7
Graph Theory
13
Operations Research
18
Statistics
1
Probability

Supporting Fields
Operating System
Programming/Scripting
6
Ada
12
Assembly
31
C / C++
8
Common Lisp
2
Forth
33
Java
8
JavaScript
1
Lua
13
Microsoft .NET
11
Perl
5
PHP
52
Python
1
Rebol
9
Ruby
1
Scheme
3
Tcl/Tk

Miscellaneous