Design of Multithreaded Software
This book assumes familiarity with threads (in a language such as Ada, C#, or Java) and introduces the entity-life modeling (ELM) design approach for certain kinds of multithreaded software. ELM focuses on “reactive systems,” which continuously interact with the problem environment. These “reactive systems” include embedded systems, as well as such interactive systems as cruise controllers and automated teller machines.
Part I covers two fundamentals: program-language thread support and state diagramming. These are necessary for understanding ELM and are provided primarily for reference. Part II covers ELM from different angles. Part III positions ELM relative to other design approaches.
From the Back Cover
“Bo Sandén has written a splendid book that should be read by every developer of systems that interact with the real world. The multi-threading theme that gives the book its title treats the identification and design of individual threads—that is, of concurrent processes—and the synchronisation and control of their interactions at common entities. The book succeeds excellently in this difficult area, expounding patterns of thread interaction that clarify both the problems they address and the solutions they offer.”
—Michael A. Jackson, from the Foreword
A novel approach to designing software for reactive systems
This book is the first available in-depth introduction to the cutting-edge entity-life modeling (ELM) approach for the design of multithreaded, reactive software, making it an instant authoritative reference. The text is divided into three parts:
- Part I covers two fundamentals necessary for understanding ELM—program-language thread support in Ada and Java, and state modeling
- Part II describes ELM’s unique approach
- Part III positions ELM relative to other design approaches
Reactive software must respond to events in the world as they occur. To deal with this, ELM defines an event thread as a series of event occurrences that are separated in time. As the book reveals, event threads become the basis for software threads, leading to thread architectures that can be understood intuitively in problem-domain terms. Readers will discover how ELM captures the logic of event threads in terms of states, providing two patterns for designing software threads based on state diagrams and their activities.
Event threads in the domain can also form patterns. The text explains how ELM identifies the resource-user-thread pattern and the resource-guard-thread pattern, both addressing resource sharing by multiple domain entities. It also covers the case where entities need simultaneous exclusive access to more than one resource, and shows how ELM deals with deadlock prevention.
Design of Multithreaded Software is intended for software designers, architects, and researchers as well as systems designers, programmers, and engineers interested in a practical account of this novel approach.
- Hardcover: 320 pages
- Publisher: Wiley-IEEE Computer Society Press (March 2011)
- Language: English
- ISBN-10: 047087659X
- ISBN-13: 978-0470876596