Re: "This was little help with the DOS-based Windows 9x"
[Author here]
> That's just trolling, and make you look stupid
Why is it that in the 21st century people interpret "I do not agree with this person" as "this person is an evil troll"?
> but apart from that, DMA was a lot of help with DOS, including with disk access.
Sure, it helped a little bit. A device doing DMA to or from RAM in hardware is quicker than PIO, even in an optimised loop. Generally, if double-buffering isn't required, and if there's no IRQ line clash, and subject to various other factors.
But that is not the point here.
The point is that when the Win95 or Win98 kernel said "load the file at block 0xDEADBEEF into RAM at 0xCAFE01" then the disk controller could take over and do it... but Windows then sat there and waited until it was done.
When WinNT did it, it issued the same instruction and then that thread paused and the kernel scheduled other threads in its place and the OS kept on working. Disk access might be stalled but there was also a global cache and accesses to the cache continued.
This had 2 visible side effects.
[1] If you hit Ctrl+Alt+Esc and watched task manager, as soon as the Intel PIIX driver (or whatever) loaded, you could immediately _see_ CPU usage on heavy disk activity fall from 90+% to 5-10%
[2] Not so much during OS boot because that is by nature disk bound, but if you loaded a big image file or an AVI file into a video editor, _that app_ stalled waiting for I/O to complete but _the rest of the OS kept working_.
These were true even on a uniprocessor PC but the effect was more pronounced on an SMP machine.
And DOS and Win9x could never ever do that. No kernel threads.