This book provides an in-depth analysis of the requirements
for designing and implementing real-time embedded
systems,
and discusses how these requirements are met by current
languages and operating systems. The comparative advantages
of
Ada 95, Real-Time
Java, and Real-Time C/POSIX are
discussed in full. The emergence of Java as a real-time
language through the Real-Time Java extensions has resulted
in the treatment of Java as one of the core languages
covered in the book. The additional real-time facilities in
POSIX are also explored, as well as the proposed extensions
to CORBA to address real-time issues. More material on
schedulability analysis is also included. No other book on
real-time
programming languages (or concurrent programming
languages) covers this range of topics. This book is
designed for programmers and engineers looking for an
introduction and/or reference that discusses current
real-time programming languages and how they are suited to
designing and implementing real-time embedded systems.
Contents
Preface
1 Introduction to real-time systems 1
2 Designing real-time systems 15
3 Programming in the small 41
4 Programming in the large 73
5 Reliability and fault tolerance 101
6 Exceptions and exception handling 135
7 Concurrent programming 179
8 Shared variable-based synchronization and communication
223
9 Message-based synchronization and communication 283
10 Atomic actions, concurrent processes and reliability
317
11 Resource control 379
12 Real-time facilities 409
13 Scheduling 465
14 Distributed systems 523
15 Low-level programming 577
16 The execution environment 635
17 A case study in Ada 653
18 Conclusions 685
A Real-Time Java specification 691
References 713
Index 725