comp.lang.ada
 help / color / mirror / Atom feed
From: sjw <simon.j.wright@mac.com>
Subject: Re: Task Priorities on Ubuntu Linux
Date: Wed, 9 Dec 2009 13:20:30 -0800 (PST)
Date: 2009-12-09T13:20:30-08:00	[thread overview]
Message-ID: <dcade4ed-6b35-4e23-9659-10a3948652a3@g26g2000yqe.googlegroups.com> (raw)
In-Reply-To: f38162c7-8a5b-49c4-b6a8-010f0d64e290@9g2000yqa.googlegroups.com

On Dec 9, 2:34 pm, singo <sander.i...@gmail.com> wrote:
> 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;

It used to be that on Linux you would have to run as root for
specified priorities to be respected.

FWIW, on Mac OS X Dmitry's program behaves much the same as an
ordinary user and as root: variously,

$ ./taskpriorities
 11 13 12 15 14 18 17 20 19^C
$ ./taskpriorities
 19 20 18 16 14^C
$ ./taskpriorities
 19 20 18 17^C
$ sudo ./taskpriorities
Password:
 19 20 18 16 14^C



  parent reply	other threads:[~2009-12-09 21:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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