CVS difference for ai05s/ai05-0166-1.txt

Differences between 1.5 and version 1.6
Log of other versions for file 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