(57)【要約】【課題】関数要求側ＯＳと関数実行側ＯＳとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することの防止を目的とする。【解決手段】関数要求側システム１０では、関数実行側システム２０で動作する関数ａ〜ｃを呼び出す場合、関数ａ〜ｃの実行を要求する関数要求とともに、関数要求側システム１０におけるその関数ａ〜ｃの優先度を関数実行側システム２０へ送信する。関数実行側システム２０では、送信された関数要求側システム１０における優先度に従い、関数を呼び出すとともに、優先度に従い実行結果を返す。【選択図】図１
2012118858.tif 000002
【特許請求の範囲】
【請求項１】
第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、前記第１ＯＳとは異なる第２ＯＳとが動作する実行順序制御装置であって、前記第１ＯＳにおいて動作するアプリケーションプログラムが、前記第２ＯＳにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御装置であり、
前記第１ＯＳが動作する関数要求側システムと、前記第２ＯＳが動作する関数実行側システムとを備え、
前記関数要求側システムは、
前記第１ＯＳにおいて動作するアプリケーションプログラムから前記第２ＯＳにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記関数実行側システムへ送信する関数要求送信部
を備え、
前記関数実行側システムは、
前記関数要求送信部が送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断部と、
前記実行判断部が関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信部と
を備えることを特徴とする実行順序制御装置。
【請求項２】
前記実行結果送信部は、前記関数実行結果を実行が終了した関数から順に取得し、前記優先度が高い関数要求が示す関数の関数実行結果から順に前記関数要求側システムへ送信する
ことを特徴とする請求項１に記載の実行順序制御装置。
【請求項３】
前記実行判断部は、同一の条件下で関数を呼出した場合におけるレスポンス時間であって、関数を呼出してから関数実行結果が出力されるまでのレスポンス時間に応じて各関数に割り当てられた区分毎に設けられ、区分毎に設けられた各実行判断部には、前記レスポンス時間が長い区分に対して設けられた実行判断部ほど、多くのコンピュータリソースが割り当てられ、
前記関数要求送信部は、関数の呼出し要求を受信すると、前記関数の実行を要求する関数要求をその関数の優先度とともに、受信した関数に割り当てられた区分に対応して設けられた実行判断部へ送信し、
前記各実行判断部は、前記関数要求送信部が送信した関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を自己に割り当てられたコンピュータリソースを用いて前記優先度の高い順に呼出して実行する
ことを特徴とする請求項１又は２に記載の実行順序制御装置。
【請求項４】
第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、前記第１ＯＳとは異なる第２ＯＳとが動作する計算機における実行順序制御方法であって、前記第１ＯＳにおいて動作するアプリケーションプログラムが、前記第２ＯＳにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御方法であり、
前記第１ＯＳが動作する関数要求側システムが、前記第１ＯＳにおいて動作するアプリケーションプログラムから前記第２ＯＳにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記第２ＯＳが動作する関数実行側システムへ送信する関数要求送信ステップと、
前記関数実行側システムが、前記関数要求送信ステップで送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断ステップと、
前記関数実行側システムが、前記実行判断ステップで関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信ステップと
を備えることを特徴とする実行順序制御方法。
【請求項５】
第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、前記第１ＯＳとは異なる第２ＯＳとが動作する計算機のための実行順序制御プログラムであって、前記第１ＯＳにおいて動作するアプリケーションプログラムが、前記第２ＯＳにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御プログラムであり、
前記第１ＯＳが動作する関数要求側システムにおいて、前記第１ＯＳにおいて動作するアプリケーションプログラムから前記第２ＯＳにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記第２ＯＳが動作する関数実行側システムへ送信する関数要求送信処理と、
前記関数実行側システムにおいて、前記関数要求送信処理で送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断処理と、
前記関数実行側システムにおいて、前記実行判断処理で関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信処理と
をコンピュータに実行させることを特徴とする実行順序制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、関数の実行順序の制御技術に関する。
【背景技術】
【０００２】
組み込み計算機システム等において、１台の計算機システムで複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を動作させる技術が考えられている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９４７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のＯＳを動作させる計算機システムにおいて、一方のＯＳ（関数要求側ＯＳ）で動作する関数から他方のＯＳ（関数実行側ＯＳ）で動作する関数を呼び出すことがある。このとき、関数要求側ＯＳが指定した順序（優先度）で、関数実行側ＯＳにおける関数を実行することが必要な場合がある。
しかし、関数要求側ＯＳと関数実行側ＯＳとで優先度の粒度が異なる場合がある。例えば、関数要求側ＯＳの優先度の粒度が関数実行側ＯＳの優先度の粒度よりも細かい場合がある。この場合、関数要求側ＯＳで指定した優先度を関数実行側ＯＳの優先度に単に変換すると、関数実行側ＯＳの同一優先度内に関数要求側ＯＳで指定した複数の優先度が存在することになる。その結果、関数実行側ＯＳの同一優先度内に割り当てられた、関数要求側における複数の優先度の間で、関数の実行順序の逆転が発生する虞がある。
この発明は、関数要求側ＯＳと関数実行側ＯＳとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することの防止を目的とする。
【課題を解決するための手段】
【０００５】
この発明に係る実行順序制御装置は、
第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、前記第１ＯＳとは異なる第２ＯＳとが動作する実行順序制御装置であって、前記第１ＯＳにおいて動作するアプリケーションプログラムが、前記第２ＯＳにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御装置であり、
前記第１ＯＳが動作する関数要求側システムと、前記第２ＯＳが動作する関数実行側システムとを備え、
前記関数要求側システムは、
前記第１ＯＳにおいて動作するアプリケーションプログラムから前記第２ＯＳにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記関数実行側システムへ送信する関数要求送信部
を備え、
前記関数実行側システムは、
前記関数要求送信部が送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断部と、
前記実行判断部が関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信部と
を備えることを特徴とする。
【発明の効果】
【０００６】
この発明に係る実行順序制御装置では、関数実行側システムが関数要求側システムにおける関数の優先度を取得して、取得した優先度に従い関数を呼び出す。そのため、関数要求側ＯＳと関数実行側ＯＳとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することがない。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係る実行順序制御装置１の機能を示すブロック図。
【図２】アプリケーション１２が関数Ａ〜Ｃのいずれかを実行した場合における、実施の形態１に係る実行順序制御装置１の動作を示すフローチャート。
【図３】Ｓ１４で実行される実行判断処理の流れを示すフローチャート。
【図４】実行待ち要求関数リスト２４の一例を示す図。
【図５】実行結果待ち要求関数リスト２６の一例を示す図。
【図６】Ｓ１６で実行される送信判断処理の流れを示すフローチャート。
【図７】実施の形態２に係る実行順序制御装置１の機能を示すブロック図。
【図８】区分制御テーブル１５の一例を示す図。
【図９】アプリケーション１２が関数Ａ〜Ｃのいずれかを実行した場合における、実施の形態２に係る実行順序制御装置１の動作を示すフローチャート。
【図１０】Ｓ４２で実行される関数要求送信処理の流れを示すフローチャート。
【図１１】Ｓ４４で実行される実行判断処理の流れを示すフローチャート。
【図１２】実行順序制御装置１のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【０００８】
実施の形態１．
実施の形態１では、関数要求側システム１０側で指定した順序で、関数実行側システム２０側で関数を実行する方法について説明する。
【０００９】
図１は、実施の形態１に係る実行順序制御装置１の機能を示すブロック図である。
実行順序制御装置１は、関数要求側システム１０と関数実行側システム２０とを備える組み込み計算機システムである。
関数要求側システム１０は、関数要求側ＯＳ１１、アプリケーション１２、関数要求送信部１３、実行結果受信部１４を備える。
関数実行側システム２０は、関数実行側ＯＳ２１、関数要求受信部２２、実行判断部２３、送信判断部２５、実行結果送信部２７を備える。また、実行判断部２３は実行待ち要求関数リスト２４を備え、送信判断部２５は実行結果待ち要求関数リスト２６を備える。
【００１０】
関数要求側ＯＳ１１は、関数要求側システム１０側で動作するＯＳである。一方、関数実行側ＯＳ２１は、関数実行側システム２０側で動作するＯＳであって、関数要求側ＯＳ１１とは異なるＯＳである。
特に、関数要求側ＯＳ１１は、関数実行側ＯＳ２１よりも関数の実行順位を表す優先度の粒度が細かいＯＳである。
【００１１】
アプリケーション１２は、関数要求側ＯＳ１１において動作するプログラムである。アプリケーション１２は、関数実行側ＯＳ２１において動作する関数ａの呼出しを要求する関数Ａ、関数ｂの呼出しを要求する関数Ｂ、関数ｃの呼出しを要求する関数Ｃを実行する。
なお、ここでは、関数要求側システム１０における関数Ａの優先度は３、関数Ｂの優先度は５、関数Ｃの優先度は２１であり、数値が小さいほど優先度が高いものとする。つまり、関数Ａ〜Ｃが同時に呼び出された場合、関数Ａ，Ｂ，Ｃの順に実行される必要がある。特に、関数Ａ，Ｂ，Ｃの順に関数が呼び出されるだけでなく、関数Ａ，Ｂ，Ｃの順に関数の実行結果が返されることが必要な場合もある。
【００１２】
例えば、関数要求側ＯＳ１１では、１〜３０までの値を優先度として割り当て、関数実行側ＯＳ２１では、高、中、低を優先度として割り当てているとする。この場合、関数要求側システム１０における関数の優先度を、関数実行側システム２０における優先度に単純に、１〜１０は高、１１〜２０は中、２１〜３０は低と変換することが考えられる。
すると、関数Ａは高、関数Ｂは高、関数Ｃは低に変換される。この場合、優先度として高が割り当てられた関数Ａ，Ｂが呼び出す関数ａ，ｂはどちらが先に実行されるかわからない。つまり、関数実行側システム２０では、関数ａ，ｂ，ｃの順に実行される場合もあるが、関数ｂ，ａ，ｃの順に実行される場合もある。したがって、関数要求側システム１０側で望む順で関数が実行されない虞がある。
また、関数要求側システム１０側で望む順（関数ａ，ｂ，ｃの順）で関数が呼び出されたとしても、関数ａ，ｂ，ｃの順で処理が終了し、関数ａ，ｂ，ｃの順で実行結果が返されるとは限らない。つまり、関数の処理時間は関数毎に異なっており、呼び出した順で処理が終了するとは限らない。
実行順序制御装置１は以下のように動作することで、関数要求側システム１０側で望む順で関数を実行するとともに、関数要求側システム１０側で望む順で関数の実行結果を関数要求側システム１０へ返す。
【００１３】
図２は、アプリケーション１２が関数Ａ〜Ｃを実行した場合における、実施の形態１に係る実行順序制御装置１の動作を示すフローチャートである。
Ｓ１１からＳ１２までと、Ｓ１８とは、関数要求側システム１０側で実行される処理である。Ｓ１３からＳ１７までは、関数実行側システム２０側で実行される処理である。
【００１４】
まず、アプリケーション１２において実行された関数Ａ〜Ｃそれぞれから、関数要求送信部１３へ関数の実行を要求する関数要求が送信される（Ｓ１１）。この際、関数Ａから送信された関数要求は関数ａの実行を要求し、関数Ｂから送信された関数要求は関数ｂの実行を要求し、関数Ｃから送信された関数要求は関数ｃの実行を要求する。すると、関数要求送信部１３は、Ｓ１１で関数Ａ〜Ｃそれぞれが送信した関数要求を、関数要求側システム１０におけるその関数の優先度とともに関数実行側システム２０へ送信する（Ｓ１２）。つまり、例えば、関数Ａから送信された関数要求であれば、優先度３とともに関数実行側システム２０へ送信する。
【００１５】
関数要求受信部２２は、Ｓ１２で関数要求送信部１３が送信した関数要求と優先度とを受信し、受信した関数要求と優先度とを実行判断部２３へ送信する（Ｓ１３）。次に、実行判断部２３は、Ｓ１３で関数要求受信部２２が送信した関数要求が要求する関数のうち、どの関数を呼出すかを判断した上で、関数を呼び出す実行判断処理を実行する（Ｓ１４）。そして、Ｓ１４で呼び出された関数ａ〜ｃが実行される（Ｓ１５）。関数ａ〜ｃは処理が終了すると、実行結果を出力する。
すると、送信判断部２５は、Ｓ１５で関数ａ〜ｃのうち、どの関数から出力された実行結果から送信するかを判断した上で、実行結果を実行結果送信部２７へする送信判断処理を実行する（Ｓ１６）。実行結果送信部２７は、Ｓ１６で送信判断部２５が送信した実行結果を関数要求側システム１０へ送信する（Ｓ１７）。
【００１６】
実行結果受信部１４は、実行結果送信部２７から送信された関数の実行結果を受信し、要求元の関数へ実行結果を送信する（Ｓ１８）。つまり、実行結果受信部１４は、関数Ａから送信された関数要求に対応する実行結果であれば、要求元の関数Ａへ実行結果を送信する。
【００１７】
図３は、Ｓ１４で実行される実行判断処理の流れを示すフローチャートである。
まず、実行判断部２３は、関数要求受信部２２から関数要求についての情報を、実行待ち要求関数リスト２４と、実行結果待ち要求関数リスト２６とに格納する（Ｓ２１）。
図４は、実行待ち要求関数リスト２４の一例を示す図である。図４に示すように、実行待ち要求関数リスト２４には、実行する関数を識別する関数名（実行関数名）と、関数呼出し時の引数と、関数要求側システム１０側におけるその関数の優先度（要求側優先度）とが格納される。
図５は、実行結果待ち要求関数リスト２６の一例を示す図である。図５に示すように、実行結果待ち要求関数リスト２６には、実行する関数を識別する関数名（実行関数名）と、関数の実行結果と、関数要求側システム１０側におけるその関数の優先度（要求側優先度）と、実行が済んだか否かを示す実行有無とが格納される。なお、この時点では、実行関数名と要求側優先度とが実行結果待ち要求関数リスト２６に格納される。
次に、実行判断部２３は、実行待ち要求関数リスト２４に登録された関数のうち、最も優先度（要求元優先度）の高い関数を呼び出す（Ｓ２２）。そして、実行判断部２３は、Ｓ２２で呼び出した関数に関する情報を実行待ち要求関数リスト２４から削除する（Ｓ２３）。
【００１８】
図６は、Ｓ１６で実行される送信判断処理の流れを示すフローチャートである。
実行結果待ち要求関数リスト２６に格納された関数のうち、要求側優先度が最も高い関数が実行済になるまで、Ｓ３１とＳ３２とを繰り返す。まず、送信判断部２５は、処理が終了した関数が出力した実行結果を取得する（Ｓ３１）。次に、送信判断部２５は、Ｓ３１で取得した関数の実行結果を実行結果待ち要求関数リスト２６に格納するとともに、その関数の実行有無を済に更新する（Ｓ３２）。
そして、実行結果待ち要求関数リスト２６に格納された関数のうち、要求側優先度が最も高い関数が実行済の場合、送信判断部２５は、要求側優先度が最も高い関数の実行結果を実行結果待ち要求関数リスト２６から取得して、実行結果送信部２７へ送信する（Ｓ３３）。その後、送信判断部２５は、実行結果を送信した関数に関する情報を実行結果待ち要求関数リスト２６から削除する（Ｓ３４）。
【００１９】
以上のように、実施の形態１に係る実行順序制御装置１は、関数要求側システム１０側における優先度に基づき、関数実行側システム２０側で関数の実行順序を制御する。そのため、関数要求側システム１０で動作する関数要求側ＯＳ１１の優先度の粒度が、関数実行側システム２０で動作する関数実行側ＯＳ２１の優先度の粒度よりも細かくても、関数要求側システム１０で指定した順序で関数を実行することができる。
また、実施の形態１に係る実行順序制御装置１は、関数要求側システム１０側における優先度に基づき、実行結果を送信する順序を制御する。関数の処理が終了する順序は、関数を呼び出す順序と同じになるとは限らないが、関数要求側システム１０で指定した順序で関数の実行結果を関数要求側システム１０へ返すことができる。したがって、関数要求側システム１０が、呼び出した関数の優先度順に実行結果が返ってくることが必要なシステムであっても、関数要求側システム１０を正しく動作させることができる。
【００２０】
実施の形態２．
実施の形態１では、関数要求側システム１０側で指定した順序で、関数実行側システム２０側で関数を実行する方法を説明した。しかし、関数には、呼び出しをしてから実行結果を返すまでのレスポンス時間が長いものや、レスポンス時間が短いものがある。例えば、ネットワーク経由でＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）にアクセスしなければならない関数は、近接（ネットワーク経由でアクセスする必要のない）のＩ／Ｏにアクセスする関数に比べ、一般にレスポンス時間が長くなる。そのため、単純に指定した順序で関数を呼び出した場合、優先度の高い関数のレスポンス時間が長く、優先度の低い関数のレスポンス時間が短いと、後から呼び出した優先度の低い関数の処理が先に終了する場合がある。この場合、関数要求側システム１０へ実行結果を返すまでの時間が、全体的に長くなってしまう。
実施の形態２では、レスポンス時間のばらつきを抑え、レスポンス時間を平滑化する方法について説明する。
【００２１】
図７は、実施の形態２に係る実行順序制御装置１の機能を示すブロック図である。
実施の形態２に係る実行順序制御装置１は、関数要求送信部１３が区分制御テーブル１５を備えることと、関数要求受信部２２と実行判断部２３とが区分毎に設けられていることとが実施の形態１に係る実行順序制御装置１と異なる。
区分は、同一条件で実行した場合における関数実行側システム２０での関数のレスポンス時間の長さに応じて、各関数に割り当てられる。ここでは、レスポンス時間が長い区分長と、レスポンス時間が短い区分短との２つの区分があるとする。したがって、関数要求受信部２２及び実行判断部２３は、区分長用の関数要求受信部２２ａ及び実行判断部２３ａと、区分短用の関数要求受信部２２ｂ及び実行判断部２３ｂとがある。なお、実行判断部２３ａ，ｂは、それぞれ実行待ち要求関数リスト２４ａ，ｂを備える。
レスポンス時間が長い区分に対応する関数要求受信部２２及び実行判断部２３ほど多くのコンピュータリソースが割り当てられている。コンピュータリソースとは、例えば、ＣＰＵ、メモリ、キャッシュメモリ等である。つまり、レスポンス時間が長い区分に対応する関数要求受信部２２及び実行判断部２３ほど、ＣＰＵの使用時間が長く、メモリやキャッシュメモリの領域が多く割り当てられる。
【００２２】
図８は、区分制御テーブル１５の一例を示す図である。図８に示すように、区分制御テーブル１５には、関数毎に、その関数の区分が格納される。
【００２３】
図９は、アプリケーション１２が関数Ａ〜Ｃを実行した場合における、実施の形態２に係る実行順序制御装置１の動作を示すフローチャートである。
図９に示す実施の形態２に係る実行順序制御装置１の動作について、図２に示す実施の形態１に係る実行順序制御装置１と異なる部分を説明する。
【００２４】
まず、図２のＳ１１と同様に、アプリケーション１２において実行された関数Ａ〜Ｃのいずれかから、関数要求送信部１３へ関数の実行を要求する関数要求が送信される（Ｓ４１）。すると、関数要求送信部１３は、関数要求を送信する関数要求送信処理を実行する（Ｓ４２）。
【００２５】
図１０は、Ｓ４２で実行される関数要求送信処理の流れを示すフローチャートである。
まず、関数要求送信部１３は、Ｓ４１で関数Ａ〜Ｃが送信した関数要求が実行を要求する関数ａ〜ｃに割り当てられた区分を、区分制御テーブル１５から検索する（Ｓ５１）。そして、関数要求送信部１３は、複数の関数要求受信部２２うち、検索した区分に対応する関数要求受信部２２へ宛てて、関数要求と、関数要求側システム１０におけるその関数の優先度とを送信する（Ｓ５２）。
例えば、Ｓ４１で関数Ａから関数要求が送信された場合、関数Ａで実行を要求する関数ａの区分は区分長であるため、関数要求と優先度とは、区分長に対応する関数要求受信部２２ａへ宛てて送信される。
【００２６】
Ｓ４２に続き、宛先に指定された関数要求受信部２２は、Ｓ４２で関数要求送信部１３が送信した関数要求と優先度とを受信し、受信した関数要求と優先度とを対応する実行判断部２３へ送信する（Ｓ４３）。例えば、関数要求受信部２２ａへ宛てて送信された関数要求と優先度とを、関数要求受信部２２ａが受信し、受信した関数要求と優先度とを対応する実行判断部２３ａへ送信する。すると、関数要求と優先度とを受信した実行判断部２３は、どの関数を呼出すかを判断した上で、関数を呼び出す実行判断処理を実行する（Ｓ４４）。
【００２７】
図１１は、Ｓ４４で実行される実行判断処理の流れを示すフローチャートである。なお、図１１では、実行判断部２３ａが実行する実行判断処理を例として示している。
まず、実行判断部２３ａは、関数要求受信部２２から関数要求についての情報を、自己が備える実行待ち要求関数リスト２４ａと、実行結果待ち要求関数リスト２６とに格納する（Ｓ６１）。つまり、実行待ち要求関数リスト２４ａには、実行判断部２３ａに送信された関数要求についての情報だけが格納され、実行結果待ち要求関数リスト２６には全ての実行判断部２３に送信された関数要求についての情報だけが格納される。
次に、実行判断部２３ａは、実行待ち要求関数リスト２４ａに登録された関数のうち、最も優先度（要求元優先度）の高い関数を呼び出す（Ｓ６２）。そして、実行判断部２３は、Ｓ６２で呼び出した関数に関する情報を実行待ち要求関数リスト２４ａから削除する（Ｓ６３）。
【００２８】
Ｓ４４で呼び出された関数ａ〜ｃそれぞれは、呼び出し元の実行判断部２３に割り当てられたコンピュータリソースを使用して、処理が実行される。上述したように、レスポンス時間が長い区分に対応する実行判断部２３ほど多くのコンピュータリソースが割り当てられている。そのため、レスポンス時間が長い区分に対応する実行判断部２３から呼び出された関数ほど、処理を高速に実行できる。
Ｓ４５以降の処理は、図２のＳ１５以降の処理と同じである。
【００２９】
以上のように、実施の形態２に係る実行順序制御装置１は、関数のレスポンス時間に応じてコンピュータリソースの割当量が異なる複数の実行判断部２３を備え、関数のレスポンス時間に応じてどの実行判断部２３に関数を実行させるかを制御する。そのため、レスポンス時間が長い区分に対応する実行判断部２３から呼び出された関数ほど、処理を高速に実行できる。その結果、関数間のレスポンス時間のばらつきを抑え、レスポンス時間を平滑化することができる。
【００３０】
なお、各実行判断部２３は独立して動作しており、実行判断部２３間で関数の呼出し順序の調整は行わない。したがって、異なる実行判断部２３へ送られた関数要求で実行を要求される関数の間で、優先度が逆転して関数が呼び出される可能性がある。しかし、送信判断部２５により実行結果が送信される順序は優先度（要求側優先度）の順になる。
【００３１】
また、上記説明では、関数実行側システム２０は、２つの関数要求受信部２２及び実行判断部２３を備えるとした。しかし、関数実行側システム２０は、３つ以上の関数要求受信部２２及び実行判断部２３を備えるとしてもよい。そして、レスポンス時間の区分を３つ以上としてもよい。
【００３２】
以上の実施の形態に係る実行順序制御装置１のハードウェア構成について説明する。
図１２は、実行順序制御装置１のハードウェア構成の一例を示す図である。
図１２に示すように、実行順序制御装置１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００３３】
磁気ディスク装置９２０又はＲＯＭ９１３などには、ＯＳ９２１（関数要求側ＯＳ１１、関数実行側ＯＳ２１）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００３４】
プログラム群９２３には、上記の説明において「アプリケーション１２」、「関数要求送信部１３」、「実行結果受信部１４」、「関数要求受信部２２」、「実行判断部２３」、「送信判断部２５」、「実行結果送信部２７」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「区分制御テーブル１５」、「実行待ち要求関数リスト２４」、「実行結果待ち要求関数リスト２６」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００３５】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００３６】
１  実行順序制御装置、１０  関数要求側システム、１１  関数要求側ＯＳ、１２  アプリケーション、１３  関数要求送信部、１４  実行結果受信部、１５  区分制御テーブル、２０  関数実行側システム、２１  関数実行側ＯＳ、２２  関数要求受信部、２３  実行判断部、２４  実行待ち要求関数リスト、２５  送信判断部、２６  実行結果待ち要求関数リスト、２７  実行結果送信部。
【図１】
2012118858.tif 000003
【図２】
2012118858.tif 000004
【図３】
2012118858.tif 000005
【図４】
2012118858.tif 000006
【図５】
2012118858.tif 000007
【図６】
2012118858.tif 000008
【図７】
2012118858.tif 000009
【図８】
2012118858.tif 000010
【図９】
2012118858.tif 000011
【図１０】
2012118858.tif 000012
【図１１】
2012118858.tif 000013
【図１２】
2012118858.tif 000014