So what's new with Vista that actually benefits us? Most are under-the-hood changes, but many of them are good. I'll list a few that I recently found out:
- Better thread scheduling. Previously in Windows, thread execution could be cancelled to handle interrupts. The time these interrupts took (in cpu cycles) was counted as executing time for threads. Thus Thread A & Thread B, both which were assigned 10 ms each, could execute different amount of time. Thread A could execute 5 ms, while Thread B 10 ms. The rest of the time was executed as interrupts, though it was assigned for Thread A. No longer in Vista.
- Multimedia Priority. This helps Multimedia threads get more CPU time (they get prioritized before other threads) so they can perform their work without any interruptions from other threads that are fighting for cpu time. Hence you will get smooth audio and video playback even if you're running demanding processes in the background.
- File-Based Symbolic Links. I don't know what they do exactly because it's complicated, so you may have to read about it yourself. Look below.
- Better IO handling. First, when waiting for an asynchronous IO operation to complete, the thread that waited for this was the one that actually completed the IO request when finished. In Vista, this is handled by the system, which removes the need to interrupt everything and switch to the thread that did the IO.
- IO Cancellation. Vista can now cancel synchronous IO operations, which brings better stability. The UI will be responsive, and you can cancel the IO operations if they take too long. Furthermore, this will solve the infamous problem when a process won't terminate when you try to kill it in task manager. Because IO (and device drivers) can now be canceled, Windows can clean up after the process and terminate it (Windows has to wait for any and all IO operations and drivers to complete before terminating the process). Unfortunately, the applications (and device drivers) need to written to take advantage of this.
- Kernel rollback or something? A very neat API was added to Vista that helps developers. In installation programs, when copying lots of files, deleting, registers, adding new registry entries, etc, etc, what would happen if something were to fail? The installation program would have to clean up and make sure it doesn't screw up the system and leave a lot of crap lying around. Vista solves this by letting applications tell Windows that they're going to do these things (via an API). You may call it a sort of a virtual mode. The application will do everything as it would, install, copy, register, add registry entries, etc, etc, and should it fail? Then fail. In this mode, Windows does not do anything of that mentioned above. It simply returns success or failure. That means the application won't have to worry about cleaning up if it fails. If everything goes smooth, the application tells Windows to execute everything that it wants. Simple, and so effective!
- Last but not least... IO Priority! Applications can now specify priorities to their IO operations. This means that tedious tasks such as defragmenting can be set to low, which would mean that other IO operations with higher priority would be executed before, hence giving a big boost for system performance! This would work especially good on slower drives. In previous versions of Windows, IO priority didn't exist. That meant that all and every IO operation was executed at the same time, bringing down system performance. No longer will defragmentation bring down system performance for you!
These are only a few of the improvements to Vista, I'm sure (there's lots of security enhancements as well), but for now, this is all... for your reference, this article provided me with information:
http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/default.aspx