説明

先読み技術を利用して行われる、システムのオペレーティングシステムのブート

【課題】システムの起動に要する時間を短縮する。
【解決手段】オペレーティングシステムブートプロセス(OSブートプロセス)中にアクセスされたファイルのリストを作成して、OSブートプロセスをプロファイリングし、ファイルのリストを最適化して、後続するOSブートプロセスにおいて利用される最適化ファイルリストを作成する。最適化は、ファイルがソリッドステート媒体からアクセスされた場合は第1の最適化技術に応じて実行され、ファイルが回転式媒体からアクセスされた場合は、回転待ちの最小化や先読み技術などの第2の最適化技術に応じて実行される。

【発明の詳細な説明】
【背景技術】
【0001】
コンピュータシステムは、ハードウェア、ファームウェア、およびソフトウェアの組み合わせによって形成されている。コンピュータシステムは通常、1以上のプロセッサと、メモリと、周辺機器および入出力(I/O)デバイス等とを備える。コンピュータシステム上では、オペレーティングシステム(OS)の制御の下、OSのシステムサービスを利用して、さまざまなユーザアプリケーションが実行される。オペレーティングシステムの例を挙げると、Linux(登録商標)およびWindows(登録商標)がある。
【0002】
ユーザがコンピュータシステムの利用を開始する前に、コンピュータシステムの電源が入れられるとブートプロセスが実行されて、オペレーティングシステムの主要機能部分であるOSカーネルが開始される。一般的なシステムでは、オペレーティングシステムがブートされる前に、BIOS(Basic Input/Output System)ファームウェアが通常実行されてさまざまなセルフテスト等の機能を実行した後、OSブートローダに制御が移される。OSブートローダは、オペレーティングシステムの一部で、ユーザにログインさせるための表示を開始するためのグラフィクス機能を提供することを始めとするさまざまなシステム機能を実現するために必要な、多岐にわたるカーネルアイテムをロードするべく利用される。
【0003】
システムの起動に要する時間は、コンピュータシステムの速度を説明する際にユーザが考慮する要因のうち1つである。OSソフトウェアの一層の増加に伴い、OSのブート時間にも影響が及び、遅れが生じている。このような遅れは、ユーザにとって望ましいものではない。
【図面の簡単な説明】
【0004】
【図1】本発明の実施形態に応じたコンピュータシステムを示すブロック図である。
【0005】
【図2】本発明の実施形態に応じたシステム起動方法の全体的な流れを示すフローチャートである。
【0006】
【図3】本発明の一実施形態に応じた最適化プロセスを示すフローチャートである。
【0007】
【図4】本発明の一実施形態に応じた最適化起動プロセスを示すフローチャートである。
【0008】
【図5】本発明の実施形態に係るシステムを示すブロック図である。
【発明を実施するための形態】
【0009】
さまざまな実施形態において、OSカーネルの一部であるシステム起動マネージャは、効率良くOSを起動させるべくさまざまなサブ機能を持つとしてよい。一実施形態によると、システム起動マネージャは、先読みプロファイルコレクタ、プロファイルオプティマイザ、データ先読みエージェント、および、プロセスランチャを有するとしてよい。しかし、実施形態によって異なる機能部を設けるとしてよいものと理解されたい。さらに、実施例によって、それぞれのサブ機能を実行する1以上のコンポーネントは異なるものと理解されたい。また、システム起動マネージャを実行する度に、全ての機能を実行する必要はない。このため、プロファイル機能および最適化機能の実行は省略され得る。例えば、これらの機能は、システムの電源が最初に入れられた際に実行されて、OSブート中に実行されるべきファイルのリストを生成および最適化するとしてよい。この後、システムの電源が入る度にこれらの機能を実行する必要はない。これに代えて、さまざまな実施形態によると、これらの機能がその後実行されるのは、システムを更新する際のみとしてもよい。さまざまなレベルの更新によって、これらの機能の実行がトリガされるとしてよい。例えば、一部の実施例においてこれらの機能がトリガされるのは、OSサービスパックの更新のような大規模な更新の際のみとしてもよい。しかし、別の実施例では、セキュリティアップデート等のより小規模な更新を実行する際に、このような機能をより定期的に実行するとしてもよい。
【0010】
上述したように、さまざまな実施形態において、システム起動マネージャはOSカーネルの一部であってよい。言うまでもなく、本発明の範囲はこれに限定されるものではなく、ユーザレベル空間でほかの実施例を実装するとしてもよい。図1を参照して、システム起動マネージャがどのような状況で動作するかをより詳細に説明する。図1は、本発明の実施形態に係るコンピュータシステムを示すブロック図である。
【0011】
図1に示すように、コンピュータシステム10は、ハードウェア20と、OSカーネル30と、アプリケーション40とを含む複数の層を備えるように抽象化される。アプリケーション40は、OSカーネル30のさまざまな機能を用いてハードウェア20上で実行されるさまざまなユーザレベルソフトウェアアプリケーションであってよい。図1から分かるように、ハードウェア20はプロセッサ22を有するとしてよい。プロセッサ22は、例えば、1以上のマルチコアプロセッサであってよい。プロセッサ22はメモリ24に接続されるとしてよい。メモリ24は、より詳細に後述するが、DRAM(ダイナミック・ランダム・アクセス・メモリ)等の揮発性メモリであってよく、OSディスクキャッシュとして機能するとしてよい。さらに、1以上の入出力(I/O)デバイス/周辺機器26を有するとしてよい。I/Oデバイス/周辺機器26には、例えば、ディスプレイ、ネットワークインターフェース、回転ディスク(例えば、ハードドライブ)またはSSD(Solid State Disk)等の大容量ストレージが含まれるとしてよい。上述したようなハードウェアコンポーネントを備えるものとして図示されているが、代表的なシステムはこれら以外にも多くの同様のコンポーネントを備え得るものと理解されたい。
【0012】
OSカーネル30の制御下でハードウェア20を用いてさまざまな処理が実行されるとしてよい。OSカーネル30は通常、システムまたはアプリケーション40が要求するさまざまな機能を実行し得る。本発明の実施形態に応じた起動方法を可能とするべく、システム起動マネージャ32が設けられているとしてよい。OSカーネル30にはさらに、その他のさまざまなマネージャおよび制御モジュールが設けられるとしてよい。代表的な例を挙げると、さまざまなプロセスについて生成、消去、および処理を実行するべく用いられ得るプロセス制御マネージャ36、プロセス間通信マネージャ34がある。さらに、ハードウェアまたはソフトウェアから受信するさまざまな割り込みに応答するべく用いられる割り込みハンドラ38が設けられるとしてよい。言うまでもなく、OSカーネル30は、さらに多くの同様のコンポーネントを有するとしてよい。アプリケーション40は、OSカーネル30を用いて実行されるさまざまなユーザレベルアプリケーションを有するとしてよい。図1にはこのような具体的な例を図示しているが、本発明の範囲はこれに限定されない。
【0013】
上述したように、一実施形態によると、システム起動マネージャ32は、プロファイルコレクタ、プロファイルオプティマイザ、先読みエージェント、および、プロセスランチャを有するとしてよい。システム起動マネージャの一般的なタスクは、システムの状態を「オペレーティングシステムカーネル開始」状態から「すべてのユーザインタラクションについて準備完了」状態へと移行させることである。例を挙げると、このようなOSカーネル起動には、ファイルシステムのチェックおよび実装ならびにバックグラウンドタスクおよびクリティカルタスクを実行するさまざまなプロセスの開始といったタスクを完全に理解することを含むとしてよい。OSがLinux(登録商標)である場合に行われるタスクの例を挙げると、Xサーバ、さまざまなデーモン等を起動することを含むとしてよい。
【0014】
図2は、本発明の実施形態に係るシステム起動方法の全体的な流れを示すフローチャートである。より具体的に説明すると、方法100は、最初のプロファイリングを実行して、最適化処理を実行すると共に、そのような最適化処理の後にさらに起動を行うべく用いられ得る。図2から分かるように、最初に、システム起動の際に、システムの電源が入れられるのはこれが最初か否かを判断する(ひし形105)。例えば、この判断は、システムが以前に電源を入れられたことがあるか否かを示す指標(例えば、ファイルシステムにあるフラグ、または、以前に作成された先読みリストがないこと)を確認することによって為されるとしてよい。電源が入れられるのは最初であると判断される場合、ブロック110に進み、システム起動が実行され得る。この起動処理は、ディスクアクセスによってメモリからファイルを取得して、ファイルをプロセスランチャに与えて、ファイルを実行してさまざまなプロセスを起動する従来の起動処理であってよい。このシステム起動中に、ファイルのリストを生成するとしてよい(ブロック120)。より具体的に説明すると、このシステム起動は、ファイルのリストを作成するプロファイリングコレクションであってよい。一実施形態によると、このリストは、ファイル識別子と、各ファイルに対応付けられている時間指標とを含むとしてよい。例を挙げると、時間指標は、システム起動開始からの時間を測定した結果(例えば、ミリ秒(ms))であってもよいし、または、プロセスランチャを用いてファイルが起動された順序を示すシーケンス番号であってもよい。どちらの場合であっても、リストは、ファイル識別子と、ファイルが実行された順序を示す指標とを含む。
【0015】
この後、プロファイル最適化を実行して、最適化ファイルリストを生成するとしてよい(ブロック130)。以下でさらに説明するが、このような最適化の目的は、ファイルをストレージ内の対応する位置から取得するために必要なシーク時間を短縮することにあるとしてよい。最適化ファイルリストはその後、格納媒体に格納されるとしてよい(ブロック140)。例えば、最適化ファイルリストは、OSファイルを含む格納媒体と同じ格納媒体、例えば、ディスクドライブまたはソリッドステートディスク等の大容量ストレージデバイスに格納するとしてよい。この時点において、最適化が完了して、通常のOS処理が実行されるとしてよい。
【0016】
この後でシステムの電源が入ると、システムが更新されたか否かを判断するとしてよい(ひし形150)。更新の種類によってこの判断の結果が肯定的または否定的となるとしてよい。例えば、上述したように、この判断の結果が肯定的となるのは、新しいサービスパック等大規模なシステム更新が行われた場合のみとしてもよいし、別の実施例では、より小規模な更新でもこの判断の結果が肯定的となるとしてよい。更新が行われたと判断された場合、上述した内容のブロック110に戻る。更新が行われなかったと判断された場合、ブロック160に進み、先読みエージェントが最適化ファイルリストに基づき起動ファイルの先読みを実行するとしてよい。ファイルのうち所定量をOSディスクキャッシュ空間に先読みすることに成功すると、ブロック170に進み、先読みされた起動ファイルが存在する旨の通知がプロセスランチャに送られるとしてよい。この結果、プロセスランチャは、大容量ストレージに対してファイルを要求する必要がなくなり、OSキャッシュから起動ファイルを直接実行できるようになる(ブロック180)。尚、ブロック160、170、および180の処理は、OSカーネルが完全にブートされるまで、繰り返し且つ並行して実行されるとしてもよい。実施形態として図2には上述した具体的な実施例を図示しているが、本発明の範囲はこれに限定されない。
【0017】
以下では、システム起動マネージャのコンポーネントが実行するさまざまな処理をさらに詳細に説明する。最初のシステム起動時(および、特定の更新の後)に行われるプロファイルコレクション実行処理において、先読みプロファイルコレクタコンポーネントがプロファイルを収集する。先読みプロファイルコレクタコンポーネントは、どのファイルが利用されたか、および、ブートプロセス中のどのタイミングにおいて利用されたかを記録する。
【0018】
プロファイルオプティマイザが実行するプロファイル最適化フェーズにおいて、記録されたプロファイルは、その後利用されるべく、最適データセットに変換される。具体的に説明すると、プロファイルオプティマイザは、システムがソリッドステートディスク(SSD)(シーク時間なし)を実行しているか、システムは回転式ストレージ(シーク時間が非常に長い)を有しているかを検出する。「シーク時間なし」の場合、プロファイル最適化フェーズは、プロファイルのファイルのリストを初回利用に応じてソートすることと、ファイルのどの部分が実際に利用されたかを検出することとを含む。SSDの場合、OSブート中に利用されたファイルの指標と、これらのファイルの利用された部分を示す指標とを含む最適化ファイルリストを生成するとしてよい。このリストはさらに、初回利用タイミングに応じて、つまり順序に応じて、ソートされるとしてよい。
【0019】
回転式ストレージの場合、これらの処理に加えて、回転式ストレージに関する物理的な制約、つまりシーク時間に対応するべくさらに処理を実行する。回転式ストレージの場合、プロファイルのファイルリストはまず、初回利用タイミングに応じてソートされる。つまり、元々のリストは、初回利用に応じて、順序付けられたリストに作り変えられる。ソート後のリストは、それぞれがブート中の一定期間(例えば1秒)またはディスクから読み出されるデータの一定量を表す複数のグループに分割される。そして、各グループの内容は、ファイルの先頭セクタ番号に応じて各グループのファイルをソートすることによって、シーク回数を低減するように最適化されるとしてよい。
【0020】
尚、このプロセス中において、オプティマイザはさらに、リスト全体を走査して、ブートプロセス中にアクセスされた(が、別のグループに含まれている)ファイルの中に、最適化処理が行われている現在のグループに含まれているファイルと同位置にあるファイルがあるか否かを判断するとしてよい。このようなファイルがあれば、現在のグループに追加して、ディスクアクセス回数を低減するとしてよい。本発明の範囲はこれに限定されないが、2つのファイルが同位置にあるとみなされるか否かは、両ファイル間の距離に応じて決まるとしてよい。一部の実施形態では、同位置にあることとは、同じトラックにあること、または、隣接するセクタにあることに対応するとしてよい。このように、所与のファイルは、後続のグループのファイルと共にプロセスランチャによってアクセスされるが、上述したような同位置の条件を満たしているので、先立ってOSディスクキャッシュにプリフェッチされるという効果がある。
【0021】
このように2段階でソートを行うことによって、ファイルリストは、粗ソートレベルで時間に応じてソートされるが、粗ソート後のグループ内でシーク時間を短縮するようにソートされる。この結果得られる最適化ファイルリストはさらに、ファイルに関するメタデータを含むとしてよい。例えば、最適化ファイルリストのデータ構造(OSファイルが格納されている格納媒体と同様の格納媒体に格納され得る)では、グループ間の境界にマークを付けることができる。また、「重要ファイル」に特にマークを付けることもできる。このような「重要ファイル」は通常、ブート中に開始されるべきデーモンのアプリケーションバイナリファイル(つまり、実行可能(.exe)ファイル)である。
【0022】
図3は、本発明の一実施形態に係る最適化プロセスを示すフローチャートである。当該最適化プロセスは、一部の実施形態において、OSカーネルのシステム起動マネージャのプロファイルオプティマイザによって実行され得る。図3に示すように、方法200は、OSファイルがソリッドステートディスクに格納されているか、回転式ストレージに格納されているかを判断することから開始されるとしてよい(ブロック210)。OSファイルがソリッドステートディスクに格納されている場合、ブロック220に進んで、初回利用タイミングに応じてファイルをソートすることによって、最適化を実行するとしてよい(ブロック220)。また、この結果得られる最適化ファイルリストは、重要ファイルのフラグ等のメタデータを含むとしてよい(ブロック225)。
【0023】
回転式ストレージが設けられている場合、ブロック230に進む。ブロック230において、初回利用タイミングに応じてファイルをソートするとしてよい。しかし、図3に示すように、さらに最適化処理が実行されるとしてよい。具体的に説明すると、ファイルを複数のグループに分割するとしてよい(ブロック240)。グループは、上述したように、所定量の時間またはデータに対応するとしてよい。そして、それぞれのグループ内で、ディスク位置に応じてソートを実行するとしてよい(ブロック250)。つまり、あるグループ内で、先頭セクタ番号に応じて、ファイルを並べ替えるとしてよい。別の実施例によると、ファイル名のアルファベット順に応じて並び替えるとしてもよい。最後に、最適化リストを生成する際に、重要ファイルにフラグをつけるとしてもよい。また、グループ間の境界にもマークをつけるとしてよい(ブロック260)。実施形態として図3には上述した具体的な実施例を図示したが、本発明の範囲はこれに限定されない。
【0024】
最適化後、リストは通常のシステム起動で利用されるとしてよい。起動の初期段階で、システム起動マネージャは、データ先読みエージェントサブコンポーネントをアクティブ化する。データ先読みエージェントは、格納媒体からリストを取得して、リストに記載されているファイルをオペレーティングシステムディスクキャッシュ(DRAMであってよい)に1つずつ読み出す。一実施形態によると、SSDストレージに格納されている場合、マルチスレッド方式で読出しを行うとしてよく、回転式ストレージに格納されている場合はシングルスレッド方式で読出しを行うとしてよい。先読みエージェントは、重要ファイルを発見すると、ディスクキャッシュへの読出しの完了を、メモリに格納されている完了リストに記録する。先読みエージェントが各グループの末尾に到達する度に、当該グループ内で発見されて完了リストに記録された重要ファイルを、プロセスランチャコンポーネントに通知する。特定の実施例によると、SSDの場合、このような通知を行わないとしてよい。
【0025】
プロセスランチャコンポーネントは、メモリに、開始すべきアプリケーションの従来のリストを格納している。プロセスランチャは、依然としてこのリストに記載されている順序でファイルを起動するが、さまざまな実施形態では、先読みエージェントがファイル(および当該ファイルが含まれるグループの残り)の先読みタスクが完了したと通知するまで、プロセスの起動を遅延させる。このような遅延を設けることによって、プロセスランチャによるプロセスの起動は、実際にはディスクI/Oを発生させない(これは、全てのデータが、プロセスが開始されるまでにはOSキャッシュに入っているためである)。このため、このようなディスクI/Oが、先読みエージェントが実行している、注意深くソートされたシークを低減するI/Oパターンを乱す危険性がなくなる。このような遅延を設けることによって実際には、ブートパフォーマンスを向上させることができる。これは、最適I/Oパターンの場合、I/Oパターンが乱される場合に比べて、ディスク速度が10倍から50倍以上高速化されるためである。
【0026】
図4は、本発明の一実施形態に係る最適化起動プロセスを示すフローチャートである。図4に示すように、方法300は通常、参照番号310で示す一連のフローに図示する先読みエージェントと、参照番号370で示す一連のフローに図示するプロセスランチャとを並行に実行することによって開始されるとしてよい。尚、一般的には、先読みエージェントがプロセスランチャが実行される前にファイルの読出しを開始するべく実行されるとしてよいが、本発明の範囲はこれに限定されない。
【0027】
先読みエージェントについて、OS格納部、例えば大容量メモリから一度に1つのファイルが読み出されて、OSディスクキャッシュに格納される(ブロック320)。読み出されてOSディスクキャッシュに格納されたファイル毎に、当該ファイルが重要ファイルであるか否か、または、グループの末尾であるか否かを判断するとしてよい(ブロック330)。重要ファイルでもグループの末尾でもなければ、ブロック320に戻る。重要ファイルであるか、または、グループの末尾であれば、ブロック340に進んで、(重要ファイルであれば)ファイル指標を完了リストに格納する。ブロック350においてグループの末尾であると判断されれば、ブロック360に進み、完了リストを(通知365によって)プロセスランチャに送信するとしてよい。
【0028】
図4に示すように、プロセスランチャの一連のフローは、開始すべき次のプログラムを特定することから開始される(ブロック375)。プログラムの特定は、上述したように、プロセスランチャが保有しているファイルのリストまたはプロセスランチャがアクセスするファイルのリストを参照して行われるとしてよい。しかし、プロセスランチャは、次のプログラムを実行する前に、このプログラムがOSディスクキャッシュ空間に存在する旨の通知を先読みエージェントから受信するまで、待機状態に入るとしてよい(ブロック380)。したがって、(ファイルが先には存在していなかったことを前提として)この通知を受信すると、プログラムを実行するとしてよい(ブロック390)。実施形態として図4には具体的な実施例を図示したが、先読みエージェントとプロセスランチャとの間でのインタラクションおよび通知は他の実施形態でも可能である。このため、実施形態によれば、高効率なソート順序が提供され、プロセス/デーモンの開始を、先読みの進捗状況に対応付ける(つまり、開始されないようにする)。
【0029】
実施形態は、多くの異なる種類のシステムにおいて実装され得る。図5は、本発明の実施形態に係るシステムを示すブロック図である。図5に示すように、マルチプロセッサシステム500は、ポイント・ツー・ポイント・インターコネクトシステムであって、ポイント・ツー・ポイント・インターコネクト550によって互いに接続された第1のプロセッサ570および第2のプロセッサ580を備える。図5に示すように、プロセッサ570および580はそれぞれ、マルチコアプロセッサであってよく、第1および第2のプロセッサコア(つまり、プロセッサコア574aおよび574bならびにプロセッサコア584aおよび584b)を有するが、プロセッサが備えるコアの数はこれより多くてもよい。プロセッサコアは、本発明の実施形態に応じて、大容量ストレージデバイスに格納されている1以上のOSを起動時にブートするとしてよい。また、プロセッサは、本発明の実施形態に応じて、OSカーネルの一部分を実行して起動ファイルリストの最適化を行うとしてよい。
【0030】
図5を参照しつつ説明を続けると、第1のプロセッサ570はさらに、メモリコントローラハブ(MCH)572と、ポイント・ツー・ポイント(P−P)インターフェース576および578とを有する。同様に、第2のプロセッサ580は、MCH582と、P−Pインターフェース586および588とを有する。図5に示すように、MCH572および582は、プロセッサを対応するメモリ、つまりメモリ532およびメモリ534に接続する。メモリ532および534は、メインメモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM))のうち対応するプロセッサに局所的に結合されている部分であってよく、ブートプロセス中にアクセスされるべきファイルを格納するOSディスクキャッシュとして機能するとしてよい。第1のプロセッサ570および第2のプロセッサ580はそれぞれ、P−Pインターコネクト552および554によって、チップセット590に接続されるとしてよい。図5に示すように、チップセット590は、P−Pインターフェース594および598を含む。
【0031】
さらに、チップセット590は、P−Pインターコネクト539によってチップセット590と高機能グラフィクスエンジン538とを接続するインターフェース592を含む。チップセット590はまた、インターフェース596によって第1のバス516に接続されるとしてもよい。図5に示すように、第1のバス516には、さまざまな入出力(I/O)デバイス514、および、第1のバス516を第2のバス520に接続するバスブリッジ518が接続されるとしてよい。第2のバス520に接続されるさまざまなデバイスには、例えば、キーボード/マウス522、通信デバイス526、および、コード530を含み得るディスクドライブ等のデータストレージユニット528が含まれ、一実施形態ではOSを含む。言うまでもなく、他の実施形態は、OSが格納されるディスクドライブに代えて、または、そのようなディスクドライブに加えて、SSDを備えるシステムとして実施されるとしてもよい。また、第2のバス520には、オーディオI/O524が接続されるとしてもよい。
【0032】
実施形態は、コードとして実装されて、命令を格納する格納媒体に格納されるとしてもよい。当該命令を用いて、当該命令を実行するようにシステムをプログラムし得る。格納媒体としては、これらに限定されるものではないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク(登録商標)リードオンリーメモリ(CD−ROM)、書き換え可能コンパクトディスク(登録商標)(CD−RW)および光磁気ディスク等の任意の種類のディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能リードオンリーメモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM(登録商標))、磁気カードあるいは光カード、または、電子命令を格納するのに適したその他の任意の種類の媒体、を含むとしてよい。
【0033】
限られた数の実施形態を参照して本発明を説明したが、当業者であれば、数多くの変形例および変更例に想到するであろう。本願特許請求の範囲は、そのような変形例および変更例もすべて、本発明の真の精神および範囲に含まれるものとして扱う。
(項目1)
コンピュータシステムのプロセッサにおいて、上記コンピュータシステムのオペレーティングシステムブートプロセス(OSブートプロセス)中にアクセスされたファイルのリストを作成して、上記OSブートプロセスをプロファイリングする作成段階と、
上記プロセッサにおいて、上記ファイルがアクセスされたのが、ソリッドステート媒体からか、または、回転式媒体からかを判断する判断段階と、
上記ファイルのリストを最適化して、後続する上記コンピュータシステムのOSブートプロセスにおいて利用される最適化ファイルリストを作成する最適化段階と、
上記コンピュータシステムの格納媒体に上記最適化ファイルリストを格納する格納段階と、
を備え、
上記リストは、上記アクセスされたファイルの各々のファイル識別子と、上記アクセスされたファイルの各々がアクセスされたタイミングを示すタイミング指標とを含み、
上記最適化段階は、上記ファイルが上記ソリッドステート媒体からアクセスされた場合は第1の最適化技術に応じて実行され、上記ファイルが上記回転式媒体からアクセスされた場合は第2の最適化技術に応じて実行される、
方法。
(項目2)
上記最適化ファイルリストを用いて上記OSブートプロセスを実行して、上記アクセスされたファイルを取得して上記アクセスされたファイルの第1の部分をOSディスクキャッシュにロードして、且つ、上記第1の部分の上記ロードの完了の通知をプロセスランチャに送る実行段階、
をさらに備え、
上記プロセスランチャは、上記通知を受け取るまで上記第1の部分の第1のファイルを実行するのを待ち、入出力アクセスが上記第1のファイルを取得しないようにする、
項目1に記載の方法。
(項目3)
上記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定する特定段階、
をさらに備える項目2に記載の方法。
(項目4)
上記通知を送ることは、上記最適化ファイルリストに含まれる上記第1の種類のファイルを特定する上記特定段階を含む、
項目3に記載の方法。
(項目5)
上記第1の最適化技術は、初回利用タイミングに応じて上記アクセスされたファイルをソートして、上記最適化ファイルリストを形成することを含む、
項目1に記載の方法。
(項目6)
上記第2の最適化技術は、上記初回利用タイミングに応じて上記アクセスされたファイルをソートして、ソート後の上記アクセスされたファイルを複数のグループに分割して、上記複数のグループのそれぞれを上記回転式媒体における位置に応じて再度ソートすることを含む、
項目5に記載の方法。
(項目7)
上記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定するファイル特定段階と、
上記複数のグループの間の境界を特定する境界特定段階と、
をさらに備える項目6に記載の方法。
(項目8)
第1のグループに同位置ファイルを追加する追加段階、
をさらに備え、
上記同位置ファイルは、上記回転式媒体において、上記第1のグループのファイルと略同様の位置にあり、
上記同位置ファイルは、上記OSブートプロセスにおいて、別のグループのファイルと共にOSディスクキャッシュからアクセスされる、
項目6に記載の方法。
(項目9)
オペレーティングシステム(OS)の最適化ルーチンを実行するプロセッサと、
上記プロセッサに接続されており、上記OSの少なくとも一部分を格納するOSディスクキャッシュと、
上記OSディスクキャッシュに接続されており、上記OSを格納するストレージデバイスと、
を備え、
上記最適化ルーチンは、上記OSのブート中に実行されるファイルのリストをソートして最適化ファイルリストを生成して、上記ストレージデバイスから上記ファイルを取得するために必要な入出力アクセス時間を低減するルーチンであり、
OSブート中に、上記最適化ファイルリストを用いて、上記OSディスクキャッシュに上記OSの第1の部分をロードして、上記第1の部分の上記ロードの完了の通知をプロセスランチャに送り、
上記プロセスランチャは、上記通知を受け取るまで、上記OSディスクキャッシュから上記第1の部分の第1のファイルにアクセスするのを待ち、入出力アクセスが上記第1のファイルを取得しないようにする、
システム。
(項目10)
上記最適化ルーチンは、上記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定し、
上記OSブート中に上記通知を送ることは、上記第1の部分に含まれる上記第1の種類のファイルを特定することを含む、
項目9に記載のシステム。
(項目11)
上記最適化ルーチンは、上記ファイルがソリッドステート媒体からアクセスされた場合は、第1の最適化技術に応じて上記ファイルの上記リストを最適化して、上記ファイルが回転式媒体からアクセスされた場合は、第2の最適化技術に応じて上記ファイルの上記リストを最適化する、
項目9に記載のシステム。
(項目12)
上記第1の最適化技術は、初回利用タイミングに応じて、アクセスされた上記ファイルをソートして、上記最適化ファイルリストを形成することを含み、上記第2の最適化技術は、上記初回利用タイミングに応じて上記ファイルをソートして、ソート後の上記ファイルを複数のグループに分割して、上記複数のグループのそれぞれを上記回転式媒体における位置に応じて再度ソートすることを含む、
項目11に記載のシステム。
(項目13)
上記第2の最適化技術は、第1のグループに同位置ファイルを入れることを含み、
上記同位置ファイルは、上記回転式媒体において、上記第1のグループのファイルと略同様の位置にあり、
上記同位置ファイルは、上記OSブート中に、別のグループのファイルと共に上記OSディスクキャッシュからアクセスされる、
項目12に記載のシステム。
(項目14)
上記最適化ルーチンは、プロファイルコレクタと、プロファイルオプティマイザと、先読みエージェントと、上記プロセスランチャとを含む、
項目9に記載のシステム。
(項目15)
上記プロファイルコレクタおよび上記プロファイルオプティマイザは、上記システムの初回起動の際に実行され、上記初回起動の後は上記OSに対してサービスパック更新が行われた後でのみ実行される、
項目14に記載のシステム。
(項目16)
複数の命令を格納する機械アクセス可能格納媒体を備える物品であって、上記複数の命令が実行されると、システムは、
大容量ストレージデバイスに格納されているオペレーティングシステム(OS)の所定の部分がOSディスクキャッシュに格納されるまで、上記OSから1つのファイルを順次読み出して、上記1つのファイルを上記OSディスクキャッシュに格納して、上記1つのファイルが第1の種類であれば完了リストにファイル指標を格納し、
上記OSの上記所定の部分が格納されると、プロセスランチャに上記完了リストを送信し、
上記プロセスランチャがアクセスすべきファイルのリストに含まれている次のファイルを特定して、上記OSディスクキャッシュから上記次のファイルにアクセスし、
上記プロセスランチャは、上記OSディスクキャッシュに上記次のファイルがない場合には、上記完了リストの送信を受け取るまで、待機状態となる、
物品。
(項目17)
さらに複数の命令を格納しており、上記複数の命令が実行されると、上記システムは、
OSブート中にアクセスされたファイルのリストを作成して、上記OSブートをプロファイリングし、
上記リストは、上記アクセスされたファイルの各々のファイル識別子と、上記アクセスされたファイルの各々がアクセスされたタイミングを示すタイミング指標とを含む、
項目16に記載の物品。
(項目18)
さらに複数の命令を格納しており、上記複数の命令が実行されると、上記システムは、
上記ファイルがアクセスされたのがソリッドステート媒体からか、または、回転式媒体からかを判断し、
上記ファイルが上記ソリッドステート媒体からアクセスされた場合は第1の最適化技術に応じて上記ファイルのリストを最適化し、上記ファイルが上記回転式媒体からアクセスされた場合は第2の最適化技術に応じて上記ファイルのリストを最適化する、
項目17に記載の物品。
(項目19)
上記複数の命令は、プロファイルコレクタと、プロファイルオプティマイザと、先読みエージェントと、上記プロセスランチャとを含む、
項目17に記載の物品。
(項目20)
上記プロファイルコレクタおよび上記プロファイルオプティマイザは、上記システムの初回起動の際に実行され、上記初回起動の後は上記OSに対してサービスパック更新が行われた後でのみ実行される、
項目19に記載の物品。
(項目16)
大容量ストレージデバイスに格納されているオペレーティングシステム(OS)の予め定められた部分がOSディスクキャッシュに格納されるまで、上記OSから1つのファイルを順次読み出して、上記1つのファイルを上記OSディスクキャッシュに格納して、上記1つのファイルが第1の種類であれば完了リストにファイル指標を格納する手順、
上記OSの上記予め定められた部分が格納されると、プロセスランチャに上記完了リストを送信する手順、および、
上記プロセスランチャがアクセスすべきファイルのリストに含まれている次のファイルを特定して、上記OSディスクキャッシュから上記次のファイルにアクセスする手順、
をコンピュータに実行させ、
上記プロセスランチャは、上記OSディスクキャッシュに上記次のファイルがない場合には、上記完了リストの送信を受け取るまで、待機状態となる、
プログラム。
(項目17)
OSブート中にアクセスされたファイルのリストを作成して、上記OSブートをプロファイリングする手順、
をコンピュータにさらに実行させ、
上記リストは、上記アクセスされたファイルの各々のファイル識別子と、上記アクセスされたファイルの各々がアクセスされたタイミングを示すタイミング指標とを含む、
項目16に記載のプログラム。
(項目18)
上記ファイルがアクセスされたのがソリッドステート媒体からか、または、回転式媒体からかを判断する手順、および、
上記ファイルが上記ソリッドステート媒体からアクセスされた場合は第1の最適化技術に応じて上記ファイルのリストを最適化し、上記ファイルが上記回転式媒体からアクセスされた場合は第2の最適化技術に応じて上記ファイルのリストを最適化する手順、
をコンピュータにさらに実行させる、
項目17に記載のプログラム。
(項目19)
コンピュータを、プロファイルコレクタ、プロファイルオプティマイザ、先読みエージェント、および上記プロセスランチャとして機能させる、
項目17に記載のプログラム。
(項目20)
上記プロファイルコレクタおよび上記プロファイルオプティマイザは、上記システムの初回起動の際に実行され、上記初回起動の後は上記OSに対してサービスパック更新が行われた後でのみ実行される、
項目19に記載のプログラム。

【特許請求の範囲】
【請求項1】
コンピュータシステムのプロセッサにおいて、前記コンピュータシステムのオペレーティングシステムブートプロセス(OSブートプロセス)中にアクセスされたファイルのリストを作成して、前記OSブートプロセスをプロファイリングする作成段階と、
前記プロセッサにおいて、前記ファイルがアクセスされたのが、ソリッドステート媒体からか、または、回転式媒体からかを判断する判断段階と、
前記ファイルのリストを最適化して、後続する前記コンピュータシステムのOSブートプロセスにおいて利用される最適化ファイルリストを作成する最適化段階と、
前記コンピュータシステムの格納媒体に前記最適化ファイルリストを格納する格納段階と、
を備え、
前記リストは、前記アクセスされたファイルの各々のファイル識別子と、前記アクセスされたファイルの各々がアクセスされたタイミングを示すタイミング指標とを含み、
前記最適化段階は、前記ファイルが前記ソリッドステート媒体からアクセスされた場合は第1の最適化技術に応じて実行され、前記ファイルが前記回転式媒体からアクセスされた場合は第2の最適化技術に応じて実行される、
方法。
【請求項2】
前記最適化ファイルリストを用いて前記OSブートプロセスを実行して、前記アクセスされたファイルを取得して前記アクセスされたファイルの第1の部分をOSディスクキャッシュにロードして、且つ、前記第1の部分の前記ロードの完了の通知をプロセスランチャに送る実行段階、
をさらに備え、
前記プロセスランチャは、前記通知を受け取るまで前記第1の部分の第1のファイルを実行するのを待ち、入出力アクセスが前記第1のファイルを取得しないようにする、
請求項1に記載の方法。
【請求項3】
前記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定する特定段階、
をさらに備える請求項2に記載の方法。
【請求項4】
前記通知を送ることは、前記最適化ファイルリストに含まれる前記第1の種類のファイルを特定する前記特定段階を含む、
請求項3に記載の方法。
【請求項5】
前記第1の最適化技術は、初回利用タイミングに応じて前記アクセスされたファイルをソートして、前記最適化ファイルリストを形成することを含む、
請求項1から請求項4までの何れか一項に記載の方法。
【請求項6】
前記第2の最適化技術は、前記初回利用タイミングに応じて前記アクセスされたファイルをソートして、ソート後の前記アクセスされたファイルを複数のグループに分割して、前記複数のグループのそれぞれを前記回転式媒体における位置に応じて再度ソートすることを含む、
請求項5に記載の方法。
【請求項7】
前記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定するファイル特定段階と、
前記複数のグループの間の境界を特定する境界特定段階と、
をさらに備える請求項6に記載の方法。
【請求項8】
第1のグループに同位置ファイルを追加する追加段階、
をさらに備え、
前記同位置ファイルは、前記回転式媒体において、前記第1のグループのファイルと略同様の位置にあり、
前記同位置ファイルは、前記OSブートプロセスにおいて、別のグループのファイルと共にOSディスクキャッシュからアクセスされる、
請求項6又は請求項7に記載の方法。
【請求項9】
オペレーティングシステム(OS)の最適化ルーチンを実行するプロセッサと、
前記プロセッサに接続されており、前記OSの少なくとも一部分を格納するOSディスクキャッシュと、
前記OSディスクキャッシュに接続されており、前記OSを格納するストレージデバイスと、
を備え、
前記最適化ルーチンは、前記OSのブート中に実行されるファイルのリストをソートして最適化ファイルリストを生成して、前記ストレージデバイスから前記ファイルを取得するために必要な入出力アクセス時間を低減するルーチンであり、
OSブート中に、前記最適化ファイルリストを用いて、前記OSディスクキャッシュに前記OSの第1の部分をロードして、前記第1の部分の前記ロードの完了の通知をプロセスランチャに送り、
前記プロセスランチャは、前記通知を受け取るまで、前記OSディスクキャッシュから前記第1の部分の第1のファイルにアクセスするのを待ち、入出力アクセスが前記第1のファイルを取得しないようにし、
前記最適化ルーチンは、前記ファイルがソリッドステート媒体からアクセスされた場合は、第1の最適化技術に応じて前記ファイルの前記リストを最適化して、前記ファイルが回転式媒体からアクセスされた場合は、第2の最適化技術に応じて前記ファイルの前記リストを最適化する、
システム。
【請求項10】
前記最適化ルーチンは、前記最適化ファイルリストに含まれる第1の種類のファイルを重要性指標によって特定し、
前記OSブート中に前記通知を送ることは、前記第1の部分に含まれる前記第1の種類のファイルを特定することを含む、
請求項9に記載のシステム。
【請求項11】
前記第1の最適化技術は、初回利用タイミングに応じて、アクセスされた前記ファイルをソートして、前記最適化ファイルリストを形成することを含み、前記第2の最適化技術は、前記初回利用タイミングに応じて前記ファイルをソートして、ソート後の前記ファイルを複数のグループに分割して、前記複数のグループのそれぞれを前記回転式媒体における位置に応じて再度ソートすることを含む、
請求項9又は請求項10に記載のシステム。
【請求項12】
前記第2の最適化技術は、第1のグループに同位置ファイルを入れることを含み、
前記同位置ファイルは、前記回転式媒体において、前記第1のグループのファイルと略同様の位置にあり、
前記同位置ファイルは、前記OSブート中に、別のグループのファイルと共に前記OSディスクキャッシュからアクセスされる、
請求項11に記載のシステム。
【請求項13】
前記最適化ルーチンは、プロファイルコレクタと、プロファイルオプティマイザと、先読みエージェントと、前記プロセスランチャとを含む、
請求項9から請求項12までの何れか一項に記載のシステム。
【請求項14】
前記プロファイルコレクタおよび前記プロファイルオプティマイザは、前記システムの初回起動の際に実行され、前記初回起動の後は前記OSに対してサービスパック更新が行われた後でのみ実行される、
請求項13に記載のシステム。
【請求項15】
コンピュータに、請求項1から請求項8までの何れか一項に記載の方法を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−33491(P2013−33491A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2012−212875(P2012−212875)
【出願日】平成24年9月26日(2012.9.26)
【分割の表示】特願2010−90099(P2010−90099)の分割
【原出願日】平成22年4月9日(2010.4.9)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】