comp.lang.ada
 help / color / mirror / Atom feed
From: rracine@draper.com (Roger Racine)
Subject: Re: tasking in Ada and Annex D question
Date: 1999/02/03
Date: 1999-02-03T00:00:00+00:00	[thread overview]
Message-ID: <rracine.9.0007F710@draper.com> (raw)
In-Reply-To: 798u7r$b2k$2@plug.news.pipex.net

In article <798u7r$b2k$2@plug.news.pipex.net> "Nick Roberts" <Nick.Roberts@dial.pipex.com> writes:

>To quote chapter and verse, RM95 D.2.2 [7] states

>... The language defines only one dispatching policy,
>FIFO_Within_Priorities; when this policy is in effect, modifications to the
>ready queues occur only as follows ...

>with the emphasis on "only", the list that follows this clause does not
>include any timed pre-emption.

>It does, however, include the 'delay' statement, so (as another poster
>mentioned, I think), if you pop in a 'delay 0.0;' statement just after (say)
>the I/O operation, you'll get a nice alternation of task activation.

>-------------------------------------------
>Nick Roberts
>-------------------------------------------

>robert_dewar@my-dejanews.com wrote in message
><797hoc$j3v$1@nnrp1.dejanews.com>...
>[...]
>|Well I am of course talking about
>|FIFO_Within_Priorities. If you don't specify
>|the dispatching policy, then of course it is
>|undefined.
>|
>|But FWP is the only defined policy in the RM,
>|and it most definitely requires run till blocked
>|(and whether IO is blocking or not is of course
>|implementation defined).

If you were to have put in the list, it includes the following:

"*  When the active priority of a ready task that is not running changes . . ."

The Ada 95 Rationale (section D.2.2) is very clear on the distinction between 
"dispatching policy" and "scheduling policy".  The former "is used here to 
denote the action of choosing a task to execute on a processor at a particular 
instant, given that one already knows the set of tasks that are eligible for 
execution on that processor at that instant, and their priorities."

"task scheduling"  "includes determination of the other factors, i.e. which 
tasks are eligible to execute . . . and what is the active priority of each 
task."

Then at the end of the section, there is the statement "Another anticipated 
application requirement is for time slicing.  Implementation-defined 
time-slicing schemes may conform to this specification by modifying the active 
or base priority of a task . . .".

Even if you do not agree with the Rationale then the question becomes, how 
many people use "pragma Task_Dispatching_Policy" anyway?  Of course the answer 
is "the ACVC tests" use it.  My guess is that no users do.

Roger Racine




  parent reply	other threads:[~1999-02-03  0:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-01-31  0:00 tasking in Ada and Annex D question nabbasi
1999-02-01  0:00 ` Dr. Hubert B. Keller
1999-02-02  0:00 ` Markus Kuhn
1999-02-02  0:00   ` robert_dewar
1999-02-02  0:00     ` Markus Kuhn
1999-02-02  0:00       ` Niklas Holsti
1999-02-03  0:00         ` Ehud Lamm
1999-02-03  0:00       ` robert_dewar
1999-02-02  0:00 ` robert_dewar
1999-02-02  0:00   ` Roger Racine
1999-02-02  0:00     ` robert_dewar
1999-02-03  0:00       ` Nick Roberts
1999-02-03  0:00         ` Frank Mueller
1999-02-03  0:00         ` Frank Mueller
1999-02-03  0:00         ` Roger Racine [this message]
1999-02-03  0:00     ` Tom Moran
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox