Windows Vista I/O technologies

From Wikipedia, the free encyclopedia
  (Redirected from SuperFetch)
Jump to: navigation, search

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[edit]

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

ReadyBoost[edit]

Main article: ReadyBoost

ReadyBoost, makes PCs running Windows Vista more responsive by using flash memory on a USB drive (USB 2.0 only), SD card, Compact Flash, or other form of flash memory, in order to boost system performance. When such a device is plugged in, the Windows Autoplay dialog offers an additional option to use it to speed up the system; an additional "ReadyBoost" tab is added to the drive's properties dialog where the amount of space to be used can be configured.[3]

ReadyDrive[edit]

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.[4] 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[5] for the hybrid drives and instead delegated the job to the device manufacturers.[5] However, Microsoft rebuffed the suggestion that it was not providing specialized drivers for hybrid systems.[6] Also, in June 2006, David Morgenstern wrote an article for eWeek suggesting that ReadyDrive might sacrifice data integrity for speed and battery savings.[7] 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.[7][8]

SuperFetch[edit]

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.[9] SuperFetch attempts to load commonly used libraries and application components into memory before they are required. It does so by continually analyzing application behavior and usage patterns, e.g. what applications are typically used in the morning after logon.[10] The cache memory is marked with low priority, meaning that if another process needs the memory, it will be given up.

By default, the necessary files are loaded into main memory, but using a feature called ReadyBoost, Windows Vista and Windows 7 can use alternative storage such as USB flash drives, thereby freeing up main memory. Although hard disks usually have higher sequential 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[edit]

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 Windows 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.[11] 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 and sync algorithm has also been completely rewritten to determine the differences faster. 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. This also improves support for caching large files.[11] The entire file is still downloaded when retrieving changes from the remote copy.

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 through the Work Offline/Online button in Explorer, 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 as the transition is now at the share level instead of server level. 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. When users make only a few files from a directory available offline, Windows Vista creates ghosted entries of the remaining unavailable 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.

In Windows XP, Offline Files could not be enabled when Fast User Switching was enabled. This restriction applied because Offline Files were synchronized at log off and Fast User Switching does not completely log off users. In Windows Vista, this restriction no longer applies as Offline Files runs as a Windows service that performs synchronization for the user at opportune times such as logon and offline to online transitions. Synchronization does not occur continuously in the background,[12] nor does it occur at log off.

Transactional NTFS[edit]

Main article: Transactional NTFS

Transactional NTFS (abbreviated TxF) brings the concept of atomic transactions to the NTFS file system, allowing Windows application developers to write file output routines that are guaranteed to either completely succeed or completely fail. Transactional NTFS allows for files and directories to be created, renamed, and deleted atomically. Using transaction ensures correctness of operation; in a series of file operations (done as a transaction), the operation will be committed if all the operations succeed. In case of any failure, the entire operation will rollback and fail.

Shadow Copy[edit]

Main article: Shadow Copy

A number of Microsoft Windows components have been updated to make use of Shadow Copy. The Backup and Restore Center in Windows Vista and later performs block-based backups when doing full system backups. The file backup feature also uses shadow copy but stores files inside ZIP files.

Beginning with Windows Vista, Shadow Copy is also used by the System Protection component which creates and maintains periodic copies of system and user data on the same local volume (similar to the Shadow Copies for Shared Folders feature in Windows Server) but allows it to be locally accessed by System Restore. System Restore allows reverting to an entire previous set of shadow copies called a Restore point. Prior to Windows Vista, System Restore was based on a file-based filter that watched changes for a certain set of file extensions, and then copied files before they were overwritten.[13]

Additionally, a property sheet shell extension called Previous Versions allows restoring individual files or folders locally from the restore point, as they existed at the time of the snapshot, thus retrieving an earlier version of a file or recovering a file deleted by mistake.

The shadow copy is not created every time a file is changed; backup copies are created automatically once per day, or manually when triggered by the backup utility or installer applications which create a restore point.[14] The "Previous Versions" feature is available in the Business, Enterprise, and Ultimate editions of Windows Vista.[15]

Folder redirection[edit]

Main article: Folder redirection

Windows Vista introduces the ability to independently redirect up to 10 user profile sub-folders to a network location.[16] There is also a Management Console snap-in in Windows Vista to allow users to configure Folder Redirection for clients running Windows Vista, Windows XP, and Windows 2000.

See also[edit]

References[edit]