Version 1.1 of ais/ai-00352.txt

Unformatted version of ais/ai-00352.txt version 1.1
Other versions for file ais/ai-00352.txt

!standard D.13 (01)          03-09-24 AI95-00352/01
!class amendment 02-09-24
!status work item 02-09-24
!status received 02-09-24
!priority High
!difficulty Medium
!subject ARINC_653_Processes Profile
!summary
A new profile definition consisting of set of restrictions are proposed to directly support an execution time profile suitable for use with the ARINC 653 Application Executive processes and scheduler.
!problem
There is a growing interest in the use of COTS Operating Systems that implement the ARINC 653 Application Executive (APEX) for the development of software systems that satify both space and time partitioning requirements. Within the APEX environment, applications are encapsulated in partitions that are managed by the APEX operating system. Each application is comprised of one or more APEX processes. The ARINC 653 specifies an application interface to provide access to the facilities within the APEX environment. ARINC 653 is defined to be language independent.
In the development of a system of applications that are operating on top of the APEX interface, it is possible to define applications in a variety of languages each of which represents threads of execution within the application as APEX processes. In this environment, one mode of operation for Ada applications is to replace Ada tasks and scheduler with the ARINC 653 threads and scheduling. In using the ARINC 653 processes and scheduler for Ada applications, the application cooperates with other applications in the ARINC 653 system through a common ARINC 653 interface and environment.
!proposal
This AI proposes a definition of a new profile_identifier called ARINC_653_Processes to be used as an argument in the pragma Profile. This profile specifies the restrictions on an Ada application that will generate a runtime system that does not interfer with the ARINC 653 scheduler.
This proposal assumes that pragma Profile (see AI-249) has been defined. This proposal uses one new Restriction identifier, No_Synchronous_Control. This new Restriction is defined in AI-00353.
A runtime profile is an alternative mode of operation that is defined by the standard. It is selected by inclusion of the configuration pragma Profile that applies to an active partition. The profile identifier "ARINC_653_Processes" selects the mode of operation to be the ARINC 653 Processes and scheduling Profile.
!wording
Revise the second sentence of section D.13 (see AI-249) as follows:
It also defines two such profiles, Ravenscar and ARINC_653_Processes.
Revise the first & second sentences in the Legality Rules of section D.13 as follows:
The profile_identifier shall be Ravenscar, ARINC_653_Processes, or an implementation-defined identifier. For profile_identifier Ravenscar or profile_identifier ARINC_653_Processes, there shall be no profile_argument_associations.
Add to the end of the Static Semantics section of D.13:
The profile_identifier ARINC_653_Processes is equivalent to the following set of Restrictions
pragma Restrictions (
Max_Tasks => 0, No_Asynchronous_Control, No_Protected_Types, No_Synchronous_Control);
!discussion
!example
To use the ARINC_653_Processes profile for a partition, we need to compile a pragme Profile before compiling any units:
pragma Profile( ARINC_653_Processes );
--!corrigendum D.13(01)
!ACATS test
An ACATS test should be created for this pragma.
!appendix

From: Joyce Tokar
Sent: Wednesday, September 24, 2003  12:11 PM

Attached please find two candidate AIs that are a result of last week's IRTAW
meeting.  I am submitting these for consideration of the ARG at the next
meeting.

****************************************************************

Questions? Ask the ACAA Technical Agent