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,664

**Type**: N/A

**Publisher**:
CreateSpace Independent Publishing Platform

**License**:
GNU Free Documentation License

**Post time**: 20 Feb 2007 11: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.

Book Categories

Computer Science
44
Introduction to Computer Science
41
Algorithms and Data Structures
23
Object Oriented Programming
21
Theory of Computation
19
Formal Methods
19
Functional Programming
10
Logic Programming
22
Artificial Intelligence
22
Computer Vision
10
Big Data
3
Neural Networks
19
Compiler Design and Construction
15
Computer Organization and Architecture
9
Parallel Computing
3
Concurrent Programming
22
Operating Systems
22
Data Communication and Networks
30
Information Security
6
Information Theory
23
Digital Libraries
13
Information Systems
61
Software Engineering
17
Game Development and Multimedia
10
Data Mining
21
Machine Learning

Mathematics
66
Mathematics
2
Precalculus
9
Algebra
6
Calculus
5
Category Theory
25
Linear Algebra
16
Computer Aided Mathematics
6
Proofs
16
Discrete Mathematics
6
Numerical Methods
3
Number Theory
10
Graph Theory
12
Operations Research
1
Complex Analysis
5
Queueing Theory
32
Statistics
10
Probability

Supporting Fields
9
Electric Circuits
22
Signal Processing
13
Web Design and Development
2
Document-oriented Database
9
Relational Database
1
Cloud Computing
1
Network Science

Operating System
Programming/Scripting
6
Ada
12
Assembly
35
C / C++
8
Common Lisp
2
Forth
34
Java
11
JavaScript
1
Lua
15
Microsoft .NET
1
Rexx
12
Perl
5
PHP
58
Python
1
Rebol
13
Ruby
2
Scheme
3
Tcl/Tk

Miscellaneous