On Tuesday, March 25, 2003, at 12:06 PM, Joey Echeverria wrote: I'm talking about the low level scheduling of writing logical blocks out to disk. For example, FIFO, SSTF, LOOK, C-LOOK, etc. The reason that I'm interested is that we are looking into power efficiency in operating systems. One thing we wanted to investigate is if there is any effect to the energy usage when using different algorithms. One idea that we had was to be able to queue requests for longer in an operating system buffer and only write to disk when the queue becomes a certain size. We were thinking that under such a scheme, you could keep the disk stopped for longer periods of time to save the energy from keeping it spinning. To my knowledge Mac OS X does no buffering of writes to disk, it simply uses a write through caching scheme (file system structure updates may be cached for a short bit I think). I also believe it does no scheduling or coalescing of IO requests, just simply FIFO (or whatever the bus/disk driver is implemented to do). It leaves the scheduling up to the disk / array controller. Mac OS X does host a broad set of applications that have a wide set of IO profiles that makes implementing an in OS disk scheduling system problematic. Such a scheme can also compete or in the least be redundant to logic housed in the disk / array controllers logic. I would agree that caching could allow one to reduce the amount of disk spin up for sparse in time writes. I think write caching would have far more of a potential impact on power consumption then choosing a particular block scheduling algorithm (especially given current drives having rather intelligent embedded head schedulers). To do things correctly... the write caching logic would have to be adaptive so it can learn the current behavior of the IO profile to correctly defer writes to maximize disk down time and that weighted against the power draw related to spinning things back up (as I am sure you know, it take less power to keep a disk spinning then spinning it back up to speed). -Shawn _______________________________________________ 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.