Talk:QIO

Latest comment: 8 months ago by 217.169.14.23

Okay sys$qio(w) or whatever it is called on the R* PDP OS, basically it's still the paradigm: open a resource, send it command and data, get some data back, close resource when you're done with it. The caveat of course is the asynchronous I/O. (And except for the async I/O which is the real kicker if you ask me, isn't it the same thing as opening a device, sending it an (I admit synchrnous) ioctl() and then closing it again?) In which case however we need to talk about I/O Processors on IBM S/370 and onwards. Here the concept is highly similar: point a channel at a device, setup channel with command and data and then SIO (Start I/O). Some sort of interrupt facility then triggers your async completion handler. Right now when I enter SIO in the search box all I get is the "Scripps Institution of Oceanography".

Note that RSX11A is slightly different (see the programmers guide on bitsavers). While it has QIOs, in wait & non-wait forms, it doesn't have flags, nor does it have ASTs. Instead of ASTs it has 'End Actions'.

An AST queues in system mode, atomically delivering one at a time to user space. An End Action does not appear to queue in system space, and are delivered to user space in a non atomic fashion. So a second End Action may be triggered before the first completes, interrupting it. When the second ends, the first resumes. They can be so stacked to an arbitrary depth. — Preceding unsigned comment added by 217.169.14.23 (talk) 22:32, 15 February 2024 (UTC)Reply