|
From: Burkhard D. <bu...@st...> - 2003-07-10 20:52:07
|
Deven T. Corzine wrote: > My impression is the way to avoid making copies is to twiddle the VM system > in such a way as to pass "ownership" between different contexts, or maybe > just provide access to the memory for the duration of the operation. (And, > of course, address alignment issues as you describe.) That is pretty much what UDI is doing. Ownership of memory is passed between drivers in one of two ways: Via buffers or via movable memory. Buffers are opaque handles that describe data. Passing a buffer does not necessarily mean that the data encapsulated by that buffer has to be copied (in fact, in most cases it doesn't mean that). Movable memory is really only a pointer, and passing that also does not entail copying data. So, because you have nice opaque concepts for memory, you can pass memory "objects" back and forth and the encironment is always in control, and won't copy data unless it really has to. To that effect, UDI uses reference counts in memory blocks (components of buffers), and will at one point support copy-on-write for those. > Would this be difficult to do if starting from scratch? Suppose I write a > new OS. I'm thinking the right approach would be to start with a very > solid message-passing mechanism in the kernel, and design it to move > messages between contexts without requiring the data to ever be copied, > with lots of cooperation from the VM architecture. I think UDI's channel system is a very solid message-passing architecture. Okay, you don't have much coperation from the VM system, but so far I haven't seen any cases where we absolutely couldn't do something in the way of copy avoidance with what's already there. > > It seems like this would be a solid foundation to build UDI support upon, > and otherwise make for an efficient, high-performance system. > > Does this make sense, or am I on crack? :-) No, you're asking exactly the right questions :-) Burk. -- Burkhard Daniel Software Technologies Group, Inc. bu...@st... * http://www.stg.com fon: +49-179-5319489 fax: +49-179-335319489 _______________________________________________ UDI-Tech mailing list UDI...@pr... http://lists.projectudi.org/mailman/listinfo/udi-tech |