Concurrent and Real-Time Programming in Ada

Front Cover
Cambridge University Press, Jul 5, 2007 - Computers
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.

From inside the book

Contents

The nature and uses of concurrent programming
15
Interprocess communication
31
3
77
6
97
9
119
7
156
Avoidance synchronisation and the requeue facility
163
Exceptions abort and asynchronous transfer of control
195
Tasking and systems programming
293
Scheduling realtime systems fixed priority dispatching
317
129
325
Scheduling realtime systems other dispatching facilities
331
2
352
Timing events and executiontime control
361
Realtime utilities
391
Restrictions metrics and the Ravenscar profile
433

Objectoriented programming and tasking
223
Concurrency utilities
247
BURNS 2007427 2022 PAGE vii
277
Conclusion
451
Index
457
Copyright

Common terms and phrases

Popular passages

Page 7 - Duration range 0.0 .. 86_400.0; function Clock return Time; function Year (Date : Time) return Year_Number ; function Month (Date : Time) return Month_Number ; function Day (Date : Time) return Day_Number; function Seconds (Date : Time) return Day_Duration; procedure Split (Date : in Time; Year : out...
Page 65 - ... task type. The initial part of this execution is called the activation of the task object, and also that of the designated task; it consists of the elaboration of the declarative part, if any, of the task body. The execution of different tasks, in particular their activation, proceeds in parallel. If an object declaration that declares a task object occurs immediately within a declarative part...
Page 7 - ... CLOCK return TIME; function YEAR (DATE : TIME) return YEAR_NUMBER; function MONTH ( DATE : TIME) return MONTH_NUMBER; function DAY (DATE : TIME) return DAY_NUMBER; function SECONDS (DATE : TIME) return DAY_DURATION; procedure SPLIT ( DATE : in TIME; YEAR : out YEAR_NUMBER; MONTH : out...
Page 4 - Soft real-time systems are those where response times are important but the system will still function correctly if deadlines are occasionally missed.
Page 15 - This can be achieved by specifying a standard interface to a multiprocessing operating system:): or by allowing multiple process systems to be expressed in the language itself.
Page 118 - In addition a selective wait can contain either a terminate alternative (only one), or one or more delay alternatives, or an else part; these three possibilities are mutually exclusive. A select alternative is said to be open...
Page 4 - For this reason real-time systems are usually constructed using processors with considerable spare capacity, thereby ensuring that 'worst-case behaviour' does not produce any unwelcome delays during critical periods of the system's operation. Given adequate processing power, language and run-time support is required to enable the programmer to: • Specify times at which actions are to be performed. • Specify times at which actions are to be completed. • Respond to situations where all the timing...
Page 164 - Consider the problem of constructing a resource controller that allocates some resource to a group of client agents. There are a number of instances of the resource but the number is bounded; contention is possible and must be catered for in the design of the program. If the client tasks only require a single instance of the resource, then the problem is straightforward. For example, in the following, the resource (although not directly represented) can be encoded as a protected object: protected...
Page xiii - Real-time Systems Research at York Alan Burns and Andy Wellings are members of the Real-Time Systems Research Group in the Department of Computer Science at the University of York (UK). This group undertakes research into all aspects of the design, implementation and analysis of real-time systems. Specifically, the group is addressing: formal and structured methods for development, scheduling theories, reuse, language design, kernel design, communication protocols, distributed and...
Page 199 - This means that the execution of every construct in the task body is aborted, unless it is involved in the execution of an abort-deferred operation. The execution of an abort-deferred operation is allowed to complete before it is aborted.

About the author (2007)

Alan Burns is a Professor in Computer Science and the Head of the Computer Science Department at the University of York. His research activities have covered a number of aspects of real-time and safety critical systems including the assessment of languages for use in the real-time safety critical domain, distributed operating systems, the formal specification of scheduling algorithms and implementation strategies, and the design of dependable user interfaces to safety critical applications. His teaching activities include courses in Operating Systems, Scheduling and Real-time Systems. He has authored over 350 papers and reports and 8 books, including Real-time Systems and Programming Languages, 3rd edition and Concurrency in Ada, 2nd edition.

Andy Wellings is a Professor of Real-Time Systems in the Computer Science Department at University of York. He is interested in most aspects of the design and implementation of real-time dependable computer systems and, in particular, real-time programming languages and operating systems. He is European Editor-in-Chief for the Computer Science journal Software-Practice and Experience and a member of the International Expert Groups currently developing extensions to the Java platform for real-time, safety critical and distributed programming. He has authored over 200 papers and several books, including Real-time Systems and Programming Languages, 3rd edition and Concurrency in Ada, 2nd edition.

Bibliographic information