Messages in this thread | | | Date | Tue, 4 May 1999 17:24:57 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | Re: Mark Russinovich's reponse Was: [OT] Comments to WinNT Mag !! (fwd) |
| |
On Tue, 4 May 1999, Mark H. Wood wrote:
> On Sun, 2 May 1999, Ingo Molnar wrote: > > On Sun, 2 May 1999, Mark Russinovich wrote: > > > Completion ports in NT require no polling and no linear searching - that, > > > and their integration with the scheduler, is their entire reason for > > > existence. [...] > > > > they require a thread to block on completion ports, or to poll the status > > of the completion port. NT gives no way to asynchronously send completion > > events to a _running_ thread. > > Ugh. I liked the VMS model here. When you queue an I/O request, one of > the things you can attach to it is the address of a procedure. When the > request completes, the kernel creates a temporary thread to execute the > I/O rundown code, and part of that rundown is to call the procedure you > supplied. Your procedure would typically move something from a wait queue > to a work queue, or flip a bit in a bitmask, or link a buffer onto the > free chain, or whatever it takes to indicate that your regular thread(s) > should do whatever you want done when the I/O has completed. When you > return, the rundown thread tidies up and destroys itself. (Of course, if > you never return, or you try to do huge amounts of processing in your > rundown procedure, your program won't work very well. Don't do that. > Keep it short and simple.) >
Yes. It's called an AST. Asynchronous System Trap. A terminal emulator I made under VMS did all its work in ASTS. The idea is very good and it works.
Cheers, Dick Johnson ***** FILE SYSTEM WAS MODIFIED ***** Penguin : Linux version 2.2.6 on an i686 machine (400.59 BogoMips). Warning : It's hard to remain at the trailing edge of technology.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |