(57)【要約】【課題】ＯＳが使用するメモリ領域を小さくすることを目的とする。【解決手段】オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、パラメータとして設定可能な値の最大値を検出する。取得した最大値に応じてパラメータを管理するコントロールブロックのメモリサイズを決定し、決定したメモリサイズのコントロールブロックを利用してオペレーティングシステムを構築する。【選択図】図３
2010224907.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出し、
前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定し、
前記決定したメモリサイズのコントロールブロックを利用して前記オペレーティングシステムを構築する
ことを特徴とするオペレーティングシステムの設定方法。
【請求項２】
前記メモリサイズを、前記最大値を表現可能な最小のメモリの大きさに設定する
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メモリサイズの算出の際に、前記メモリサイズとして指定できる値に対応する１つ以上のサイズ閾値と前記最大値を比較し、
前記最大値以上のサイズ閾値のうちの最小の値に対応するメモリサイズを前記メモリサイズとすることを特徴とする請求項１に記載の方法。
【請求項４】
前記パラメータとして、前記オペレーティングシステムで用いられるカーネルのオブジェクト数、タスク数、タスク優先度、セマフォ数、セマフォカウント数の１つ以上を用いて前記メモリサイズが算出されることを特徴とする請求項１に記載の方法。
【請求項５】
オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出する最大値検出部と、
前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定するメモリサイズ決定部と、
決定した前記メモリサイズを出力する出力部
を備えることを特徴とするコンフィグレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムの構築に関わり、例えば、リアルタイム・オペレーティング・システム（リアルタイムＯＳ）に適用可能な技術である。
【背景技術】
【０００２】
オペレーティングシステム（operating system、ＯＳ）上でアプリケーションが動作するシステムでは、ＯＳが使用するメモリ領域を小さくすると、そのシステムにおいてアプリケーションが使用可能なメモリ領域を大きくすることができる。
【０００３】
アプリケーションが使用可能なメモリ領域を大きくするために、メモリ容量が潤沢ではないシステムでは、ＯＳが使用するメモリ領域を小さくすることが特に望ましい。例えば、マイクロコンピュータを使用する組み込みシステムでは、ＯＳの使用するメモリ領域を小さくしてアプリケーションに割り当て可能なメモリ領域を大きくすることが求められる。また、組み込みシステムに限らず、ＯＳを用いる他の様々なシステムにおいても、ＯＳに割り当てられるメモリ領域を小さくすることにより、アプリケーションに割り当て可能なメモリ領域を大きくすることが望ましい。
【０００４】
そこで、ＯＳが使用するメモリ領域を小さくするための開発が進められているが、ＯＳの使用するメモリ領域を小さくすることは容易ではない。関連する技術としては、例えば、オブジェクト定義ファイル中のオブジェクト数をアプリケーションプログラム中のオブジェクト使用数に合うように調整できるオブジェクト数調整装置が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１４９１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＯＳが使用するメモリ領域を小さくすると、アプリケーションへの割り当てが可能なメモリ領域を大きくすることができる。そのため、ＯＳが使用するメモリ領域を小さくすることが求められる。
【０００７】
本発明では、ＯＳが使用するメモリ領域を小さくすることを目的とする。
【課題を解決するための手段】
【０００８】
第１の実施形態では、オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出し、前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定し、前記決定したメモリサイズのコントロールブロックを利用して前記オペレーティングシステムを構築するオペレーティングシステムの設定方法を提供する。
【発明の効果】
【０００９】
ＯＳが使用するメモリ領域を小さくすることができる。
【図面の簡単な説明】
【００１０】
【図１】システム構成の一例を説明する図である。
【図２】実施形態（１）にかかるオペレーティングシステムの設定方法の一例を説明するフローチャートである。
【図３】実施形態（２）のオペレーティングシステムの設定方法の一例を説明する図である。
【図４】コンフィグ設定ファイルの一例を示す図（その１）である。
【図５】コンフィグ情報ファイルの一例を示す図である。
【図６】セマフォコントロールブロックの設定に用いられるファイルの一例を示す図である。
【図７】コンフィグレータにおいて行われる処理の一例を詳細に説明するフローチャートである。
【図８】タスク優先度に応じた待ち行列の一例を説明する図である。
【図９】コンフィグ設定ファイルの一例を示す図（その２）である。
【図１０】タスクのコントロールブロックの設定に用いられるファイルの一例を示す図である。
【図１１】実施形態（１）〜（３）に示した方法によりメモリサイズの調整が行われた場合の効果を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本実施形態について、図面を参照しながら詳細に説明する。
図１は、オペレーティングシステムの設定方法が用いられるシステム構成の一例を説明する図である。このシステムには、プロセッサ１、メモリ２、入力部３、モニタ４、コンフィグレータ５が含まれており、これらは、バスを通してデータの入出力をすることができる。
【００１２】
プロセッサ１は、ＯＳやアプリケーションを読み込んで処理する。プロセッサ１は、組み込みシステムに用いられるマイクロコンピュータのプロセッサとすることができ、また、パーソナルコンピュータに搭載されるＣＰＵ（Central Processing Unit）などの任意のプロセッサとすることもできる。
【００１３】
メモリ２は、プロセッサ１がアクセスできるメモリ領域であり、プロセッサ１の処理対象となるプログラムなどを格納する他、ＯＳやアプリケーションで指定される処理に用いられるデータを格納する領域でもある。メモリ２も、マイクロコンピュータのメモリとすることができるが、ＯＳを用いる他の任意のシステムで用いられるメモリとすることもできる。
【００１４】
入力部３は、データの入力に用いられ、例えば、コンフィグレータ５などへの情報ファイルの入力に用いられる。入力部３は、キーボード、マウスなど、任意の入力デバイスを用いることができる。モニタ４は、入力部３から入力される情報や、コンフィグレータ５での処理などを視覚化する際に用いられ、ディスプレイなど任意の表示装置を用いることができる。
【００１５】
コンフィグレータ５は、実施形態にかかわる動作として、プロセッサ１がＯＳの処理を行うためにメモリ２に予約するメモリ領域の設定を行う。コンフィグレータ５は、入力部３から入力された情報を用いて、ＯＳのコントロールブロックに用いられるメモリサイズを算出して、得られた結果をファイルなどの形式で出力する。コンフィグレータ５の計算結果を記録したファイルに基づいてカスタマイズされたＯＳがコンパイラ（図示せず）などによって生成される。なお、実装に応じて、コンフィグレータ５中で、コンパイラ、アセンブラ、リンカなども動作できるように設計し、コンフィグレータ５から直接、カスタマイズされたＯＳが出力されるようにすることもできる。
【００１６】
図２は、実施形態（１）にかかるオペレーティングシステムの設定方法の一例を説明するフローチャートである。コンフィグレータ５は、ＯＳで使用するオブジェクト数、タスク優先度などを検出する（ステップＳ１）。ここでコンフィグレータ５が抽出する値は、ＯＳのカーネル、ソフトウェア部品の構成、もしくは、オブジェクトの初期状態の定義に用いられる任意のパラメータとすることができる。コンフィグレータ５がオブジェクト数などを抽出するために用いる情報は任意の形式でコンフィグレータ５に入力することができ、例えば、入力部３から入力された設定ファイルを使用することができる。
【００１７】
なお、各パラメータについて、そのパラメータがとりうる値のうちの最大値を「最大数」と記載することがある。例えば、パラメータがオブジェクト数であれば、最大値（最大数）は、オブジェクトの識別子として用いられる最大の値である。オブジェクト数の最大値は、例えば、設定対象のＯＳで使用可能なオブジェクトの総数とすることができるが、実装に応じて、オブジェクトの総数以外の値をオブジェクト数の最大値として割り当てることもできる。また、このような最大値もしくは最大数は、他のパラメータについてもオブジェクト数と同様に、ユーザや設計者が実装に応じて設定できる。
【００１８】
コンフィグレータ５は、抽出したオブジェクト数などに応じてコントロールブロックのメモリサイズを算出し、算出結果をコンフィグ情報ファイルに書き込んで出力する（ステップＳ２）。すると、出力されたコンフィグ情報ファイルを用いて、コントロールブロックのメモリサイズが設定される（ステップＳ３）。
【００１９】
図３は、実施形態（２）のオペレーティングシステムの設定方法の一例を説明する図である。図３を参照しながら、セマフォ数に応じてコントロールブロックのメモリサイズを設定する場合を例として具体的に説明する。ここでは、プロセッサ１とメモリ２が、組み込みシステムに用いられる１つのマイクロコンピュータに搭載されており、この組み込みシステムにおいて用いられるＯＳは、リアルタイムＯＳであるとする。また、コンフィグレータ５に入出力されるソースファイルを記載するプログラム言語の例としてＣ言語を用いた場合を例として説明しているが、使用する言語はＣ言語に限られず、任意のプログラム言語とすることができる。
【００２０】
まず、入力部３を通してコンフィグ設定ファイル５１がコンフィグレータ５に入力される。コンフィグ設定ファイル５１には、ＯＳで動作するカーネル、ソフトウェア部品の構成、オブジェクトの初期状態などが定義されている。すなわち、コンフィグ設定ファイル５１の記載内容に応じた設定をすることにより、ＯＳの使用するメモリ領域の大きさを調節できる。コンフィグ設定ファイル５１は、ＯＳの開発者、ユーザなどが、設定しようとするＯＳに応じて初期状態の定義に用いる数値などを設定することによって作成される。
【００２１】
コンフィグレータ５は、ＯＳで用いられるセマフォの最大数を、コンフィグ設定ファイル５１から抽出する。例えば、図４に示すコンフィグ設定ファイル５１が入力されたとすると、コンフィグ設定ファイル５１の２行目において、次のようにセマフォの最大数が記載されている。
#define CFN_MAX_SEMID        16
この情報を読み込むと、コンフィグレータ５は、設定対象のＯＳでは最大で１６個のセマフォが動作することを認識し、設定対象のＯＳでは１６通りの識別子をセマフォの識別子（セマフォＩＤ）として指定する可能性があると判断する。そこで、コンフィグレータ５は、１バイト以下のデータ列で１６種類のセマフォＩＤを表現することができると判定して、コントロールブロック中でセマフォＩＤの指定に用いるメモリサイズを１バイトに決定する。
【００２２】
次に、コンフィグレータ５は、セマフォＩＤの指定に用いられるメモリサイズを１バイトにすることを書き込んだコンフィグ情報ファイル５２を出力する。図５は、出力されるコンフィグ情報ファイル５２の一例を表す図である。セマフォＩＤのメモリサイズの指定は、図５の３行目に示すように、次のように記載される。
typedef B        SEMID_TYPE; 
ここで、「typedef B」は、引数を１バイトのデータとして扱う関数であり、「SEMID_TYPE」に１バイトのメモリサイズを確保するように指定される。
【００２３】
図６は、セマフォコントロールブロックの設定に用いられるファイルの一例を示す図である。図６は、セマフォＩＤの指定に用いられるメモリサイズ（矢印を付した行）を「SEMID_TYPE」の値に設定するように指定している。図３に示すように、カーネルソースファイル６１は、コンフィグ情報ファイル５２やユーザプログラムソース６２とともに、コンパイラ６に入力され、コンパイラ６、アセンブラ７、リンカ８によって実行可能オブジェクト９に変換される。このとき、カーネルソースファイル６１は、実行可能オブジェクト９が生成される過程において、適宜、コントロールブロックを呼び出す。そのため、図６に示したセマフォコントロールブロックに関する設定とコンフィグ情報ファイル５２に基づいて、セマフォコントロールブロックに１バイトが割り当てられた実行可能オブジェクト９が生成される。
【００２４】
前述のように、コンフィグレータ５が指定したメモリサイズに合わせてコントロールブロックで用いるメモリの大きさを設定することにより、ＯＳが使用するメモリ領域を小さくできる。例えば、セマフォＩＤについてのコントロールブロックのメモリサイズが４バイトの固定値に設定されていると、１６個のセマフォの各々で４バイトのメモリをＩＤの指定のために確保することになる。このため、４×１６＝６４バイトのメモリがセマフォＩＤの指定に確保されることになるが、実際には１６種類のＩＤの記載にしか用いられないため、メモリが無駄に確保されている。
【００２５】
一方、本実施形態にかかる方法では、セマフォ数が１６個であるため、各セマフォについて１バイトがセマフォＩＤを指定するコントロールブロックに用いられる。つまり、セマフォＩＤを指定するコントロールブロックに用いられるメモリ領域は、１×１６＝１６バイトである。従って、本実施形態にかかる設定方法を用いることにより、セマフォＩＤを指定するコントロールブロックのメモリサイズを減らすことができる。このように、コントロールブロックのメモリサイズを小さくすることができ、ＯＳのデータサイズを小さくすることができる。結果として、アプリケーションへの割り当てが可能なメモリ領域を大きくすることができる。
【００２６】
なお、前述の例では、１６個のＩＤを識別するために各コントロールブロックに１バイトを割り当てる設定としたが、実装形態によっては、１バイト以下の値を設定することも可能である。また、セマフォ数に限られず、ＯＳのカーネルの構成を定義するときに用いられる任意のパラメータについて、同様にコントロールブロックの大きさを設定することができる。
【００２７】
図７は、実施形態（３）にかかるコンフィグレータ５において行われる処理の一例を詳細に説明するフローチャートである。この例では、コントロールブロックのメモリサイズとして設定する値を、１バイト、２バイト、４バイトの３種類のいずれかとし、それぞれの値に応じた閾値を予め設定している。コンフィグレータ５は、メモリサイズを設定する対象のパラメータの最大値を閾値と比較し、その最大数を表現可能な最小の閾値をコントロールブロックのメモリサイズとして出力する。
【００２８】
設定ファイル（コンフィグ設定ファイル）が入力されると、コンフィグレータ５はパラメータがとりうる値の最大値（最大数）を抽出する（ステップＳ１１、１２、２１）。ステップＳ２１において、セマフォなどのオブジェクトの数などの最大値を取得すると、コンフィグレータ５は、最大値を最も小さい第１の閾値と比較する。ここでは、コントロールブロックのメモリサイズの最小値を１バイトに設定しているので、第１の閾値は、１バイトで表現可能な数から１を減じることで得られる「１２７」である（ステップＳ２２）。最大値が１２７以下の場合は、そのオブジェクトのコントロールブロックのメモリサイズを１バイトに設定する（ステップＳ２３）。
【００２９】
最大値が第１の閾値（１２７）よりも大きい場合には、第２の閾値と最大値を比較する。第２の閾値に対応するメモリサイズは２バイトであるため、第２の閾値は、３２７６７である（ステップＳ２４）。最大値が３２７６７以下の場合は、２バイトで表現可能であるため、設定対象のパラメータのコントロールブロックを２バイトに設定する（ステップＳ２５）。一方、最大値が第２の閾値よりも大きい場合には、コントロールブロックのメモリサイズに４バイトを設定する（ステップＳ２６）。
【００３０】
あるオブジェクトのコントロールブロックを設定し終わると、コンフィグレータ５は、設定を行うオブジェクトが他にあるかを確認し、設定対象となる他のオブジェクトについてコントロールブロックのメモリサイズを設定する（ステップＳ２７）。メモリサイズの設定が終わると、設定した値をコンフィグ情報ファイル５２として出力する（ステップＳ２８）。
【００３１】
例えば、図４に示したコンフィグ設定ファイル５１では、１行目でタスク数についての最大値が以下のように指定されている。
#define CFN_MAX_TSKID        345
そこで、コンフィグレータ５は、コンフィグ設定ファイル５１で設定されているＯＳではタスクが３４５個あると認識し、タスク数の最大値を３４５とする。最大値は、第１の閾値より大きく第２の閾値よりも小さいため、コンフィグレータ５は、タスク数に関するコントロールブロックに２バイトを割り当ててコンフィグ情報ファイル５２に出力する（ステップＳ２４、２５）。出力結果は、図５の１行目に示したように、以下のとおりになる。
typedef H        TSKID_TYPE; 
ここで、「typedef H」は、「TSKID_TYPE」を２バイトのデータとする旨の命令である。
【００３２】
タスクＩＤを管理するためのメモリサイズについての設定が終わると、次のオブジェクトとして、例えば、コンフィグ設定ファイル５１の２行目にあるセマフォが処理対象として選択される（ステップＳ２７）。前述のとおり、図４に示したファイルでは、セマフォの最大数は１６個と定義されている。そこで、セマフォＩＤの最大値は第１の閾値よりも小さいため、セマフォＩＤを管理するためのメモリサイズに１バイトが割り当てられる（ステップＳ２２、２３）。同様に、メモリサイズを設定する対象のパラメータがなくなるまで、コンフィグレータ５はメモリサイズの割り当てを行う。
【００３３】
図７を参照しながら説明したように、コンフィグレータ５は、パラメータの最大値に応じてコントロールブロックのメモリサイズを指定することができる。このため、パラメータごとに適切なメモリサイズのコントロールブロックを設定して、ＯＳの使用するメモリ領域を削減しつつ、パラメータの指定に要求されるメモリ領域をＯＳに確保できる。
【００３４】
なお、図７の例では、メモリサイズを１バイト〜４バイトの３種類から選択する例を示したが、メモリサイズの大きさや種類は任意である。また、設定可能なメモリサイズに合わせて閾値の数や種類も変更することができる。
【００３５】
図８は、タスク優先度に応じた待ち行列の一例を説明する図である。図８では、タスクの優先度が３つあり、タスクＡ〜Ｄの４つのタスクが優先度に応じて管理される場合の例を示している。タスクＡが優先度１、タスクＢとタスクＣが優先度２、タスクＤが優先度３であると、図８に示したように優先度別にタスクＡ〜Ｄがキューに保持される。
【００３６】
タスク優先度も各タスクが備えているパラメータのひとつであり、図７のフローチャートに示した方法でメモリサイズの設定が可能である。例えば、図９に示すようなコンフィグ設定ファイル５１には、以下のように、タスク数の最大値が５４３２１個で、優先度の最大数は１６であることが記載されている。
CFN_MAX_TSKID    54321
CFN_MAX_TSKPRI      16
コンフィグレータ５は、タスク数の最大値を第１および第２の閾値と比較し、第２の閾値よりも最大値が大きいことから、メモリサイズとして４バイトを割り当てる（ステップＳ２２、２４、２６）。次に、コンフィグレータ５は、優先度の最大値を閾値と比較し、優先度の最大値は第１の閾値より小さいことから、メモリサイズに１バイトを割り当てる（ステップＳ２１〜２３）。コンフィグレータ５は、タスク数の指定に用いるメモリサイズリサイズを「ＴＳＫＩＤ＿ＴＹＰＥ」、優先度の指定に用いるメモリサイズを「ＴＳＫＰＲＩ＿ＴＹＰＥ」として、決定したメモリサイズをコンフィグ情報ファイル５２に出力する（ステップＳ２８）。
【００３７】
また、図９のコンフィグ設定ファイル５１では、フラグやメールボックスなどアプリケーションで使用されないパラメータについては、最大数を「０」としている。コンフィグレータ５は、各パラメータが何種類の値をとりうるかを認識する際に、コンフィグ設定ファイル５１で「０」と設定されているパラメータはアプリケーションで使用されないと認識する。すると、コンフィグ設定ファイル５１で最大数が「０」と設定されているパラメータについては、メモリサイズを設定せず、コンフィグ情報ファイル５２にはメモリサイズの調整結果が出力されない。なお、ここで、コンフィグレータ５は、アプリケーションで使用されないパラメータについて、メモリ領域の確保を行わないことをコンフィグ情報ファイル５２に出力してもよい。
【００３８】
図１０は、タスクのコントロールブロックの設定に用いられるファイルの一例を示す図である。タスクコントロールブロックでは、タスクのＩＤの指定に用いるメモリサイズを「ＴＳＫＩＤ＿ＴＹＰＥ」としている（図１０のＡ）。また、優先度の指定に用いるメモリサイズは初期優先度や現在優先度などのいずれにおいても、「ＴＳＫＰＲＩ＿ＴＹＰＥ」としている（図１０のＢ）。カーネルソースファイル６１や図９を用いて生成されたコンフィグ情報ファイル５２がコンパイラ６に読み込まれると、適宜、図１０のコントロールブロックが呼び出され、設定対象のＯＳでは、タスクＩＤの指定に用いるメモリサイズに４バイトが設定される。また、同様に、優先度の指定に用いるメモリサイズは、いずれの種類の優先度についても、１バイトが設定される。
【００３９】
このように、優先度やタスク数などのパラメータの最大数に合わせてパラメータの指定に使用されるメモリサイズを設定することができるため、パラメータの最大数に応じてコントロールブロックのメモリサイズを小さくできる。さらに、設定対象のＯＳで使用しないパラメータについては、そのパラメータを指定するためのメモリサイズを０とすることにより、ＯＳが無駄にメモリ領域を確保することを防ぐことができる。
【００４０】
図３〜図１０を参照しながら、セマフォ数、タスク数、および、タスク優先度数の指定に用いるメモリサイズの設定について述べたが、これまでに述べた設定方法は、その他の設定項目についても適用することができる。任意のＯＳのカーネルの構成を定義するパラメータについて適用することができる。その例としては、セマフォカウント数、イベントフラグ数、イベントフラグ・ビットパターン、メールボックス数、メモリプール数、ミューテックス数、ＯＳ管理割り込み数などが挙げられるが、これらに限定されない。なお、ＯＳのカーネルの構成を定義するパラメータは、ＯＳで動作するカーネル、ソフトウェア部品の構成、もしくは、オブジェクトの初期状態の定義に用いられる任意のパラメータであるともいえる。
【００４１】
図１１は、実施形態（１）〜（３）に示した方法によりメモリサイズの調整が行われた場合の効果を説明する図である。実施形態にかかる方法を用いずにＯＳによって使用されるメモリ領域の設定をすると、（Ａ）に示すように、様々な機能で使用するためのメモリ領域が、仕様に応じた固定値を用いて設定されてしまう。一方、実施形態にかかる方法を用いると、（Ｂ）に示すように、実際に使用されるパラメータの最大値に応じて、各パラメータの指定に用いるメモリサイズが調整され、メモリサイズに応じて各機能で使用するメモリ領域の大きさが指定される。そのため、例えば、拡張同期・通信機能メモリやメモリプール管理機能メモリなど、カスタマイズされたＯＳでは使用されない機能に対してはメモリ領域を確保せず、他の機能やアプリケーションで使用される領域として開放することができる。また、タスク管理機能メモリなど、ＯＳで使用される機能についても、各パラメータを指定するためのメモリサイズをパラメータの最大値に応じた可変長とすることにより、無駄にメモリが確保されるのを防ぐことができる。このため、ＯＳで使用するメモリ領域を小さくし、アプリケーションに割り当て可能なメモリ領域を増大させることができる。
【００４２】
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明で、実施形態（１）〜（３）に分けて説明しているのは、理解を助けるためである。従って、例えば、いずれの実施形態においても、実施形態（１）で述べたように、実装に応じて、メモリサイズの指定に用いる単位を変更することもできる。
【００４３】
また、コンフィグ設定ファイル５１からコンフィグ情報ファイル５２が生成される過程は、ソフトウェアによる処理によって行うことができ、また、その一部または全部を、ハードウェアによる処理に変更することもできる。
【００４４】
さらに、コンフィグレータ５を動作させるためのソフトウェアは、コンフィグレータ５の内部のメモリに記録することができ、また、記憶媒体に記録されているソフトウェアを入力部３から読み込むこともできる。ソフトウェアによってコンフィグレータ５が動作する場合は、コンフィグレータ５は、内部にプロセッサ、ソフトウェアの実行に用いるメモリ、ソフトウェアの格納に用いるメモリなどを備える。例えば、コンフィグレータ５をコンピュータとして実現することもできる。
【００４５】
実施形態（２）などの説明においては、一例としてリアルタイムＯＳの場合について述べたが、実施形態にかかる方法や装置等は、リアルタイムＯＳに限られない任意のＯＳに適用することができる。
【００４６】
上述の各実施形態に対し、さらに以下の付記を開示する。
（付記１）
オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出し、
前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定し、
前記決定したメモリサイズのコントロールブロックを利用して前記オペレーティングシステムを構築する
ことを特徴とするオペレーティングシステムの設定方法。
（付記２）
前記メモリサイズを、前記最大値を表現可能な最小のメモリの大きさに設定する
ことを特徴とする付記１に記載の方法。
（付記３）
前記オペレーティングシステムの動作において使用されないパラメータについては、前記最大値をゼロとして検出し、
前記使用されないパラメータを管理するコントロールブロックのメモリサイズを確保しない
ことを特徴とする付記１に記載の方法。
（付記４）
前記メモリサイズの算出の際に、前記メモリサイズとして指定できる値に対応する１つ以上のサイズ閾値と前記最大値を比較し、
前記最大値以上のサイズ閾値のうちの最小の値に対応するメモリサイズを前記メモリサイズとすることを特徴とする付記１に記載の方法。
（付記５）
前記パラメータとして、前記オペレーティングシステムで用いられるカーネルのオブジェクト数、タスク数、タスク優先度、セマフォ数、セマフォカウント数の１つ以上を用いて前記メモリサイズが算出されることを特徴とする付記１に記載の方法。
（付記６）
前記パラメータとして前記タスク優先度を用いるときに、前記タスク優先度として設定される優先度の関数として、前記タスク優先度の指定に用いる前記メモリサイズを算出する
ことを特徴とする付記５に記載の方法。
（付記７）
オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出する最大値検出部と、
前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定するメモリサイズ決定部と、
決定した前記メモリサイズを出力する出力部
を備えることを特徴とするコンフィグレーション装置。
（付記８）
コンピュータを、
オペレーティングシステムの構成を定義するパラメータを記述したコンフィグレーション設定情報から、前記パラメータとして設定可能な値の最大値を検出する最大値検出手段、
前記最大値に応じて前記パラメータを管理するコントロールブロックのメモリサイズを決定するメモリサイズ決定手段、
決定した前記メモリサイズを出力する出力手段
として機能させることを特徴とするコンフィグレーションプログラム。
【符号の説明】
【００４７】
１  プロセッサ
２  メモリ
３  入力部
４  モニタ
５  コンフィグレータ
６  コンパイラ
７  アセンブラ
８  リンカ
９  実行可能オブジェクト
５１  コンフィグ設定ファイル
５２  コンフィグ情報ファイル
６１  カーネルソースファイル
６２  ユーザプログラムソース
【図１】
2010224907.tif 000003
【図２】
2010224907.tif 000004
【図３】
2010224907.tif 000005
【図４】
2010224907.tif 000006
【図５】
2010224907.tif 000007
【図６】
2010224907.tif 000008
【図７】
2010224907.tif 000009
【図８】
2010224907.tif 000010
【図９】
2010224907.tif 000011
【図１０】
2010224907.tif 000012
【図１１】
2010224907.tif 000013