Windows Vista I/O technologies

Windows Vista introduced a number of new I/O functions to the Microsoft Windows line of operating systems. They are intended to shorten the time taken to boot the system, improve the responsiveness of the system, and improve the reliability of data storage.

I/O subsystem
Vista modifies the behavior of asynchronous I/O operations. With the new asynchronous I/O APIs, a thread, different from the one that issued the I/O request, can be notified when the operation completes. With this, a single thread can issue all the I/O requests, and then switch to a different worker thread. If this thread is the one that handles the data after the I/O request completes, then a thread-switch, which causes a performance hit, may be avoided. Windows Vista also introduces synchronous I/O cancellation. During a synchronous I/O request, the application is blocked until the request is serviced or fails. In Windows Vista the application may issue a cancellation request. Applications that cancel the operation on user feedback may prefer to enable user feedback during the time the issuing thread is suspended for usability.

Windows Vista also implements I/O scheduling as prioritized I/O. Disk I/O requests in Windows Vista are assigned priorities; a higher priority request is given preferential treatment, over a request that has a lower priority, during the execution of the request. Windows Vista defines five priority classes – Very Low, Low, Normal, High and Critical. By default I/O requests are assigned Normal priority. Windows Vista also allows reservation of bandwidth on a per-application basis during disk access; this aims to guarantee the required throughput rate to the application when it accesses the disk. Both these features are used by Windows Media Player with respect to media playback.

Prior to Windows Vista, all I/O requests were capped at 64 KB; thus larger operations had to be completed in chunks. In Windows Vista, there is no limit on the size of I/O requests. This means an entire I/O operation can be completed by issuing fewer requests, which in turn may lead to higher performance. Windows Explorer and the Command Prompt's copy command have been modified to issue 1 MB requests.

ReadyDrive
ReadyDrive (not to be confused with ReadyBoost) is a feature of Windows Vista that enables Windows Vista computers equipped with a hybrid drive or other Flash memory caches (such as Intel Turbo Memory) to boot up faster, resume from hibernation in less time, and preserve battery power. Hybrid hard drives are a new type of hard disk that integrates non-volatile flash memory with a traditional hard drive. The drive-side functionality is expected to be standardized in ATA-8.

It was reported in eWeek that the technology is not being utilized to full extent due to lack of hybrid drive-specific drivers. It was also reported that Microsoft is no longer making drivers for the hybrid drives and instead delegated the job to the device manufacturers. However, Microsoft rebuffed the suggestion that it was not providing specialized drivers for hybrid systems. Also, in June 2006, David Morgenstern wrote an article for eWeek suggesting that ReadyDrive might sacrifice data integrity for speed and battery savings. Documentation from Microsoft, however, claims that a copy of the data is always maintained on the hard disk, so there is no question of data loss even if the flash cache fails.

SuperFetch
SuperFetch is a technology that pre-loads commonly used applications into memory to reduce their load times. It is based on the "prefetcher" function in Windows XP.

The intent is to improve performance in situations where running an anti-virus scan or back-up utility would result in otherwise recently-used information being paged out to disk, or disposed from in-memory caches, resulting in lengthy delays when a user comes back to their computer after a period of non-use.

SuperFetch also keeps track of what times of day those applications are used, which allows it to intelligently pre-load information that is expected to be used in the near future.

By default the necessary files are loaded into main memory, but using a feature called ReadyBoost, Windows Vista can use alternate storage such as USB flash drives, thereby freeing up main memory. Although hard disks usually have higher data transfer rates, flash drives can be faster for small files or non-sequential I/O because of their short random seek times.

Offline Files
Offline Files is a feature of Windows, introduced in Windows 2000, which maintains a client side cache of files shared over a network. It locally caches shared files marked for offline access, and uses the cached copy whenever the network connection to the remote files is interrupted. Windows Vista Business, Enterprise and Ultimate editions contain significant improvements to Offline Files. Beginning with Vista, whenever the connection is restored, all open file handles to the cached copy are redirected to the remote version, without waiting for the cached files to be synchronized. This transition from online to offline and back is transparent to the clients using the file. The local copy is automatically synchronized with the remote copy, to reflect the changes made on either copy of the file. The file caching algorithm has also been completely rewritten. When synchronizing the changes in the cached copy to the remote version, the Bitmap Differential Transfer protocol is used so that only the changed blocks in the cached version are transferred, but when retrieving changes from the remote copy, the entire file is downloaded. This also improves support for caching large files.

Files are synchronized on a per-share basis and encrypted on a per-user basis and users can force Windows to work in offline mode or online mode or sync manually from the Sync Center. Sync Center can also report sync errors and resolve sync conflicts. The property page for any file or folder has an Offline Files tab that provides status and allows control of the offline status of the file or folder. Moreover, even if a single file is unavailable, other files in the same share and other shares are available. Offline Files are configurable through Group Policy and provide better interoperability with DFS. Also, a comprehensive Offline Files management API is available via COM objects and scriptability through WMI.

Windows Vista also supports "ghosting" of online files and folders, that is, when users make only a few files from a directory available offline, Windows Vista creates ghosted entries of the remaining items to preserve the online context. Offline Files also feature slow-link mode which when enabled through Group Policy, always reads from and writes to the local cache to improve performance over a slow network connection. It is also possible in Windows Vista to specify a limit for the total size of the local cache and another sub-limit for the space used by automatically cached files. Manually cached files are never removed from the local cache even if the cache limit is reached.