comp.lang.ada
 help / color / mirror / Atom feed
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.
-----------------------------------------------------------------

             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