[Info-vax] Gartner report on VMS future.

Richard B. Gilbert rgilbert88 at comcast.net
Mon Sep 21 15:23:51 EDT 2009


John Wallace wrote:
> On Sep 21, 12:35 am, "Richard B. Gilbert" <rgilber... at comcast.net>
> wrote:
>> Michael Kraemer wrote:
>>> ChaosLess schrieb:
>>>> no secrets other than tight programming, lots of hard work writing
>>>> code that we keep improving.  and reworking parts of the libraries as
>>>> technology improves on unix's for it...  how we did async programming
>>>> in 1990 didn't work well for async qio and ast delivery was a
>>>> challenge, just like stack unwinding...  reworking core components,
>>>> adding scalable threading, and LOTS of testsuite programs :-)
>>> well, ISTR people here have claimed that AST's would be impossible
>>> on any system other than VMS.
>> Well, an AST is nothing more nor less than an interrupt.  It's used for
>> things like announcing I/O completion.  If you do your I/O in a language
>> like Fortran, the I/O package handles them for you and you don't even
>> need to know they exist.  If you use $QIO you may wish to use ASTs.
>>
>> Other systems call it something else and implementation details will vary.
> 
> ASTs and interrupts are about as similar as knives and screwdrivers.
> You don't really want to use one where you really wanted the other one.

An AST is an interrupt, delivered at a priority of ASTDEL.  I don't 
recall the numerical value of ASTDEL and I'm too lazy to look it up. 
You declare a routine in your program that will service that interrupt 
and your service routine is called at ASTDEL interrupt level.  See 
chapter seven of "VAX/VMS Internals and Data Structures" by Ruth E. 
Goldenburg and Lawrence J. Kenah, Digital Press, 1991.  ISTR that the 
VMS documentation  also discusses the subject in some detail.

The AST allows your program to do something else while waiting for a 
$QIO I/O call to complete and with no need to loop checking the 
completion  status.  I used ASTs in my programs about three times in 
twenty years.  If you code in a high level language and use that 
language's I/O package, you don't usually need to deal with them at all.



More information about the Info-vax mailing list