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
next prev 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