2.12. Appendix D: Real-Time Systems

The information in this section relates to Annex M paragraphs 90 to 107.

Q: M.(90)
Q: M.(91)
Q: M.(92)
Q: M.(93)
Q: M.(94)
Q: M.(95)
Q: M.(96)
Q: M.(97)
Q: M.(98)
Q: M.(99)
Q: M.(100)
Q: M.(101)
Q: M.(102)
Q: M.(103)
Q: M.(104)
Q: M.(105)
Q: M.(106)
Q: M.(107)

Q: M.(90)

Values of all Metrics. See D(2).

A: Information on metrics will be made available for specific target computers..

Q: M.(91)

The declarations of Any_Priority and Priority. See D.1(11).

A: See declarations in file system.ads.

Q: M.(92)

Implementation-defined execution resources. See D.1(15).

A: There are no implementation-defined execution resources.

Q: M.(93)

Whether, on a multiprocessor, a task that is waiting for access to a protected object keeps its processor busy. See D.2.1(3).

A: On a multi-processor, a task that is waiting for access to a protected object does not keep its processor busy.

Q: M.(94)

The affect of implementation defined execution resources on task dispatching. See D.2.1(9).

A: Tasks are dispatched by the run-time system.

Q: M.(95)

Implementation-defined policy_identifiers allowed in a pragma Task_Dispatching_Policy. See D.2.2(3).

A: There are no implementation-defined policy-identifiers allowed in this pragma.

Q: M.(96)

Implementation-defined aspects of priority inversion. See D.2.2(16).

A: Execution of a task cannot be preempted by the implementation processing of delay expirations for lower priority tasks.

Q: M.(97)

Implementation defined task dispatching. See D.2.2(18).

A: The supported policy is FIFO_Within_Priorities.

Q: M.(98)

Implementation-defined policy_identifiers allowed in a pragma Locking_Policy. See D.3(4).

A: There are no implementation defined policy identifiers allowed in this pragma.

Q: M.(99)

Default ceiling priorities. See D.3(10).

A: The ceiling priority of protected objects of the type System.Interrupt_Priority'Last as described in the Ada 95 Reference Manual D.3(10),

Q: M.(100)

The ceiling of any protected object used internally by the implementation. See D.3(16).

A: There are no internal protected objects.

Q: M.(101)

Implementation-defined queuing policies. See D.4(1).

A: There are no implementation-defined queuing policies.

Q: M.(102)

On a multiprocessor, any conditions that cause the completion of an aborted construct to be delayed later than what is specified for a single processor. See D.6(3).

A: The semantics for abort on a multi-processor is the same as on a single processor, there are no further delays.

Q: M.(103)

Any operations that implicitly require heap storage allocation. See D.7(8).

A: The only operation that implicitly requires heap storage allocation is task creation. Except for the main task, allocations are made for the task control block and the task's stack.

Q: M.(104)

Implementation-defined aspects of pragma Restrictions. See D.7(20).

A: The predefined pragma Restrictions is extended to support the programming of safety-critical applications. See Appendix A.

Q: M.(105)

Implementation-defined aspects of package Real_Time. See D.8(17).

A: The type Time is defined as a modular type that counts in micro seconds and cycles in 2**32 microseconds. This corresponds to the target computer's real-time clock. The type Time_Span is defined as a fixed point type, where the least significant bit is one microsecond. The type Time_Span does not cycle.

Q: M.(106)

Implementation-defined aspects of delay_statements. See D.9(8).

A: Any difference greater than one microsecond will cause the task to be delayed (see D.9(7)).

Q: M.(107)

The upper bound on the duration of interrupt blocking caused by the implementation. See D.12(5).

A: Interrupts are blocked by the run-time system while accessing critical global data. The upper bound is approximately 100 microseconds on a 10MHz processor.