|
|
viii | |
|
|
x | |
Foreword |
|
xi | |
Preface |
|
xiii | |
|
1 Introduction and overview |
|
|
1 | (22) |
|
|
2 | (9) |
|
1.2 Distributed programming |
|
|
11 | (1) |
|
|
12 | (11) |
|
|
19 | (1) |
|
|
20 | (3) |
|
2 Sequential programming with Ada |
|
|
23 | (84) |
|
|
26 | (4) |
|
|
30 | (5) |
|
|
35 | (27) |
|
2.4 Blocks and exceptions |
|
|
62 | (3) |
|
2.5 Programming in the large |
|
|
65 | (11) |
|
2.6 Object-oriented programming |
|
|
76 | (6) |
|
2.7 Low-level programming |
|
|
82 | (25) |
|
|
102 | (1) |
|
|
103 | (4) |
|
|
107 | (19) |
|
|
107 | (2) |
|
|
109 | (4) |
|
|
113 | (4) |
|
|
117 | (2) |
|
3.5 The implementation of Ada tasking |
|
|
119 | (1) |
|
|
119 | (7) |
|
|
121 | (1) |
|
|
122 | (4) |
|
4 Communication and synchronization based on shared objects |
|
|
126 | (40) |
|
|
126 | (4) |
|
|
130 | (4) |
|
|
134 | (1) |
|
|
135 | (5) |
|
|
140 | (1) |
|
|
141 | (2) |
|
4.7 Some useful concurrent patterns |
|
|
143 | (6) |
|
4.8 Requeue and private operations |
|
|
149 | (4) |
|
4.9 Pragmas Atomic and Volatile |
|
|
153 | (2) |
|
|
155 | (11) |
|
|
161 | (1) |
|
|
162 | (4) |
|
5 Communication and synchronization based on direct interaction |
|
|
166 | (29) |
|
|
166 | (5) |
|
5.2 The selective accept statement |
|
|
171 | (9) |
|
|
180 | (1) |
|
|
181 | (14) |
|
|
191 | (1) |
|
|
192 | (3) |
|
6 Distributed systems with Ada |
|
|
195 | (56) |
|
6.1 What are distributed systems? |
|
|
195 | (5) |
|
6.2 Middleware, architectures, and concepts |
|
|
200 | (2) |
|
6.3 DSA, the Distributed Systems Annex |
|
|
202 | (10) |
|
6.4 PolyORB: compilation chain and run-time for the DSA |
|
|
212 | (3) |
|
6.5 Advanced DSA concepts |
|
|
215 | (6) |
|
6.6 CORBA, the Common Object Request Broker Architecture |
|
|
221 | (15) |
|
6.7 Advanced CORBA concepts |
|
|
236 | (11) |
|
|
247 | (4) |
|
|
248 | (2) |
|
|
250 | (1) |
|
7 Real-time systems and scheduling concepts |
|
|
251 | (43) |
|
|
253 | (4) |
|
|
257 | (21) |
|
|
278 | (16) |
|
|
285 | (1) |
|
|
286 | (8) |
|
8 Real-time programming with Ada |
|
|
294 | (39) |
|
|
295 | (3) |
|
8.2 Implementing periodic tasks |
|
|
298 | (5) |
|
8.3 Ada implementation of the car application |
|
|
303 | (2) |
|
8.4 Handling shared resources |
|
|
305 | (3) |
|
8.5 The Ada scheduling model |
|
|
308 | (4) |
|
|
312 | (2) |
|
8.7 POSIX 1003.1b and its Ada binding |
|
|
314 | (10) |
|
8.8 POSIX implementation of the car application |
|
|
324 | (4) |
|
8.9 Ada tasks versus POSIX processes |
|
|
328 | (5) |
|
|
329 | (1) |
|
|
330 | (3) |
|
9 Tools for building and verifying real-time applications |
|
|
333 | (26) |
|
9.1 Ada run-times to implement real-time applications |
|
|
334 | (5) |
|
9.2 Some variants of the GNAT run-time |
|
|
339 | (8) |
|
9.3 Validating scheduling of a system |
|
|
347 | (12) |
|
|
355 | (1) |
|
|
356 | (3) |
References |
|
359 | (6) |
Index |
|
365 | |