A “Bare-Machine” Implementation of Ada Multi-tasking Beneath the Linux Kernel
An Ada tasking kernel is implemented as a layer beneath the Linux operating system. This provides low overhead and precise control of execution timing for real-time Ada tasks, which execute within the Linux kernel address space, while allowing the Linux operating system to execute non-real-time tasks in the background. The Ada tasking kernel is derived from Yodaiken’s Real-Time Linux kernel, with new scheduling and synchronization primitives specifically to support the GNAT Ada runtime system. Implementing the Ada tasking primitives directly on the hardware does not just lower execution overhead and improve control over execution timing; it also opens the door for a simple restricted- tasking runtime system that could be certified for safety-critical applications.
KeywordsRuntime System Device Driver Task Scheduler Time Queue Interrupt Handler
Unable to display preview. Download preview PDF.
- 1.Ada 9X Mapping/Revision Team, Annex D of the Ada 95 Rationale, Intermetrics, Inc. (January 1995).Google Scholar
- 2.T.P. Baker, Stack-based scheduling of real-time processes, in Advances in Real-Time Systems, IEEE Computer Society Press (1993) 64–96.Google Scholar
- 3.A. Burns, T. Baker, T. Vardanega, Session Summary: Tasking Profiles, Proceedings for the 8th International Real-Time Ada Workshop, Ada Letters XVII, 5 (September/October 1997) 5–7.Google Scholar
- 4.ISO/IEC: ISO/IEC 8652: 1995 (E) Information Technology — Programming Languages — Ada. (1995)Google Scholar
- 5.V. Yodaiken, The RT-Linux approach to hard real-time, paper available at http://rtlinux.cs.nmt.edu/~rtlinuxwhitepaper/short.html.
- 6.Linux operating system web page, http://www.linux.org.
- 7.Real-Time Linux operating system web page, http://luz.cs.nmt.edu/~rtlinux/.
- 8.Ada Core Technologies, Inc., GNAT web page, http://www.gnat.com.