From: singo <sander.ingo@gmail.com>
Subject: Task Priorities on Ubuntu Linux
Date: Wed, 9 Dec 2009 06:34:45 -0800 (PST)
Date: 2009-12-09T06:34:45-08:00 [thread overview]
Message-ID: <f38162c7-8a5b-49c4-b6a8-010f0d64e290@9g2000yqa.googlegroups.com> (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;
next reply other threads:[~2009-12-09 14:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-09 14:34 singo [this message]
2009-12-09 15:10 ` Task Priorities on Ubuntu Linux Dmitry A. Kazakov
2009-12-09 21:20 ` sjw
2009-12-10 8:27 ` singo
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox