Rationale for Ada 2012

John Barnes
Contents   Index   References   Search   Previous   Next 

5.1 Overview of changes: Tasking and Real-Time

The WG9 guidance document [1] identifies real-time systems as an important application area for Ada. In particular it says that attention should be paid to
improving the capabilities of Ada on multicore and multiprocessor architectures. 
Ada 2012 does indeed address the issues of multiprocessors as well as other real-time improvements.
The following Ada Issues cover the relevant changes and are described in detail in this chapter:
30
Requeue on synchronized interfaces
117
Memory barriers and Volatile objects
166
Yield for non-preemptive dispatching
167
Affinities for programs on multiprocessor platforms
168
Extended suspension objects
169
Group budgets for multiprocessors
170
Monitoring time spent in interrupt handlers
171
Pragma CPU and Ravenscar profile
174
Implement task barriers in Ada
215
Pragma Implemented should be an aspect
278
 Set_CPU called during a protected action
These changes can be grouped as follows.
First there are a number of improvements and additions to the scheduling mechanisms (166, 168, 174). These are in the Real-Time Systems annex (D).
A number of additions recognise the importance of the widespread introduction of multiprocessors and provide mechanisms for associating tasks with particular CPUs or groups of CPUs known as dispatching domains (167, 171, 278). There is an associated change to group budgets which were introduced in Ada 2005 (169). These changes also concern Annex D.
Other changes concerning budgets relate to the time spent in interrupt handlers (170). In some systems it may be possible to account for time spent in individual interrupts whereas in others it might only be possible to account for time spent in interrupts as a whole. Again this concerns Annex D.
The definition of Volatile is updated to take account of multiprocessors (117).
Finally, there are changes to the core language regarding synchronized interfaces and requeue (30, 215).

Contents   Index   References   Search   Previous   Next 
© 2011, 2012, 2013 John Barnes Informatics.
Sponsored in part by:
The Ada Resource Association:

    ARA
  AdaCore:


    AdaCore
and   Ada-Europe:

Ada-Europe