CVS difference for ais/ai-00357.txt
--- ais/ai-00357.txt 2004/02/21 03:05:36 1.5
+++ ais/ai-00357.txt 2004/05/24 22:22:47 1.6
@@ -1,4 +1,4 @@
-!standard D.03 (00) 04-02-19 AI95-00357/03
+!standard D.03 (00) 04-04-29 AI95-00357/04
!class amendment 03-09-27
!status work item 03-09-27
!status received 03-09-27
@@ -86,8 +86,9 @@
Rule 2
When a task T becomes unblocked it is placed on the highest
-non-empty ready queue R such that
- T'Deadline < Deadline of task at tail of R, and
+priority ready queue R such that
+ A protected object with ceiling priority R is currently locked,
+ T'Deadline < Deadline the task locking this protected object, and
T'Base > Priority level of R.
if no such R exists then add T to Any_Priority'first.
@@ -180,6 +181,9 @@
deadline of the task to Ada.Real_Time.Clock+TS. A call of Get_Deadline
returns the absolute deadline of the task.
+Setting the task's absolute deadline to the new value takes place as soon as
+is practical but not while the task is performing a protected action.
+
A call of Delay_and_Set_Relative_Deadline delays the calling task until time
Delay_Time (equivalent to executing delay until Delay_Time). When the
task becomes runnable again it will have deadline Delay_Time+TS.
@@ -191,10 +195,10 @@
head of a queue is the one with the earliest absolute deadline.
o When a task becomes unblocked it is placed on the highest
- non-empty ready queue such that the deadline of the task is
- earlier than that of the task on the tail of the queue, and
- the base priority of the task is greater than the priority
- level of the ready queue. If no such ready queue exists the
+ priority ready queue R such that the deadline of the task is
+ earlier than that of any task executing within a protected
+ object with ceiling priority R, and the base priority of the
+ task is greater than R. If no such protected object exists the
task is added to the ready queue for Any_Priority'first.
o When the setting of the base priority of a running task takes effect,
@@ -207,8 +211,8 @@
original active priority when it no longer inherits the higher
level.
-o A task dispatching point occurs whenever a task has its deadline
- changed.
+o A task dispatching point occurs for the currently running task
+ whenever a task has its deadline changed.
When task dispatching policy EDF_Across_Priorities is in effect a
task dispatching point occurs for the currently running task of a
@@ -228,18 +232,14 @@
Notes
-The above rules implement the preemption-level protocol for resource
-sharing under EDF dispatching (see Baker[1]). The preemption-level for a
-task is denoted by its base priority. The definition of a ceiling preemption-
-level for a protected object follows the existing rules for ceiling locking.
+The above rules implement the preemption-level protocol (also called
+Stack Resource Policy) protocol for resource sharing under EDF
+dispatching. The preemption-level for a task is denoted by its base
+priority. The definition of a ceiling preemption-level for a protected
+object follows the existing rules for ceiling locking.
An implementation may support addition dispatching policies by replacing
absolute deadline with an alternative measure of urgency.
-
-Do we put references in? [Editor's note: No.]
-Reference
-[1] Baker, T.P., Stack-Based Scheduling of Real-Time Processes,
-Journal of Real-Time, Vol 3, No 1, pp67-99, March 1991.
!discussion
Questions? Ask the ACAA Technical Agent