lkml.org 
[lkml]   [1999]   [May]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Mark Russinovich's reponse Was: [OT] Comments to WinNT Mag !! (fwd)
    Mark H. Wood writes:
    > 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.)

    What was the cost of creating the "temporary thread"? Anyway, we can
    do much the same thing with signals, except we don't need to create a
    temporary thread.

    Regards,

    Richard....

    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:51    [W:3.105 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site