From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5f0b2f174ad085de X-Google-Attributes: gid103376,public From: rracine@draper.com (Roger Racine) Subject: Re: tasking in Ada and Annex D question Date: 1999/02/03 Message-ID: #1/1 X-Deja-AN: 440167859 Sender: nntp@news.draper.com (NNTP Master) References: <793jl9$hf@drn.newsguy.com> <7963h1$a6h$1@nnrp1.dejanews.com> <797hoc$j3v$1@nnrp1.dejanews.com> <798u7r$b2k$2@plug.news.pipex.net> Organization: Draper Laboratory Newsgroups: comp.lang.ada Date: 1999-02-03T00:00:00+00:00 List-Id: In article <798u7r$b2k$2@plug.news.pipex.net> "Nick Roberts" 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