16 of 16 people found the following review helpful
on January 28, 2008
Fully harnessing multi-core processors requires concurrent programming, yet most mainstream languages have little support or do so with poor portability. Well-written concurrent Ada programs can be extremely portable and support multi-core and multiple processors automatically. This book explores, in-depth, the concurrent programming ("tasking") part of the Ada language. The authors then show how the concurrent programming facilities of Ada are augmented by the language to support real-time programming. These standard real-time facilities are state-of-the-art, extending, for example, beyond the POSIX real-time facilities in their expressive power.
The book first establishes the necessary foundation for understanding concurrent programming by explaining the possible problems (e.g., deadlocks and race conditions) and highlighting some of the mechanisms traditionally used in concurrent programming, such as semaphores and message-passing.
The tasking part of Ada is then covered in full detail, necessarily including interactions with some other parts of the language, such as exceptions, but also including interactions with the Ada object-oriented language facilities. The implementations of a number of reusable concurrency abstractions serve to illustrate the use of the tasking features.
The authors next lay another foundation, this time for scheduling in real-time systems, and show how Ada directly supports the common approaches. Both fixed-priority and dynamic-priority dispatching are supported by Ada and these are covered in detail. Ada 2005 also defines a number of time-related abstractions, such as a monotonic clock and timing events, and these are also covered completely. As in the concurrent programming part of the book, a number of reusable abstractions are implemented; in this section they illustrate the real-time language facilities. A discussion of the popular Ravenscar Profile, adopted by some other languages, is included.
No language is perfect and Ada is no exception. The tasking part of Ada 83 was particularly controversial in the domain of real-time systems. Ada 95 addressed many of these issues and added some new ones. Ada 2005 does the same. These issues are not ignored in the book.
I own 46 books on Ada (not counting older editions of some of them), gathered over 27 years of applying the language. Some are excellent and some not, but this one is highly prized. I highly recommend it to professionals and students alike.
14 of 15 people found the following review helpful
on July 12, 1998
Ada has been one of few languages which provides facilities for concurrent programming, but readings for the feature had been limited. This book is not only the first but also an excellent guide to the capability of the new Ada standard.
1.@The Ada Language
2. The Nature and Uses of Concurrent Programming
3. Inter-Process Communication
4. Ada Task Types and Objects
5. The Rendezvous
6. The Select Statement and the Rendezvous
7. Protected Objects and Data-Oriented Communication
8. Avoidance Synchronisation and the Requeue Facility
9. Using Protected Objects as Building Blocks
10. Exceptions, Abort and Asyncronous Transfer of Control
11. Tasking and System Programming
12. Real-Time Programming
13. Object-Oriented Programming and Tasking
14. Distributed Systems
Not only Ada programmers, but also all professonal software engineers who design real-time, embedded systems, advanced students of computer science, and even beginners should find it quite useful.
I've read the original print published in 1995, which has been out-of-print.
I am so happy to know it is now to be RE-PRINTed, and every programmers would be.
10 of 10 people found the following review helpful
on February 8, 1999
By far the best on the subject. Offers complete coverage of any aspect of concurrency with Ada, including real-time and distributed programming issues. Burns and Wellings are the acknowledged experts on this topic.
The best aspect of the book is the analysis of features and their interactions, providing a depth not available in other texts covering the entire language.
Assumes you know some Ada, but includes an introduction to the sequential part of the language.
I own quite a few books on Ada; this is the one to get if you want the details of Ada concurrency.
4 of 5 people found the following review helpful
on June 7, 2005
the authors of this book is famous. and the contents of the book do not disappoint me.
i have several references about ada. of course, some of the references are written by the author of this book. But, regard to the acting mechanism of ada task, this book is awesome.
but, if you are the beginner of real-time & embedded system, you should have another reference(s) to fully understand the meaning of the every article of this book.
2 of 2 people found the following review helpful
Obviously specifically for Ada but a good resource for any programmer interested in the general concept of concurrent programming. The organization of the chapters and the introduction to concurrency are alone worth the price.
1 of 1 people found the following review helpful
on November 18, 2012
For a newcomer to ADA like myself this is really a very valuable book. It explains the background behind concurrent programming in Ada very well and the principles are also applicable to other programming languages. Unfortunately I won't be able to use ADA in practice anytime soon, but the basics I took from this book and "Programming in ADA 2005" by Barnes are useful in general even for C++ which I am forced to work with.