JP2004157737A - タスク管理システム - Google Patents
タスク管理システム Download PDFInfo
- Publication number
- JP2004157737A JP2004157737A JP2002322439A JP2002322439A JP2004157737A JP 2004157737 A JP2004157737 A JP 2004157737A JP 2002322439 A JP2002322439 A JP 2002322439A JP 2002322439 A JP2002322439 A JP 2002322439A JP 2004157737 A JP2004157737 A JP 2004157737A
- Authority
- JP
- Japan
- Prior art keywords
- task
- scheduler
- tasks
- execution
- state
- 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
Abstract
【解決手段】複数のタスクの実行を制御するためのタスク管理システムであって、優先度が設定されている複数のタスクと、前記複数のタスクのうちの最も高い優先度が設定されているタスクを実行する優先度制御機能を有するオペレーティングシステムとを備え、前記複数のタスクのうちの少なくとも一つは、最も高い優先度が設定されるとともに、他のタスクの実行制御を行うスケジューラタスクである。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、複数のタスクの実行を制御するための技術に関する。
【0002】
【従来の技術】
従来、一定時間間隔で繰り返し実行される定周期タスクをスケジューリングするオペレーティングシステム(リアルタイムOS)が知られている(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開2001−236236号公報
【0004】
【発明が解決しようとする課題】
上記従来のオペレーティングシステムにおいて、タスクの周期的な実行等、タスクスケジューリングに関する方式を実装する場合、オペレーティングシステムが持つスケジューラを修正することになる。この場合、オペレーティングシステムの中心となるカーネル部分を修正することになるが、カーネルの修正においては、通常のアプリケーション開発で使用する開発ツール等が使用できないことが多く、実装作業が困難となる。
【0005】
本発明の課題は、オペレーティングシステム(例えばリアルタイムOS)のカーネルを修正することなく、タスク管理方式(例えばQoS制御を実現するタスク管理方式)をそのオペレーティングシステムに実装することにある。
【0006】
【課題を解決するための手段】
本発明は、上記課題を解決するためになされたものであり、複数のタスクの実行を制御するためのタスク管理システムであって、優先度が設定されている複数のタスクと、前記複数のタスクのうちの最も高い優先度が設定されているタスクを実行する優先度制御機能を有するオペレーティングシステムとを備え、前記複数のタスクのうちの少なくとも一つは、最も高い優先度が設定されるとともに、他のタスクの実行制御を行うスケジューラタスクである、構成とした。
【0007】
本発明によれば、オペレーティングシステムによって優先度制御されるタスクの一つとしてスケジューラタスクを備えているので、オペレーティングシステム(例えばリアルタイムOS)のカーネルを修正することなく、タスク管理方式(例えばQoS制御を実現するタスク管理方式)を実装することが可能となる。
【0008】
上記タスク管理システムにおいては、例えば、前記スケジューラタスクは、所定期間ごとに実行状態へ遷移して他のタスクの実行制御を行い、前記オペレーティングシステムは、前記スケジューラタスクが実行状態以外の状態から実行状態へ遷移するまでの間は、前記他のタスクのうちの最も高い優先度が設定されているタスクを実行する。このようにすれば、オペレーティングシステムは、スケジューラタスクと他のタスクとを切り替えながら両者を実行することが可能となる。
【0009】
上記タスク管理システムにおいては、例えば、前記スケジューラタスクは、前記他のタスクの実行制御として他のタスクの優先度を変更する。このようにすれば、オペレーティングシステムは、その優先度が変更された他のタスクを実行することが可能となる。
【0010】
上記タスク管理システムにおいては、例えば、前記他のタスクはその所要リソース量を制御可能な可変タスクである。このようにすれば、他のタスクの品質を制御することが可能となる。
【0011】
上記タスク管理システムにおいては、例えば、前記スケジューラタスクは、前記他のタスクの実行制御として他のタスクの所要リソース量を制御する。このようにすれば、他のタスクの品質を制御することが可能となる。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態であるタスク管理システムについて図面を参照しながら説明する。図1は、本発明の実施の形態であるタスク管理システムの概略システム構成を説明するための図である。
【0013】
タスク管理システムは、PDA(Personal Digital Assistants)やパーソナルコンピュータ等の情報処理端末100により実現される。図1に示すように、情報処理端末100は、CPU110、ハードディスク装置等の記憶装置120、及び、RAM等のメモリ130等を備えている。また、情報処理端末100は、液晶ディスプレイ等の画像表示装置やスピーカ等の音声出力装置等も備えている(いずれも図示せず)。これら各要素はバス等を介して相互に接続されている。
【0014】
記憶装置120にはリアルタイムOS(Operating System)、そのリアルタイムOS上で実行される各種プログラム(優先度が設定されている複数のタスク等)、及び、タスク情報テーブル等がインストールされている。これらのリアルタイムOS等は適宜、記憶装置120からメモリ130へ読み出される。図1は、これらのリアルタイムOS等がメモリ130へ読み出された状態を示している。
【0015】
リアルタイムOSは、複数のタスクのうちの最も高い優先度が設定されているタスクを実行する優先度制御機能(又はタスク管理機能ともいう)を有するオペレーティングシステムである。優先度制御機能は、リアルタイムOSが有するスケジューラ131によって実現される。
【0016】
スケジューラ131は、各タスクに設定されている優先度に基づいて複数のタスクのうちの最も高い優先度が設定されているタスクを実行するためのものである。スケジューラ131は、アプリケーションプログラム群(これらは優先度が設定されている複数のタスクとして把握される)や各種デバイスの制御などの処理のタイミングやどの処理を動かすかを決定する。具体的には、スケジューラ131は、終了または待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを継続して実行(処理)する。リアルタイムOSにおいては、低い優先度が設定されているタスクは全く動作しない可能性もある。スケジューラ131はまた、各タスクの状態(実行可能状態、実行状態、待ち状態等)も管理している。
【0017】
スケジューラ131によって優先度制御される複数のタスクとしては、スケジューラタスク132、時間起動通知用タスク133、及び、QoS(Quality of Service)タスク134等がある。これらのタスクには優先度が設定されている。スケジューラタスク132には最も高い優先度(他のタスク133、134等と比較して高い優先度)が設定される。
【0018】
スケジューラタスク132は、他のタスク(QoSタスク134)の実行制御を行うためのタスクである。スケジューラタスク132は、他のタスクの実行制御として、QoSタスク134の中から実行タスクの決定、実行タスクの優先度の変更、及び、実行タスクの所要リソース量の制御(リソース割り当て)等を行う。
【0019】
時間起動通知用タスク133は、スケジューラタスク132を実行状態(Running状態)へ遷移させるためのものである。そのために、時間起動通知用タスク133は、所定期間(一定周期または設定時間)ごとに所定通知(イベントフラグまたはセマフォ等)をスケジューラタスク132へ通知する。所定通知を受けると、スケジューラタスク132は、実行状態へ遷移して他のタスク(QoSタスク134)の実行制御を行う。
【0020】
QoSタスク134はその所要リソース量を制御可能な可変タスクである。所要リソース量を最低限保証すべき保証部分と制御可能部分とに分けることで、最低限の品質(保証部分)が保たれるようになっている。
【0021】
タスク情報テーブル135は、QoSタスク134に関する情報を管理するためのテーブルである。タスク情報テーブル135は、タスク識別子135a、起動タイミング135b、及び、実行割り当て時間135c等の項目によって構成される。タスクID135aは、QoSタスクを識別するための識別子である。起動タイミング135bは、QoSタスクにおける実行開始時点から次の実行開始時点までの時間(周期)である。あるQoSタスクが実行されると、設定された周期の間、このタスクが新たに実行されることはない。実行割り当て時間135cは、QoSタスクに割り当てられたリソース量(ここでは、CPUの使用時間)である。
【0022】
次に、上記構成のタスク管理システムの動作について図面を参照しながら説明する。図2は、タスク管理システムの動作を説明するためのフローチャートである。以下、時間起動通知用タスク133を用いないで、複数のタスクの実行を制御する動作について説明する。
【0023】
スケジューラ131は、終了または待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、スケジューラタスク132に最も高い優先度が設定されているので、スケジューラ131は、スケジューラタスク132を実行する。これにより、スケジューラタスク132は、初期化され(S100)、QoSタスク134の中から実行タスクを決定する(S101)。具体的には、スケジューラタスク132は、タスク情報テーブル135中のタスク情報(起動タイミング135b等)に基づいて、QoSタスクスケジュール計算等の処理を行うことで実行タスクを決定する。
【0024】
次に、スケジューラタスク132は、実行タスクとして決定したQoSタスク134がスケジューラ131によって実行されるように、所定のアルゴリズムに従い、そのQoSタスク134の優先度を変更する。例えば、そのQoSタスク134の優先度をそれ以外のタスク(QoS設定されていないタスク、Wait状態(待ち状態)のQoSタスク、又は、割り当て待ちのタスク等)の優先度よりも高く設定する。
【0025】
これととともに、スケジューラタスク132は、そのQoSタスク134の所要リソース量の制御を行う(S102)。例えば、タスク情報テーブル135(実行割当時間135c)へCPU使用時間を設定する(QoS制御)。
【0026】
次に、スケジューラタスク132は、次回スケジューラ起動時刻を計算し設定する(S103)。この設定が完了すると、スケジューラタスク132は、実行状態以外の状態(スリープ状態または待ち状態等)へ遷移する(S104)。実行状態以外の状態は設定時刻に達して再度実行状態へ遷移するまで継続する(S105)。
【0027】
リアルタイムOS(スケジューラ131)は、スケジューラタスク132が実行状態以外の状態から実行状態へ遷移するまでの間は、他のタスク(スケジューラタスク132以外のタスク133、134等)のうちの最も高い優先度が設定されているタスクを実行する。具体的には、スケジューラ131は、終了または待ち状態でない他のタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、S101で実行タスクとして決定されたQoSタスク134の優先度がスケジューラ131によって実行されるように変更されているため、スケジューラ131は、その変更された優先度が設定されているQoSタスク134等を実行する。
【0028】
スケジューラタスク132は、S103で設定した設定時刻に達すると、実行状態以外の状態から実行状態へ遷移する。即ち、スリープ状態等が解除される(S106)。そして、スケジューラタスク132は、タスク情報管理テーブル135(タスク情報ともいう)を更新する(S107)。
【0029】
次に、スケジューラ131は、終了または待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、スケジューラタスク132に最も高い優先度が設定されており、しかも、スケジューラタスクのスリープ状態等が解除されているので、スケジューラ131は、スケジューラタスク132を実行する。以下、スケジューラタスク132は実行状態へ遷移して、上記S100〜S107の処理を繰り返す。
【0030】
以上述べたように、本実施形態においては、最も高い優先度が設定されるとともに、他のタスク(QoSタスク134)の実行制御を行うスケジューラタスク132を設けたので、リアルタイムOSのカーネル部分を修正することなく、タスク管理方式をそのリアルタイムOSに実装することが可能となる。
【0031】
また、本実施形態においては、スケジューラタスク132は、所定期間ごとに(設定時刻に達するごとに)実行状態へ遷移して、タスク情報テーブル135中のタスク情報に基づいて、他のタスク(QoSタスク134等)の実行制御を行う。
【0032】
これにより、タスクの実行におけるリソース割当制御が可能となり、アプリケーション(例えばQoSタスクを含む)実行におけるサービス品質の制御を実現することができる。また、リアルタイムOSにおいて、各タスク(QoSタスク)毎のリソース割当制御が可能となることで、優先度に依らず、タスクの実行を適切なタイミングで必要とされる時間の実行が可能となり、アプリケーションの開発およびデバックの効率が向上する。さらに、カーネル内部を修正せずに、優先度制御機能を持つリアルタイムOS自体の機能を用いて、リソース割当制御を実現することで、リソース割当制御における実装の容易性と移植性が高まる。
【0033】
次に、上記構成のタスク管理システムにおいて、時間起動通知用タスク133を用いて、複数のタスクの実行を制御する動作について説明する。図3は、複数のタスクに設定されている優先度を説明するための図である。縦軸が優先度を示しており、各タスクにはその位置に応じた優先度が設定されている。図4及び図5は、タスク管理システムの動作を説明するための図である。図5中、縦軸が優先度を、横軸が時間の経過を、それぞれ表している。
【0034】
複数のタスクに設定されている優先度は当初、図3に示すように、時間起動通知用タスク133が最も高く、スケジューラタスク132、QoSタスク134、その他のタスク(QoS設定されていないタスク、Wait状態のQoSタスク、割当待ちのタスク)の順に低くなっている。
【0035】
スケジューラ131は、終了または待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、図3に示すように、時間起動通知用タスク133に最も高い優先度が設定されているので、スケジューラ103は、時間起動通知用タスク133を実行する。時間起動通知用タスク133は、所定期間(一定周期または設定時間)ごとに、所定通知をスケジューラタスク132へ通知等することで、スケジューラタスク132の優先度を他のタスク133、134等の優先度よりも高く設定する。これとともに、スケジューラタスク132の実行状態以外の状態(スリープ状態または待ち状態等)を解除する。
【0036】
この状態の下で、スケジューラ131は、終了又は待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、スケジューラタスク132に最も高い優先度が設定されており、しかも、スケジューラタスク132のスリープ状態等が解除されているので、スケジューラ131は、スケジューラタスク132を実行する。これにより、スケジューラタスク132は、初期化され(S200)、QoSタスク134の中から実行タスクを決定する(S201)。具体的には、スケジューラタスク132は、タスク情報テーブル135中の起動タイミング135b等に基づいて、QoSタスクスケジュール計算等の処理を行うことで実行タスクを決定する。
【0037】
次に、スケジューラタスク132は、実行タスクとして決定したQoSタスク134がスケジューラ131によって実行されるように、所定のアルゴリズムに従い、そのQoSタスク134の優先度を変更する。例えば、そのQoSタスク134の優先度をそれ以外のタスク(QoS設定されていないタスク、Wait状態(待ち状態)のQoSタスク、又は、割り当て待ちのタスク等)の優先度よりも高く設定する。
【0038】
これととともに、スケジューラタスク132は、そのQoSタスク134の所要リソース量の制御を行う(S202)。例えば、タスク情報テーブル135(実行割当時間135c)へCPU使用時間を設定する(QoS制御)。
【0039】
次に、スケジューラタスク132の優先度が他のタスク133、134等の優先度よりも低く設定される。これとともに、スケジューラタスク132は、実行状態以外の状態(スリープ状態またはRedy状態(待ち状態))へ遷移する(S203)。実行状態以外の状態は時間起動通知用タスク133から所定通知等が通知され再度実行状態へ遷移するまで継続する(S204)。なお、QoSタスク割り当てが無いときは、スケジューラタスク132は、Suspend状態に遷移する。この場合、スケジューラタスク132の優先度を低く設定する必要はない。
【0040】
リアルタイムOS(スケジューラ131)は、スケジューラタスク132が実行状態以外の状態から実行状態へ遷移するまでの間は、他のタスク(スケジューラタスク132以外のタスク133、134等)のうちの最も高い優先度が設定されているタスクを実行する。具体的には、スケジューラ131は、終了または待ち状態でない他のタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、S201で実行タスクとして決定されたQoSタスク134の優先度がスケジューラ131によって実行されるように変更されているため、スケジューラ131は、その変更された優先度が設定されているQoSタスク134等を実行する。
【0041】
次に、所定期間(一定周期又は設定時刻)が経過すると、時間起動通知用タスク133は、所定通知をスケジューラタスク132に通知等することで、スケジューラタスク132の優先度を他のタスクの優先度よりも高く設定する。これとともに、スケジューラタスク132は、実行状態以外の状態から実行状態へ遷移する(起動)。即ち、Ready状態(待ち状態)が解除される(S205)。なお、QoSタスク134の割当中に起動された場合は、他のタスクが動作可能となる処理が行われる。
そして、スケジューラタスク132は、タスク情報管理テーブル135(タスク情報ともいう)を更新する(S206)。
【0042】
次に、スケジューラ131は、終了または待ち状態でないタスクのうちの最も高い優先度が設定されているタスクを実行する。ここでは、スケジューラタスク132に最も高い優先度が設定されており、しかも、スケジューラタスクの待ち状態等が解除されているので、スケジューラ131は、スケジューラタスク132を実行する。以下、スケジューラタスク132は実行状態へ遷移して、上記S200〜S206の処理を繰り返す。
【0043】
以上のようにして、スケジューラタスク132は、所定期間ごとに(設定時刻に達するごとに)実行状態へ遷移して他のタスクの実行制御を行う。これにより、上記動作と同様の効果が得られる。
【0044】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。このため、上記の実施形態はあらゆる点で単なる例示にすぎず、これらの記載によって本発明が限定的に解釈されるものではない。
【0045】
【発明の効果】
本発明によれば、オペレーティングシステム(例えばリアルタイムOS)のカーネルを修正することなく、タスク管理方式(例えばQoS制御を実現するタスク管理方式)をそのオペレーティングシステムに実装することが可能になる。
【図面の簡単な説明】
【図1】本発明の実施の形態であるタスク管理システムの概略システム構成を説明するための図である。
【図2】本発明の実施の形態であるタスク管理システムの動作を説明するためのフローチャートである。
【図3】複数のタスクに設定されている優先度を説明するための図である。
【図4】本発明の実施の形態であるタスク管理システムの動作を説明するためのフローチャートである。
【図5】本発明の実施の形態であるタスク管理システムの動作を説明するためのフローチャートである。
【符号の説明】
100 情報処理端末
110 CPU
120 記憶装置
130 メモリ
131 スケジューラ
132 スケジューラタスク
133 時間起動通知用タスク
134 QoSタスク
135 タスク情報テーブル
Claims (5)
- 複数のタスクの実行を制御するためのタスク管理システムであって、
優先度が設定されている複数のタスクと、
前記複数のタスクのうちの最も高い優先度が設定されているタスクを実行する優先度制御機能を有するオペレーティングシステムとを備え、
前記複数のタスクのうちの少なくとも一つは、最も高い優先度が設定されるとともに、他のタスクの実行制御を行うスケジューラタスクである、タスク管理システム。 - 前記スケジューラタスクは、所定期間ごとに実行状態へ遷移して他のタスクの実行制御を行い、
前記オペレーティングシステムは、前記スケジューラタスクが実行状態以外の状態から実行状態へ遷移するまでの間は、前記他のタスクのうちの最も高い優先度が設定されているタスクを実行する、請求項1に記載のタスク管理システム。 - 前記スケジューラタスクは、前記他のタスクの実行制御として他のタスクの優先度を変更する、請求項1又は2に記載のタスク管理システム。
- 前記他のタスクはその所要リソース量を制御可能な可変タスクである、請求項1に記載のタスク管理システム。
- 前記スケジューラタスクは、前記他のタスクの実行制御として他のタスクの所要リソース量を制御する、請求項4に記載のタスク管理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322439A JP2004157737A (ja) | 2002-11-06 | 2002-11-06 | タスク管理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002322439A JP2004157737A (ja) | 2002-11-06 | 2002-11-06 | タスク管理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004157737A true JP2004157737A (ja) | 2004-06-03 |
Family
ID=32802627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002322439A Pending JP2004157737A (ja) | 2002-11-06 | 2002-11-06 | タスク管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004157737A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006349364A (ja) * | 2005-06-13 | 2006-12-28 | Toyota Infotechnology Center Co Ltd | 時刻補正方法 |
-
2002
- 2002-11-06 JP JP2002322439A patent/JP2004157737A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006349364A (ja) * | 2005-06-13 | 2006-12-28 | Toyota Infotechnology Center Co Ltd | 時刻補正方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5324934B2 (ja) | 情報処理装置および情報処理方法 | |
KR100864964B1 (ko) | 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체 | |
US7958508B2 (en) | Method of power-aware job management and computer system | |
JP5605970B2 (ja) | リソースセット移行をスケジュールすることによる、ポータブルコンピューティングデバイスにおけるプロセッサアプリケーション状態間のリソース待ち時間の最小化 | |
US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
Mochocki et al. | A realistic variable voltage scheduling model for real-time applications | |
JP2002099433A (ja) | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 | |
JP2015138323A (ja) | タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム | |
WO2023246042A1 (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
WO2023246044A1 (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
JP4523910B2 (ja) | 並列処理装置及び並列処理方法及び並列処理プログラム | |
JP6311330B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN111158875B (zh) | 基于多模块的多任务处理方法、装置及系统 | |
US8423681B2 (en) | Control apparatus for process input-output device | |
JP6861275B2 (ja) | 車両制御装置 | |
JP2001117786A (ja) | プロセススケジューリング装置およびプロセススケジューリング方法 | |
JP2005071161A (ja) | タスク管理プログラムおよびタスク制御装置 | |
JP2004157737A (ja) | タスク管理システム | |
JP2008234116A (ja) | 仮想計算機制御装置 | |
JP2004326399A (ja) | タスク管理システム | |
JP2004326364A (ja) | タスク管理システム | |
Inam et al. | Mode-change mechanisms support for hierarchical freertos implementation | |
WO2012088766A1 (zh) | 一种用于动态调度批处理任务的方法和装置 | |
JPH09160790A (ja) | タスクスケジュール装置及びタスクスケジュール方法 | |
CN110262839B (zh) | 一种处理器的调度方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070522 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070925 |