• 会員限定
  • 2007/03/01 掲載

【連載】Windows VistaとはどのようなOSなのか?第3回/全5回:Vistaの新機能(中)

C MAGAZINE MOOK「最新 Windows Vistaプログラミング徹底理解」2月17日発売!!

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
会員になると、いいね!でマイページに保存できます。
マイクロソフトは、Windows Vista 日本語版を2006年11月30日に企業向けに、そして2007年1月30日にパッケージ製品をリリースした。本連載では、既に様々なメディアを通して紹介されているこの新しいOSについて、その機能を深く掘り下げて解説していこう。
生産性の向上と
パフォーマンスの向上

 Windows Vista は、クライアントOS のためパフォーマンスの向上は主にユーザ操作におけるレスポンス向上を中心に考えられている。新しいメモリ管理のWindows SuperFetch、ハードディスクへのI/O ボトルネックに対する解決策のWindows ReadyDrive とWindows ReadyBoost、ファイルI/O の優先度をアプリケーションごとに設定するロープライオリティI/O(Low Priority I/O)が代表格だ。Windows ReadyDrive はフラッシュメモリとHDD が統合された「ハイブリッドHDD」というハードウェアの対応を待つ必要があるため、本解説では割愛させていただく。

Windows SuperFetch

 頻繁に使用するアプリケーションのレスポンスを向上させるため、Windows SuperFetch(スーパーフェッチ)と呼ぶ新しいメモリ管理の仕組みを導入した。これは、ユーザ操作における応答性の大幅な改善を目的とし、ユーザの操作パターンにもとづいたシステムの最適化を行うことで、アプリケーションに対する一貫した応答性を実現するものである。

 従来までは、発生順にアプリケーションをメモリ上にロードしており、頻繁に使うものやバックグラウンドで利用するものともに平等に扱われていた。SuperFetch では、事前にメモリ上にロード(プリロード)し、その他のタスクは発生順に残っているメモリ領域へロードさせる。また、タスクが多くなったときは、プリロード先のアプリケーションが起動していないとき、いったんメモリ上を空けそこで実行させる。その処理が終わったら、またプリロードする。その結果、ユーザのレスポンスがよい状況を作り出すことができる。

 また、そのユーザのアプリケーション使用時間などの利用状況がシステムに記録され、その使用頻度が自動的に診断されメモリ上に優先的にロードする。こういった仕組みにより、使えば使うほどユーザに対するアプリケーションのパフォーマンスが向上する。

Windows ReadyBoost


※クリックで拡大
図1 ReadyBoostの概念図
 CPU キャッシュ、メインメモリ、HDD を利用してOS はアプリケーションの処理を行っている。大部分のデータやアプリケーションコードはメインメモリ上に配置されるが、メインメモリの容量が不足した際、HDD に対してメモリの内容を一時的に退避させ再びメモリに書き戻すいわゆるスワップが発生する。

 ところが、メインメモリとHDD との速度差は非常に大きいため、スワップが頻繁に発生すると、処理速度が低下しレスポンスがよくないと感じる。もちろん、物理メモリを増やすことでスワップの発生を少なくできるが、ハードウェアの制約上物理メモリを増やすことが困難な場合もある。

 スワップ先のHDD よりも高速I/O のデバイスをキャッシュとしてメインメモリとHDD との間に置き、スワップによるパフォーマンス低下を最小限にすることでレスポンスの改善を行う機能がWindows ReadyBoost である(図1)。高速I/O のデバイスとしては、USB メモリなどのリムーバブルメディアの記憶領域が使用される。ReadyBoost が有効になると、指定したサイズでキャッシュ領域が作成され、スワップファイルのようにふるまう。

 実際の動作だが、スワップ発生時にメインメモリからUSB メモリのキャッシュ領域とHDD のスワップファイル上へ退避される。メインメモリに書き戻すときは、HDD のスワップファイルとの一貫性を保持しつつUSB メモリのキャッシュ領域を読み込む。ユーザがアプリケーションを利用する際、高速なUSBメモリから読み込みを行っているため、レスポンスが改善する。

 また、ReadyBoost のキャッシュ領域は、HDD上のスワップファイルの読み込みキャッシュとして利用されるため、何らかの理由でUSB フラッシュメモリがPC から切断された場合も、システムがクラッシュすることなくアプリケーションは継続して利用可能である。つまり、ログオフやリブートなしでスワップファイルの高速化を行ったり元の状態に戻すことが可能ということだ。

ロープライオリティI/O

 Windows Vista 以前は、すべてのアプリケーションやサービスに対して、すべて同じ優先度でリソースへのアクセスを実行していた。そのため、バックグラウンドプロセスによるファイルI/O により、ユーザが現在操作しているフロントエンドのアプリケーションのパフォーマンスが悪化することが少なくない。

 パフォーマンスについて考察すると、バックグラウンドタスクはスループット重視であるが、フロントエンドタスクはユーザへのレスポンス重視である。そこで、バックエンドのI/O 処理の優先度を下げてフロントエンドとバックエンドのI/O の優先度を変え、レスポンスの向上を図った。この優先度をアプリケーションによって変える機能がロープライオリティI/O(Low Priority I/O)である。

 なお、低優先度のI/O の対象となるものは、Windows SuperFetch、検索インデックス作成、Windows Defender、デフラグ、スタートアップに登録されたアプリケーションである。
関連タグ タグをフォローすると最新情報が表示されます
あなたの投稿

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます