Chapter 10 extends the earlier discussions on fault tolerance by describing how reliable process cooperation can be programmed. Central to this discussion is the notion of an atomic action and asynchronous event-handling techniques. Competing processes are considered in the following chapter. An assessment is given of different language features. One important topic here is the distinction between conditional and avoidance synchronization within the concurrency model.
Temporal requirements constitute the distinguishing characteristic of real-time systems.
Chapters 12 and 13 present a detailed discussion of these requirements, and the language facilities and implementation strategies that are used to satisfy them. Both are considered within the context of deadline scheduling. The remaining chapters are, essentially, self-contained. Recent advances in hardware and communications technology have made distributed computer systems a viable alternative to uni-processor and centralized systems in many embedded application areas. Although, in some respects, distribution can be thought of as an implementation consideration, issues which arise when applications are distributed raise fundamental questions that go beyond mere implementation details.