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,51e6278da540705e,start X-Google-Attributes: gid103376,public From: lutz@iks-jena.de (Lutz Donnerhacke) Subject: Why does FIFO_Scheduling prefer long running tasks? Date: 2000/05/24 Message-ID: #1/1 X-Deja-AN: 626865366 Distribution: world Content-Transfer-Encoding: 8bit Organization: IKS GmbH Jena Content-Type: text/plain; charset=ISO-8859-1 User-Agent: slrn/0.9.5.7 (UNIX) Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-05-24T00:00:00+00:00 List-Id: I have a problem with pragma Task_Dispatching_Policy(FIFO_Within_Priorities); which requires a preemted task to be added to the head of a ready queue. IMHO this forces a running task doing a huge computation to block all other tasks with the same priority simply due to the fact, that the computation does not reach syscalls (= task dispaching point) at all. So the only possible task switch can be the preemtation, but this way is forbitten. Does that mean, that the following code can stop all other processes of the same priority? loop null; end loop; OTOH what about computionally intensive processes of higher priority? Can they suspend the execution of lower priority processes for an unbounded time? I did read the corresponding part in the Rationale but did not get the idea.