comp.lang.ada
 help / color / mirror / Atom feed
* Task Priorities on Ubuntu Linux
@ 2009-12-09 14:34 singo
  2009-12-09 15:10 ` Dmitry A. Kazakov
  2009-12-09 21:20 ` sjw
  0 siblings, 2 replies; 4+ messages in thread
From: singo @ 2009-12-09 14:34 UTC (permalink / raw)


Hi,

Another question on the real-time annex and its implementation in
gnat-4.3 (Ubuntu Linux).

When I use different task priorities I get an - at least for me -
unexpected behavior... I have defined 10 tasks with different
priority. When I run my program, I expect only one task per processor
(this means four on my quad-core machine) to run. However,
unexpectedly all 10 tasks are run on my machine.

Is this because the tasks are mapped on the underlying OS (here
Linux), which then instead schedules the tasks of different priority
with some kind of time-slicing (round-robin) approach? I would
appreciate some clarification in this matter.

Best regards

Ingo

P.S: Here comes my example program:

pragma Task_Dispatching_Policy(FIFO_Within_Priorities);
pragma Queuing_Policy(Priority_Queuing);

with Ada.Text_IO;
use Ada.Text_IO;

with Ada.Real_Time;
use Ada.Real_Time;

procedure TaskPriorities is

   task type T(Id: Integer) is
      pragma Priority(Id);
   end;

   task body T is
   begin
      loop
	 Put(Integer'Image(Id));
      end loop;
   end T;

   Task10 : T(11);
   Task9  : T(12);
   Task8  : T(13);
   Task7  : T(14);
   Task6  : T(15);
   Task5  : T(16);
   Task4  : T(17);
   Task3  : T(18);
   Task2  : T(19);
   Task1  : T(20);

begin
   null;
end TaskPriorities;



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-12-10  8:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-09 14:34 Task Priorities on Ubuntu Linux singo
2009-12-09 15:10 ` Dmitry A. Kazakov
2009-12-09 21:20 ` sjw
2009-12-10  8:27   ` singo

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