[comp.sys.isis] ISIS and ADA

ken@cs.cornell.edu (Ken Birman) (06/22/91)

I would be interested on comments from readers who are familiar with
both ISIS and ADA, concerning the best way to "present" the ISIS
interfaces in an ADA context (initially, the Verdix Ada).  

My current thinking is to mimic the existing ISIS interfaces fairly
closely, using ISIS as a foreign function library within the Ada
runtime environment, and using Ada tasks where ISIS wants lightweight
threads.  The one major issues that this obviously raises are:

   1) Cost of dynamic task creation in Verdix Ada -- will it be fast
      enough to do this casually?

   2) Passing arguments to dynamically created tasks.  My thinking is
      to put the arguments in some sort of a global parameter block, which
      would have to be copied to a safe place.

   3) Rendezvous style of message passing: Isis can't readily be changed
      to use this because it would break virtual synchrony -- i.e. Isis
      might need to deliver a message at logical time T -- so it would
      break the vsync model if there happens to be no task waiting for a
      message at time T!

      So, although we can support rendezvous -- using the MSG_ENQUEUE/msg_rcv
      mechanisms of ISIS -- this can't be the default or ISIS would be
      essentially useless.  

Am I overlooking anything obvious?
-- 
Kenneth P. Birman                              E-mail:  ken@cs.cornell.edu
4105 Upson Hall, Dept. of Computer Science     TEL:     607 255-9199 (office)
Cornell University Ithaca, NY 14853 (USA)      FAX:     607 255-4428