| |||
目的 | |||
相互に依存し合ったサブシステムを,順序良く起動する.
| |||
別名 | |||
ブートストラップ(bootstrap),ランレベル(run level) | |||
動機 | |||
リアルタイムシステムや OS などのシステムの起動を考える. システムは複数のサブシステムから構成されており,それらが相互に 依存し合っているため,システム全体の起動時に各サブシステム を1つずつ一度に運用状態に起動することができない. 例えば,ネットワークはファイルシステムに依存し,ファイルシステムも ネットワークに依存するなど. この様な場合,各サブシステムが提供するサービスを分割し, 各サブシステムに渡るサービスの起動手順を確立して徐々に全体を立ち上げ る必要がある.しかし,一般にその手順は複雑になり,また,手順の取り決めは 全サブシステムの詳細な知識が必要となる. サブシステムの状態を,「停止」と「運用中」の2つに分けるのではなく, その中間レベルの状態(複数の場合もある)を定義する. 起動時は,一旦すべてのサブシステムを中間レベルで起動し,次に運用状態で 起動するといった他段階のブートストラップを行なうことで,相互依存性の問題を 回避することができる.また,中間レベルを複数持つ場合,それぞれの中間レベル 状態をシステム全体に渡って系統的に定義することができれば,起動手順の見通しが 立てやすくなる. この中間レベルの状態を表現するため,「ランレベル」という整数を定義し, システム全体で各ランレベルに関する申し合わせを規定することで, 起動手順に関する系統的な取り決めとする. | |||
適用可能性 | |||
| |||
構造 | |||
|
構成要素 | |
| |
協調関係 | |
|
実装 | ||
実装に置いては,以下の点を考慮する必要がある.
| ||
バリエーション | ||
以下のようなバリエーションが考えられる.
| ||
結果 | ||
| ||
サンプルコード | ||
省略
| ||
使用例 | ||
| ||
関連するパターン | ||
Kenji Hiranabe <hiranabe@esm.co.jp> Last modified: Sat May 1 15:06:55 1999 |