Windows Vista I/O technologies

From Wikipedia, the free encyclopedia

This article is part
of a series on
New features

Overview
Technical and core system
Security and safety
Networking technologies
I/O technologies
Management and administration
Removed features

Other articles

Editions
Development history
Criticism


This box: view  talk  edit

Windows Vista, Microsoft's current Windows operating system as of 2008, includes a number of new I/O functions. 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.

Contents

[edit] 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 IO requests, and then switch to a different worker thread. If this thread is the one that handles the data after the IO 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 till 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 [1]. 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.[2]

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.[2]

[edit] 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[citation needed], resume from hibernation in less time[citation needed], and preserve battery power[citation needed]. 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.

However, it was reported in eWeek that the technology is not being utilized to full extent due to lack of hybrid drive-specific drivers.[3] It was also reported that Microsoft is no longer making drivers for the hybrid drives, instead has delegated the job to the device manufacturers.[3] But, Microsoft rebuffed the suggestion that it was not providing specialized drivers for hybrid systems.[4] Also, in June 2006, David Morgenstern wrote an article for eWeek suggesting that ReadyDrive might sacrifice data integrity for speed and battery savings.[5] But documentation from Microsoft 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.[6][5]

[edit] SuperFetch

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

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 that 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 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.

[edit] Offline Files

The Offline Files feature, which maintains a client side cache of files shared over a network, has been improved in Windows Vista. Like previous releases of Windows (where it was called Offline Folders), Offline Files locally caches shared files marked for offline access, and uses the cached copy whenever the network connection to the remote files is interrupted. Unlike previous versions, when 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.[8] 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.[8] 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.

[edit] Notes

  1. ^ I/O Prioritization in Windows Vista
  2. ^ a b Mark Russinovich. Inside the Windows Vista kernel, part I. Retrieved on 2007-05-18.
  3. ^ a b Without Drivers, Hybrid HDDs Delayed. eWeek. Retrieved on 2007-07-21.
  4. ^ Chris Preimesberger. Vista Supports Hybrid Storage Drives, Microsoft Says. Retrieved on 2007-07-22.
  5. ^ a b David Morgenstern (June 10, 2006). Is Vista Heading for a Flash Nightmare?. eWeek. Retrieved on 2007-02-22.
  6. ^ Windows ReadyDrive. Retrieved on 2007-09-22.
  7. ^ Inside the Windows Vista kernel
  8. ^ a b Jim Allchin. Offline Files. Retrieved on 2007-06-14.

[edit] See also