Implementing a New Low-Level Tasking Support for the GNAT Runtime System?
This paper describes the main design goals and implementation choices of JTK, a library which provides simple tasking support, loosely based on POSIX threads. It has been designed to provide the lowlevel tasking support for GNAT, it is completely written in Ada, and it is usable on top of a traditional operating system (providing user-level threads) as well as layered over a bare machine. Its main design motivation is the desire to experiment with a low-level tasking implementation that fits well with GNAT tasking requirements.
Currently, JTK provides a priority driven threading model, with preemptive scheduling, facilities for signal handling, and primitives to provide mutual exclusion and synchronized waiting. The long-term target of JTK is to provide all the facilities that GNAT needs to satisfy full Annex D semantics.
Unable to display preview. Download preview PDF.
- 1.T.P. Baker and E.W. Giering, GNU Low-Level Interface Definition, Technical Report, Florida State University, June 1993. Available by anonymous ftp from ftp.cs.fsu.edu.Google Scholar
- 2.T.P. Baker, Frank Mueller and E.W. Giering, Implementing Ada9X features using POSIX threads: design issues, Conference Proceedings, TriAda’93, Seattle, Washington, September 1993.Google Scholar
- 3.T.P. Baker, Frank Mueller and E.W. Giering, Ada9X Asynchronous Transfer Of Control: Applications And Implementation, Conference Proceedings, TriAda’93, Seattle, Washington, September 1993.Google Scholar
- 4.T.P. Baker and G.A. Riccardi, Ada Tasking: from Semantics to Efficient Implementation. Available by anonymous ftp from ftp.cs.fsu.edu.Google Scholar
- 5.T.P. Baker, Frank Mueller and Viresh Rustagi, Experience with a Prototype of the POSIX Minimal Realtime System Profile, Proceedings of the 11th IEEE Workshop on Real-Time Operating Systems and Software, May 1994.Google Scholar
- 6.T.P. Baker, Dong-Ik Oh, Seung-Jin Moon, Low-Level Ada Tasking Support for GNAT-Performance and Portability Improvements, Wadas’96 Proceedings, 1996.Google Scholar
- 7.A. Burns, T. Baker, T. Vardanega, Session Summary: Tasking Profiles, In Proceedings for the 8th International Real-Time AdaWorkshop, Ada Letters XVII, 1997.Google Scholar
- 8.Alan Burns and Andy Wellings, Real-Time Systems and their Programming Languages (2nd Edn), Addison-Wesley, 1996.Google Scholar
- 9.E.W. Giering and T.P. Baker, Using POSIX Threads to Implement Ada tasking: Description of work in Progress, TRI-Ada’ 92 Proceedings (Nov 1992) pages 518–529.Google Scholar
- 10.E.W. Giering and T.P. Baker, POSIX/Ada Realtime Bindings: Description of Work in Progress, In Proceedings of the Ninth Annual Washington Ada Symposium,ACM, July 1992.Google Scholar
- 11.Frank Mueller, A Library Implementation of POSIX Threads under UNIX, 1993 Winter USENIX.Google Scholar
- 12.Dong-Ik Oh and T.P. Baker, Gnu Ada’95 Tasking Implementation: Real-Time Features and Optimization, In Proceedings of the 1997 Workshop of Languages, Compilers and Tools for Real-Time Systems (LCT-RTS), Las Vegas, Nevada, 1997.Google Scholar
- 13.Dong-Ik Oh and T.P. Baker, Optimization of Ada’95 Tasking Constructs, TriAda’97, St. Louis, Missouri, 1997.Google Scholar
- 14.Dong-Ik Oh, T.P. Baker and Seung-Jin Moon, The GNARL Implementation of POSIX/Ada Signal Services, In Ada-Europe’ 96 Proceedings, pages 2Google Scholar