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:
Requeue on synchronized interfaces
Memory barriers and Volatile objects
Yield for non-preemptive dispatching
Affinities for programs on multiprocessor platforms
Extended suspension objects
Group budgets for multiprocessors
Monitoring time spent in interrupt handlers
Pragma CPU and Ravenscar profile
Implement task barriers in Ada
Pragma Implemented should be an aspect
 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:


and   Ada-Europe: