comp.lang.ada
 help / color / mirror / Atom feed
From: marks@agcsun.UUCP (Mark Shepherd)
Subject: Re: Teaching Concurrency
Date: 13 Jan 90 00:06:44 GMT	[thread overview]
Message-ID: <604@agcsun.UUCP> (raw)
In-Reply-To: 499@qusundl.queensu.CA

In article <499@qusundl.queensu.CA>, dalamb@qucis.queensu.CA (David Lamb) writes:
> In article <602@agcsun.UUCP> marks@agcsun.UUCP (Mark Shepherd) writes:
> >In real life (whether industrial, business, scientific research, or whatever),
> >multi-tasking applications carry substantial penalties
> >in complexity and resource utilization, and should only be used when
> >appropriate. (Of course, NOT using tasking when it should be used has
> >equally dire consequences).
> >
> This may be true now, but will it continue to be true?  

Yes. Like any other tool or technique, it will *always* be true that 
tasking should only be used when appropriate. Here is my view of some of
the circumstances under which this is the case:

- when different functions are unrelated
- when different functions have dissimilar lifetimes or priorities
- when different functions may or must run on different processors
- when a agent is needed to serialize or manage access to a 
  resource or device
- when errors must be isolated to a single sub-component of a system
- when a simpler or more effective design results (this of course is the
  acid test of appropriateness - all the "whens" are secondary)

The use of a separate task to, for example, add 2 numbers together, is 
usually inappropriate because it adds unnecessary complexity. Whether
or not it causes a performance problem depends on what the performance
requirements are. 

In the large and expensive system I alluded to in my previous posting, the
performance problems arose not because tasking was used, but because
it was *inappropriately* used. 

My view of performance or "efficiency" is that these are not absolute 
terms, but must always be viewed relative to the user's requirements. 
A program that produces results when the user needs them has good 
performance, even if it is "inefficient" (e.g. it uses PL/1 subroutines :-).
A program that will run in finite time only on a connection machine has 
good performance only if I happen to own such a machine.

Mark S

  reply	other threads:[~1990-01-13  0:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1990-01-07  2:26 Teaching Concurrency Bill Wolfe
1990-01-09 16:41 ` Marc Benveniste,lsp
1990-01-10 20:49 ` Mark Shepherd
1990-01-10 22:47   ` Richard Pattis
1990-01-11 13:04     ` Robert Firth
1990-01-11 19:27       ` Vincent Manis
1990-01-13  7:34         ` Peter G Ludemann
1990-01-12 19:02       ` Peter da Silva
1990-01-15 13:30         ` Robert Firth
1990-01-17 15:40         ` Kurt Luoto
1990-01-11 16:09     ` Michael Meissner
1990-01-14 12:33       ` Re^2: " Kim Shearer
1990-01-11 18:50     ` Tom Griest
1990-01-11 20:38     ` Brian L. Stuart
1990-01-12  0:47     ` Robert Steigerwald x2468
1990-01-15 11:10     ` Stavros Macrakis
1990-01-11 14:52   ` David Lamb
1990-01-13  0:06     ` Mark Shepherd [this message]
1990-01-11 16:13   ` S. Crispin Cowan
1990-01-12 13:12     ` Mike Harrison
1990-01-11 19:20   ` Vincent Manis
replies disabled

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