[Info-vax] Gartner report on VMS future.

ChaosLess james at enduring.com
Mon Sep 21 15:41:00 EDT 2009


On Sep 21, 2:23 pm, "Richard B. Gilbert" <rgilber... at comcast.net>
wrote:
> 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.

ast delivery also sets event flags - and applications can wait on any
combination of event flags being set.
you're right that checking the iosb confirms completion status.
isn't just qio, is also timers, lock handling and lots of other system
services that rely on asts.
some software uses LOTS of asts, timers, etc...  depends on the type
of system.

we also expose global event flags so they can be wait'd on from the
unix shell - and provide a utility for setting/waiting on flags in
global banks.




More information about the Info-vax mailing list