JP2010049314A - タスクスケジューリング装置およびタスクスケジューリング方法 - Google Patents

タスクスケジューリング装置およびタスクスケジューリング方法 Download PDF

Info

Publication number
JP2010049314A
JP2010049314A JP2008210535A JP2008210535A JP2010049314A JP 2010049314 A JP2010049314 A JP 2010049314A JP 2008210535 A JP2008210535 A JP 2008210535A JP 2008210535 A JP2008210535 A JP 2008210535A JP 2010049314 A JP2010049314 A JP 2010049314A
Authority
JP
Japan
Prior art keywords
task
message
priority
unit
queue
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.)
Granted
Application number
JP2008210535A
Other languages
English (en)
Other versions
JP5262418B2 (ja
Inventor
Satoru Ejiri
悟 江尻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008210535A priority Critical patent/JP5262418B2/ja
Publication of JP2010049314A publication Critical patent/JP2010049314A/ja
Application granted granted Critical
Publication of JP5262418B2 publication Critical patent/JP5262418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】タスク間でメッセージの送受信を行う場合に、メッセージが破棄されるという問題を解決するタスクスケジューリング装置を提供する。
【解決手段】メッセージ転送部12は、実行中のタスクに対応するメッセージ受信キュー内のメッセージを、送信先のメッセージ受信キューに送信する。輻輳検出部13は、送信先のメッセージ受信キューの滞留量が輻輳発生閾値以上か否かを判断する。スケジューラ管理部15は、輻輳検出部13にて滞留量が輻輳発生閾値以上であると判断されると、メッセージ転送部12によるメッセージの送信を停止し、かつ、レディーキュー内の、送信先のメッセージ受信キューに対応するタスクの優先度を、実行中のタスクの優先度より高い優先度に変更する。そして、スケジューラ管理部15は、その実行中のタスクを終了する。
【選択図】図3

Description

本発明は、タスク間で行われるメッセージの送信をスケジューリングするためのタスクスケジューリング装置およびタスクスケジューリング方法に関する。
リアルタイムオペレーティングシステム(RTOS)等のオペレーティングシステム(OS)では、複数のタスクが管理される。また、これらのタスク間では、データや制御信号などのメッセージの送受信が行われる。
このメッセージを送受信するタスク間通信方法は、以下のように行われる。
各タスクは、メッセージを蓄えるためのメッセージ受信キューを有する。また、各タスクには、優先度が予め設定される。タスクは、優先度が最も高い順に実行され、実行中のタスクは、自タスクのメッセージ受信キュー内のメッセージを、送信先のメッセージ受信キューに送信する。このとき、タスクは、予め定められたバースト量単位でメッセージを送信していき、自タスクのメッセージ受信キュー内の全てのメッセージを送信すると、次に優先度が高いタスクがメッセージの送信を行う。
図7は、このタスク間通信方法を実現する情報処理装置の構成を示したブロック図である。図7において、情報処理装置は、OS部50と、アプリケーション部60とを含む。OS部50は、OSにて実現され、レディーキュー管理部51と、ディスパッチ部52と、スケジューリング部53とを含む。また、アプリケーション部60は、アプリケーションプログラムにて実現され、複数のタスクを含む。
レディーキュー管理部51は、タスクを優先度の高い順にキューイングするための優先度別キュー(以下、レディーキューと称する)を管理する。キューイングとは、メッセージ受信キュー内のメッセージを、送信先の処理の完了を待たずに、順次送信する処理である。
ディスパッチ部52は、実行可能なタスクにディスパッチを行う。なお、ディスパッチとは、CPUの処理能力を割り当てる処理である。
スケジューリング部53は、アプリケーション部60から通知された各タスクの優先度を、レディーキュー管理部51を介してレディーキューに登録し、その登録内容に応じてタスクを起動する。また、スケジューリング部53は、ディスパッチ部52に、その起動したタスクに対するディスパッチを指示する。
このようなタスク間通信方法では、優先度の高いタスクが自タスクのメッセージ受信キュー内のメッセージを全て送信しないと、他のタスクがメッセージを送信することができなかった。
このため、メッセージ受信キューに輻輳が発生すると、そのメッセージ受信キューがメッセージを蓄えることができなくなるという問題が発生する。例えば、メッセージが突発的に大量発生した場合など、送信先のタスクのメッセージ受信キューに蓄えることが可能なメッセージの量より多いメッセージが送信されると、そのメッセージ受信キューがメッセージを蓄えることができなくなる。この蓄えることができなかったメッセージは、破棄される。
このような問題は、タスク間で行われるキューイングに限らず、一般的なキューイングでも生じる。例えば、特許文献1に記載のキュー制御装置でも発生する。
このキュー制御装置には、送受信用のポートごとに、モジュールが対応付けられている。また、各モジュールは、受信側優先制御キュー部と、送信先ポート用キュー部と、送信側キュー部とを含む。
受信側優先制御キュー部は、自己のモジュールに対応するポートが受信したデータを蓄える。送信先ポート用キュー部は、受信側優先制御キュー部に蓄えられたデータを、そのデータを送信するポートの送信側キュー部に送信する。送信側キュー部は、送信先ポート用キュー部から受信したデータを一時的に蓄え、その蓄えたメッセージを送信先の装置に送信する。
ここで、送信側キュー部に蓄えられる量より多いデータが送信先ポート用キュー部から送信されると、送信側キュー部では、その送信されたデータを蓄えることができなくなる。
このキュー制御装置では、この問題を解決するために、送信側キュー部は、自己に蓄えられたデータの量が予め定められた第一値を超えると、送信先ポート用キュー部によるデータの送信を停止する。また、送信側キュー部は、自己に蓄えられたデータの量が予め定められた第二値を下回ると、送信先ポート用キュー部によるデータの送信を再開する。
これにより、送信側キュー部では、データを蓄えることができなくなる前に、新たにデータが送信されてくるのを防ぐことが可能になるので、メッセージ受信キューがメッセージを蓄えることができなくなるという問題を解決することができる。
特開2001−244981号公報
特許文献1に記載のキュー制御装置では、送信先ポート用キュー部と、送信側キュー部とは、互いに独立してデータを送信することができる。しかしながら、タスク間でメッセージの送受信が行われるタスク間通信では、上述のように、優先度の高いタスクが自タスクのメッセージ受信キュー内のメッセージを全て送信しないと、他のタスクは、メッセージを送信することができなかった。このため、特許文献1に記載の発明を、タスク間通信方法に適応すると、以下の問題が生じる。
つまり、タスク間通信では、送信先のタスクのメッセージ受信キューが第一値を超えたときに、送信元のタスクによるメッセージの送信を停止しても、送信先のタスクは、送信元のタスクより優先度が低いために、実行されない。したがって、送信先のタスクは、自タスクのメッセージ受信キュー内のメッセージを送信することができないので、送信先のタスクのメッセージ受信キューが第二値を下回ることがない。
このため、タスク間でメッセージの送受信が行われる場合には、メッセージ受信キューがメッセージを蓄えることができなくなり、そのメッセージが破棄されるという問題を解決することができない。
本発明の目的は、上記の課題である、タスク間でメッセージの送受信を行う場合に、メッセージが破棄されるという問題を解決するタスクスケジューリング装置およびタスクスケジューリング方法を提供することである。
本発明によるタスクスケジューリング装置は、複数のタスクを優先度の高いタスクから順に実行するタスクスケジューリング装置であって、各タスクの識別情報を、該タスクの優先度と対応付けて記憶する優先度記憶手段と、各タスクに対応し、該タスク用のメッセージを蓄える複数のメッセージ記憶手段と、前記優先度記憶手段内の識別情報のうち、最も高い優先度に対応する識別情報にて特定されるタスクを実行する制御手段と、実行中のタスクに対応するメッセージ記憶手段内のメッセージを、該メッセージの送信先のメッセージ記憶手段に送信する転送手段と、前記送信先のメッセージ記憶手段内のメッセージの量が予め定められた第一閾値以上であるか否かを判断する判断手段と、前記判断手段にて前記メッセージの量が前記第一閾値以上であると判断された場合、前記転送手段による前記メッセージの送信を停止し、かつ、前記優先度記憶手段内の、前記送信先のメッセージ記憶手段に対応するタスクの優先度を、前記実行中のタスクの優先度より高い優先度に変更し、その後、前記実行中のタスクを終了する管理手段と、を含む。
また、本発明によるタスクスケジューリング方法は、複数のタスクの識別情報のそれぞれを、該タスクの優先度と対応付けて記憶する優先度記憶手段と、各タスクに対応し、該タスク用のメッセージを蓄える複数のメッセージ記憶手段と、を含むタスクスケジューリング装置によるスケジューリング方法であって、前記優先度記憶手段内の識別情報のうち、最も高い優先度に対応する識別情報にて特定されるタスクを実行し、実行中のタスクに対応するメッセージ記憶手段内のメッセージを、該メッセージの送信先のメッセージ記憶手段に送信し、前記送信先のメッセージ記憶手段内のメッセージの量が予め定められた第一閾値以上であるか否かを判断し、前記メッセージの量が前記第一閾値以上であると判断された場合、前記メッセージの送信を停止し、かつ、前記優先度記憶手段内の、前記送信先のメッセージ記憶手段に対応するタスクの優先度を、前記実行中のタスクの優先度より高い優先度に変更し、前記実行中のタスクを終了する。
本発明によれば、タスク間でメッセージの送受信が行われる場合に、メッセージが破棄されることを抑制することが可能になる。
以下、本発明の実施形態について図面を参照して説明する。
図1は、本発明の一実施形態の情報処理装置の構成を示したブロック図である。図1において、情報処理装置100は、記憶部101と、情報処理部102とを含む。
記憶部101は、レディーキュー111と、メッセージ(MSG)受信キュー112とを含む。
レディーキュー111は、優先度記憶手段の一例である。レディーキュー111は、複数のタスクのそれぞれの識別情報を、そのタスクの優先度と対応付けて記憶する。
メッセージ受信キュー112は、複数ある。メッセージ受信キュー112のそれぞれは、複数のタスクのいずれかに対応する。メッセージ受信キュー112は、自キュー(メッセージ受信キュー112)に対応するタスク用のメッセージを蓄える。
情報処理部102は、例えば、CPUであり、CPUにて読み取り可能な記録媒体からOSおよびアプリケーションプログラムを読み取り、その読み取ったOSおよびアプリケーションプログラムを実行する。なお、記録媒体は、記憶部101でもよいし、記憶部101とは別でもよい。
図2は、情報処理部102の構成例を示したブロック図である。図2において、情報処理部102は、OS部1と、アプリケーション部11とを含む。
OS部1は、制御手段の一例であり、情報処理部102がOSを実行することで実現される。OS部1は、システムコール処理部2と、レディーキュー管理部3と、スケジューリング部4と、ディスパッチ部5と、メッセージ受信キュー管理部6とを含む。
システムコール処理部2は、アプリケーション部11からシステムコールを受信する。システムコールには、タスクの優先度を変更する変更システムコール、新規のタスクを登録する登録システムコール、メッセージの送信先のメッセージ受信キュー112に蓄えられているメッセージの量を測定する測定システムコール、メッセージの送信元のメッセージ受信キュー112に蓄えられているメッセージの量を測定する監視システムコール、および、実行中のタスクを終了する終了システムコールなどがある。以下、その蓄えられているメッセージの量を滞留量と称する。
レディーキュー管理部3は、記憶部101内のレディーキュー111を管理する。具体的には、レディーキュー管理部3は、レディーキュー111内の情報の変更や削除、および、レディーキュー111への識別情報および優先度の登録などを行う。より具体的には、システムコール処理部2が変更システムコールを受信すると、レディーキュー管理部3は、その変更システムコールに従って、レディーキュー111内のタスクの優先度を変更する。また、システムコール処理部2が登録システムコールを受信すると、その登録システムコールに従って、識別情報および優先度を対応付けてレディーキュー111に登録する。さらに、システムコール処理部2が終了システムコールを受信すると、レディーキュー管理部3は、その終了システムコールに従って、レディーキュー111内の情報を削除する。
スケジューリング部4は、レディーキュー111内の識別情報が特定するタスクを、優先度の高いタスクから順に起動する。具体的には、スケジューリング部4は、レディーキュー111内の最も高い優先度のタスクを起動し、その後、システムコール処理部2が終了システムコールを受信すると、その起動したタスクを終了する。そして、スケジューリング部4は、レディーキュー111内の最も高い優先度のタスクを起動する。
ディスパッチ部5は、スケジューリング部4で起動されたタスクにディスパッチを行う。これにより、OS部1がレディーキュー111内の識別情報のうち、最も高い優先度と対応付けられた識別情報のタスクを実行することになる。
メッセージ受信キュー管理部6は、メッセージ受信キュー112のそれぞれの滞留量を監視する。より具体的には、システムコール処理部2が測定システムコールまたは監視システムコールを受信すると、メッセージ受信キュー管理部6は、その測定システムコールまたは監視システムコールに従って、メッセージ受信キュー112の滞留量を監視する。
アプリケーション部11は、情報処理部102がアプリケーションプログラムを実行することで実現される。
図3は、アプリケーション部11の構成例を示したブロック図である。図3において、アプリケーション部11は、タスクAないしCを含む。タスクAないしCは、全て同じ構成を有するものとする。以下では、タスクBを例として説明し、タスクAおよびCの説明は省略する。また、タスクBが実行中のタスクであるとしている。
タスクBは、メッセージ転送部12と、送信先タスクメッセージ受信キュー輻輳検出部13と、自タスクメッセージ受信キュー輻輳復旧検出部14と、スケジューラ管理部15とを含む。
メッセージ転送部12は、転送手段の一例である。メッセージ転送部12は、自タスク(タスクB)に対応するメッセージ受信キュー112内のメッセージを、そのメッセージの送信先のメッセージ受信キュー112に送信する。
送信先タスクメッセージ受信キュー輻輳検出部(以下、輻輳検出部と略す)13は、判断手段の一例である。輻輳検出部13は、メッセージ転送部12が送信するメッセージの送信先のメッセージ受信キュー112の滞留量を監視する。具体的には、輻輳検出部13は、定期的に、その送信先のメッセージ受信キュー112の滞留量を測定する測定システムコールをOS部1に発行し、その応答情報に基づいて滞留量を監視する。
輻輳検出部13は、その滞留量が予め定められた輻輳発生閾値以上か否かを判断する。なお、輻輳発生閾値は、第一閾値の一例である。
自タスクメッセージ受信キュー輻輳復旧検出部(以下、復旧検出部と略す)14は、判定手段の一例である。復旧検出部14は、自タスクに対応するメッセージ受信キュー112の滞留量を測定する。具体的には、復旧検出部14は、定期的に、自タスクのメッセージ受信キュー112の滞留量を測定する監視システムコールをOS部1に発行し、その応答情報に基づいて滞留量を監視する。
復旧検出部14は、予め定められた輻輳復旧閾値以上であった滞留量が、その輻輳復旧閾値を下回ったか否かを判断する。なお、輻輳復旧閾値は、第二閾値の一例であり、輻輳発生閾値より小さい。
スケジューラ管理部15は、輻輳検出部13にて滞留量が輻輳発生閾値以上であると判断されると、メッセージ転送部12によるメッセージの送信を停止する。スケジューラ管理部15は、そのメッセージの送信先のメッセージ受信キュー112に対応するタスクの優先度を、自タスクの優先度より高い優先度に変更するための変更システムコールをOS部1に発行して、そのメッセージの送信先のメッセージ受信キュー112に対応するタスクの優先度を、自タスクの優先度より高い優先度に変更する。そして、スケジューラ管理部15は、終了システムコールをOS部1に発行して、自タスクを終了する。
また、スケジューラ管理部15は、復旧検出部14にて滞留量が輻輳復旧閾値を下回ったと判断されると、終了システムコールをOS部1に発行して、自タスクの識別情報をレディーキュー111から削除して、自タスクを終了する。
次に動作を説明する。
図4は、情報処理装置100の基本的な動作を説明するための説明図である。なお、タスクAは、情報処理装置100の外部からメッセージを受信するタスクである。タスクCは、情報処理装置100の外部にメッセージを送信するタスクである。また、レディーキュー111内は、空であるとする。
情報処理装置100が外部から受信したメッセージは、タスクAのメッセージ受信キュー112に記憶される。OS部1のスケジューリング部4は、そのメッセージがメッセージ受信キュー112に記憶されたことを契機に、タスクAの識別情報およびタスクA用の優先度を対応付けてレディーキュー111に登録する。
続いて、OS部1は、レディーキュー111内の最も高い優先度に対応するタスクを実行する。具体的には、OS部1のスケジューリング部4は、レディーキュー111内の最も高い優先度に対応する識別情報にて特定されるタスクを起動し、その識別情報をディスパッチ部5に通知する。ディスパッチ部5は、その識別情報を受信すると、その識別情報が特定するタスクにディスパッチを行う。
これにより、タスクAが実行される。タスクAのメッセージ転送部12は、自タスクのメッセージ受信キュー112内のメッセージを、タスクBのメッセージ受信キュー112に送信する。タスクBのメッセージ受信キュー112は、そのメッセージを受信すると、そのメッセージを記憶する。
また、OS部1のスケジューリング部4は、そのメッセージがタスクBのメッセージ受信キュー112に記憶されたことを契機に、タスクBの識別情報およびタスクB用の優先度を対応付けてレディーキュー111に記憶する。
そして、メッセージ転送部12は、タスクAのメッセージ受信キュー112内のメッセージを全て送信すると、メッセージの送信が完了したことを示す完了報告をスケジューラ管理部15に通知する。スケジューラ管理部15は、完了報告を受信すると、終了システムコールを生成し、その終了システムコールを、システムコール処理部2を介して、OS部1のスケジューリング部4に送信する。なお、終了システムコールは、自タスクの識別情報を含む。
スケジューリング部4は、終了システムコールを受信すると、終了システムコール内の識別情報にて特定されるタスクを終了する終了処理を行う。具体的には、スケジューリング部4は、終了システムコールをレディーキュー管理部3に通知する。レディーキュー管理部3は、終了システムコールを受信すると、その終了システムコール内の識別情報と、その識別情報に対応する優先度を削除する。レディーキュー管理部3は、識別情報および優先度を削除したことを示す削除報告をスケジューリング部4に送信する。スケジューリング部4は、削除報告を受信すると、実行中のタスクを終了する。
これにより、タスクAが終了される。その後、OS部1は、レディーキュー111内の最も高い優先度に対応するタスクBを実行する。
タスクBのメッセージ転送部12は、自タスクのメッセージ受信キュー112内のメッセージを、タスクCのメッセージ受信キュー112に送信する。タスクCのメッセージ受信キュー112は、そのメッセージを受信すると、そのメッセージを記憶する。
OS部1のスケジューリング部4は、そのメッセージがタスクCのメッセージ受信キュー112に記憶されたことを契機に、タスクCの識別情報およびタスクC用の優先度を対応付けてレディーキュー111に記憶する。
ここで、スケジューリング部4は、情報処理装置100の外部からメッセージを受信する受信処理が、情報処理装置100の外部にメッセージを送信する送信処理より高い優先度で実行されるようにスケジューリングする。具体的には、スケジューリング部4は、優先度が高いほうから順にタスクA、タスクBおよびタスクCとなるように、識別情報および優先度をレディーキュー111に記憶する。
次に、タスクBのメッセージ受信キュー112に輻輳が発生した場合における情報処理装置100の動作について説明する。具体的には、情報処理装置100が通常状態(状態α)の場合に、タスクBのメッセージ受信キュー112で発生した輻輳が検出され、情報処理装置100が輻輳状態(状態β)に遷移する。その後、タスクBのメッセージ受信キュー112で発生した輻輳が復旧され、情報処理装置100が通常状態(状態γ)に遷移するまでの動作を説明する。
図5は、それらの状態における、メッセージ受信キュー112のそれぞれの滞留量、および、実行権を有するタスクを示した説明図である。図6は、それらの状態における、レディーキュー111内の情報を示した説明図である。なお、図5では、メッセージ受信キュー112を、受信キューと略している。また、図6において、優先度は、[0]が最も高く、数字が大きくなるに従って小さくなるものとする。
状態αでは、タスクAが実行されている。また、タスクAおよびBのそれぞれのメッセージ受信キュー112にメッセージが蓄えられている。さらに、レディーキュー111には、タスクAの識別情報(タスクA1)と、タスクBの識別情報(タスクB1)とが記憶される。また、タスクAの優先度は、タスクBの優先度より高い。そして、タスクAのメッセージ転送部12がタスクAのメッセージ受信キュー112内のメッセージを、タスクBのメッセージ受信キュー112に送信している。
タスクAの輻輳検出部13は、定期的に、タスクBのメッセージ受信キュー112の滞留量を測定する測定システムコールを生成し、その測定システムコールを、システムコール処理部2を介して、メッセージ受信キュー管理部6に送信する。
メッセージ受信キュー管理部6は、測定システムコールを受信すると、タスクBのメッセージ受信キュー112の滞留量を確認する。メッセージ受信キュー管理部6は、その確認した滞留量を示す情報を、測定システムコールの応答情報として生成し、その応答情報を、システムコール処理部2を介してタスクAの輻輳検出部13に送信する。
輻輳検出部13は、応答情報を受信すると、その応答情報にて示される滞留量が輻輳発生閾値以上か否かを判断する。輻輳検出部13は、滞留量が輻輳発生閾値未満であると、動作を終了する。一方、輻輳検出部13は、滞留量が輻輳発生閾値以上であると、タスクBのメッセージ受信キュー112で輻輳が発生したと判断する。これにより、情報処理装置100が輻輳検出状態に遷移する。
輻輳検出状態では、輻輳検出部13は、滞留量が輻輳発生閾値以上である旨をスケジューラ管理部15に通知する。スケジューラ管理部15は、その旨を受信すると、メッセージ転送部12にメッセージの送信の停止を指示して、メッセージ転送部12によるメッセージの送信を停止する。
スケジューラ管理部15は、タスクBの優先度を変更する変更システムコールを生成し、その変更システムコールを、システムコール処理部2およびスケジューリング部4を介して、レディーキュー管理部3に通知する。変更システムコールは、タスクAの優先度より高いタスクBの優先度と、タスクBの識別情報(タスクB1)を含む。
レディーキュー管理部3は、変更システムコールを受信すると、レディーキュー111内の、その変更システムコールに含まれる識別情報に対応するタスクBの優先度を、その変更システムコールに含まれる優先度に変更する。これにより、タスクBの優先度がタスクAより高くなる。その後、レディーキュー管理部3は、優先度の変更が終了したことを示す情報を、変更システムコールの応答情報として生成し、その応答情報を、スケジューリング部4およびシステムコール処理部2を介して、タスクAのスケジューラ管理部15に送信する。
スケジューラ管理部15は、その応答情報を受信すると、タスクAを登録する登録システムコールを生成し、その登録システムコールを、システムコール処理部2およびスケジューリング部4を介して、レディーキュー管理部3に通知する。なお、登録システムコールは、タスクA用の優先度と、タスクAの識別情報(タスクA2)とを含む。
レディーキュー管理部3は、登録システムコールを受信すると、登録システムコール内の優先度および識別情報を対応付けて、レディーキュー111に登録する。これは、タスクAのメッセージ受信キュー112に残存したメッセージを後で送信するためである。
その後、レディーキュー管理部3は、タスクAの登録が終了したことを示す情報を、登録システムコールの応答情報として生成し、その応答情報を、スケジューリング部4およびシステムコール処理部2を介して、タスクAのスケジューラ管理部15に送信する。
スケジューラ管理部15は、その応答情報を受信すると、タスクAを終了する終了システムコールを生成し、その終了システムコールを、システムコール処理部2を介してスケジューリング部4に通知する。なお、終了システムコールは、タスクAの識別情報(タスクA1)を含む。
スケジューリング部4は、終了システムコールを受信すると、終了システムコール内の識別情報にて特定されるタスクを終了する終了処理を行う。これにより、タスクAが終了される。
OS部1が、レディーキュー111内の最も高い優先度に対応する識別情報が特定するタスクを実行する。今、タスクBの優先度がタスクAの優先度より高いので、タスクBが実行される。これにより、情報処理装置100が状態βに遷移する。
状態βでは、タスクBのメッセージ転送部12が、タスクBのメッセージ受信キュー112内のメッセージを、タスクCのメッセージ受信キュー112に送信する。
また、タスクBの復旧検出部14は、定期的に、タスクBのメッセージ受信キュー112の滞留量を測定する監視システムコールを生成し、その監視システムコールを、システムコール処理部2を介して、メッセージ受信キュー管理部6に送信する。
メッセージ受信キュー管理部6は、監視システムコールを受信すると、タスクBのメッセージ受信キュー112の滞留量を確認する。メッセージ受信キュー管理部6は、その確認した滞留量を示す情報を、監視システムコールの応答情報として生成し、その応答情報を、システムコール処理部2を介してタスクAの復旧検出部14に送信する。
復旧検出部14は、応答情報を受信すると、その応答情報に基づいて、タスクBのメッセージ受信キュー112の滞留量が輻輳復旧閾値を下回ったか否かを判断する。例えば、復旧検出部14は、一つ前の応答情報が示す滞留量を保持し、その保持している滞留量が輻輳復旧閾値以上であり、新たに受信した応答情報が示す輻輳復旧閾値未満であると、タスクBのメッセージ受信キュー112の滞留量が輻輳復旧閾値を下回ったと判断する。
復旧検出部14は、メッセージ受信キュー112の滞留量が輻輳復旧閾値を下回っていないと判断すると、動作を終了する。一方、復旧検出部14は、メッセージ受信キュー112の滞留量が輻輳復旧閾値を下回ったと判断すると、タスクBのメッセージ受信キュー112の輻輳が復旧したと判断する。これにより、情報処理装置100が輻輳復旧状態であると判断する。
輻輳復旧状態では、復旧検出部14は、滞留量が輻輳復旧閾値を下回った旨をスケジューラ管理部15に通知する。スケジューラ管理部15は、その旨を受信すると、メッセージ転送部12にメッセージの送信の停止を指示して、メッセージ転送部12によるメッセージの送信を停止する。
スケジューラ管理部15は、タスクBを登録する登録システムコールを生成し、その登録システムコールを、システムコール処理部2およびスケジューリング部4を介して、レディーキュー管理部3に通知する。なお、登録システムコールは、タスクB用の優先度と、タスクBの識別情報(タスクB2)とを含む。
レディーキュー管理部3は、登録システムコールを受信すると、登録システムコール内の優先度および識別情報を対応付けて、レディーキュー111に登録する。その後、レディーキュー管理部3は、タスクBの登録が終了したことを示す情報を、登録システムコールの応答情報として生成し、その応答情報を、スケジューリング部4およびシステムコール処理部2を介して、タスクBのスケジューラ管理部15に送信する。
スケジューラ管理部15は、その応答情報を受信すると、タスクBを終了する終了システムコールを生成し、その終了システムコールを、システムコール処理部2を介してスケジューリング部4に通知する。なお、終了システムコールは、タスクBの識別情報(タスクB1)を含む。
スケジューリング部4は、終了システムコールを受信すると、終了システムコール内の識別情報にて特定されるタスクを終了する終了処理を行う。これにより、タスクBが終了される。
その後、OS部1が、レディーキュー111内の最も高い優先度に対応する識別情報が特定するタスクを実行する。今、タスクAの優先度が最も高いので、タスクAが実行される。これにより、情報処理装置100が状態γに遷移する。
状態γでは、タスクAのメッセージ転送部12が、タスクAのメッセージ受信キュー112内のメッセージを、タスクAのメッセージ受信キュー112に送信する。
次に効果を説明する。
本実施形態では、メッセージ転送部12は、実行中のタスクに対応するメッセージ受信キュー112内のメッセージを、送信先のメッセージ受信キュー112に送信する。輻輳検出部13は、送信先のメッセージ受信キュー112の滞留量が輻輳発生閾値以上か否かを判断する。スケジューラ管理部15は、輻輳検出部13にて滞留量が輻輳発生閾値以上であると判断されると、メッセージ転送部12によるメッセージの送信を停止し、かつ、レディーキュー111内の、送信先のメッセージ受信キュー112に対応するタスクの優先度を、実行中のタスクの優先度より高い優先度に変更する。そして、スケジューラ管理部15は、その実行中のタスクを終了する。
この場合、送信先のメッセージ受信キュー112の滞留量が輻輳発生閾値以上になると、その送信先のメッセージ受信キュー112に対応するタスクの優先度が、実行中のタスクの優先度より高い優先度に変更される。また、その実行中のタスクが終了される。
したがって、送信先のメッセージ受信キュー112がメッセージを蓄えられなくなる前に、その送信先のメッセージ受信キュー112に対応するタスクを実行することが可能になる。よって、メッセージ受信キュー112がメッセージを蓄えることができなくなることを抑制することが可能になるので、メッセージが破棄されることを抑制することが可能になる。
また、本実施形態では、復旧検出部14は、実行中のタスクに対応するメッセージ受信キュー112内の滞留量が、輻輳発生閾値より小さい輻輳復旧閾値を下回ったか否かを判断する。スケジューラ管理部15は、復旧検出部14にて滞留量が輻輳復旧閾値を下回ったと判断された場合、優先度を変更しタスクの識別情報をレディーキューから削除して、実行中のタスクを終了する。
この場合、メッセージ受信キュー112の輻輳が復旧された場合に、元の優先度に従ってタスクを実行することが可能になる。
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
例えば、タスクAないしCは、アプリケーションプログラムにて実現されていたが、ミドルウェア、ファームウェアおよびドライバなどにて実現されてもよい。
本発明の一実施形態の情報処理装置の構成を示したブロック図である。 情報処理部の構成例を示したブロック図である。 アプリケーション部の構成例を示したブロック図である。 情報処理装置の基本的な動作を説明するための説明図である。 各状態におけるメッセージ受信キューの滞留量を示した説明図である。 各状態におけるレディーキュー内の情報を示した説明図である。 関連技術の情報処理装置の構成を示したブロック図である。
符号の説明
1 OS部
2 システムコール処理部
3 レディーキュー管理部
4 スケジューリング部
5 ディスパッチ部
6 メッセージ受信キュー管理部
11 アプリケーション部
12 メッセージ転送部
13 送信先タスクメッセージ受信キュー輻輳検出部
14 自タスクメッセージ受信キュー輻輳復旧検出部
100 情報処理装置
101 記憶部
102 情報処理部
111 レディーキュー
112 メッセージ受信キュー

Claims (4)

  1. 複数のタスクを優先度の高いタスクから順に実行するタスクスケジューリング装置であって、
    各タスクの識別情報を、該タスクの優先度と対応付けて記憶する優先度記憶手段と、
    各タスクに対応し、該タスク用のメッセージを蓄える複数のメッセージ記憶手段と、
    前記優先度記憶手段内の識別情報のうち、最も高い優先度に対応する識別情報にて特定されるタスクを実行する制御手段と、
    実行中のタスクに対応するメッセージ記憶手段内のメッセージを、該メッセージの送信先のメッセージ記憶手段に送信する転送手段と、
    前記送信先のメッセージ記憶手段内のメッセージの量が予め定められた第一閾値以上であるか否かを判断する判断手段と、
    前記判断手段にて前記メッセージの量が前記第一閾値以上であると判断された場合、前記転送手段による前記メッセージの送信を停止し、かつ、前記優先度記憶手段内の、前記送信先のメッセージ記憶手段に対応するタスクの優先度を、前記実行中のタスクの優先度より高い優先度に変更して、前記実行中のタスクを終了する管理手段と、を含むタスクスケジューリング装置。
  2. 請求項1に記載のタスクスケジューリング装置において、
    前記実行中のタスクに対応するメッセージ記憶手段内のメッセージの量が、前記第一閾値より小さい第二閾値を下回ったか否かを判断する判定手段を含み、
    前記管理手段は、前記判定手段にて前記メッセージの量が前記第二閾値を下回ったと判断された場合、前記優先度を変更したタスクの識別情報を前記優先度記憶手段から削除して、前記実行中のタスクを終了する、タスクスケジューリング装置。
  3. 複数のタスクの識別情報のそれぞれを、該タスクの優先度と対応付けて記憶する優先度記憶手段と、各タスクに対応し、該タスク用のメッセージを蓄える複数のメッセージ記憶手段と、を含むタスクスケジューリング装置によるスケジューリング方法であって、
    前記優先度記憶手段内の識別情報のうち、最も高い優先度に対応する識別情報にて特定されるタスクを実行し、
    実行中のタスクに対応するメッセージ記憶手段内のメッセージを、該メッセージの送信先のメッセージ記憶手段に送信し、
    前記送信先のメッセージ記憶手段内のメッセージの量が予め定められた第一閾値以上であるか否かを判断し、
    前記メッセージの量が前記第一閾値以上であると判断された場合、前記メッセージの送信を停止し、かつ、前記優先度記憶手段内の、前記送信先のメッセージ記憶手段に対応するタスクの優先度を、前記実行中のタスクの優先度より高い優先度に変更し、
    前記実行中のタスクを終了する、タスクスケジューリング方法。
  4. 請求項3に記載のタスクスケジューリング方法において、
    前記実行中のタスクに対応するメッセージ記憶手段内のメッセージの量が、前記第一閾値より小さい第二閾値を下回ったか否かを判断し、
    前記メッセージの量が前記第二閾値を下回ったと判断された場合、前記優先度を変更したタスクの識別情報を前記優先度記憶手段から削除し、
    前記実行中のタスクを終了する、タスクスケジューリング方法。
JP2008210535A 2008-08-19 2008-08-19 タスクスケジューリング装置およびタスクスケジューリング方法 Expired - Fee Related JP5262418B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008210535A JP5262418B2 (ja) 2008-08-19 2008-08-19 タスクスケジューリング装置およびタスクスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008210535A JP5262418B2 (ja) 2008-08-19 2008-08-19 タスクスケジューリング装置およびタスクスケジューリング方法

Publications (2)

Publication Number Publication Date
JP2010049314A true JP2010049314A (ja) 2010-03-04
JP5262418B2 JP5262418B2 (ja) 2013-08-14

Family

ID=42066368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008210535A Expired - Fee Related JP5262418B2 (ja) 2008-08-19 2008-08-19 タスクスケジューリング装置およびタスクスケジューリング方法

Country Status (1)

Country Link
JP (1) JP5262418B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015185060A (ja) * 2014-03-26 2015-10-22 日本電気株式会社 メッセージ交換装置、メッセージ交換方法、および、コンピュータ・プログラム
JP2016514296A (ja) * 2013-02-14 2016-05-19 アビニシオ テクノロジー エルエルシー キュー監視及び視覚化
JP2020155829A (ja) * 2019-03-18 2020-09-24 株式会社リコー 端末装置、情報処理システム、及び情報処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04329443A (ja) * 1991-04-30 1992-11-18 Nec Corp タスク制御方式
JPH0793168A (ja) * 1993-09-21 1995-04-07 Fuji Electric Co Ltd タスク管理方式
JPH07295840A (ja) * 1994-04-28 1995-11-10 Nec Ic Microcomput Syst Ltd マルチプログラミングにおける事象管理方式
JPH11237993A (ja) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd タスクの優先度制御方法およびタスクの優先度制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04329443A (ja) * 1991-04-30 1992-11-18 Nec Corp タスク制御方式
JPH0793168A (ja) * 1993-09-21 1995-04-07 Fuji Electric Co Ltd タスク管理方式
JPH07295840A (ja) * 1994-04-28 1995-11-10 Nec Ic Microcomput Syst Ltd マルチプログラミングにおける事象管理方式
JPH11237993A (ja) * 1998-02-20 1999-08-31 Matsushita Electric Ind Co Ltd タスクの優先度制御方法およびタスクの優先度制御装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016514296A (ja) * 2013-02-14 2016-05-19 アビニシオ テクノロジー エルエルシー キュー監視及び視覚化
JP2015185060A (ja) * 2014-03-26 2015-10-22 日本電気株式会社 メッセージ交換装置、メッセージ交換方法、および、コンピュータ・プログラム
JP2020155829A (ja) * 2019-03-18 2020-09-24 株式会社リコー 端末装置、情報処理システム、及び情報処理方法
JP7259435B2 (ja) 2019-03-18 2023-04-18 株式会社リコー 端末装置、情報処理システム、及び情報処理方法

Also Published As

Publication number Publication date
JP5262418B2 (ja) 2013-08-14

Similar Documents

Publication Publication Date Title
US10884786B2 (en) Switch device, switching method, and computer program product
CN100504791C (zh) 多cpu对临界资源进行互斥访问的方法和装置
CN108647104B (zh) 请求处理方法、服务器及计算机可读存储介质
US7676610B2 (en) Device and method for optimization of target host device process handling according to the status and the priority of the target host device process
US10417062B2 (en) Method and apparatus of unloading out of memory processing flow to user space
CN107451012B (zh) 一种数据备份方法及流计算系统
US20120144138A1 (en) Locking Access To Data Storage Shared By A Plurality Of Compute Nodes
US8719479B2 (en) Network adaptor optimization and interrupt reduction
US10592317B2 (en) Timeout processing for messages
CN103888441A (zh) 一种应用程序与协议栈之间的信息传输方法及处理装置
JP6287451B2 (ja) データ受信装置、データ受信装置の制御方法及びデータ送信装置とデータ受信装置とを有するデータ送受信システム
JP5262418B2 (ja) タスクスケジューリング装置およびタスクスケジューリング方法
US10305772B2 (en) Using a single work item to send multiple messages
WO2016033755A1 (zh) 任务处理装置、电子设备及方法
JPH11237993A (ja) タスクの優先度制御方法およびタスクの優先度制御装置
US20150248256A1 (en) Method of random access message retrieval from first-in-first-out transport mechanism
KR101085393B1 (ko) 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치
JP2019176366A (ja) 情報処理装置、情報処理方法、及びプログラム
CN117593172B (zh) 进程管理方法、装置、介质及设备
JP2007323256A (ja) 割込制御方法および情報処理装置
WO2010061482A1 (ja) 試験装置、シリアル伝送システム、プログラム、および、記録媒体
CN114979169B (zh) 一种网络资源推送方法、装置、存储介质及电子设备
CN116414585A (zh) 一种业务数据恢复方法、装置、电子设备和存储介质
JP6126259B1 (ja) 監視装置、監視方法、及びプログラム
CN115776475A (zh) 一种消息处理方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5262418

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees