JP2012118858A - 実行順序制御装置、実行順序制御方法及び実行順序制御プログラム - Google Patents
実行順序制御装置、実行順序制御方法及び実行順序制御プログラム Download PDFInfo
- Publication number
- JP2012118858A JP2012118858A JP2010269297A JP2010269297A JP2012118858A JP 2012118858 A JP2012118858 A JP 2012118858A JP 2010269297 A JP2010269297 A JP 2010269297A JP 2010269297 A JP2010269297 A JP 2010269297A JP 2012118858 A JP2012118858 A JP 2012118858A
- Authority
- JP
- Japan
- Prior art keywords
- function
- execution
- request
- functions
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することの防止を目的とする。
【解決手段】関数要求側システム10では、関数実行側システム20で動作する関数a〜cを呼び出す場合、関数a〜cの実行を要求する関数要求とともに、関数要求側システム10におけるその関数a〜cの優先度を関数実行側システム20へ送信する。関数実行側システム20では、送信された関数要求側システム10における優先度に従い、関数を呼び出すとともに、優先度に従い実行結果を返す。
【選択図】図1
【解決手段】関数要求側システム10では、関数実行側システム20で動作する関数a〜cを呼び出す場合、関数a〜cの実行を要求する関数要求とともに、関数要求側システム10におけるその関数a〜cの優先度を関数実行側システム20へ送信する。関数実行側システム20では、送信された関数要求側システム10における優先度に従い、関数を呼び出すとともに、優先度に従い実行結果を返す。
【選択図】図1
Description
この発明は、関数の実行順序の制御技術に関する。
組み込み計算機システム等において、1台の計算機システムで複数のOS(Operating System)を動作させる技術が考えられている(特許文献1参照)。
複数のOSを動作させる計算機システムにおいて、一方のOS(関数要求側OS)で動作する関数から他方のOS(関数実行側OS)で動作する関数を呼び出すことがある。このとき、関数要求側OSが指定した順序(優先度)で、関数実行側OSにおける関数を実行することが必要な場合がある。
しかし、関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合がある。例えば、関数要求側OSの優先度の粒度が関数実行側OSの優先度の粒度よりも細かい場合がある。この場合、関数要求側OSで指定した優先度を関数実行側OSの優先度に単に変換すると、関数実行側OSの同一優先度内に関数要求側OSで指定した複数の優先度が存在することになる。その結果、関数実行側OSの同一優先度内に割り当てられた、関数要求側における複数の優先度の間で、関数の実行順序の逆転が発生する虞がある。
この発明は、関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することの防止を目的とする。
しかし、関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合がある。例えば、関数要求側OSの優先度の粒度が関数実行側OSの優先度の粒度よりも細かい場合がある。この場合、関数要求側OSで指定した優先度を関数実行側OSの優先度に単に変換すると、関数実行側OSの同一優先度内に関数要求側OSで指定した複数の優先度が存在することになる。その結果、関数実行側OSの同一優先度内に割り当てられた、関数要求側における複数の優先度の間で、関数の実行順序の逆転が発生する虞がある。
この発明は、関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することの防止を目的とする。
この発明に係る実行順序制御装置は、
第1OS(Operating System)と、前記第1OSとは異なる第2OSとが動作する実行順序制御装置であって、前記第1OSにおいて動作するアプリケーションプログラムが、前記第2OSにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御装置であり、
前記第1OSが動作する関数要求側システムと、前記第2OSが動作する関数実行側システムとを備え、
前記関数要求側システムは、
前記第1OSにおいて動作するアプリケーションプログラムから前記第2OSにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記関数実行側システムへ送信する関数要求送信部
を備え、
前記関数実行側システムは、
前記関数要求送信部が送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断部と、
前記実行判断部が関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信部と
を備えることを特徴とする。
第1OS(Operating System)と、前記第1OSとは異なる第2OSとが動作する実行順序制御装置であって、前記第1OSにおいて動作するアプリケーションプログラムが、前記第2OSにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御装置であり、
前記第1OSが動作する関数要求側システムと、前記第2OSが動作する関数実行側システムとを備え、
前記関数要求側システムは、
前記第1OSにおいて動作するアプリケーションプログラムから前記第2OSにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記関数実行側システムへ送信する関数要求送信部
を備え、
前記関数実行側システムは、
前記関数要求送信部が送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断部と、
前記実行判断部が関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信部と
を備えることを特徴とする。
この発明に係る実行順序制御装置では、関数実行側システムが関数要求側システムにおける関数の優先度を取得して、取得した優先度に従い関数を呼び出す。そのため、関数要求側OSと関数実行側OSとで優先度の粒度が異なる場合であっても、関数の実行順序の逆転が発生することがない。
実施の形態1.
実施の形態1では、関数要求側システム10側で指定した順序で、関数実行側システム20側で関数を実行する方法について説明する。
実施の形態1では、関数要求側システム10側で指定した順序で、関数実行側システム20側で関数を実行する方法について説明する。
図1は、実施の形態1に係る実行順序制御装置1の機能を示すブロック図である。
実行順序制御装置1は、関数要求側システム10と関数実行側システム20とを備える組み込み計算機システムである。
関数要求側システム10は、関数要求側OS11、アプリケーション12、関数要求送信部13、実行結果受信部14を備える。
関数実行側システム20は、関数実行側OS21、関数要求受信部22、実行判断部23、送信判断部25、実行結果送信部27を備える。また、実行判断部23は実行待ち要求関数リスト24を備え、送信判断部25は実行結果待ち要求関数リスト26を備える。
実行順序制御装置1は、関数要求側システム10と関数実行側システム20とを備える組み込み計算機システムである。
関数要求側システム10は、関数要求側OS11、アプリケーション12、関数要求送信部13、実行結果受信部14を備える。
関数実行側システム20は、関数実行側OS21、関数要求受信部22、実行判断部23、送信判断部25、実行結果送信部27を備える。また、実行判断部23は実行待ち要求関数リスト24を備え、送信判断部25は実行結果待ち要求関数リスト26を備える。
関数要求側OS11は、関数要求側システム10側で動作するOSである。一方、関数実行側OS21は、関数実行側システム20側で動作するOSであって、関数要求側OS11とは異なるOSである。
特に、関数要求側OS11は、関数実行側OS21よりも関数の実行順位を表す優先度の粒度が細かいOSである。
特に、関数要求側OS11は、関数実行側OS21よりも関数の実行順位を表す優先度の粒度が細かいOSである。
アプリケーション12は、関数要求側OS11において動作するプログラムである。アプリケーション12は、関数実行側OS21において動作する関数aの呼出しを要求する関数A、関数bの呼出しを要求する関数B、関数cの呼出しを要求する関数Cを実行する。
なお、ここでは、関数要求側システム10における関数Aの優先度は3、関数Bの優先度は5、関数Cの優先度は21であり、数値が小さいほど優先度が高いものとする。つまり、関数A〜Cが同時に呼び出された場合、関数A,B,Cの順に実行される必要がある。特に、関数A,B,Cの順に関数が呼び出されるだけでなく、関数A,B,Cの順に関数の実行結果が返されることが必要な場合もある。
なお、ここでは、関数要求側システム10における関数Aの優先度は3、関数Bの優先度は5、関数Cの優先度は21であり、数値が小さいほど優先度が高いものとする。つまり、関数A〜Cが同時に呼び出された場合、関数A,B,Cの順に実行される必要がある。特に、関数A,B,Cの順に関数が呼び出されるだけでなく、関数A,B,Cの順に関数の実行結果が返されることが必要な場合もある。
例えば、関数要求側OS11では、1〜30までの値を優先度として割り当て、関数実行側OS21では、高、中、低を優先度として割り当てているとする。この場合、関数要求側システム10における関数の優先度を、関数実行側システム20における優先度に単純に、1〜10は高、11〜20は中、21〜30は低と変換することが考えられる。
すると、関数Aは高、関数Bは高、関数Cは低に変換される。この場合、優先度として高が割り当てられた関数A,Bが呼び出す関数a,bはどちらが先に実行されるかわからない。つまり、関数実行側システム20では、関数a,b,cの順に実行される場合もあるが、関数b,a,cの順に実行される場合もある。したがって、関数要求側システム10側で望む順で関数が実行されない虞がある。
また、関数要求側システム10側で望む順(関数a,b,cの順)で関数が呼び出されたとしても、関数a,b,cの順で処理が終了し、関数a,b,cの順で実行結果が返されるとは限らない。つまり、関数の処理時間は関数毎に異なっており、呼び出した順で処理が終了するとは限らない。
実行順序制御装置1は以下のように動作することで、関数要求側システム10側で望む順で関数を実行するとともに、関数要求側システム10側で望む順で関数の実行結果を関数要求側システム10へ返す。
すると、関数Aは高、関数Bは高、関数Cは低に変換される。この場合、優先度として高が割り当てられた関数A,Bが呼び出す関数a,bはどちらが先に実行されるかわからない。つまり、関数実行側システム20では、関数a,b,cの順に実行される場合もあるが、関数b,a,cの順に実行される場合もある。したがって、関数要求側システム10側で望む順で関数が実行されない虞がある。
また、関数要求側システム10側で望む順(関数a,b,cの順)で関数が呼び出されたとしても、関数a,b,cの順で処理が終了し、関数a,b,cの順で実行結果が返されるとは限らない。つまり、関数の処理時間は関数毎に異なっており、呼び出した順で処理が終了するとは限らない。
実行順序制御装置1は以下のように動作することで、関数要求側システム10側で望む順で関数を実行するとともに、関数要求側システム10側で望む順で関数の実行結果を関数要求側システム10へ返す。
図2は、アプリケーション12が関数A〜Cを実行した場合における、実施の形態1に係る実行順序制御装置1の動作を示すフローチャートである。
S11からS12までと、S18とは、関数要求側システム10側で実行される処理である。S13からS17までは、関数実行側システム20側で実行される処理である。
S11からS12までと、S18とは、関数要求側システム10側で実行される処理である。S13からS17までは、関数実行側システム20側で実行される処理である。
まず、アプリケーション12において実行された関数A〜Cそれぞれから、関数要求送信部13へ関数の実行を要求する関数要求が送信される(S11)。この際、関数Aから送信された関数要求は関数aの実行を要求し、関数Bから送信された関数要求は関数bの実行を要求し、関数Cから送信された関数要求は関数cの実行を要求する。すると、関数要求送信部13は、S11で関数A〜Cそれぞれが送信した関数要求を、関数要求側システム10におけるその関数の優先度とともに関数実行側システム20へ送信する(S12)。つまり、例えば、関数Aから送信された関数要求であれば、優先度3とともに関数実行側システム20へ送信する。
関数要求受信部22は、S12で関数要求送信部13が送信した関数要求と優先度とを受信し、受信した関数要求と優先度とを実行判断部23へ送信する(S13)。次に、実行判断部23は、S13で関数要求受信部22が送信した関数要求が要求する関数のうち、どの関数を呼出すかを判断した上で、関数を呼び出す実行判断処理を実行する(S14)。そして、S14で呼び出された関数a〜cが実行される(S15)。関数a〜cは処理が終了すると、実行結果を出力する。
すると、送信判断部25は、S15で関数a〜cのうち、どの関数から出力された実行結果から送信するかを判断した上で、実行結果を実行結果送信部27へする送信判断処理を実行する(S16)。実行結果送信部27は、S16で送信判断部25が送信した実行結果を関数要求側システム10へ送信する(S17)。
すると、送信判断部25は、S15で関数a〜cのうち、どの関数から出力された実行結果から送信するかを判断した上で、実行結果を実行結果送信部27へする送信判断処理を実行する(S16)。実行結果送信部27は、S16で送信判断部25が送信した実行結果を関数要求側システム10へ送信する(S17)。
実行結果受信部14は、実行結果送信部27から送信された関数の実行結果を受信し、要求元の関数へ実行結果を送信する(S18)。つまり、実行結果受信部14は、関数Aから送信された関数要求に対応する実行結果であれば、要求元の関数Aへ実行結果を送信する。
図3は、S14で実行される実行判断処理の流れを示すフローチャートである。
まず、実行判断部23は、関数要求受信部22から関数要求についての情報を、実行待ち要求関数リスト24と、実行結果待ち要求関数リスト26とに格納する(S21)。
図4は、実行待ち要求関数リスト24の一例を示す図である。図4に示すように、実行待ち要求関数リスト24には、実行する関数を識別する関数名(実行関数名)と、関数呼出し時の引数と、関数要求側システム10側におけるその関数の優先度(要求側優先度)とが格納される。
図5は、実行結果待ち要求関数リスト26の一例を示す図である。図5に示すように、実行結果待ち要求関数リスト26には、実行する関数を識別する関数名(実行関数名)と、関数の実行結果と、関数要求側システム10側におけるその関数の優先度(要求側優先度)と、実行が済んだか否かを示す実行有無とが格納される。なお、この時点では、実行関数名と要求側優先度とが実行結果待ち要求関数リスト26に格納される。
次に、実行判断部23は、実行待ち要求関数リスト24に登録された関数のうち、最も優先度(要求元優先度)の高い関数を呼び出す(S22)。そして、実行判断部23は、S22で呼び出した関数に関する情報を実行待ち要求関数リスト24から削除する(S23)。
まず、実行判断部23は、関数要求受信部22から関数要求についての情報を、実行待ち要求関数リスト24と、実行結果待ち要求関数リスト26とに格納する(S21)。
図4は、実行待ち要求関数リスト24の一例を示す図である。図4に示すように、実行待ち要求関数リスト24には、実行する関数を識別する関数名(実行関数名)と、関数呼出し時の引数と、関数要求側システム10側におけるその関数の優先度(要求側優先度)とが格納される。
図5は、実行結果待ち要求関数リスト26の一例を示す図である。図5に示すように、実行結果待ち要求関数リスト26には、実行する関数を識別する関数名(実行関数名)と、関数の実行結果と、関数要求側システム10側におけるその関数の優先度(要求側優先度)と、実行が済んだか否かを示す実行有無とが格納される。なお、この時点では、実行関数名と要求側優先度とが実行結果待ち要求関数リスト26に格納される。
次に、実行判断部23は、実行待ち要求関数リスト24に登録された関数のうち、最も優先度(要求元優先度)の高い関数を呼び出す(S22)。そして、実行判断部23は、S22で呼び出した関数に関する情報を実行待ち要求関数リスト24から削除する(S23)。
図6は、S16で実行される送信判断処理の流れを示すフローチャートである。
実行結果待ち要求関数リスト26に格納された関数のうち、要求側優先度が最も高い関数が実行済になるまで、S31とS32とを繰り返す。まず、送信判断部25は、処理が終了した関数が出力した実行結果を取得する(S31)。次に、送信判断部25は、S31で取得した関数の実行結果を実行結果待ち要求関数リスト26に格納するとともに、その関数の実行有無を済に更新する(S32)。
そして、実行結果待ち要求関数リスト26に格納された関数のうち、要求側優先度が最も高い関数が実行済の場合、送信判断部25は、要求側優先度が最も高い関数の実行結果を実行結果待ち要求関数リスト26から取得して、実行結果送信部27へ送信する(S33)。その後、送信判断部25は、実行結果を送信した関数に関する情報を実行結果待ち要求関数リスト26から削除する(S34)。
実行結果待ち要求関数リスト26に格納された関数のうち、要求側優先度が最も高い関数が実行済になるまで、S31とS32とを繰り返す。まず、送信判断部25は、処理が終了した関数が出力した実行結果を取得する(S31)。次に、送信判断部25は、S31で取得した関数の実行結果を実行結果待ち要求関数リスト26に格納するとともに、その関数の実行有無を済に更新する(S32)。
そして、実行結果待ち要求関数リスト26に格納された関数のうち、要求側優先度が最も高い関数が実行済の場合、送信判断部25は、要求側優先度が最も高い関数の実行結果を実行結果待ち要求関数リスト26から取得して、実行結果送信部27へ送信する(S33)。その後、送信判断部25は、実行結果を送信した関数に関する情報を実行結果待ち要求関数リスト26から削除する(S34)。
以上のように、実施の形態1に係る実行順序制御装置1は、関数要求側システム10側における優先度に基づき、関数実行側システム20側で関数の実行順序を制御する。そのため、関数要求側システム10で動作する関数要求側OS11の優先度の粒度が、関数実行側システム20で動作する関数実行側OS21の優先度の粒度よりも細かくても、関数要求側システム10で指定した順序で関数を実行することができる。
また、実施の形態1に係る実行順序制御装置1は、関数要求側システム10側における優先度に基づき、実行結果を送信する順序を制御する。関数の処理が終了する順序は、関数を呼び出す順序と同じになるとは限らないが、関数要求側システム10で指定した順序で関数の実行結果を関数要求側システム10へ返すことができる。したがって、関数要求側システム10が、呼び出した関数の優先度順に実行結果が返ってくることが必要なシステムであっても、関数要求側システム10を正しく動作させることができる。
また、実施の形態1に係る実行順序制御装置1は、関数要求側システム10側における優先度に基づき、実行結果を送信する順序を制御する。関数の処理が終了する順序は、関数を呼び出す順序と同じになるとは限らないが、関数要求側システム10で指定した順序で関数の実行結果を関数要求側システム10へ返すことができる。したがって、関数要求側システム10が、呼び出した関数の優先度順に実行結果が返ってくることが必要なシステムであっても、関数要求側システム10を正しく動作させることができる。
実施の形態2.
実施の形態1では、関数要求側システム10側で指定した順序で、関数実行側システム20側で関数を実行する方法を説明した。しかし、関数には、呼び出しをしてから実行結果を返すまでのレスポンス時間が長いものや、レスポンス時間が短いものがある。例えば、ネットワーク経由でI/O(Input/Output)にアクセスしなければならない関数は、近接(ネットワーク経由でアクセスする必要のない)のI/Oにアクセスする関数に比べ、一般にレスポンス時間が長くなる。そのため、単純に指定した順序で関数を呼び出した場合、優先度の高い関数のレスポンス時間が長く、優先度の低い関数のレスポンス時間が短いと、後から呼び出した優先度の低い関数の処理が先に終了する場合がある。この場合、関数要求側システム10へ実行結果を返すまでの時間が、全体的に長くなってしまう。
実施の形態2では、レスポンス時間のばらつきを抑え、レスポンス時間を平滑化する方法について説明する。
実施の形態1では、関数要求側システム10側で指定した順序で、関数実行側システム20側で関数を実行する方法を説明した。しかし、関数には、呼び出しをしてから実行結果を返すまでのレスポンス時間が長いものや、レスポンス時間が短いものがある。例えば、ネットワーク経由でI/O(Input/Output)にアクセスしなければならない関数は、近接(ネットワーク経由でアクセスする必要のない)のI/Oにアクセスする関数に比べ、一般にレスポンス時間が長くなる。そのため、単純に指定した順序で関数を呼び出した場合、優先度の高い関数のレスポンス時間が長く、優先度の低い関数のレスポンス時間が短いと、後から呼び出した優先度の低い関数の処理が先に終了する場合がある。この場合、関数要求側システム10へ実行結果を返すまでの時間が、全体的に長くなってしまう。
実施の形態2では、レスポンス時間のばらつきを抑え、レスポンス時間を平滑化する方法について説明する。
図7は、実施の形態2に係る実行順序制御装置1の機能を示すブロック図である。
実施の形態2に係る実行順序制御装置1は、関数要求送信部13が区分制御テーブル15を備えることと、関数要求受信部22と実行判断部23とが区分毎に設けられていることとが実施の形態1に係る実行順序制御装置1と異なる。
区分は、同一条件で実行した場合における関数実行側システム20での関数のレスポンス時間の長さに応じて、各関数に割り当てられる。ここでは、レスポンス時間が長い区分長と、レスポンス時間が短い区分短との2つの区分があるとする。したがって、関数要求受信部22及び実行判断部23は、区分長用の関数要求受信部22a及び実行判断部23aと、区分短用の関数要求受信部22b及び実行判断部23bとがある。なお、実行判断部23a,bは、それぞれ実行待ち要求関数リスト24a,bを備える。
レスポンス時間が長い区分に対応する関数要求受信部22及び実行判断部23ほど多くのコンピュータリソースが割り当てられている。コンピュータリソースとは、例えば、CPU、メモリ、キャッシュメモリ等である。つまり、レスポンス時間が長い区分に対応する関数要求受信部22及び実行判断部23ほど、CPUの使用時間が長く、メモリやキャッシュメモリの領域が多く割り当てられる。
実施の形態2に係る実行順序制御装置1は、関数要求送信部13が区分制御テーブル15を備えることと、関数要求受信部22と実行判断部23とが区分毎に設けられていることとが実施の形態1に係る実行順序制御装置1と異なる。
区分は、同一条件で実行した場合における関数実行側システム20での関数のレスポンス時間の長さに応じて、各関数に割り当てられる。ここでは、レスポンス時間が長い区分長と、レスポンス時間が短い区分短との2つの区分があるとする。したがって、関数要求受信部22及び実行判断部23は、区分長用の関数要求受信部22a及び実行判断部23aと、区分短用の関数要求受信部22b及び実行判断部23bとがある。なお、実行判断部23a,bは、それぞれ実行待ち要求関数リスト24a,bを備える。
レスポンス時間が長い区分に対応する関数要求受信部22及び実行判断部23ほど多くのコンピュータリソースが割り当てられている。コンピュータリソースとは、例えば、CPU、メモリ、キャッシュメモリ等である。つまり、レスポンス時間が長い区分に対応する関数要求受信部22及び実行判断部23ほど、CPUの使用時間が長く、メモリやキャッシュメモリの領域が多く割り当てられる。
図8は、区分制御テーブル15の一例を示す図である。図8に示すように、区分制御テーブル15には、関数毎に、その関数の区分が格納される。
図9は、アプリケーション12が関数A〜Cを実行した場合における、実施の形態2に係る実行順序制御装置1の動作を示すフローチャートである。
図9に示す実施の形態2に係る実行順序制御装置1の動作について、図2に示す実施の形態1に係る実行順序制御装置1と異なる部分を説明する。
図9に示す実施の形態2に係る実行順序制御装置1の動作について、図2に示す実施の形態1に係る実行順序制御装置1と異なる部分を説明する。
まず、図2のS11と同様に、アプリケーション12において実行された関数A〜Cのいずれかから、関数要求送信部13へ関数の実行を要求する関数要求が送信される(S41)。すると、関数要求送信部13は、関数要求を送信する関数要求送信処理を実行する(S42)。
図10は、S42で実行される関数要求送信処理の流れを示すフローチャートである。
まず、関数要求送信部13は、S41で関数A〜Cが送信した関数要求が実行を要求する関数a〜cに割り当てられた区分を、区分制御テーブル15から検索する(S51)。そして、関数要求送信部13は、複数の関数要求受信部22うち、検索した区分に対応する関数要求受信部22へ宛てて、関数要求と、関数要求側システム10におけるその関数の優先度とを送信する(S52)。
例えば、S41で関数Aから関数要求が送信された場合、関数Aで実行を要求する関数aの区分は区分長であるため、関数要求と優先度とは、区分長に対応する関数要求受信部22aへ宛てて送信される。
まず、関数要求送信部13は、S41で関数A〜Cが送信した関数要求が実行を要求する関数a〜cに割り当てられた区分を、区分制御テーブル15から検索する(S51)。そして、関数要求送信部13は、複数の関数要求受信部22うち、検索した区分に対応する関数要求受信部22へ宛てて、関数要求と、関数要求側システム10におけるその関数の優先度とを送信する(S52)。
例えば、S41で関数Aから関数要求が送信された場合、関数Aで実行を要求する関数aの区分は区分長であるため、関数要求と優先度とは、区分長に対応する関数要求受信部22aへ宛てて送信される。
S42に続き、宛先に指定された関数要求受信部22は、S42で関数要求送信部13が送信した関数要求と優先度とを受信し、受信した関数要求と優先度とを対応する実行判断部23へ送信する(S43)。例えば、関数要求受信部22aへ宛てて送信された関数要求と優先度とを、関数要求受信部22aが受信し、受信した関数要求と優先度とを対応する実行判断部23aへ送信する。すると、関数要求と優先度とを受信した実行判断部23は、どの関数を呼出すかを判断した上で、関数を呼び出す実行判断処理を実行する(S44)。
図11は、S44で実行される実行判断処理の流れを示すフローチャートである。なお、図11では、実行判断部23aが実行する実行判断処理を例として示している。
まず、実行判断部23aは、関数要求受信部22から関数要求についての情報を、自己が備える実行待ち要求関数リスト24aと、実行結果待ち要求関数リスト26とに格納する(S61)。つまり、実行待ち要求関数リスト24aには、実行判断部23aに送信された関数要求についての情報だけが格納され、実行結果待ち要求関数リスト26には全ての実行判断部23に送信された関数要求についての情報だけが格納される。
次に、実行判断部23aは、実行待ち要求関数リスト24aに登録された関数のうち、最も優先度(要求元優先度)の高い関数を呼び出す(S62)。そして、実行判断部23は、S62で呼び出した関数に関する情報を実行待ち要求関数リスト24aから削除する(S63)。
まず、実行判断部23aは、関数要求受信部22から関数要求についての情報を、自己が備える実行待ち要求関数リスト24aと、実行結果待ち要求関数リスト26とに格納する(S61)。つまり、実行待ち要求関数リスト24aには、実行判断部23aに送信された関数要求についての情報だけが格納され、実行結果待ち要求関数リスト26には全ての実行判断部23に送信された関数要求についての情報だけが格納される。
次に、実行判断部23aは、実行待ち要求関数リスト24aに登録された関数のうち、最も優先度(要求元優先度)の高い関数を呼び出す(S62)。そして、実行判断部23は、S62で呼び出した関数に関する情報を実行待ち要求関数リスト24aから削除する(S63)。
S44で呼び出された関数a〜cそれぞれは、呼び出し元の実行判断部23に割り当てられたコンピュータリソースを使用して、処理が実行される。上述したように、レスポンス時間が長い区分に対応する実行判断部23ほど多くのコンピュータリソースが割り当てられている。そのため、レスポンス時間が長い区分に対応する実行判断部23から呼び出された関数ほど、処理を高速に実行できる。
S45以降の処理は、図2のS15以降の処理と同じである。
S45以降の処理は、図2のS15以降の処理と同じである。
以上のように、実施の形態2に係る実行順序制御装置1は、関数のレスポンス時間に応じてコンピュータリソースの割当量が異なる複数の実行判断部23を備え、関数のレスポンス時間に応じてどの実行判断部23に関数を実行させるかを制御する。そのため、レスポンス時間が長い区分に対応する実行判断部23から呼び出された関数ほど、処理を高速に実行できる。その結果、関数間のレスポンス時間のばらつきを抑え、レスポンス時間を平滑化することができる。
なお、各実行判断部23は独立して動作しており、実行判断部23間で関数の呼出し順序の調整は行わない。したがって、異なる実行判断部23へ送られた関数要求で実行を要求される関数の間で、優先度が逆転して関数が呼び出される可能性がある。しかし、送信判断部25により実行結果が送信される順序は優先度(要求側優先度)の順になる。
また、上記説明では、関数実行側システム20は、2つの関数要求受信部22及び実行判断部23を備えるとした。しかし、関数実行側システム20は、3つ以上の関数要求受信部22及び実行判断部23を備えるとしてもよい。そして、レスポンス時間の区分を3つ以上としてもよい。
以上の実施の形態に係る実行順序制御装置1のハードウェア構成について説明する。
図12は、実行順序制御装置1のハードウェア構成の一例を示す図である。
図12に示すように、実行順序制御装置1は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
図12は、実行順序制御装置1のハードウェア構成の一例を示す図である。
図12に示すように、実行順序制御装置1は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
磁気ディスク装置920又はROM913などには、OS921(関数要求側OS11、関数実行側OS21)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、OS921、ウィンドウシステム922により実行される。
プログラム群923には、上記の説明において「アプリケーション12」、「関数要求送信部13」、「実行結果受信部14」、「関数要求受信部22」、「実行判断部23」、「送信判断部25」、「実行結果送信部27」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「区分制御テーブル15」、「実行待ち要求関数リスト24」、「実行結果待ち要求関数リスト26」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
ファイル群924には、上記の説明において「区分制御テーブル15」、「実行待ち要求関数リスト24」、「実行結果待ち要求関数リスト26」に格納される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
1 実行順序制御装置、10 関数要求側システム、11 関数要求側OS、12 アプリケーション、13 関数要求送信部、14 実行結果受信部、15 区分制御テーブル、20 関数実行側システム、21 関数実行側OS、22 関数要求受信部、23 実行判断部、24 実行待ち要求関数リスト、25 送信判断部、26 実行結果待ち要求関数リスト、27 実行結果送信部。
Claims (5)
- 第1OS(Operating System)と、前記第1OSとは異なる第2OSとが動作する実行順序制御装置であって、前記第1OSにおいて動作するアプリケーションプログラムが、前記第2OSにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御装置であり、
前記第1OSが動作する関数要求側システムと、前記第2OSが動作する関数実行側システムとを備え、
前記関数要求側システムは、
前記第1OSにおいて動作するアプリケーションプログラムから前記第2OSにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記関数実行側システムへ送信する関数要求送信部
を備え、
前記関数実行側システムは、
前記関数要求送信部が送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断部と、
前記実行判断部が関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信部と
を備えることを特徴とする実行順序制御装置。 - 前記実行結果送信部は、前記関数実行結果を実行が終了した関数から順に取得し、前記優先度が高い関数要求が示す関数の関数実行結果から順に前記関数要求側システムへ送信する
ことを特徴とする請求項1に記載の実行順序制御装置。 - 前記実行判断部は、同一の条件下で関数を呼出した場合におけるレスポンス時間であって、関数を呼出してから関数実行結果が出力されるまでのレスポンス時間に応じて各関数に割り当てられた区分毎に設けられ、区分毎に設けられた各実行判断部には、前記レスポンス時間が長い区分に対して設けられた実行判断部ほど、多くのコンピュータリソースが割り当てられ、
前記関数要求送信部は、関数の呼出し要求を受信すると、前記関数の実行を要求する関数要求をその関数の優先度とともに、受信した関数に割り当てられた区分に対応して設けられた実行判断部へ送信し、
前記各実行判断部は、前記関数要求送信部が送信した関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を自己に割り当てられたコンピュータリソースを用いて前記優先度の高い順に呼出して実行する
ことを特徴とする請求項1又は2に記載の実行順序制御装置。 - 第1OS(Operating System)と、前記第1OSとは異なる第2OSとが動作する計算機における実行順序制御方法であって、前記第1OSにおいて動作するアプリケーションプログラムが、前記第2OSにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御方法であり、
前記第1OSが動作する関数要求側システムが、前記第1OSにおいて動作するアプリケーションプログラムから前記第2OSにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記第2OSが動作する関数実行側システムへ送信する関数要求送信ステップと、
前記関数実行側システムが、前記関数要求送信ステップで送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断ステップと、
前記関数実行側システムが、前記実行判断ステップで関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信ステップと
を備えることを特徴とする実行順序制御方法。 - 第1OS(Operating System)と、前記第1OSとは異なる第2OSとが動作する計算機のための実行順序制御プログラムであって、前記第1OSにおいて動作するアプリケーションプログラムが、前記第2OSにおいて動作する複数の関数を呼出した場合に、前記複数の関数の実行順序を制御する実行順序制御プログラムであり、
前記第1OSが動作する関数要求側システムにおいて、前記第1OSにおいて動作するアプリケーションプログラムから前記第2OSにおいて動作する複数の関数の呼出し要求を受信すると、各関数について、その関数の実行を要求する関数要求を、関数要求側システムにおけるその関数の実行順位を示す優先度とともに、前記第2OSが動作する関数実行側システムへ送信する関数要求送信処理と、
前記関数実行側システムにおいて、前記関数要求送信処理で送信した各関数についての関数要求を前記優先度とともに取得し、取得した関数要求が示す関数を前記優先度の高い順に呼出して実行する実行判断処理と、
前記関数実行側システムにおいて、前記実行判断処理で関数を実行した結果を示す関数実行結果を、前記関数要求側システムへ送信する実行結果送信処理と
をコンピュータに実行させることを特徴とする実行順序制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010269297A JP2012118858A (ja) | 2010-12-02 | 2010-12-02 | 実行順序制御装置、実行順序制御方法及び実行順序制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010269297A JP2012118858A (ja) | 2010-12-02 | 2010-12-02 | 実行順序制御装置、実行順序制御方法及び実行順序制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012118858A true JP2012118858A (ja) | 2012-06-21 |
Family
ID=46501576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010269297A Pending JP2012118858A (ja) | 2010-12-02 | 2010-12-02 | 実行順序制御装置、実行順序制御方法及び実行順序制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012118858A (ja) |
-
2010
- 2010-12-02 JP JP2010269297A patent/JP2012118858A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9201712B2 (en) | System and method for selecting a synchronous or asynchronous interprocess communication mechanism | |
US8549526B2 (en) | Access control apparatus and access control method | |
US10348815B2 (en) | Command process load balancing system | |
WO2015101091A1 (zh) | 一种分布式资源调度方法及装置 | |
US8413159B2 (en) | Classifying workload for a service | |
CN111045782A (zh) | 日志处理方法、装置、电子设备和计算机可读存储介质 | |
US20170052979A1 (en) | Input/Output (IO) Request Processing Method and File Server | |
CN115904761A (zh) | 片上系统、车辆及视频处理单元虚拟化方法 | |
US20110055831A1 (en) | Program execution with improved power efficiency | |
CN107045452B (zh) | 虚拟机调度方法和装置 | |
CN110209466B (zh) | 资源配置方法、资源配置装置及存储介质 | |
CN112005217B (zh) | 服务于请求的独立线程api调用 | |
US9690619B2 (en) | Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory | |
CN116302271A (zh) | 一种页面展示方法、装置及电子设备 | |
CN110120963B (zh) | 一种数据处理方法、装置、设备和机器可读介质 | |
US9092273B2 (en) | Multicore processor system, computer product, and control method | |
JP2012118858A (ja) | 実行順序制御装置、実行順序制御方法及び実行順序制御プログラム | |
JP5045576B2 (ja) | マルチプロセッサシステム及びプログラム実行方法 | |
CN110851258B (zh) | Api调用方法、装置、计算机设备及存储介质 | |
US10979359B1 (en) | Polling resource management system | |
CN113918291A (zh) | 多核操作系统流任务调度方法、系统、计算机和介质 | |
US20110125726A1 (en) | Smart algorithm for reading from crawl queue | |
JP2019179487A (ja) | 情報処理装置、制御方法、及びプログラム | |
CN112749073B (zh) | 业务测试方法、装置、存储介质及电子设备 | |
US20240168798A1 (en) | Automatic synchronous or asynchronous execution of requests |