comp.lang.ada
 help / color / mirror / Atom feed
From: lutz@iks-jena.de (Lutz Donnerhacke)
Subject: Why does FIFO_Scheduling prefer long running tasks?
Date: 2000/05/24
Date: 2000-05-24T00:00:00+00:00	[thread overview]
Message-ID: <slrn8iodck.tkd.lutz@belenus.iks-jena.de> (raw)

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.




             reply	other threads:[~2000-05-24  0:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-05-24  0:00 Lutz Donnerhacke [this message]
2000-05-25  0:00 ` Why does FIFO_Scheduling prefer long running tasks? Robert Dewar
2000-05-25  0:00   ` Lutz Donnerhacke
replies disabled

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