(1) A system instance represents the runtime architecture of a actual system that consists of application software components and execution platform components.
(2) A system instance is completely instantiable if the system implementation being instantiated is completely specified and completely resolved.
(3) A system instance is completely instantiated and bound if all threads are ultimately bound to a processor, all source text making up process address spaces are bound to memory, connections are bound to buses if their ultimate source and destinations are bound to different processors, and subprogram calls are bound to remote subprograms as necessary.
(4) A set of contained property associations can reflect property values that are specific to individual instances of components, ports, connections, provided and required access. These properties may represent the actual binding of components, as well as results of analysis, simulation, or actual execution of the completely instantiated and bound system. Thus, multiple sets of contained property associations can be associated with the same system instance to represent different system configurations.
Consistency Rules
(C1)A complete system instance must not contain incompletely specified subcomponents, ports, and subprograms. All processes in a completely instantiable system must contain at least one thread.
(C2)The Required_Connection property may be used to indicate that a port connection is required. In the case of the predeclared Error and Complete ports (see Section 5.4), connections are optional.
(C3)In a complete system instance, the required ports of all threads, devices, and processors must be the ultimate source or destination of semantic connections.
(C4)In a completely instantiable system, the subprogram calls of all threads must either be local calls or be bound to a remote subprogram whose thread is part of the same mode.
(C5)In a completely instantiable system, for every mode that is the source of mode transitions, there must be at least one mode transition that is the ultimate destination of a semantic connection whose ultimate source is part of the mode.
(C6)In a complete system instance, aperiodic and sporadic threads that are part of a given mode must have at least one connection to one of their in event ports or in event data ports.
(C7)For instantiable systems, all threads must be bindable to processors and all components representing source text must be bindable to memory.
(C8)The source text associated with all contained components of the system instance must be compliant with the specified component type, component implementation, and property associations.
(C9)In order to be considered complete, system instance must contain at least one thread, one processor and one memory component in its containment hierarchy to represent an application system that is executable on an execution platform, i.e., a processor with memory containing the application code and data.
(C10) If a system instance has processors of different types, then the execution time of threads must be specified for each processor type using the in binding statement, or a reference processor type must be identified through the Reference_Processor property.
Semantics
(5) A system instance represents an operational actual system. That actual system may be a stand-alone system or a system of systems. A system instance consists of application software and execution platform components. The component configuration, i.e., the hierarchical structure and interconnection topology of these components is statically known. The mode concept describes alternative statically known component configurations. The runtime behavior of the system allows for switching between these alternative configurations according to a mode transition specification.
(6) The actual system denoted by a system implementation can be built if the system is instantiable and if source text exists for all components whose properties refer to source text. This source text must be compliant with the AADL specification and the source text language semantics. Source text is compiled and linked to generate binary images. The binary images are loaded into memory and made accessible to threads in virtual address spaces of processes.
(7) In addition, there exists a kernel address space for every processor. This address space contains binary images of processor software and device driver software bound to the processor.
(8) Execution time of threads and subprograms is specified in units of time. If a system instance has processors of different types, then the execution time may vary from processor type to processor type. Execution time specific to a processor type can be specified using the in binding statement in a property association. Alternatively, the execution time can be specified with respect to a reference processor. The reference processor is specified through the Reference_Processor property. This property is declared as inherit, i.e., it can be declared at the system level and apply to all threads in a system. When a thread is bound to a specific processor type, its execution time, if not explicitly defined for this processor, will be adjusted according to a scaling factor between the reference processor and the target processor.