Using POSIX threads to implement Ada tasking: description of work in progress

The draft standard Threads Extension to the POSIX Portable Operating System Interface provides an application program interface to services supporting the creation and execution of multiple threads of control sharing the address space and file descriptors of a single POSIX process, This paper reports on the progress of an effort to test the compatibility of POSIX threads and Ada by implementing Ada tasking using the proposed standard PO SIX threads operations. 1 Introduction The POSIX/Ada Real-Time (PART)l project haa two main objectives: to accelerate " development of standard Ada language bindings for the POSIX Realtime Extension [3] and Threads Extension [7]; to determine whether these interfaces are a suitable basis for the implementation of Ada tasking, by building a prototype Ada runtime system (RTS) using them. The second of these goals is intended to provide feedback to the IEEE Pthreads working group. Rationale contained in Draft 5 of Pthreads makes it clear that it is intended to allow the eflicient implementation of Ada tasking. However, it is difficult to account for all possible interactions with the Pthreads interface in the absence of an actual implementation. This paper reports 1 PART k funded by the Ada Joint Program Office under the Ada Technology Insertion Program, through the U.S. Army CECOM. Percussion to copy wthout fee all or part of this material is granted provided that the copies m not made or d~tributed for dir-d conmxmial advantage, the ACM comrkht notice and the title of the publication and its date ap~ear, and noti= i; gwen that copying is by permission of the Assomtion for Computing Machineqf. To copy otherwise or republish, requires a fee and/or specific penniswn. on the progress toward such an implementation. In Section 2 we provide some details about POSIX threads and some rationale for using them to implement Ada tasking. Section 3 outlines the scope of the problems addressed, and Section 4 outlines our approach to implementing an Ada RTS based on POSIX threads. Section 5 contains a discussion of the design of the RTS. Section 6 reports on the current status of the project, and presents some performance results. Finally, in Section 7 we outline future research and draw some conclusions from the work so far. 2 Background PO SIX is a family of standards for an application program interface to an operating system, The POSIX standards are being developed by the IEEE Technical Committee on Operating …