Windows VistaのIO技術
Microsoft Windows Vistaでは、Microsoft Windowsオペレーティングシステムシリーズに、いくつかの新しいI/O機能が導入された。これらは、システム起動時間の短縮、システム応答性の向上、そしてデータストレージの信頼性向上を企図している。
I/Oサブシステム
Vistaでは非同期I/O操作の挙動が変更されている。新しい非同期IO APIなら、(I/O要求を発行したスレッドとは別の)スレッドに対して、操作完了時には通知できるようになる。これにより、単一のスレッドですべてのI/O要求を発行し、その後、別のワーカ・スレッドに切り替えることが可能になる。もし、このスレッドがI/O要求完了後のデータ処理を担当するスレッドであれば、(パフォーマンス低下を招く)スレッド=切替を回避できる可能性がある。また、Windows Vistaでは、同期I/Oのキャンセル機能も導入された。(普通)同期I/O要求の実行中、アプリケーションは要求が処理されるか失敗するまでブロックされる。Windows Vistaでは、アプリケーションからキャンセル要求を発行できるようになっている。ユーザーのフィードバックに応じて処理をキャンセルするようなアプリケーションの場合、発行したスレッドがサスペンド(待機)している間も、ユーザーからのフィードバックを受け付けられるようにしておくと、ユーザビリティの向上につながる。
Windows Vistaには、優先順位に基づいたI/Oスケジューリング(優先I/O)も実装されている[1]。Windows VistaでのディスクI/O要求には優先順位が割り当てられ; 要求の実行時に、優先度の高いリクエストには優先度の低いリクエストよりも優先的な対応がなされる。Windows Vistaには5つの優先度クラス – 「最低(Very Low)」、「低(Low)」、「普通(Normal)」、「高(High)」、「最高(Critical)」が定義されている。デフォルトでは、I/O要求には「普通(Normal )」の優先度が割り当てられる。またWindows Vistaでは、ディスクアクセス時の帯域幅をアプリケーション単位で予約することも可能であり; これによりアプリケーションがディスクにアクセスする際、必要なスループットを保証できるようになっている。これらの機能はどちらも、Windows Media Player Legacyにおけるメディア再生にも利用されている[2]。デフラグ (Windows)、SuperFetch、Microsoft Defender ウイルス対策、Windows サーチ、および起動時に実行されるアプリケーションは、すべてこの優先I/Oを利用している[3]。優先I/Oは、WinFSにおけるファイルベースのアイテム昇格操作で利用することも想定されていた[4]。
Windows Vistaより前のバージョンでは、すべてのI/O要求は64 KBまでに制限されていた; そのため大きな操作を行う場合はチャンクにして処理を完了させる必要があった。Windows Vistaでは、I/O要求のサイズに対する制限がなくなった。これは、より少ないリクエスト発行でI/O操作全体を完了できることを意味し、結果としてパフォーマンスの向上が期待できる。Windowsエクスプローラーおよびコマンドプロンプトの「COPY (コマンド)」は、1 MB単位の要求を発行するように変更された[2]。
ReadyBoost
ReadyBoostは、USBフラッシュドライブ(USB 2.0または3.0のみ)、SDメモリーカード、コンパクトフラッシュなどのフラッシュメモリを利用して、Windows Vista搭載PCのシステムパフォーマンスを向上させ、応答性を高める機能。こうしたデバイスを接続すると、Windowsの自動再生ダイアログに、システムを高速化するためにそのデバイスを使用するという選択肢が表示され;ドライブのプロパティ画面に「ReadyBoost」タブが追加され、そこでReadyBoostに使用する容量を設定できる。Windows ReadyBoostは、Windows 7やWindows 10でも利用可能。大抵フラッシュメモリデバイスはFAT32形式でフォーマットされる。ReadyBoostでより大容量のフラッシュデバイスを適切に活用したい場合は、これを変更する必要がある。ただし、Windowsの自動再生機能からReadyBoostを有効にした場合、そのデバイスに対するReadyBoost設定を無効にするまで、デバイスの再フォーマットは行えなくなる[5]。
ReadyDrive
ReadyDrive (開発コード名 Piton[6][7])は、ハイブリッドHDDまたはその他のフラッシュメモリキャッシュ (ターボメモリーなど)を搭載したWindows Vistaコンピュータの起動を高速化し、ハイバネーションから短時間で復帰し、バッテリ電力を節約できるようにするWindows Vistaの機能[8]。ハイブリッドHDDは不揮発性フラッシュメモリと従来のハードディスクを統合したハードディスクの一種。ドライブ側の機能はATA-8で標準化される予定。ハイブリッドHDDがWindows Vista機にインストールされている場合、オペレーティングシステムはデバイスマネージャ内のドライブのデバイスプロパティの一部として、新しい「NVキャッシュ」プロパティタブを表示する[9]。
eWeekはハイブリッドドライブ専用のドライバが不足しているために[10]、この技術が十分に活用されておらず、その対応がデバイスメーカーに委ねられていると報じた[10]。しかしマイクロソフトは、ハイブリッドシステム向けの専用ドライバを提供していないという指摘を否定した[11]。また2006年6月には、David MorgensternがeWeekに寄稿した記事の中で、ReadyDriveは速度やバッテリー節約のためにデータ整合性を犠牲にしている可能性があると示唆した[12]。マイクロソフトの文書では(これに対し)、ハードディスク上には常にデータのコピーが保持されているため、フラッシュキャッシュが故障してもデータ損失の心配はない、と同社は主張している[12][13]。
SuperFetch
SuperFetch は、よく使用されるアプリケーションをあらかじめメモリに読み込んでおくことで、それらの起動時間を短縮する技術およびWindowsサービスである。これは、Microsoft Windows XPに搭載されていた「プリフェッチャー(英語: prefetcher)」機能を拡張したものである。SuperFetchは、頻繁に使用されるライブラリやアプリケーションの構成要素を、実際に必要とされる前にページキャッシュへ読み込もうとする。その仕組みとして、アプリケーションの挙動や利用パターン(例えば、ログオン後の朝の時間帯にどのアプリケーションがよく使われるかなど)を継続的に分析する[14]。 このキャッシュメモリには低い優先度が割り当てられており、他のプロセスがメモリを必要とした場合には、そのメモリ領域が解放されるようになっている。
デフォルトでは、必要なファイルは主記憶にロードされるが、ReadyBoostと呼ばれる機能を使用すると、Windows VistaおよびWindows 7はUSBフラッシュドライブなどの代替ストレージを使用して、主記憶を解放できる。ハードディスクの方がシーケンシャルデータ転送速度が高いかもしれないが、ランダムシーク時間が短いため、小さなファイルや非シーケンシャルI/Oにおいてはフラッシュドライブの方がより高速である。
「ReadyBoot」は、コンピュータの起動を高速化するために、起動の主要なプロセス(ドライバなど)のみを分析することでSuperFetchを補完する機能である[15]。
Microsoft Windows 10では、SuperFetchはSysMainに改称された。
オフラインファイル
オフライン ファイルは(Microsoft Windows 2000で導入された)Windowsの機能であり、ネットワーク経由で共有されるファイルのキャッシュをクライアント側に保持する。オフラインアクセス用に指定された共有ファイルはローカルにキャッシュされ、リモートファイルへのネットワーク接続が途絶えた場合には、そのキャッシュされたコピーが使用される。Windows VistaのBusiness、Enterprise、およびUltimateエディションでは、このオフラインファイル 機能が大幅に強化された。Windows Vista以降、接続が復旧するたびに、すべてのキャッシュされたコピーに対して開かれていたファイルハンドルが、キャッシュされたファイルの同期完了を待つことなく即座に、リモート上のバージョンへ切り替えられる[16]。オンライン状態からオフライン状態へ、そして再びオンライン状態への遷移は、そのファイルを利用するクライアント側からは見えない。ローカルのコピーはリモートのコピーと自動的に同期され、どちらか一方に加えられた変更がもう一方にも反映される。またファイルキャッシュおよび同期アルゴリズムも全面的に書き直され、変更箇所の特定がより高速に行えるようになった。キャッシュされたコピーに加えられた変更をリモート上のバージョンに同期する際には、「ビットマップ差分転送(Bitmap Differential Transfer)」プロトコルが使用され、キャッシュされたバージョン内で変更されたブロックのみが転送される。これにより、大きなファイルのキャッシュに関するサポートも向上している[16]。なお、リモートのコピーから変更内容を取得する際には、ファイル全体が依然としてダウンロードされる。
ファイル同期は共有単位でされ、ファイル暗号化はユーザー単位でされ、ユーザーはエクスプローラー上の「オフライン作業/オンライン作業 (Work Offline/Online)」ボタンからWindowsをオフラインモードまたはオンラインモードに強制的に切り替えたり、または「同期センター」から手動で同期を行ったりすることができる。同期センターでは同期エラーの報告や同期の競合を解決することもできる。各ファイルやフォルダーのプロパティページには「オフラインファイル」タブがあり、そこから状態の確認や、各ファイルやフォルダーのオフライン状態の制御を行うことができる。さらに、たとえ特定のファイルが利用できない場合でも、遷移がサーバー単位ではなく共有単位で行われるようになったため、同じ共有内の他のファイルや他の共有内のファイルも利用できる。オフラインファイル機能はグループポリシーを通じて構成可能であり、DFS(分散ファイルシステム)との相互運用性も向上している。またCOMオブジェクトを介した包括的なオフラインファイル管理APIが用意されており、WMIを使用したスクリプトによる制御も可能。
Windows Vistaでは、オンライン上のファイルやフォルダーの「ゴースト」表示もサポートされている。ユーザーがディレクトリ内の特定のファイルのみをオフラインで使用できるように設定した場合、Windows Vistaはオフラインでは利用できない残りの項目についても「ゴースト」としてエントリを作成し、オンラインのコンテキストを維持する。またオフラインファイル機能には「低速リンクモード」も用意されていて、これをグループポリシーで有効にすると、低速なネットワーク接続環境下でも、常にローカルキャッシュに対して読み書きが行われるようになり、パフォーマンスが向上する。さらにWindows Vistaでは、ローカルキャッシュの合計サイズ に上限を設けることができるほか、自動的にキャッシュされたファイルが使用する領域に対して、個別の制限を設けることも可能。なお手動でキャッシュしたファイルはキャッシュの制限に達した場合でも、ローカルキャッシュから削除されることはない。
Windows XPでは、高速ユーザー切り替えが有効になっている場合、オフラインファイル機能を使用することはできなかった。この制限は、オフラインファイルの同期がログオフ時に行われる仕組みであったのに対し、高速ユーザー切り替えではユーザーが完全にはログオフされないために生じていたものである。Windows Vistaでは、この制限はなくなった。Windows VistaのオフラインファイルはWindowsサービスとして動作し、ログオン時やオフライン状態からオンライン状態への遷移時など、適切なタイミングでユーザーデータの同期を実行するようになったためである。同期はバックグラウンドで常時行われるわけではなく[17]、ログオフ時に実行されることもない。
トランザクションNTFS
トランザクションNTFS(略称:TxF)は、NTFSファイルシステムにアトミック処理の概念を導入するもので、(これにより)Windowsアプリケーション開発者は、「完全に成功する」か「完全に失敗する」かのいずれかであることを保証する、ファイル出力ルーチンを記述できるようになる。トランザクションNTFSを利用すれば、ファイルやディレクトリの作成、名前変更、削除といった操作をアトミックに行うことが可能になる。(すなわち)トランザクションを用いることで操作の正確性が保証され; (トランザクションとして実行されるもの)一連のファイル操作において、すべての操作が成功した場合にその操作がコミット(確定)される。何らかの失敗が発生した場合、一連の操作全体がロールバック(取消)され、失敗となる。
シャドウコピー
Microsoft Windowsのいくつかのコンポーネントが、シャドウコピーを利用するように更新された。Windows Vista以降のバックアップと復元センターでは、システム全体のバックアップを行う際、ブロック単位のバックアップが実行される。ファイルバックアップ機能もシャドウコピーを利用するが、ファイルはZIPファイル内に格納される。
Microsoft Windows Vista以降、シャドウコピーは(Windows Serverの「共有フォルダーのシャドウコピー」機能に類似する)同一のローカルボリューム上にシステムデータとユーザーデータの定期的にコピーを作成・保持するシステム保護 コンポーネントでも利用されるようになったがしかし、システムの復元を通じてローカルからアクセスできる。システムの復元では、復元ポイント と呼ばれる以前のシャドウコピーの状態へ、システム全体を元に戻すことが可能である。Windows Vistaより前のバージョンにおけるシステムの復元は、特定のファイル拡張子を持つファイルの変更を監視し、ファイルが上書きされる前にそのコピーを保存する、ファイルベースのフィルター技術に基づいていた[18]。
さらに、以前のバージョン と呼ばれるプロパティシートのシェル拡張を利用すると、(スナップショット作成時点の)復元ポイントから個別のファイルやフォルダーをローカルに復元でき、これによりファイルの以前のバージョンを取得したり、誤って削除してしまったファイルを復元したりすることができる。
シャドウコピーは、ファイルが変更されるたびに作成されるわけではない; バックアップコピーは1日に1回自動的に作成されるほか、復元ポイント を作成するバックアップユーティリティまたはインストーラアプリケーションによってトリガーされた場合に手動で作成されることもある[19]。「以前のバージョン」機能は、Windows VistaのBusiness、Enterprise、およびUltimateエディションで利用可能[20]。
フォルダーリダイレクト
Windows Vistaでは、ユーザープロファイルのサブフォルダを最大10個まで、それぞれ個別にネットワーク上の場所へリダイレクトする機能が導入された[21]。また、Windows Vistaには、Windows Vista、Windows XP、およびWindows 2000を実行しているクライアントに対して「フォルダーリダイレクト」を設定するための、管理コンソールスナップインも用意されている。
exFAT
Windows Vista Service Pack 1では、exFATファイルシステムのサポートが導入された。
関連項目
脚注
- ↑ I/O Prioritization in Windows Vista
- 1 2 Russinovich, Mark. “Inside the Windows Vista Kernel: Part 1”. TechNet. Microsoft. 2015年7月15日閲覧。
- ↑ Aul, Gabriel (2006年). “Windows Vista Performance Technologies” (PPT). Microsoft. 2015年7月9日閲覧。
- ↑ “I/O Manager & Vista”. The NT Insider. OSR Open System Resources, Inc. (2007年2月8日). 2019年5月1日時点のオリジナルよりアーカイブ。2026年2月9日閲覧。
- ↑ Tom Archer (2006年4月14日). “ReadyBoost - Using Your USB Key to Speed Up Windows Vista”. Tom Archer's Blog. Microsoft. 2006年5月21日閲覧。
- ↑ Nicholson, Clark (2004年). “Improved Disk Drive Power Consumption Using Solid-State Non-Volatile Memory” (PPT). Microsoft. 2006年5月9日時点のオリジナルよりアーカイブ。2015年12月6日閲覧。
- ↑ Moulster, Ian (2006年4月6日). “SuperFetch, ReadyBoost and ReadyDrive: some new feature names for you”. MSDN Blogs. Microsoft. 2015年9月17日閲覧。
- ↑ Mark Russinovich. “Inside the Windows Vista kernel, part II”. 2008年8月31日閲覧。
- ↑ Kleef, Michael (2007年11月24日). “Its arrived! The Lenovo T610 is here...with a hybrid drive!”. MSDN Blogs. Microsoft. 2015年12月12日閲覧。
- 1 2 “Without Drivers, Hybrid HDDs Delayed”. eWeek. 2007年7月21日閲覧。
- ↑ Chris Preimesberger. “Vista Supports Hybrid Storage Drives, Microsoft Says”. 2007年7月22日閲覧。
- 1 2 David Morgenstern (2006年6月10日). “Is Vista Heading for a Flash Nightmare?”. eWeek. 2007年2月22日閲覧。
- ↑ “Windows ReadyDrive”. Microsoft. 2007年9月22日閲覧。
- ↑ “Windows Vista's SuperFetch and ReadyBoost Analyzed”. Toms Hardware (2007年1月31日). Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ↑ “"Session "ReadyBoot" stopped due to the following error: 0xC0000188" in Windows 7”. Microsoft. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- 1 2 Jim Allchin. “Offline Files”. 2007年5月18日時点のオリジナルよりアーカイブ。2007年6月14日閲覧。
- ↑ Working with network files when you are offline
- ↑ Systems Restore in Windows Vista and other backup features
- ↑ “Selected Scenarios for Maintaining Data Integrity with Windows Vista”. TechNet. Microsoft (2008年7月25日). Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ↑ “Volume Shadow Copy and "Previous Versions" feature in Windows Vista”. Microsoft. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ↑ “Managing Roaming User Data Deployment Guide”. 2008年4月5日時点のオリジナルよりアーカイブ。2010年12月14日閲覧。