On Wednesday, July 24, 2002, at 11:47 AM, Timothy A. Seufert wrote: "Justin C. Walker" <justin@mac.com> wrote: On Tuesday, July 23, 2002, at 07:18 AM, Wade Tregaskis wrote: [for background, I don't have any experience coding at the kernel level; I lurk on this list hoping to learn :)] This is probably a numbingly boring question, but what happens when the kernel gets handed data to write to disk, from say a userland app? I ask because I've begun covering this from a users point of view in my uni course, and they seem to indicate that the method, now as it was 30 years ago, is to block any disk write's and yield time to other processes. I don't recall any unix system in the past 30 years that did that. Disk writes are scheduled by the I/O subsystem, and the driver handles talking with the device to get the data there. All of this is generally asynchronous with respect to process activity. I think Wade meant "block [the calling process on] any disk writes and yield time to other processes". Which is in fact what happens, both now and 30 years ago. Just got back into town... I don't believe this is the case; writes have pretty much always been asynchronous, so that unless there is some serious blockage (e.g., out of buffers), the process can merrily go on its way after making the call (return happens after the data has been read; there are "edge cases", involving lots of data, where this doesn't happen, of course). Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | It's not whether you win or lose... | It's whether *I* win or lose. *--------------------------------------*-------------------------------* _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.