Skip to content

    The Little Book of Semaphores

    whole starwhole starwhole starwhole starhalf star

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

    Comprehensiveness rating: 5

    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 problems that can perk up students’/instructor’s curiosity. Nicely rounds up the discussion with coding techniques for popular languages such as Python and C.

    Additionally the book is comprehensive because the author is on the money in not only noting that synchronization takes lots of practice to get it right, but in providing a variety of motivational examples and puzzles (for students to solve) to help reinforce students’ comprehension of this rather difficult topic!

    Content Accuracy rating: 4

    Both synchronization primitives and solution strategies are accurately described.

    Relevance/Longevity rating: 4

    Semaphores have been a major part of Operating Systems literature for over 5 decades; while I don’t have a crystal ball, since the book addresses this issue in an extensive manner, it (the book) is likely to remain relevant for the foreseeable feature.

    I also feel that the code snippets in the book can be easily tried out in class or lab with no to minimal modification. The book's organization also permits incremental addition of (future) content.

    Clarity rating: 5

    The writing style is certainly engaging and is likely to be a draw for the student! Problems and solution strategies are introduced in a progressive manner so the reader can easily and clearly follow the information being conveyed.

    Consistency rating: 5

    The book adopts simple-to-follow notation and is consistent in its use throughout the text. The notation/pseudo-code has a more natural-language feel that is likely to appeal to the reader.

    Modularity rating: 4

    Information is compartmentalized into modules that are small and manageable. And, there is a nice cohesion b/w adjacent modules (chapters). The chapters are also fairly self-contained, and permits one with a bit of familiarity, to jump to specific chapters.

    Organization/Structure/Flow rating: 4

    Organization is just fine and the book reads well as information is supplied on an as-needed basis.

    Interface rating: 5

    The book has minimal to no interface issues. In fact, the layout of the material is pretty clever and handles pagination issues rather nicely; puzzles are presented throughout the text, and information for each puzzle is contained in one page with (blank) space on that page for the reader to solve the puzzle – should one be stumped, (more) hints are found on a subsequent page, with space for another crack at solving the problem.

    Grammatical Errors rating: 4

    The book is well-written with no apparent grammatical issues.

    Cultural Relevance rating: 4

    The content and language is culture-neutral and should appeal to folks from any culture.

    Comments

    Couple of observations: while the title is fine, one wonders if synchronization could have been part of the title – the word, ‘synchronization,’ has wider appeal, and the book is pretty much focused on synchronization; an appendix on pthread availability for Visual C++ would be a nice addition – just indicate that pthread is available for Visual C++, and perhaps provide an example of its application (in Visual C++); the amount of class time one can spend on semaphores is no more than a couple of weeks, and I concur with the author that (while semaphores is an important topic) many topics compete for attention in an Operating Systems class – in other words, it may not be possible to cover some of the chapters in the text

    Back