- (1)
- The partitions of a distributed program are classified as either active
or passive.
Post-Compilation Rules
- (2)
- An active partition is a partition as defined in 10.2.
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.
- (3)
- A passive partition shall include only library_items that either are declared
pure or are shared passive (see 10.2.1 and E.2.1).
- (4)
- 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.
- (5)
- 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
- (6)
- A library_item is elaborated as part of the elaboration of each partition
that includes it. If a normal library unit (see E.2)
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.
- (7)
- 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.
- (8)
- 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:
- (9)
- 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 E.2.3) the given partition
is the one where the body of D was elaborated.
Bounded (Run-Time) Errors
- (10)
- 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
- (11)
- 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.
- (12)
- 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.
- (13)
- 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.
- (14)
- 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.
-
- (15)
(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.
- (16)
(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.
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12