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