Go to the first, previous, next, last section, table of contents.
-
The partitions of a distributed program are classified as either active
or passive.
Post-Compilation Rules
-
An active partition is a partition as defined in See section 10.2 Program Execution. A passive
partition is a partition that has no thread of control of its own, whose
library units are all preelaborated, and whose data and subprograms are
accessible to one or more active partitions.
-
A passive partition shall include only library_items that either are
declared pure or are shared passive, See section 10.2.1 Elaboration Control, and See section E.2.1 Shared Passive Library Units.
-
An active partition shall be configured on a processing node. A passive
partition shall be configured either on a storage node or on a
processing node.
-
The configuration of the partitions of a program onto a distributed
system shall be consistent with the possibility for data references or
calls between the partitions implied by their semantic dependences. Any
reference to data or call of a subprogram across partitions is called a
remote access.
Dynamic Semantics
-
A library_item is elaborated as part of the elaboration of each
partition that includes it. If a normal library unit, See section E.2 Categorization of Library Units, has
state, then a separate copy of the state exists in each active partition
that elaborates it. The state evolves independently in each such
partition.
-
An active partition terminates when its environment task terminates. A
partition becomes inaccessible if it terminates or if it is aborted. An
active partition is aborted when its environment task is aborted. In
addition, if a partition fails during its elaboration, it becomes
inaccessible to other partitions. Other implementation-defined events
can also result in a partition becoming inaccessible.
-
For a prefix D that denotes a library-level declaration, excepting a
declaration of or within a declared-pure library unit, the following
attribute is defined:
-
D'Partition_ID
Denotes a value of the type universal_integer that
identifies the partition in which D was elaborated. If D
denotes the declaration of a remote call interface
library unit, See section E.2.3 Remote Call Interface Library Units, the given partition is the
one where the body of D was elaborated.
Bounded (Run-Time) Errors
-
It is a bounded error for there to be cyclic elaboration dependences
between the active partitions of a single distributed program. The
possible effects are deadlock during elaboration, or the raising of
Program_Error in one or all of the active partitions involved.
Implementation Permissions
-
An implementation may allow multiple active or passive partitions to be
configured on a single processing node, and multiple passive partitions
to be configured on a single storage node. In these cases, the
scheduling policies, treatment of priorities, and management of shared
resources between these partitions are implementation defined.
-
An implementation may allow separate copies of an active partition to be
configured on different processing nodes, and to provide appropriate
interactions between the copies to present a consistent state of the
partition to other active partitions.
-
In an implementation, the partitions of a distributed program need not
be loaded and elaborated all at the same time; they may be loaded and
elaborated one at a time over an extended period of time. An
implementation may provide facilities to abort and reload a partition
during the execution of a distributed program.
-
An implementation may allow the state of some of the partitions of a
distributed program to persist while other partitions of the program
terminate and are later reinvoked.
NOTES
-
(3) Library units are grouped into partitions after compile time, but
before run time. At compile time, only the relevant library unit
properties are identified using categorization pragmas.
-
(4) The value returned by the Partition_ID attribute can be used as a
parameter to implementation-provided subprograms in order to query
information about the partition.
Go to the first, previous, next, last section, table of contents.