comp.lang.ada
 help / color / mirror / Atom feed
From: "Pat Rogers" <progers@NOclasswideSPAM.com>
Subject: Re: Ada 95 tasking problems with Ada 83 code
Date: Tue, 5 Sep 2000 13:51:36 -0500
Date: 2000-09-05T13:51:36-05:00	[thread overview]
Message-ID: <dhbt5.331$B25.28254@nnrp3.sbc.net> (raw)
In-Reply-To: 39B52DFC.6EF265D3@ix.netcom.com

"Richard Riehle" <laoXhai@ix.netcom.com> wrote in message
news:39B52DFC.6EF265D3@ix.netcom.com...
>
> Pat Rogers wrote:
>
> > "Richard Riehle" <laoXhai@ix.netcom.com> wrote in message
> > news:39AF2DEC.71D8B897@ix.netcom.com...
> >
> > <snip>
> >
> > > Reminder:  you still need to take a look at RMA if you have 100
> > concurrent tasks.
> >
> > I confess I don't see why.  Surely the number of tasks, by itself,
> > doesn't require a schedulability analysis.  (There may very well
be
> > deadlines associated, but that hasn't been indicated as far as I
> > know.)  Absent deadlines, then this is "just" a concurrent
program, in
> > which case the issues are maximizing throughput and ensuring
liveness.
> > Liveness isn't a function of the number of tasks, so I don't see
the
> > connection.
> >
> > On the other hand, let's say there are deadlines.  In that case, a
> > static-priority preemptive scheduling scheme may not be the right
> > approach (e.g., RMA).  Perhaps a dynamic scheme might be best --
say
> > Earliest Deadline First (which is optimal too).  In other words,
it
> > seems to me that that the info so far -- 100 tasks -- isn't
sufficient
> > to require use of any schedulability analysis, RMA or otherwise.
> >
> > (Sure, the more tasks one has the more likely a general-purpose
> > tasking system is to bog down, but that is a separate issue I
would
> > think.)
> >
> > Of course you know these things, so what am I missing?
>
> Pat,
>
> I am probably just an RMA bigot and believe everyone who is doing
anything
> with tasking should have a rudimentary undestanding of it.   Also,
I see RMA as a
> larger issue than the simple static scheduling of its beginnings.
Most treatments of the
> subject, including the Briand and Roy work I cited earlier, do
include treatments of both static
> and dynamic scheduling. However, I believe one should understand the
static models before moving
> on to the dynamic ones.

I'm influenced by the Real-Time Systems Group at York, where both have
received quite a bit of thought.  :-)
All kidding aside, I find some of the dynamic ones, such as EDF, to be
simpler.

> As far as liveness and the number of tasks, if there are truly
one-hundred tasks in this design,
> it is hard to imagine that they will all be ready to do their work
at the required instant unless
> there is some kind of schedulability scheme.   This can be a really
simple scheme or a really
> sophisticated one.   The answer to your question is in the last
paragraph of your posting.  When
> there a lot of tasks in a design, absent a good scheduling model
(dynamic or static), there is an
> increased probability they will "bog down."

Humm.  Surely liveness is a property independent of the number of
tasks involved.  A "correct" concurrent program should work no matter
how many tasks exist.  The "finite progress assumption" tells use that
all tasks in a correct concurrent program will eventually run.

I think what you're saying is that a large number of interacting tasks
more likely justifies an analysis of the interactions -- a very
reasonable assertion -- such that some idea of the effective
throughput can be determined.  This determination can then be used to
critique the design.  If so, that seems very reasonable.

Perhaps I have a design in the back of my mind that is biasing my
perception of the effect of the number of tasks.  If most of the tasks
are different (i.e. of a different type) then yes, the idea that they
will all be ready to run at a critical instant seems unlikely, and
some idea of the throughput seems worthy of analysis.  On the other
hand, I often like to have pools of tasks, all of the same type, ready
to do the work that becomes available.  In such a case it might not be
unusual for there to be quite a few created, although most might not
be running at any given moment.  As you say, increasing the pool size
can then be a way of increasing throughput.


> The number of tasks may not always be a direct indicator of the need
for
> schedulability schemes, but, as you note, as the number of tasks
increases, there is a potential
> for them to block each other at inopportune times and bog down the
system.    If the tasks are
> communicating, this becomes even more interesting.    If every task
is executing at the same
> priority,  and there is a lot of rendezvous occurring,  one can
spend many entertaining hours trying to
> fine-tune the performance of the design.

In truth I was really just thinking of the fact that most
general-purpose tasking system implemenations use dynamic data
structures whose performance degrade as they grow in length.


>
> All that being said, we don't know enough details of Wayne's design
to
> make absolute pronouncements about how he should proceed, but I
think you would agree that anyone
> designing a task-based system ought to have some awareness of the
issues related to schedulability.

Certainly for a real-time system.  But for "just" a concurrent
program, I think a full schedulability analysis is overkill.

Pat





  reply	other threads:[~2000-09-05 18:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-30  0:00 Ada 95 tasking problems with Ada 83 code Wayne Lydecker
2000-08-30  0:00 ` Richard Riehle
2000-08-30  0:00   ` Wayne Lydecker
2000-08-31  0:00     ` Jeff Creem
2000-08-31 20:07     ` Robert Barron
2000-09-01  3:21   ` Wayne Lydecker
2000-09-01  4:17     ` Richard Riehle
2000-09-02 22:54       ` Pat Rogers
2000-09-05 17:31         ` Richard Riehle
2000-09-05 18:51           ` Pat Rogers [this message]
2000-09-05 19:00             ` Richard Riehle
2000-09-05 19:33               ` Pat Rogers
     [not found]       ` <39B046AE.A05C82AA@mtws.visicom.com>
2000-09-02  1:04         ` Jeff Creem
2000-09-05 19:11           ` Richard Riehle
2000-09-05 17:12         ` Richard Riehle
2000-09-06  0:19           ` Ted Dennison
2000-09-06  2:38           ` Wayne Lydecker
2000-09-07  5:35             ` Simon Wright
2000-09-01 20:01     ` Robert A Duff
2000-08-31 16:00 ` Bill Dale
2000-08-31 17:57   ` Richard Riehle
replies disabled

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