[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