Matthew Dillon wrote:
:how about using O_ASYNC and SIGIO for console and network, etc? : :we could build a device tree (starting with a nexus), where drivers could register filedescs as "interrupt" resources. or something like that... It would work, but it wouldn't be fun. Signals are very expensive. Very very expensive.Kqueue or select for the network would work, the provisio being that I would need to create some sort of mechanism to break out of anemulated user context based on a kqueue event occuring. I don't think that would be too hard to do.
Okay, but I guess no other subsystem would benefit from this. However, how do you manage to "break out"? You'd have to have some kind of context switching, right?
Second, we need some sort of
pseudo-DMA to handle the transfer... maybe a kernel thread. We have
the advantage that the transfers to and from the disk only occur
from the virtual kernel's 'memory' (which itself is just a memory mapped
file), so it would be fairly easy to write a real-kernel kernel thread
to help out there.
I think that's called aio and is even in POSIX. I think aio should be pursued further, just the implementation could need some polishing. cheers simon -- Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\ Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ / Party Enjoy Relax | http://dragonflybsd.org Against HTML \ Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
signature.asc
Description: OpenPGP digital signature
