comp.lang.ada
 help / color / mirror / Atom feed
From: rayssd!rayssd!fjr@uunet.uu.net  (Fred J. Roeber)
Subject: Re: Unix Multiprogramming with Ada Multitasking
Date: 16 Jan 92 18:46:10 GMT	[thread overview]
Message-ID: <566@sgfb.ssd.ray.com> (raw)

In article <37528@as0c.sei.cmu.edu> rmo@sei.cmu.edu (Robert Ollerton) writes:
>
>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.

I agree almost one hundred percent.  We are integrating a large Navy
combat system we developed over the past several years that uses Unix
workstations for the displays and a UYK-43 as the central server.  We used
Ada on the workstations with few problems.  After detailed analysis and
experimentation we also chose not to use Ada tasking for all the reasons
that have been stated in this forum in the past.  While we didn't use
tasking we did use all the other features of Ada.  We feel we have ended
up with a robust and reliable product due to the use of Ada.

Of course there are several important cavaets.  In order to use a UNIX
platform in any application that has real time aspects, you must use a
version of UNIX that supports real time extensions.  We are using a version
of the Silicon Graphics workstations that we militarized along with their
version of UNIX, called IRIX.  IRIX provides an excellent UNIX environment on
which to develop such applications.  Also, the SGI workstations supports/use
the Verdix Ada compiler system which we have found to be the best one for
use in a UNIX environment.

My feeling is that trying to use Ada tasking in an environment that doesn't
adequately support it is a big mistake.  Most implementations of Ada tasking
under UNIX don't provide adequate support.  Once UNIX/POSIX threads become
more readily available and standardized there will probably be more versions
of Ada runtimes that do support adequate tasking performance on a UNIX
platform.  At the recent TRI-Ada, SGI was demonstrating a version of the
Verdix Ada runtime that they developed with Verdix that uses SGI's version
of threads to get parallel execution using UNIX (and spread across
multiple processors).  While we haven't looked at this new product in
detail it certainly does look promising.

    ______________________________________________________________
   |  Fred J Roeber,  Raytheon Submarine Signal Division          |
   |  1847 West Main Road,  Mail Stop 188                         |
   |  Portsmouth, RI  02871-1087  (401) 847-8000 (X4205)          |
   |                                                              |
   |      {uiucdcs,uunet}!rayssd!sgfb.ssd.ray.com!fjr             |
   |______________________________________________________________|

-----------------------------------------------------------------
The opinions expressed here are mine
-----------------------------------------------------------------


-- 
    ______________________________________________________________
   |  Fred J Roeber,  Raytheon Submarine Signal Division          |
   |  1847 West Main Road,  Mail Stop 188                         |
   |  Portsmouth, RI  02871-1087  (401) 847-8000 (X4205)          |

             reply	other threads:[~1992-01-16 18:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-01-16 18:46 Fred J. Roeber [this message]
  -- strict thread matches above, loose matches on Subject: below --
1992-01-10 21:20 Unix Multiprogramming with Ada Multitasking Robert Ollerton
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