.C.H.Y HOW TO WRITE A SYMBIONT FOR VAX/VMS .W by Douglass J. Wilson & Neal Lippman Joint Computer Facility Massachusetts Institute of Technology .S .C.Y.H PRINCIPLE SYMBIONT FUNCTIONS .W.X 1. Synchronize access to shared unit record devices 2. Despool and interpret data stored in files 3. Perform device specific functions .S .C.Y.H NEED FOR A USER-WRITTEN SYMBIONT .W.X o Perform device specific control functions (not supported by DEC) o Provide a means of coordination of access to devices without overhead of batch queue processing o Provide additional control over file processing (suspend, resume, abort) .S .C.Y.H QUEUEING A JOB - BATCH STREAM APPROACH .W.X.$(0 lqqqqqqqqqqqk x COMMAND x$SUBMIT/PARA=DATA.PLT x PROCEDURE tqqqqqqqqqqqqqqqk x tqqqqqqqqqqqqqqkx x(PLOT.COM) x xx mqqqqqqqqqqqj xx xx qqqqqqk \xx/ BATCH QUEUE x \/ mqqq lqqqqqqqqqqqk JOBLIM = 1 x BATCH JOB x qqqqqqqqqq x x lqu PLT.COM x lqqqqqqqqk x x PLT.EXE x x x x mqqqqqqqqqqqj x DEVICE xx mqqqqqqqqqqqj x V x lqqqqqqqqqqqqqk x x MAIN LOOP x lqqqqqqqqqqqk x x x x x x x x x AST x x x FILE tqqqqqqq>x LEVEL x x x PROCESSING x [001,004] o Send file done message to JBC upon completion of file processing (reset mbox read length to full message size) o Send init done message to JBC upon completion of initialization code o Accounting routine - send accounting information specific to JCF accounting system to JBC ($SNDACC) .S .C.Y.H CONDITION HANDLER .W.X o If facility code of signalled condition is 0 (system), symbiont exits o $PUTMSG action routine used to send message to system operators ($SNDOPR) o Signal arguments vector (minus last two longwords) used as $PUTMSG message vector .S .C.Y.H INCORPORATING YOUR SYMBIONT INTO VMS .W.X $ INIT/QUE/PROCESS= Yoursymb must be in SYS$SYSTEM: Full directory specifications are not recognized. $ START/QUE .S .C.Y.H IMPLEMENTATION HISTORY .W.X A symbiont was written at the Joint Computer Facility, M.I.T. during the summer of 1980. Approximately 1 week was spent in analyzing the source code for the VAX/VMS Version 1 Job Controller and Printer Symbiont. Actual coding of the symbiont was completed in 2 days. Debugging involved approximately 15 man-hours over a three day period. .S .C.Y.H THE END .S