CVS difference for ai05s/ai05-0166-1.txt
--- ai05s/ai05-0166-1.txt 2010/04/20 23:33:33 1.5
+++ ai05s/ai05-0166-1.txt 2010/04/29 06:27:42 1.6
@@ -1,4 +1,4 @@
-!standard D.2.1(1.2/2) 10-04-20 AI05-0166-1/05
+!standard D.2.1(1.2/2) 10-04-22 AI05-0166-1/06
!standard D.2.1(6/2)
!standard D.2.4(2/2)
!standard D.2.4(9/2)
@@ -110,10 +110,11 @@
Replace D.2.4(9/2):
-For this policy, a non-blocking delay_statement, a non-blocking call to
-Yield_To_Higher, and a non-blocking call to Yield_To_Same_Or_Higher or Yield
-are the only non-blocking events that are task dispatching points (see D.2.1).
+For this policy, blocking or termination of a task, a delay_statement,
+a call to Yield_To_Higher, and a call to Yield_To_Same_Or_Higher or
+Yield are the only task dispatching points (see D.2.1).
+
!discussion
This AI was raised by an industrial user of non-preemptive scheduling,
@@ -207,9 +208,9 @@
For this policy, a non-blocking @fa<delay_statement> is the only non-blocking event
that is task dispatching point (see D.2.1).
@dby
-For this policy, a non-blocking @fa<delay_statement>, a non-blocking call to
-Yield_To_Higher, and a non-blocking call to Yield_To_Same_Or_Higher or Yield
-are the only non-blocking events that are task dispatching points (see D.2.1).
+For this policy, blocking or termination of a task, a @fa<delay_statement>,
+a call to Yield_To_Higher, and a call to Yield_To_Same_Or_Higher or
+Yield are the only task dispatching points (see D.2.1).
!ACATS test
@@ -487,5 +488,39 @@
The latter wording isn't quite as clearly talking about non-blocking cases,
which seems to be the point of the paragraph, so I suspect that the first wording is
better.
+
+****************************************************************
+
+From: Alan Burns
+Sent: Thursday, April 22, 2010 4:24 AM
+
+...
+> D.2.1(4/2) says that anytime a task is blocked is a task dispatching
+> point, and surely we mean that to be true for the non-premptive
+> policy. Your proposed wording seems to say otherwise. I think we
+> either need to stay closer to the original wording:
+>
+> For this policy, a non-blocking @fa<delay_statement>, a non-blocking call to
+> Yield_To_Higher, and a non-blocking call to Yield_To_Same_Or_Higher or Yield
+> are the only non-blocking events that are task dispatching points (see D.2.1).
+>
+> or simplify by listing everything:
+>
+> For this policy, blocking or termination of a task, a @fa<delay_statement>,
+> a call to Yield_To_Higher and a call to Yield_To_Same_Or_Higher or
+> Yield are the only task dispatching points (see D.2.1).
+
+I would prefer this. The current wording makes a point about a 'non-blocking' delay statement.
+I guess this was to emphasis that 'delay 0;' is a dispatching point. Of course any blocking
+delay statement is a task dispatching point. Hence it follows that the a 'delay_statement' is
+a task dispatching point. I was asked to remove 'non-blocking call the Yield_To_Higher' etc
+as they are not really blocking in the sense that a delay statement in blocking. Being
+blocked is not the same as being preempted - blocking usually means that the task can not
+make progress until some change to the system (such as a PO becoming free) or
+until the 'time is right'. Preemption is just waiting one turn. If the high priority task
+did not exist (or on a multiprocessor was executing elsewhere) then the task is question
+could immediate make progress - as it is not blocked.
+
+So above words do it for me
****************************************************************
Questions? Ask the ACAA Technical Agent