![]() ![]() |
||||||||||
|
||||||||||
A
thread group represents an organizational component to logically group threads contained in
processes. The type of a thread group component specifies the features and required
subcomponent access through which threads contained in a thread group interact with
components outside the thread group. Thread group implementations represent the contained
threads and their connectivity. Thread groups can have multiple modes, each representing a
possibly different configuration of subcomponents, their connections, and mode-specific property
associations. Thread groups can be hierarchically nested.
A
thread group does not represent a virtual address space nor does it represent a unit of
execution. Therefore, a thread group must be contained within a process.
Legality
Rules
A
thread group component type can contain provides and requires data access, as well as port,
port group, and server subprogram declarations. It can also contain flow specifications and
property associations.
A
thread group component implementation can contain data, thread, and thread group
declarations.
An
instantiable thread group component implementation must contain at least one thread
subcomponent or one thread group subcomponent.
A
thread group must not contain a subprogram calls subclause.
Standard
Properties
--
Properties related to source text
Source_Text: inherit list
of aadlstring
--
Inhertable thread properties
Synchronized_Component: inherit aadlboolean => true
Active_Thread_Handling_Protocol:
inherit Supported_Active_Thread_Handling_Protocols
=> value(Default_Active_Thread_Handling_Protocol)
Period: inherit
Time
Deadline:
Time => inherit value(Period)
--
Properties specifying constraints for processor and memory binding
Allowed_Processor_Binding_Class:
inherit list of classifier
(processor, system)
Allowed_Processor_Binding: inherit list of reference
(processor,
system)
Actual_Processor_Binding: inherit reference
(processor)
Allowed_Memory_Binding_Class:
inherit list of
classifier (memory, system, processor)
Allowed_Memory_Binding: inherit
list of reference (memory, system,
processor)
Actual_Memory_Binding: inherit reference
(memory)
Allowed_Connection_Binding_Class:
inherit list of classifier(processor, bus,
device)
Allowed_Connection_Binding: inherit list of reference
(bus, processor,
device)
Actual_Connection_Binding: inherit reference
(bus, processor, device)
NOTES:
Property associations of thread groups are inheritable (see Section 10.3) by contained
subcomponents.
This means if a contained thread does not have a property value defined for a particular property, then
the corresponding property value for the thread group is used.
Semantics
A
thread group allows threads contained in processes to be logically organized into a hierarchy.
A thread group type declares the features and required subcomponent access through which
threads contained in a thread group can interact with components declared outside the thread
group.
A
thread group implementation contains threads, data components, and thread groups. Thread
group nesting permits threads to be organized hierarchically. A thread group implementation also
contains connections to specify the interactions between the contained subcomponents and
modes to represent different configurations of subsets of subcomponents and connections as well
as mode-specific property associations. |
||||||||||