Prev | Up | Next | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help


D.3 Priority Ceiling Locking

(1)
This clause specifies the interactions between priority task scheduling and protected object ceilings. This interaction is based on the concept of the ceiling priority of a protected object.
Syntax
(2)
(3)
         pragma Locking_Policy(policy_identifier);
Legality Rules
(4)
The policy_identifier shall either be Ceiling_Locking or an implementation-defined identifier.
Post-Compilation Rules
(5)
A Locking_Policy pragma is a configuration pragma.
Dynamic Semantics
(6)
A locking policy specifies the details of protected object locking. These rules specify whether or not protected objects have priorities, and the relationships between these priorities and task priorities. In addition, the policy specifies the state of a task when it executes a protected action, and how its active priority is affected by the locking. The locking policy is specified by a Locking_Policy pragma. For implementation-defined locking policies, the effect of a Priority or Interrupt_Priority pragma on a protected object is implementation defined. If no Locking_Policy pragma appears in any of the program units comprising a partition, the locking policy for that partition, as well as the effect of specifying either a Priority or Interrupt_Priority pragma for a protected object, are implementation defined.
(7)
There is one predefined locking policy, Ceiling_Locking; this policy is defined as follows:
(8)
(9)
(10)
(11)
(12)
(13)
Implementation Permissions
(14)
The implementation is allowed to round all ceilings in a certain subrange of System.Priority or System.Interrupt_Priority up to the top of that subrange, uniformly.
(15)
Implementations are allowed to define other locking policies, but need not support more than one such policy per partition.
(16)
Since implementations are allowed to place restrictions on code that runs at an interrupt-level active priority (see C.3.1 and D.2.1), the implementation may implement a language feature in terms of a protected object with an implementation-defined ceiling, but the ceiling shall be no less than Priority'Last.
Implementation Advice
(17)
The implementation should use names that end with ``_Locking'' for implementation-defined locking policies.

(18)
(19)
(20)
(21)
(22)
(23)


Prev | Up | Next | Back | Forward
TOC -- / --.-- / --.--.-- | Index | Search | Syntax | Help

Ada WWW Home -- Email comments, additions, corrections, gripes, kudos, etc. to:

Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12