From: rmo@sei.cmu.edu (Robert Ollerton)
Subject: Re: Unix Multiprogramming with Ada Multitasking
Date: 10 Jan 92 21:20:17 GMT [thread overview]
Message-ID: <37528@as0c.sei.cmu.edu> (raw)
In article <6400@travis.csd.harris.com> danr@SSD.CSD.HARRIS.COM (Dan Rittersdor
f) writes:
>
>In article <37464@as0c.sei.cmu.edu> rmo@sei.cmu.edu (Robert Ollerton) writes:
.
. deleted
.
>>In a recent meeting I attended, an individual stated that the
>>problem with using Ada multitasking in a Unix multiprogramming
>>application is that there is too much overhead in Ada tasking
>>and it won't be usable until Ada 9X is available. This was
>>greeted by most attendees (management types) with nods of
>>assent.
>
> Given the Unix Ada implementations of the past, it was true
> that Ada tasking presented a problem, because tasks were simply
> threads of execution within a single unix process, but Unix was
> only able to schedule the entire process. Task scheduling was
> handled within an Ada program by the Ada runtime system itself.
.
. deleted
.
>>
>>The sensible thing to do when using Ada in a multiprogramming
>>application is to instantiate O/S processes using Ada subprograms
>>the same as you would with any other high level language. At
>>least one Ada compiler vendor supplies Ada interfaces to Unix
>>services which include process creation, interprocess communication,
>>signals, and the like. Lacking vendor-supplied interfaces, the
>>interface pragma can be used to gain access to needed services.
>>This requires an understanding of parameter passing mechanisms
>>and the structure of actual parameters.
Apologies for not being more specific on my first post.
I do have a special case in mind.
To minimize cost, military projects often have a requirement to use
standard military workstations running some version of Unix BSD.
The application as a whole may use commercially available software
that does windowing, database management, communication or what have
you. In addition, software developed under a previous contract and
in another language such as C may be part of the application. There
is also a requirement to do all future development of the application
in Ada.
The Ada multitasking model is out of place in that application for
the purpose of meeting timeliness needs. However, Ada is a powerful
general purpose programming language. Even in the absence of tasking
Ada can be used in the same way that other languages are used
to exploit the Unix process model. There is no conflict between
Unix and Ada. Ada fits right in ... unless you use tasking.
There seems to be a perception that if there is an element of
concurrency in an application that is implemented (at least in
part) in Ada, tasking must be used. As far as I know, there is no
requirement to do this. The Ada tasking model works just fine in a
single process model or on a bare target. Under these circumstances,
programmers can use Rate Monotonic Analysis (and scheduling) to
be guaranteed that all deadlines will be met. However, it is
not possible to achieve this in the application described above.
In that application, an Ada tasking program would be imprisoned in
a Unix process that could be suspended at unpredictable times and
for indeterminate lengths of time.
Unfortunately, this Ada-Unix question has been confused with the
issue of tasking performance by people who are not technically
oriented and have no current knowledge of Ada tasking performance.
This confusion is exploited by proponents of other languages to make
getting a waiver from using Ada the first order of project business.
Your comments are appreciated.
Bob Ollerton
Naval Command Control and Ocean Surveilance Center
RDT&E division
rmo@sei.cmu.edu
-----------------------------------------------------------------
The opinions expressed here are not those of the U.S. Government.
-----------------------------------------------------------------
next reply other threads:[~1992-01-10 21:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-01-10 21:20 Robert Ollerton [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-01-16 18:46 Unix Multiprogramming with Ada Multitasking Fred J. Roeber
1992-01-10 14:45 csus.edu!wupost!spool.mu.edu!caen!uflorida!travis!danr
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox