A.3 Predeclared Timing Properties
(2) The predeclared property set named Timing_Properties contains execution time related property definitions regarding threads, devices, and runtime system support for thread execution.
Property set Timing_Properties is
Time: type aadlinteger 0 ps .. Max_Time units Time_Units; The Time property type specifies a property type for time that is expressed as numbers with predefined time units.
|
Time_Range: type range of Time; The Time_Range property type specifies a property type for a closed range of time, i.e., a time span including the lower and upper bound. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours).
|
(3) These properties record information related to the timing of thread and device execution timing.
Activate_Deadline: Time applies to (Thread); The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). |
Activate_Execution_Time: Time_Range applies to (thread); |
Compute_Deadline: Time applies to (thread, device, subprogram, subprogram access, event port, event data port); The Compute_Deadline specifies the maximum amount of time allowed for the execution of a thread’s compute sequence. If the property is specified for a subprogram, event port, or event data port feature, then this compute execution time applies to the dispatched thread when the corresponding call, event, or event data arrives. When specified for a subprogram access feature, the Compute_Deadline applies to the thread executing the remote procedure call in response to the remote subprogram call. The Compute_Deadline specified for a feature must not exceed the Compute_Deadline of the associated thread. The numeric value of time must be positive. The values specified for this property for a thread are bounds on the values specified for specific features. The Deadline property places a limit on Compute_Deadline and Recover_Deadline: Compute_Deadline + Recover_Deadline £ Deadline. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). |
Compute_Execution_Time: Time_Range applies to (thread, device, subprogram, event port, event data port); The Compute_Execution_Time property specifies the amount of time that a thread will execute after a thread has been dispatched, before that thread begins waiting for another dispatch. If the property is specified for a subprogram, event port, or event data port feature, then this compute execution time applies to the dispatched thread when the corresponding call, event, or event data initiates a dispatch. When specified for a subprogram (access) feature, it applies to the thread executing the remote procedure call in response to a remote subprogram call. The Compute_Execution_Time specified for a feature must not exceed the Compute_Execution_Time of the associated thread. The range expression specifies a minimum and maximum execution time in the absence of runtime errors. The specified execution time includes all time required to execute any service calls that are executed by a thread, but excludes any time spent by another thread executing remote procedure calls in response to a remote subprogram call made by the thread. The values specified for this property for a thread are bounds on the Compute_Execution_Time values specified for ports or subprogram access that dispatch execution. |
Client_Subprogram_Execution_Time: Time_Range applies to (subprogram); The Client_Subprogram_Execution_Time property specifies the length of time it takes to execute the client portion of a remote subprogram call. The property type is Time_Range. The standard units are ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a positive number. |
Deactivate_Deadline: Time applies to (thread); The Deactivate_Deadline property specifies the maximum amount of time allowed for the execution of a thread’s deactivation sequence. The numeric value of time must be positive. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). |
Deactivate_Execution_Time: Time_Range applies to (thread); The Deactivate_Execution_Time property specifies the amount of time that a thread will execute its deactivation sequence, i.e., when the thread is deactivated as part of a mode switch. The range expression specifies a minimum and maximum execution time in the absence of runtime errors. The specified execution time includes all time required to execute any service calls that are executed by a thread, but excludes any time spent by another thread executing remote procedure calls in response to a remote subprogram call made by this thread. |
Deadline: inherit Time => Period applies to (thread, thread group, process, system, device, virtual processor); The Deadline property specifies the maximum amount of time allowed between a thread dispatch and the time that thread begins waiting for another dispatch. Its numeric value must be positive. The Deadline property places a limit on Compute_Deadline and Recover_Deadline: Compute_Deadline + Recover_Deadline £ Deadline The Deadline property may not be specified for threads with background dispatch protocol.
|
First_Dispatch_Time : inherit Time applies to (thread, thread group); This property specifies the time of the first dispatch request. |
Dispatch_Jitter: inherit Time applies to (thread, thread group); The Dispatch_Jitter property specifies a maximum bound on the lateness of a thread dispatching. In the case of a periodic thread for instance, the thread is supposed to be dispatched according to a fixed delay called the period. However, for many reasons, a periodic thread dispatching event can be delayed. The Dispatch_Jitter property can be used to specify such a delay. The Dispatch_Jitter property can be specified on any thread which can be dispatched several times (e.g.,. Periodic, Sporadic).
|
Dispatch_Offset: inherit Time applies to (thread); The Dispatch_Offset property specifies a dispatch time offset for a thread. The offset indicates the amount of clock time by which the dispatch of a thread is offset relative to its period. This property applies only to periodic threads.
|
Execution_Time: Time applies to (virtual processor); The Execution_Time property specifies the amount of execution time allocated to a virtual processor by the processor it is bound to. This is the amount of execution time the virtual processor can make available to threads or virtual processors it schedules. It is the equivalent of the compute_execution_time for a thread. |
Finalize_Deadline: Time applies to (thread); The Finalize_Deadline property specifies the maximum amount of time allowed for the execution of a thread’s finalization sequence. The numeric value of time must be positive. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). |
Finalize_Execution_Time: Time_Range applies to (thread); The Finalize_Execution_Time property specifies the amount of time that a thread will execute its finalization sequence. The range expression specifies a minimum and maximum execution time in the absence of runtime errors. The specified execution time includes all time required to execute any service calls that are executed by a thread, but excludes any time spent by another thread executing remote procedure calls in response to a remote subprogram call made by this thread.
|
Initialize_Deadline: Time applies to (thread); The Initialize_Deadline property specifies the maximum amount of time allowed between the time a thread executes its initialization sequence and the time that thread begins waiting for a dispatch. The numeric value of time must be positive. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours).
|
Initialize_Execution_Time: Time_Range applies to (thread); The Initialize_Execution_Time property specifies the amount of time that a thread will execute its initialization sequence. The range expression specifies a minimum and maximum execution time in the absence of runtime errors. The specified execution time includes all time required to execute any service calls that are executed by a thread, but excludes any time spent by another thread executing remote procedure calls in response to a remote subprogram call made by this thread. |
Load_Deadline: Time applies to (process, system); The Load_Deadline property specifies the maximum amount of elapsed time allowed between the time the process begins and completes loading. Its numeric value must be positive. The property type is Time. The standard units are ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours).
|
Load_Time: Time_Range applies to (process, system); The Load_Time property specifies the amount of execution time that it will take to load the binary image associated with a process. The numeric value of time must be positive. When applied to a system, the property specifies the amount of time it takes to load the binary image of data components declared within the system implementation and shared across processes (and their address spaces). The range expression specifies a minimum and maximum load time in the absence of runtime errors. |
Period: inherit Time applies to (thread, thread group, process, system, device, virtual processor); The Period property specifies the time interval between successive dispatches of a thread whose scheduling protocol is periodic, or the minimum interval between successive dispatches of a thread whose scheduling protocol is sporadic. The property type is Time. The standard units are ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a single positive number. A Period property association is only allowed if the thread scheduling protocol is either periodic or sporadic. |
Recover_Deadline: Time applies to (thread); The Recover_Deadline property may not be specified for threads with background dispatch protocol. The Recover_Deadline must not be greater than the specified period for the thread, if any. The Deadline property places a limit on Compute_Deadline and Recover_Deadline: Compute_Deadline + Recover_Deadline £ Deadline. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). |
Recover_Execution_Time: Time_Range applies to (thread); The Recover_Execution_Time property specifies the amount of time that a thread will execute after an error has occurred, before it begins waiting for another dispatch. The range expression specifies a minimum and maximum execution time in the absence of runtime errors. The specified execution time includes all time required to execute any service calls that are executed by a thread, but excludes any time spent by another thread executing remote procedure calls in response to a remote subprogram call made by this thread. |
Startup_Deadline: Time applies to (processor, virtual processor, process, system);
The Startup_Deadline property specifies the deadline for processor, virtual processor, process, and system initialization. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a single positive number. |
Startup_Execution_Time: Time_Range applies to (virtual processor, processor, process, system);
The Startup_Execution_Time property specifies the execution time for initialization of a virtual processor or process. Initialization time for threads is accounted for through its initialize entrypoint. The property type is Time. The standard units are ps (picoseconds), ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a single positive number. |
(4) The following properties specify timing information related to the computing platform executing threads.
Clock_Jitter: Time applies to (processor, system); The Clock_Jitter property specifies a time unit value that gives the maximum time between the start of clock interrupt handling on any two processors in a multi-processor system. The property type is Time. The standard units are ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a positive number. |
Clock_Period: Time applies to (processor, system); The Clock_Period property specifies a time unit value that gives the time interval between two clock interrupts. The property type is Time. The standard units are ns (nanoseconds), us (microseconds), ms (milliseconds), sec (seconds), min (minutes) and hr (hours). The numeric value must be a positive number. |
Clock_Period_Range: Time_Range applies to (processor, system); The Clock_Period_Range property specifies a time range value that represents the minimum and maximum value assignable to the Clock_Period property. |
Process_Swap_Execution_Time: Time_Range applies to (processor); The Process_Swap_Execution_Time property specifies the amount of execution time necessary to perform a context swap between two threads contained in different processes.
The range expression specifies a minimum and maximum swap time in the absence of runtime errors. |
Reference_Processor: inherit classifier ( processor ) applies to (subprogram, subprogram group, thread, thread group, process, device, system); The Reference_Processor property specifies the processor based on which the execution time is specified. When code is bound to a different processor type, the Scaling_Factor of that processor is used to determine the execution, unless a binding specific execution time value is associated. |
Scaling_Factor : inherit aadlreal applies to (processor, system); This property specifies the speed of a processor with respect to a reference processor. |
Scheduler_Quantum : inherit Time applies to (processor); This property specifies the quantum of a given processor. The quantum is a maximum bound on the time a thread can hold the processor without being preempted. A quantum is typically used in time sharing scheduling and in POSIX 1003.1b scheduling (with the SCHED_RR policy). The quantum can be used with any user-defined schedulers. If the quantum is not specified for a given processor, the quantum has a positive infinitesimal value. |
Thread_Swap_Execution_Time: Time_Range applies to (processor, system); The Thread_Swap_Execution_Time property specifies the amount of execution time necessary for performing a context swap between two threads contained in the same process. The range expression specifies a minimum and maximum swap time in the absence of runtime errors. |
Frame_Period: Time applies to (processor, virtual processor); The Frame_Period property specifies the time period of a major frame in a static scheduling protocol, such as a cyclic executive. |
Slot_Time: Time applies to (processor, virtual processor); The Slot_Time property specifies the time period of a slot in major frame in a static scheduling protocol, such as a cyclic executive, if the protocol uses fixed slot times.
|
end Timing_Properties;