Switching run-time contexts

KIRK.TYM%office-2 at sri-unix.UUCP KIRK.TYM%office-2 at sri-unix.UUCP
Sat Feb 4 18:05:00 AEST 1984


From:  Kirk Kelley <KIRK.TYM at office-2>

I get the impression that a high overhead may be involved when switching runtime
contexts in UNIX.  For an extremely large hypertext system (AUGMENT) already 
implemented in a sophisticated procedure oriented compiled language (L10), we 
are thinking of compiling L10 I/O calls into machine code to emulate a C call on
the stdio library for standard I/O functions needed by programs written in L10.

I think this means having two different runtime contexts that get switched every
time a call to a C procedure, like fopen, is made.  So there are a variety of 
related questions here:

   * How much work do you have to do to safely launch a C-style call?  Is it 
   enough to save registers and use the right argument/result passing 
   conventions, or will it also require allocated storage management facilities,
   error handlers of some type, or other rather involved things? and if so, how 
   much work is it to emulate those facilities, and how heavy to maintain a 
   whole C runtime and "swap" it somehow? 

   * How will this affect the performance of applications written in L10 vs 
   having the whole thing written in C?

   * Would 4.2BSD behave significantly different than, say, System V?

   * How about VAX vs 68000?

   * How farest the existing applications that do this?

O unix wizards, we await your reply.

 -- kirk



More information about the Comp.unix.wizards mailing list