Concurrent and Real-Time Programming in Ada


Product Description
Ada is the only ISO-standard, object-oriented, concurrent, real-time programming language. It is intended for use in large, long-lived applications where reliability and efficiency are essential, particularly real-time and embedded systems. In this book, Alan Burns and Andy Wellings give a thorough, self-contained account of how the Ada tasking model can be used to construct a wide range of concurrent and real-time systems. This is the only book that focuses on an in-depth discussion of the Ada tasking model. Following on from the authors' earlier title Concurrency in Ada, this book brings the discussion up to date to include the new Ada 2005 language and the recent advances in real-time programming techniques. It will be of value to software professionals and advanced students of programming alike: indeed every Ada programmer will find it essential reading and a primary reference work that will sit alongside the language reference manual.Concurrent and Real-Time Programming in Ada Review
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.
Most of the consumer Reviews tell that the "Concurrent and Real-Time Programming in Ada" are high quality item. You can read each testimony from consumers to find out cons and pros from Concurrent and Real-Time Programming in Ada ...
