(57)【要約】本発明は、オペレーションシステムを有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを上記オペレーションシステム上で同時に利用可能な端末装置に係り、上記第１のアプリケーションプログラムによる上記リアルタイムコミュニケーション中に上記オペレーションシステムに対する上記第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、上記システムコールの呼出しの実行間隔時間を一定時間以上に設定するシステムコール呼出し実行間隔設定手段が設けられていることを特徴としている。
2010131579.tif 000002
【特許請求の範囲】
【請求項１】
オペレーションシステムを有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを前記オペレーションシステム上で同時に利用可能な端末装置であって、
前記第１のアプリケーションプログラムによる前記リアルタイムコミュニケーション中に前記オペレーションシステムに対する前記第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、前記システムコールの呼出しの実行間隔時間を一定時間以上に設定するシステムコール呼出し実行間隔設定手段が設けられていることを特徴とする端末装置。
【請求項２】
前記システムコール呼出し実行間隔設定手段は、
前記システムコールの呼出しの実行間隔時間を、前記第２のアプリケーションプログラムのシステムコールによる前記リアルタイムコミュニケーションプログラムの品質劣化が防止される値の前記一定時間以上に設定する構成とされていることを特徴とする請求項１記載の端末装置。
【請求項３】
前記システムコール呼出し実行間隔設定手段は、
前記オペレーションシステムに対する前記第２のアプリケーションプログラムによるシステムコールの呼出し数を計測するシステムコール計測手段と、
前記システムコール計測手段で計測された前記システムコール呼出し数を所定の周期で集計し、前記システムコール呼出し数の総和に基づいてシステムコールの前記呼出し頻度を算出して該呼出し頻度を前記閾値と比較し、この比較結果に基づいて前記システムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する実行間隔制御判定手段と、
該実行間隔制御判定手段による判定結果が、前記実行間隔時間の制御が必要であることを示すとき、前記システムコールの呼出しの実行間隔時間を前記一定時間以上に設定する間隔時間設定手段とから構成されていることを特徴とする請求項１又は２記載の端末装置。
【請求項４】
前記間隔時間設定手段は、
あらかじめ設定されている前記システムコールの呼出しの実行間隔時間を記憶する実行間隔記憶手段と、
実行待ちの前記システムコールの呼出しを先入れ先出し方式で記憶するためのシステムコール呼出し記憶手段と、
前記システムコールの呼出しを前記システムコール呼出し記憶手段に順次記憶させると同時に、該システムコール呼出し記憶手段に記憶されている順序かつ前記実行間隔記憶手段で記憶されている前記実行間隔時間で、前記システムコールの呼出しを実行するシステムコール呼出し手段とから構成されていることを特徴とする請求項３記載の端末装置。
【請求項５】
あらかじめ設定された最大遅延時間を記憶する最大遅延時間記憶手段と、
前記システムコール呼出し記憶手段に記憶されている実行待ちの前記システムコールの呼出しの数を定期的にカウントし、最後の実行待ちの前記システムコールの呼出しが実際に実行されるまでの時間が前記最大遅延時間に収まるように前記システムコール呼出し手段の前記実行間隔時間を調整する間隔時間調整手段とが設けられていることを特徴とする請求項４記載の端末装置。
【請求項６】
オペレーションシステムを有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを前記オペレーションシステム上で同時に利用可能な端末装置に用いられるコミュニケーション方法であって、
前記第１のアプリケーションプログラムによる前記リアルタイムコミュニケーション中に前記オペレーションシステムに対する前記第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、システムコール呼出し実行間隔設定手段が、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、前記システムコールの呼出しの実行間隔時間を一定時間以上に設定することを特徴とするコミュニケーション方法。
【請求項７】
前記実行間隔時間の設定においては、
前記システムコールの呼出しの実行間隔時間を、前記第２のアプリケーションプログラムのシステムコールによる前記リアルタイムコミュニケーションプログラムの品質劣化が防止される値の前記一定時間以上に設定することを特徴とする請求項６記載のコミュニケーション方法。
【請求項８】
前記実行間隔時間の設定においては、
システムコール計測手段が、前記オペレーションシステムに対する前記第２のアプリケーションプログラムによるシステムコールの呼出し数を計測し、
実行間隔制御判定手段が、前記システムコール計測処理で計測された前記システムコール呼出し数を所定の周期で集計し、前記システムコール呼出し数の総和に基づいてシステムコールの前記呼出し頻度を算出して該呼出し頻度を前記閾値と比較し、この比較結果に基づいて前記システムコールの呼出しの実行間隔時間の制御の必要性の有無を判定し、
該実行間隔制御判定処理による判定結果が、前記実行間隔時間の制御が必要であることを示すとき、間隔時間設定手段が、前記システムコールの呼出しの実行間隔時間を前記一定時間以上に設定することを特徴とする請求項６又は７記載のコミュニケーション方法。
【請求項９】
前記実行間隔時間の設定においては、
実行間隔記憶手段が、あらかじめ設定されている前記システムコールの呼出しの実行間隔時間を記憶し、
システムコール呼出し記憶手段が、実行待ちの前記システムコールの呼出しを先入れ先出し方式で記憶し、
システムコール呼出し手段が、前記システムコールの呼出しを前記システムコール呼出し記憶手段に順次記憶させると同時に、該システムコール呼出し記憶手段に記憶されている順序かつ前記実行間隔記憶手段で記憶されている前記実行間隔時間で、前記システムコールの呼出しを実行することを特徴とする請求項８記載のコミュニケーション方法。
【請求項１０】
あらかじめ設定された最大遅延時間を記憶する最大遅延時間記憶手段を設けておき、
間隔時間調整手段が、前記システムコール呼出し記憶手段に記憶されている実行待ちの前記システムコールの呼出しの数を定期的にカウントし、最後の実行待ちの前記システムコールの呼出しが実際に実行されるまでの時間が前記最大遅延時間に収まるように前記システムコール呼出し手段の前記実行間隔時間を調整することを特徴とする請求項９記載のコミュニケーション方法。
【請求項１１】
コンピュータに、
第１のアプリケーションプログラムによるリアルタイムコミュニケーション中にオペレーションシステムに対する第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、システムコール呼出し実行間隔設定手段が、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、前記システムコールの呼出しの実行間隔時間を一定時間以上に設定する時間間隔設定処理ステップを実行させることを特徴とするコミュニケーション制御プログラム。
【請求項１２】
時間間隔設定処理ステップにおいて、
前記システムコールの呼出しの実行間隔時間を、前記第２のアプリケーションプログラムのシステムコールによる前記リアルタイムコミュニケーションプログラムの品質劣化が防止される値の前記一定時間以上に設定することを特徴とする請求項１１記載のコミュニケーション制御プログラム。
【請求項１３】
前記コンピュータに、
時間間隔設定処理ステップにおいて、
システムコール計測手段が、前記オペレーションシステムに対する前記第２のアプリケーションプログラムによるシステムコールの呼出し数を計測するシステムコール計測処理ステップと、
実行間隔制御判定手段が、前記システムコール計測処理で計測された前記システムコール呼出し数を所定の周期で集計し、前記システムコール呼出し数の総和に基づいてシステムコールの前記呼出し頻度を算出して該呼出し頻度を前記閾値と比較し、この比較結果に基づいて前記システムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する実行間隔制御判定処理ステップと、
該実行間隔制御判定処理による判定結果が、前記実行間隔時間の制御が必要であることを示すとき、間隔時間設定手段が、前記システムコールの呼出しの実行間隔時間を前記一定時間以上に設定する間隔時間設定処理ステップと、
を実行させることを特徴とする請求項１１又は１２記載のコミュニケーション制御プログラム。
【請求項１４】
前記コンピュータに、
前記間隔時間設定処理ステップにおいて、
実行間隔記憶手段が、あらかじめ設定されている前記システムコールの呼出しの実行間隔時間を記憶する実行間隔記憶処理ステップと、
システムコール呼出し記憶手段が、実行待ちの前記システムコールの呼出しを先入れ先出し方式で記憶するシステムコール呼出し記憶処理ステップと、
システムコール呼出し手段が、前記システムコールの呼出しを前記システムコール呼出し記憶手段に順次記憶させると同時に、該システムコール呼出し記憶手段に記憶されている順序かつ前記実行間隔記憶手段で記憶されている前記実行間隔時間で、前記システムコールの呼出しを実行するシステムコール呼出し処理ステップと、
を実行させることを特徴とする請求項１３記載のコミュニケーション制御プログラム。
【請求項１５】
前記コンピュータに、
あらかじめ設定された最大遅延時間を記憶する最大遅延時間記憶手段を設けておき、
間隔時間調整手段が、前記システムコール呼出し記憶手段に記憶されている実行待ちの前記システムコールの呼出しの数を定期的にカウントし、最後の実行待ちの前記システムコールの呼出しが実際に実行されるまでの時間が前記最大遅延時間に収まるように前記システムコール呼出し手段の前記実行間隔時間を調整する間隔時間調整処理ステップを実行させることを特徴とする請求項１４記載のコミュニケーション制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、該端末装置に用いられるコミュニケーション方法及びコミュニケーション制御プログラムに関する。本発明は、たとえば、パソコンなどのような汎用の端末装置を使用し、同端末装置上で映像や音声のようなメディアの送受信を行うためのリアルタイムコミュニケーションのアプリケーションプログラムと、他の目的のアプリケーションプログラムとが同時に利用される場合に好適な端末装置、該端末装置に用いられるコミュニケーション方法及びコミュニケーション制御プログラムに関する。
【背景技術】
【０００２】
映像や音声のようなメディアは、端末装置でリアルタイムコミュニケーションを実行するときに、データが連続して送受信されるため、同端末装置での処理も遅延することなく連続的に行う必要がある。しかしながら、処理が遅延した場合には、音切れや映像の停止などの品質劣化が発生する。一方、端末装置として、たとえばパソコンのような汎用のものが使用された場合、同端末装置上でリアルタイムコミュニケーションのアプリケーションと、他の目的のアプリケーションとが同時に利用されることがある。この状態で映像や音声のデータ処理を途切れることなく行うために、このデータ処理の実行優先度を、他の目的のアプリケーションよりも高く設定する技術が提案されている。
この種の関連技術としては、たとえば、特許文献１に記載された電子機器が知られている。
この電子機器では、まず、ＴＶビュワが起動される。次に、スレッド優先度決定部により、テレビ画像表示部がフルスクリーン（全画面表示）かどうか確認される。テレビ画像表示部がフルスクリーンの場合、スレッド優先度決定部は、映像処理において、処理されるスレッドの優先度を上げる一方、フルスクリーンでない場合、スレッドの優先度を下げる。ＴＶビュワが使用されている状況では、テレビ画像表示部のサイズが変更されるタイミングで上記の処理が行われ、スレッドの優先度が動的に変化する。これにより、テレビ画像表示部のサイズに対応して、映像処理の優先度がＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）制御より高く設定されることで、コマ落ちや映像劣化が防止される。
また、特許文献２に記載されたコンピュータシステムでは、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）からの受信割込み回数と、受信割込みによるＣＰＵ（中央処理装置）の利用時間が測定される。これらの測定結果は、一定の時間周期でリセットされる。割込みが発生する毎に、割込み回数の測定結果と閾値とが比較され、測定結果が閾値を超えている場合は受信処理が禁止され、受信パケットが破棄される。同様に、ＣＰＵの利用時間の測定結果と閾値とが比較され、測定結果が閾値を超えている場合は受信処理が禁止され、受信パケットが破棄される。
また、特許文献３に記載されたコンピュータシステムの外部イベント検出方式では、外部イベント保持手段は、複数の外部イベントの発生をそれぞれ保持し、当該外部イベント対応にイベント発生を通知するためのイベント発生通知信号を出力する。遅延手段により、いずれか一つのイベント発生通知信号を受信すると、当該イベント発生通知信号に基づく割込み信号の出力が一定時間遅延され、当該遅延時間内に受信した他のイベント発生信号とが集約された割込み信号として出力される。中央処理装置により、上記割込み信号を受信すると、上記外部イベント保持手段に保持されている外部イベントが順次処理され、当該各処理の終了に伴い、第１のリセット信号に対応するリセット命令が出力され、当該全ての処理が完了すると、第２のリセット信号に対応するリセット命令が出力される。リセット手段により、中央処理装置のリセット命令を受けて、上記外部イベント保持手段が保持する情報を個別に解放する上記第１のリセット信号、及び、上記遅延手段の動作を開放する上記第２のリセット信号が与えられる。
また、特許文献４に記載された画像処理装置では、イベント通信手段は、外部から入力された外部イベントをイベント蓄積手段に蓄積し、イベント通知を出力すると共に、割込み信号を出力する。イベントカウント手段は、イベント通知数をカウントする。タイムカウンタにより、イベント通知が出力されたときからの経過時間がカウントされる。中央処理手段は、割込み信号に基づいて動作指令を出力する。イベント処理実行手段は、イベント処理を実行する。遅延手段は、カウントされたイベント通知数と経過時間とに基づき、割込み信号を遅延させて中央処理手段に出力する。
【特許文献１】特開２００８−０４０６４２号公報
【特許文献２】特開２００５−３４７８９４号公報
【特許文献３】特許第２６７７１７５号公報
【特許文献４】特許第３９８１０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記関連技術では、次のような課題があった。
すなわち、特許文献１に記載された電子機器では、優先されるべき映像や音声のデータ処理の実行優先度を、同時に実行されるアプリケーション（以下、「同時実行ＡＰ」という）の処理より高く設定した場合でも、同時実行ＡＰの振舞によっては、映像や音声のデータ処理の途切れによる音質や画質の劣化が発生することがある。その理由は、汎用の端末装置でＯＳ（オペレーションシステム）が用いられている場合に、映像や音声のデータ処理よりも相対的に低い実行優先度となっている同時実行ＡＰが処理中でシステムコール（ＯＳの機能を呼び出すインタフェース）を連続的に呼び出すと、ＯＳによる処理は、一般のアプリケーションの処理より高優先度で実行されるからである。その結果、一般のアプリケーションの中では高い実行優先度が設定された映像や音声のデータ処理よりも優先して処理され、映像や音声のデータ処理が遅延する。
特許文献２に記載されたコンピュータシステムでは、ＮＩＣからの受信割込み回数が測定されるが、割込みが発生する毎に、割込み回数の測定結果と閾値とが比較されるようになっているので、この発明とは構成が異なる。
特許文献３に記載された外部イベント検出方式では、遅延手段により、イベント発生通知信号を受信すると、当該イベント発生通知信号に基づく割込み信号の出力が一定時間遅延されるが、当該遅延時間内に受信した他のイベント発生信号とが集約された割込み信号として出力されるので、この発明とは構成が異なる。
特許文献４に記載された画像処理装置では、イベント蓄積手段に蓄積されたイベントについて、イベント発生時からの実際の経過時間が遅延時間に達すると、イベント処理実行手段により、イベントに関連した処理が実行されるので、この発明とは構成が異なる。
この発明は、上述の事情に鑑みてなされたもので、リアルタイムコミュニケーションの音声や映像の品質に対して、同時に実行されるアプリケーションの振舞による劣化が防止される端末装置、該端末装置に用いられるコミュニケーション方法及びコミュニケーション制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００４】
本発明の端末装置は、オペレーションシステムを有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを上記オペレーションシステム上で同時に利用可能な端末装置であって、上記第１のアプリケーションプログラムによる上記リアルタイムコミュニケーション中に上記オペレーションシステムに対する上記第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、上記システムコールの呼出しの実行間隔時間を一定時間以上に設定するシステムコール呼出し実行間隔設定手段が設けられていることを特徴とする。
本発明のコミュニケーション方法は、オペレーションシステムを有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを前記オペレーションシステム上で同時に利用可能な端末装置に用いられるコミュニケーション方法であって、上記第１のアプリケーションプログラムによる上記リアルタイムコミュニケーション中に上記オペレーションシステムに対する上記第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、システムコール呼出し実行間隔設定手段が、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、上記システムコールの呼出しの実行間隔時間を一定時間以上に設定することを特徴とする。
本発明のコミュニケーション制御プログラムは、コンピュータに、第１のアプリケーションプログラムによるリアルタイムコミュニケーション中にオペレーションシステムに対する第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、システムコール呼出し実行間隔設定手段が、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、上記システムコールの呼出しの実行間隔時間を一定時間以上に設定する時間間隔設定処理ステップを実行させることを特徴とする。
【発明の効果】
【０００５】
本発明の構成によれば、例えば、第２のアプリケーションプログラムによるシステムコールの呼出しが連続的に実行される場合でも、第１のアプリケーションプログラムによるリアルタイムコミュニケーションの品質劣化を防止することができるという効果を有する。
【図面の簡単な説明】
【０００６】
図１は、本発明の第１の実施形態である端末装置の要部の構成を示すブロック図である。
図２は、システムコールカウンタ手段１２１，１２２の動作を説明するフローチャートである。
図３は、カウンタ集計手段１５の動作を説明するフローチャートである。
図４は、システムコールキュー手段１３１，１３２の動作を説明するフローチャートである。
図５は、この発明の第２の実施形態である端末装置の要部の構成を示すブロック図である。
図６は、カウンタ集計手段１５の動作を説明するフローチャートである。
図７は、システムコールキュー手段１３１，１３２の動作を説明するフローチャートである。
図８は、遅延時間決定手段１６の動作を説明するフローチャートである。
図９は、この発明の第３の実施形態である端末装置の要部の構成を示すブロック図である。
図１０は、端末装置の変形例を示す図である。
【符号の説明】
【０００７】
１，１Ａ，１Ｂ    端末装置
１０，１０Ａ，１０Ｂ    データ処理装置（端末装置の一部）
１１    コミュニケーションＡＰ（アプリケーション）（第１のアプリケーションプログラム）
１２，１２１，１２２    システムコールカウンタ手段（システムコール計測手段、システムコール呼出し実行間隔設定手段の一部）
１３，１３１，１３２    システムコールキュー手段（システムコール呼出し手段、間隔時間設定手段の一部、システムコール呼出し実行間隔設定手段の一部）
１４，１４１，１４２    同時実行ＡＰ（アプリケーション）（第２のアプリケーションプログラム）
１５    カウンタ集計手段（実行間隔制御判定手段の一部、システムコール呼出し実行間隔設定手段の一部）
１６    遅延時間決定手段（間隔時間調整手段）
２０，２０Ａ    記憶装置（端末装置の一部）
２１    制御閾値管理部（実行間隔制御判定手段の一部、システムコール呼出し実行間隔設定手段の一部）
２２    基本遅延時間管理部（実行間隔記憶手段、間隔時間設定手段の一部、システムコール呼出し実行間隔設定手段の一部）
２３    キュー管理部（システムコール呼出し記憶手段、間隔時間設定手段の一部、システムコール呼出し実行間隔設定手段の一部）
２４    上限キュー長管理部（最大遅延時間記憶手段）
【発明を実施するための最良の形態】
【０００８】
システムコール呼出し実行間隔設定手段が、システムコールの呼出しの実行間隔時間を、第２のアプリケーションプログラムのシステムコールによるリアルタイムコミュニケーションプログラムの品質劣化を防止可能な値に設定する端末装置を提供する。
また、この発明の好適な形態では、システムコール呼出し実行間隔設定手段は、オペレーションシステムに対する第２のアプリケーションプログラムによるシステムコールの呼出し数を計測するシステムコール計測手段と、システムコール計測手段で計測されたシステムコール呼出し数を所定の周期で集計し、システムコール呼出し数の総和に基づいてシステムコールの呼出し頻度を算出して該呼出し頻度を閾値と比較し、この比較結果に基づいてシステムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する実行間隔制御判定手段と、該実行間隔制御判定手段による判定結果が、実行間隔時間の制御が必要であることを示すとき、システムコールの呼出しの実行間隔時間を一定時間以上に設定する間隔時間設定手段とから構成されている。
また、この発明の好適な形態では、間隔時間設定手段は、あらかじめ設定されているシステムコールの呼出しの実行間隔時間を記憶する実行間隔記憶手段と、実行待ちの上記システムコールの呼出しを先入れ先出し方式で記憶するためのシステムコール呼出し記憶手段と、システムコールの呼出しをシステムコール呼出し記憶手段に順次記憶させると同時に、該システムコール呼出し記憶手段に記憶されている順序かつ実行間隔記憶手段で記憶されている実行間隔時間で、システムコールの呼出しを実行するシステムコール呼出し手段とから構成されている。
また、この発明の好適な形態では、あらかじめ設定された最大遅延時間を記憶する最大遅延時間記憶手段と、システムコール呼出し記憶手段に記憶されている実行待ちの上記システムコールの呼出しの数を定期的にカウントし、最後の実行待ちのシステムコールの呼出しが実際に実行されるまでの時間が最大遅延時間に収まるように上記システムコール呼出し手段の実行間隔時間を調整する間隔時間調整手段とが設けられている。
（実施形態１）
図１は、この発明の第１の実施形態である端末装置の要部の構成を示すブロック図である。
この形態の端末装置１は、オペレーションシステム（ＯＳ）を有し、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムと他の目的の第２のアプリケーションプログラムとを同ＯＳ上で同時に利用可能なものであり、同図に示すように、データ処理装置１０と、記憶装置２０とを備えている。データ処理装置１０は、コミュニケーションＡＰ（アプリケーション）１１と、システムコールカウンタ手段１２１，１２２と、システムコールキュー手段１３１，１３２と、同時実行ＡＰ（アプリケーション）１４１，１４２と、カウンタ集計手段１５とから構成されている。記憶装置２０は、制御閾値管理部２１と、基本遅延時間管理部２２と、キュー管理部２３とを有している。
コミュニケーションＡＰ１１は、リアルタイムコミュニケーションに用いるための第１のアプリケーションプログラムであり、端末装置１と同様の構成の他の端末装置のコミュニケーションＡＰと通信することで、端末装置の利用者間でコミュニケーションを行うためのものである。同時実行ＡＰ１４１，１４２は、他の目的の第２のアプリケーションプログラムであり、コミュニケーションＡＰ１１と同時に利用可能なものである。システムコールカウンタ手段１２１，１２２は、上記オペレーションシステム（ＯＳ）に対する同時実行ＡＰ１４１，１４２によるシステムコールの呼出し数をそれぞれ計測してカウント結果ｃａ，ｃｂとして出力する。
制御閾値管理部２１は、カウンタ集計手段１５に閾値ｔｃを与える。基本遅延時間管理部２２は、あらかじめ設定されているシステムコールの呼出しの実行間隔時間Ｔａを記憶する。キュー管理部２３は、実行待ちのシステムコールの呼出しを先入れ先出し方式で記憶するためのものである。カウンタ集計手段１５は、システムコールカウンタ手段１２１，１２２で計測されたシステムコール呼出し数（カウント結果ｃａ，ｃｂ）を定期的に収集し、同カウント結果ｃａ，ｃｂを所定の周期で集計する。そして、カウンタ集計手段１５は、同カウント結果ｃａ，ｃｂの総和に基づいて一定時間内の呼出数をシステムコールの呼出し頻度として算出し、同呼出し頻度を、制御閾値管理部２１から与えられる閾値ｔｃと比較する。そして、カウンタ集計手段１５は、この比較結果に基づいて上記システムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する。この場合、カウンタ集計手段１５は、システムコールの呼出しの実行間隔時間の制御が必要なとき、基本遅延時間管理部２２から実行間隔時間Ｔａを読み出してシステムコールキュー手段１３１，１３２に指示する。
システムコールキュー手段１３１，１３２は、カウンタ集計手段１５による判定結果が、上記実行間隔時間の制御が必要であることを示すとき、システムコールの呼出しの実行間隔時間を一定時間以上に設定する。この場合、システムコールキュー手段１３１，１３２は、上記システムコールの呼出しをキュー管理部２３に順次記憶させると同時に、同キュー管理部２３に記憶されている順序かつ基本遅延時間管理部２２で記憶されている実行間隔時間Ｔａで、同システムコールの呼出しを実行する。この実行間隔時間Ｔａは、オペレーションシステム（ＯＳ）に対する同時実行ＡＰ１４１，１４２のシステムコールによるコミュニケーションＡＰ１１の品質劣化が防止される値に設定されている。
この端末装置１は、データ処理装置１０が、コンピュータとしての中央演算装置及びメモリで構成され、上記オペレーションシステム（ＯＳ）を構成するコミュニケーション制御プログラムに基づいて制御される。そして、同メモリ上のコミュニケーション制御プログラムが同中央演算装置で実行されることにより、上記各手段として動作する。記憶装置２０は、たとえばハードディスクで構成されている。
図２は、システムコールカウンタ手段１２１，１２２の動作を説明するフローチャート、図３は、カウンタ集計手段１５の動作を説明するフローチャート、及び図４が、システムコールキュー手段１３１，１３２の動作を説明するフローチャートである。
これらの図を参照して、この形態の端末装置に用いられるコミュニケーション方法の処理内容について説明する。
この端末装置１は、第１のアプリケーションプログラム（コミュニケーションＡＰ１１）によるリアルタイムコミュニケーション中にオペレーションシステム（ＯＳ）に対する第２のアプリケーションプログラム（同時実行ＡＰ１４１，１４２）によるシステムコールの呼出しを同時に実行するとき、同システムコールの呼出し頻度を算出する。そして、同呼出し頻度が所定の閾値ｔｃを超えたとき、システムコールの呼出しの実行間隔時間が一定時間以上に設定される（システムコール呼出し実行間隔設定処理）。このシステムコール呼出し実行間隔設定処理においては、上記システムコールの呼出しの実行間隔時間は、オペレーションシステム（ＯＳ）に対する第２のアプリケーションプログラムのシステムコールによるリアルタイムコミュニケーションプログラムの品質劣化が防止される値の一定時間以上に設定される。
同システムコール呼出し実行間隔設定処理においては、システムコールカウンタ手段１２１，１２２は、オペレーションシステム（ＯＳ）に対する第２のアプリケーションプログラムによるシステムコールの呼出し数を計測する（システムコール計測処理）。次に、カウンタ集計手段１５は、システムコール計測処理で計測されたシステムコール呼出し数を所定の周期で集計し、同システムコール呼出し数の総和に基づいてシステムコールの呼出し頻度を算出し、同呼出し頻度を制御閾値管理部２１の閾値ｔｃと比較する。さらに、カウンタ集計手段１５は、この比較結果に基づいてシステムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する（実行間隔制御判定処理）。そして、同実行間隔制御判定処理による判定結果が、上記実行間隔時間の制御が必要であることを示すとき、システムコールキュー手段１３１，１３２は、システムコールの呼出しの実行間隔時間を上記一定時間以上に設定する（間隔時間設定処理）。
上記間隔時間設定処理においては、基本遅延時間管理部２２は、あらかじめ設定されているシステムコールの呼出しの実行間隔時間Ｔａを記憶する（実行間隔記憶処理）。キュー管理部２３は、実行待ちのシステムコールの呼出しを先入れ先出し方式で記憶する（システムコール呼出し記憶処理）。システムコールキュー手段１３１，１３２は、システムコールの呼出しをキュー管理部２３に順次記憶すると同時に、同キュー管理部２３に記憶されている順序かつ基本遅延時間管理部２２で記憶されている実行間隔時間Ｔａで、システムコールの呼出しを実行する（システムコール呼出し処理）。
すなわち、システムコールカウンタ手段１２１，１２２は、図２に示すように、コミュニケーションＡＰ１１によるリアルタイムコミュニケーションの実行中、常に同時実行ＡＰ１４１，１４２のシステムコール呼出しを監視し、呼出し数をカウントする（ステップＡ１）。
次に、カウンタ集計手段１５は、図３に示すように、システムコールカウンタ手段１２１，１２２でのシステムコール呼出し数のカウント結果ｃａ，ｃｂを所定の周期で集計し、システムコールの呼出し頻度（単位時間あたりの呼出し数）を算出する（ステップＢ１）。この呼出し頻度は、カウンタ集計手段１５によって、制御閾値管理部２１から与えられた閾値ｔｃと比較される（ステップＢ２）。呼出し頻度が閾値ｔｃを超えていれば、カウンタ集計手段１５は、システムコールキュー手段１３１，１３２に対して、遅延制御開始を指示する（ステップＢ３）。このとき、カウンタ集計手段１５は、基本遅延時間管理部２２からシステムコール呼出しの実行間隔時間Ｔａを読み出し、システムコールキュー手段１３１，１３２に通知する。この後も、カウンタ集計手段１５は、一定周期でシステムコールの呼出し頻度を算出し（ステップＢ４）、呼出し頻度が閾値ｔｃを下回ったとき（ステップＢ５）、カウンタ集計手段１５は、遅延制御終了をシステムコールキュー手段１３１，１３２に対して指示する（ステップＢ６）。
システムコールキュー手段１３１，１３２は、図４に示すように、カウンタ集計手段１５から遅延制御開始を指示されたとき、同時実行ＡＰ１４１，１４２でシステムコールが呼び出されたことを検知すると（ステップＣ１）、そのシステムコール呼出しを実行せずにキュー管理部２３の実行待ちキューに入れる（ステップＣ２）。それと同時に、システムコールキュー手段１３１，１３２は、一定時間間隔でキュー管理部２３の実行待ちキューの先頭のシステムコール呼出しを実行する（ステップＣ３）。このシステムコール呼出しの実行間隔は、遅延制御開始時にカウンタ集計手段１５から指示される。この後、システムコールキュー手段１３１，１３２は、カウンタ集計手段１５から遅延制御の終了指示があると、実行待ちキューのシステムコール呼出しの一定時間間隔での実行を同キューが空になるまで実行してから、遅延制御を終了する。
以上のように、この第１の実施形態では、コミュニケーションＡＰ１１によるリアルタイムコミュニケーション中にオペレーションシステムに対する同時実行ＡＰ１４１，１４２によるシステムコールの呼出しが同時に実行されるとき、同システムコールの呼出し頻度が算出される。そして、同呼出し頻度が所定の閾値ｔｃを超えたとき、システムコールの呼出しの実行間隔時間が一定時間以上に設定される。そのため、本実施形態では、高優先度のＯＳの処理が連続的に実行されることが原因で発生するコミュニケーションの品質劣化を防止することができる。
（実施形態２）
図５は、この発明の第２の実施形態である端末装置の要部の構成を示すブロック図である。
この形態の端末装置１Ａでは、同図５に示すように、第１の実施形態を示す図１中のデータ処理装置１０及び記憶装置２０に代えて、異なる構成のデータ処理装置１０Ａ及び記憶装置２０Ａが設けられている。データ処理装置１０Ａでは、データ処理装置１０の構成に加え、遅延時間決定手段１６が設けられている。また、記憶装置２０Ａでは、記憶装置２０の構成に加え、上限キュー長管理部２４が設けられている。上限キュー長管理部２４は、あらかじめ設定された最大遅延時間Ｔｍを記憶する。遅延時間決定手段１６は、キュー管理部２３に記憶されている実行待ちのシステムコールの呼出しの数を定期的にカウントし、カウンタ集計手段１５がシステムコールキュー手段１３１，１３２に対してシステムコールの呼出しの実行間隔時間の制御が必要なとき、最後の実行待ちのシステムコールの呼出しが実際に実行されるまでの時間が上記最大遅延時間Ｔｍに収まるように同システムコールキュー手段１３１，１３２の実行間隔時間を調整する。他は、図１と同様の構成である。
図６は、カウンタ集計手段１５の動作を説明するフローチャート、図７は、システムコールキュー手段１３１，１３２の動作を説明するフローチャート、及び図８が、遅延時間決定手段１６の動作を説明するフローチャートである。
これらの図を参照して、この形態の端末装置に用いられるコミュニケーション方法の処理内容について説明する。
この端末装置１Ａでは、上限キュー長管理部２４に、あらかじめ設定された最大遅延時間Ｔｍが記憶されている。遅延時間決定手段１６は、キュー管理部２３に記憶されている実行待ちのシステムコールの呼出しの数を定期的にカウントし、さらに、遅延時間決定手段１６は、最後の実行待ちのシステムコールの呼出しが実際に実行されるまでの時間が最大遅延時間Ｔｍに収まるようにシステムコールキュー手段１３１，１３２の実行間隔時間を調整する（間隔時間調整処理）。
すなわち、カウンタ集計手段１５は、図６に示すように、システムコールカウンタ手段１２１，１２２でのシステムコール呼出し数のカウント結果ｃａ，ｃｂを所定の周期で集計し、システムコールの呼出し頻度を算出する（ステップＤ１）。さらに、カウンタ集計手段１５は、この呼出し頻度を、制御閾値管理部２１から与えられた閾値ｔｃと比較し（ステップＤ２）、呼出し頻度が閾値ｔｃを超えていれば、遅延時間決定手段１６に対して遅延制御開始を指示する（ステップＤ３）。このとき、遅延時間決定手段１６は、基本遅延時間管理部２２からシステムコール呼出しの実行間隔時間Ｔａを読み出す。この後も、カウンタ集計手段１５は、一定周期でシステムコールの呼出し頻度を算出し（ステップＤ４）、呼出し頻度が閾値ｔｃを下回ったとき（ステップＤ５）、カウンタ集計手段１５は遅延制御終了を遅延時間決定手段１６に対して指示する（ステップＤ６）。
遅延時間決定手段１６は、図８に示すように、カウンタ集計手段１５から遅延制御開始を指示されると、システムコールキュー手段１３１，１３２に対して遅延制御の開始を指示し（ステップＦ１）、その際の実行間隔として、基本遅延時間管理部２２に記憶されている実行間隔時間Ｔａを併せて指示する。続いて、遅延時間決定手段１６は、キュー管理部２３の実行待ちシステムコール数を確認し（ステップＦ２）、システムコールキュー手段１３１，１３２におけるシステムコール実行間隔時間を決定して、同システムコールキュー手段１３１，１３２に指示する（ステップＦ３）。この場合、上限キュー長管理部２４に記憶されている最大遅延時間Ｔｍを実行待ちシステムコール数で割った商が、基本遅延時間管理部２２に記憶されている実行間隔時間Ｔａより大きければ、遅延時間決定手段１６は、この実行間隔時間Ｔａを実行間隔時間とし、そうでなければ商の値を実行間隔時間とする。また、遅延時間決定手段１６は、この実行間隔時間の決定及び指示が定期的に繰り返される間に、カウンタ集計手段１５から遅延制御終了指示があった場合（ステップＦ４）、システムコールキュー手段１３１，１３２に対して遅延制御終了を指示する（ステップＦ５）。
システムコールキュー手段１３１，１３２は、図７に示すように、遅延時間決定手段１６から遅延制御開始を指示されたとき、同時実行ＡＰ１４１，１４２でシステムコールが呼び出されたことを検知すると（ステップＥ１）、そのシステムコール呼出しを実行せずにキュー管理部２３の実行待ちキューに入ることが可能となれる（ステップＥ２）。それと同時に、システムコールキュー手段１３１，１３２は、一定時間間隔でキュー管理部２３の実行待ちキューの先頭のシステムコール呼出しを実行する（ステップＥ３）。このシステムコール呼出しの実行間隔は、遅延制御開始時に遅延時間決定手段１６から指示される。この後、システムコールキュー手段１３１，１３２では、遅延時間決定手段１６から遅延制御の終了指示があると、実行待ちキューのシステムコール呼出しの一定時間間隔での実行を同キューが空になるまで実行してから、遅延制御を終了する。
以上のように、この第２の実施形態では、遅延時間決定手段１６が、キュー管理部２３に記憶されている実行待ちのシステムコールの呼出しの数を定期的にカウントする。そして、遅延時間決定手段１６は、最後の実行待ちのシステムコールの呼出しが実際に実行されるまでの時間が最大遅延時間Ｔｍに収まるようにシステムコールキュー手段１３１，１３２の実行間隔時間を調整する。そのため、本実施形態では、第１の実施形態の利点に加え、同時実行ＡＰ１４１，１４２によりシステムコール実行終了までの時間が所定時間内に制限されている（すなわち、タイムアウトが設定されている）場合でも、遅延制御によるシステムコールの実行制限時間のオーバーを防止できる。
（実施形態３）
図９は、この発明の第３の実施形態である端末装置の要部の構成を示すブロック図である。
この形態の端末装置は、上記第１の実施形態を示す図１中の端末装置１に対応し、同図９に示すように、ＰＣ（パソコン）３０であり、オペレーションシステム（ＯＳ）３１と、コミュニケーションＡＰ３２と、同時実行ＡＰ３３と、品質劣化防止ＡＰ３４とを有している。オペレーションシステム（ＯＳ）３１は、たとえば、米マイクロソフト社の“Ｗｉｎｄｏｗｓ（登録商標）ＸＰ”で構成されている。コミュニケーションＡＰ３２は、たとえば“ソフトフォン”（パソコンのソフトウェアとして実現されたＩＰ電話）で構成され、ＯＳ３１上で稼働する。品質劣化防止ＡＰ３４は、ＯＳ３１上で稼働し、図１中のカウンタ集計手段１５、制御閾値管理部２１及び基本遅延時間管理部２２が含まれている。
同時実行ＡＰ３３は、たとえば“アンチウイルス”（コンピュータウイルスを検出して除去するためのソフトウェア）で構成され、ＯＳ３１上で稼働する。図１中のシステムコールカウンタ手段１２１，１２２、システムコールキュー手段１３１，１３２及びキュー管理部２３は、同時実行ＡＰ３３（“アンチウイルス”）に対してインジェクション（ｉｎｊｅｃｔｉｏｎ、注入）された制御ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）３３ａとして実装され、品質劣化防止ＡＰ３４との共有メモリを有している。インジェクションされた制御ＤＬＬ３３ａは、“アンチウイルス”のシステムコール呼出しをフック（ｈｏｏｋ）し、システムコールカウンタ手段１２１，１２２やシステムコールキュー手段１３１，１３２の動作を実行する。特に、この実施形態では、フック対象のシステムコールを、メモリ情報を取得するための“ＶｉｒｔｕａｌＱｕｅｒｙＥｘ”とする。この“ＶｉｒｔｕａｌＱｕｅｒｙＥｘ”は、指定されたプロセスの仮想アドレス空間にある範囲のページに関する情報を取得する。
このＰＣ３０は、コミュニケーションＡＰ３２（“ソフトフォン”）で通話中、同時実行ＡＰ３３（“アンチウイルス”）が対象のシステムコールを呼び出そうとすると、その呼び出しは、制御ＤＬＬ３３ａによりフックされる。通常、制御ＤＬＬ３３ａは、フック時にフック回数をカウントする（図２中のステップＡ１）だけで、すぐに本来のシステムコール呼出しを実行する。制御ＤＬＬ３３ａでのカウント結果は、品質劣化防止ＡＰ３４により１秒毎に取得され、品質劣化防止ＡＰ３４により毎秒のシステムコール呼出し頻度が計算される（図３中のステップＢ１）。この呼出し頻度が、あらかじめ設定された制御閾値である１０回／秒を超えている場合（図３中のステップＢ２）、品質劣化防止ＡＰ３４は、制御ＤＬＬ３３ａに対して遅延制御の開始とシステムコールの実行間隔時間（たとえば、１００ミリ秒）を指示する（図３中のステップＢ３）。制御ＤＬＬ３３ａは、遅延制御を開始後、対象のシステムコールをフックする（図４中のステップＣ１）と、すぐに実行せずに、その内容を一旦キュー管理部２３の実行待ちキューに保存する（図４中のステップＣ２）。
一方、制御ＤＬＬ３３ａは、実行待ちキューに保存したシステムコールをキューの先頭から、たとえば１００ミリ／秒毎に実行する（図４中のステップＣ３）。品質劣化防止ＡＰ３４は、制御ＤＬＬ３３ａによる遅延制御実行中も、システムコールのフック回数を取得して呼出し頻度を計算し（図３中のステップＢ４）、呼出し頻度が１０回／秒を下回ると（図３中のステップＢ５）、さらに、品質劣化防止ＡＰ３４は、制御ＤＬＬ３３ａに対して遅延制御の終了を指示する（図３中のステップＢ６）。制御ＤＬＬ３３ａは、キュー管理部２３の実行待ちキューが空になるまで遅延制御を継続した後に終了する。これにより、コミュニケーションＡＰ３２（“ソフトフォン”）で通話中のコミュニケーションの品質劣化を防止することができる。
以上、この発明の実施形態を図面により詳述してきたが、具体的な構成は同実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更などがあっても、この発明に含まれる。
たとえば、上記各実施形態では、データ処理装置１０，１０Ａ中に２つの同時実行ＡＰ１４１，１４２が存在するが、その数は１つでも３つ以上でも良い。たとえば、図１０に示すように、端末装置１Ｂでは、データ処理装置１０Ｂ中に、システムコールカウンタ手段１２、システムコールキュー手段１３及び同時実行ＡＰ１４が１つずつ設けられている。
また、複数の同時実行ＡＰを１つのシステムコールカウンタ手段とシステムコールキュー手段で制御するようにしても良い。
本発明の実施形態は、以下の付記記載のコミュニケーション制御プログラムを実行するコンピュータであっても良い。
（付記１）コンピュータに、第１のアプリケーションプログラムによるリアルタイムコミュニケーション中にオペレーションシステムに対する第２のアプリケーションプログラムによるシステムコールの呼出しが同時に実行されるとき、システムコール呼出し実行間隔設定手段が、該システムコールの呼出し頻度を算出し、該呼出し頻度が所定の閾値を超えたとき、上記システムコールの呼出しの実行間隔時間を一定時間以上に設定する時間間隔設定処理ステップを実行させることを特徴とするコミュニケーション制御プログラム。
（付記２）時間間隔設定処理ステップにおいて、上記システムコールの呼出しの実行間隔時間を、上記第２のアプリケーションプログラムのシステムコールによる上記リアルタイムコミュニケーションプログラムの品質劣化が防止される値の上記一定時間以上に設定することを特徴とする付記１記載のコミュニケーション制御プログラム。
（付記３）上記コンピュータに、時間間隔設定処理ステップにおいて、システムコール計測手段が、上記オペレーションシステムに対する上記第２のアプリケーションプログラムによるシステムコールの呼出し数を計測するシステムコール計測処理ステップと、実行間隔制御判定手段が、上記システムコール計測処理で計測された上記システムコール呼出し数を所定の周期で集計し、上記システムコール呼出し数の総和に基づいてシステムコールの上記呼出し頻度を算出して該呼出し頻度を上記閾値と比較し、この比較結果に基づいて上記システムコールの呼出しの実行間隔時間の制御の必要性の有無を判定する実行間隔制御判定処理ステップと、該実行間隔制御判定処理による判定結果が、上記実行間隔時間の制御が必要であることを示すとき、間隔時間設定手段が、上記システムコールの呼出しの実行間隔時間を上記一定時間以上に設定する間隔時間設定処理ステップと、を実行させることを特徴とする付記１又は２記載のコミュニケーション制御プログラム。
（付記４）上記コンピュータに、上記間隔時間設定処理ステップにおいて、
実行間隔記憶手段が、あらかじめ設定されている上記システムコールの呼出しの実行間隔時間を記憶する実行間隔記憶処理ステップと、システムコール呼出し記憶手段が、実行待ちの上記システムコールの呼出しを先入れ先出し方式で記憶するシステムコール呼出し記憶処理ステップと、システムコール呼出し手段が、上記システムコールの呼出しを上記システムコール呼出し記憶手段に順次記憶させると同時に、該システムコール呼出し記憶手段に記憶されている順序かつ上記実行間隔記憶手段で記憶されている上記実行間隔時間で、上記システムコールの呼出しを実行するシステムコール呼出し処理ステップと、を実行させることを特徴とする付記３記載のコミュニケーション制御プログラム。
（付記５）上記コンピュータに、あらかじめ設定された最大遅延時間を記憶する最大遅延時間記憶手段を設けておき、間隔時間調整手段が、上記システムコール呼出し記憶手段に記憶されている実行待ちの上記システムコールの呼出しの数を定期的にカウントし、最後の実行待ちの上記システムコールの呼出しが実際に実行されるまでの時間が上記最大遅延時間に収まるように上記システムコール呼出し手段の上記実行間隔時間を調整する間隔時間調整処理ステップを実行させることを特徴とする付記４記載のコミュニケーション制御プログラム。
この出願は、２００９年５月２１日に出願された日本出願特願２００９−１１５０４８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2010131579.tif 000003
【図２】
2010131579.tif 000004
【図３】
2010131579.tif 000005
【図４】
2010131579.tif 000006
【図５】
2010131579.tif 000007
【図６】
2010131579.tif 000008
【図７】
2010131579.tif 000009
【図８】
2010131579.tif 000010
【図９】
2010131579.tif 000011
【図１０】
2010131579.tif 000012
【国際調査報告】
2010131579.tif 000013
2010131579.tif 000014
2010131579.tif 000015