comp.lang.ada
 help / color / mirror / Atom feed
From: dennison@telepath.com
Subject: Re: Tasking and preemption
Date: 1998/12/11
Date: 1998-12-11T00:00:00+00:00	[thread overview]
Message-ID: <74rr7n$4sp$1@nnrp1.dejanews.com> (raw)
In-Reply-To: 36714AA1.96BD1AC5@systems.at

In article <36714AA1.96BD1AC5@systems.at>,
  Thomas Handler <thandler@systems.at> wrote:
> Hi to everyone!
>
> I'm trying to get into Ada and have now passed the tasking mechanism
> provided by Ada95.
> My problem is that my understanding of preempting seems not to match
> with that of my system ;-)
>
> I'm using GNAT 3.09p on Linux with libpthreads and when doing a simple
> program with two tasks where each task body is simply puttnig a string
> in a loop to the screen the tasks seem to have a real cooperative
> behavior, i.e. Task B starts working after Task A has finished
> (independent of the length of the loop).
> Building a delay into the loop has the desired effect.

Feel fortunate its working that way. Text_IO is typically not task-safe. You
shouldn't be trying to write to the same file (the screen counts as a file)
from two different concurrently-running tasks.


> So my question is: In the RM preemption is based on calling blocking
> statements (like delay), as far as I understand there is no definition
> of thread supported preemption. Is this true (i.e. I have to take care
> in my program to make calls to blocking statements) or am I terribly
> wrong?

There are multitudes of different scheduling policies that your system could
be using. The only predfined one is FIFO_Within_Priorities (D.2.2). Under
this policy a running task could concieveably hog the CPU forever unless it
performs a rendezvous, accept, or a delay. Check out Annex D of the LRM. It
has a very thourough treatment of this subject.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




  reply	other threads:[~1998-12-11  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-12-11  0:00 Tasking and preemption Thomas Handler
1998-12-11  0:00 ` dennison [this message]
1998-12-13  0:00   ` Thomas Handler
1998-12-13  0:00   ` Thomas Handler
1998-12-14  0:00     ` Mats Weber
1998-12-14  0:00     ` dennison
replies disabled

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