Bernardi, Patrick
Description
Ada is unique as a software engineering language, facilitating
the development of reliable and maintainable software through
clear, unambiguous, modular code enforced to a specification.
However, despite comprehensive real-time systems support, Ada
lacks the abstraction at the heart of these systems: cyclic
tasks. Without it, users resort to solutions decomposing their
designs: introducing unnecessary complexity to a real-time
systems primitive. Furthermore,...[Show more] the only Ada executive for
microcontrollers, GNAT for Bare Boards, impedes the timing
analysis of tasks and schedulability analysis of systems.
Consequently, Ada and its environments do not reach their
potential of producing low-cost, reliable and maintainable
real-time systems.
This thesis unlocks this latent potential through the development
of the Cyclic Task Specification and Acton. The Specification
extends Ada to incorporate cyclic tasks within Ada’s existing
task abstraction using a simple but powerful model. Acton, on the
other hand, is a new Ada executive built from the ground up to
support real-time systems, forgoing an existing Ada tasking
run-time in favour of building the tasking semantics natively
within its kernel. The result is a flexible and portable Ada
executive which correctly apportions execution time and enforces
cyclic task attributes. Furthermore, tasks only perform user
assigned activities and lower priority tasks cannot interrupt a
running task.
Their contributions come at the cost of a more complex language
and larger execution time overheads for kernel operations. For
Acton, the up to order of magnitude larger overheads is the cost
of simplifying task timing and system schedulability analysis.
For the Cyclic Task Specification, the added complexity
simplifies the expression of cyclic task patterns for a wide
range of systems. Its simple model centred on task attributes
permits model expansion outside the formal language, addressing
aversions to incorporating high-level abstractions.
Together, the Cyclic Task Specification and Acton advance
real-time systems by providing the clarity, structure and
simplicity needed to express cyclic tasks and have their
real-time constraints enforced at run-time. Furthermore,
real-time analysis tools can now use the same cyclic task
semantic information as the compiler to provide automatic timing
verification and run-time enforceable cyclic constraints.
Consequently, the contributions of this thesis allow real-time
systems to use less code and have less scope for faults: reducing
the life-cycle cost of real-time systems through quicker
development and maintenance.
Items in Open Research are protected by copyright, with all rights reserved, unless otherwise indicated.