JP3043748B1 - タスクスケジュ―リング方法及び装置 - Google Patents

タスクスケジュ―リング方法及び装置

Info

Publication number
JP3043748B1
JP3043748B1 JP11083643A JP8364399A JP3043748B1 JP 3043748 B1 JP3043748 B1 JP 3043748B1 JP 11083643 A JP11083643 A JP 11083643A JP 8364399 A JP8364399 A JP 8364399A JP 3043748 B1 JP3043748 B1 JP 3043748B1
Authority
JP
Japan
Prior art keywords
task
executed
execution
execution order
order
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.)
Expired - Fee Related
Application number
JP11083643A
Other languages
English (en)
Other versions
JP2000276360A (ja
Inventor
雄治 藤原
Original Assignee
日本電気アイシーマイコンシステム株式会社
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 日本電気アイシーマイコンシステム株式会社 filed Critical 日本電気アイシーマイコンシステム株式会社
Priority to JP11083643A priority Critical patent/JP3043748B1/ja
Application granted granted Critical
Publication of JP3043748B1 publication Critical patent/JP3043748B1/ja
Publication of JP2000276360A publication Critical patent/JP2000276360A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

【要約】 【課題】デッドラインに余裕があるタスクが存在する場
合には、タスクの連続実行を可能とするタスクスケジュ
ーリング方法及び装置の提供。 【解決手段】(a)これから実行する第1のタスクP
(0)の終了の後に実行される予定の第2のタスクP
(1)が存在する場合に、第1のタスクに対して連続実
行可能な第3のタスクP(n)が存在する場合、第1の
タスクの後に第3のタスクが連続実行され、第2のタス
クが第3のタスクの次に実行されるように、タスクの実
行順序を入替え、(b)第3のタスクの実行順序の入替
えによりデッドラインをオーバするタスクが存在する場
合第3のタスクの実行順序の入替えを止め第2のタスク
と第1のタスクの実行順序を入替え、(c)第1のタス
クと第3タスクとを、第2のタスクの次に実行するよう
にした場合、どのタスクもデッドラインをオーバしない
場合に第3タスクを第1のタスクの次に実行するように
実行順序を入れ替える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置に関
し、特に、マルチタスク処理を行う処理装置のタスクス
ケジュール方法及びシステムに関する。
【0002】
【従来の技術】複数のタスクを切替実行するマルチタス
クシステムにおいて、タスクの状態は、タスク管理テー
ブル(タスク表)で管理され、タスクスケジューラは、
実行待ちのタスクの中から活性化するタスクを選択し
て、その実行を制御し、実行権が与えられたタスクは資
源を獲得してその処理を実行する。従来のタスクスケジ
ューラの制御について説明する。図9は、従来のタスク
スケジューラにおける実行タスクを選択する処理の例を
説明するためのフローチャートである。
【0003】ステップ101のオーバヘッド時間計算処
理で、これから実行するタスクP(0)から、さらにそ
の次に実行するタスクへの移行オーバヘッド時間を求め
る。
【0004】ステップ102の最小オーバヘッドタスク
検索処理で、オーバヘッド時間の最小値と、次に実行す
るタスクP(0)が将来において再度実行されるタスク
P(n)を探す。これは、タスクP(0)から高い連続
性を保持して移行できるタスクを探すものである。
【0005】ステップ103の処理時間計算処理で、タ
スクP(n)をタスクP(0)の後に活性化するとし
て、実行順序を入れ替えた場合の処理にかかる時間を計
算する。
【0006】さらにステップ104の時間増計算処理
で、タスクP(0)から、順序を入れ替える前のタスク
P(n)の直前に実行されるタスクP(n−1)につい
ての終了予測時間のずれを計算する。
【0007】ステップ105では、この値を利用して、
デッドラインのチェックを行い、タスクP(0)からタ
スクP(n−1)までのタスクがデッドラインを守って
いるかどうか判定する。
【0008】ステップ106のデッドラインオーバ判定
処理で、タスクP(0)からタスクP(n−1)のう
ち、デッドラインを超えるタスクが一つもない場合に
は、ステップ110のトータル処理時間減少判定処理
で、タスク実行順序の交換によってオーバヘッド時間の
合計が減少するか否かを判定する。この交換によってオ
ーバヘッド時間の合計が減少している場合には、ステッ
プ111以降の処理でタスクの交換(並べ替え)を行
い、減少していなければタスクの実行順序の交換は行わ
ない。
【0009】一方、ステップ106のデッドラインオー
バ判定で、連続実行の可能性のあるタスクの実行順を入
れ替えた結果に対して、デッドラインをオーバするタス
クが一つ以上存在すると判定した場合、ステップ107
のタスク削除処理に分岐する。
【0010】ステップ107のタスク削除処理では、タ
スクP(0)を削除し、ステップ108のタスク活性化
許可通知で、該当するタスクに対してタスク活性化許可
フラグを通じて通知109を送る。
【0011】ステップ111のタスク削除処理では、活
性化するタスクが、タスクP(0)であるかタスクP
(1)であるかを判断し、該当するタスクを、タスク表
から削除し、ステップ112のタスク活性化許可通知処
理で、該当する要求元のタスクに対して、タスク活性化
許可フラグを通じて、通知113を送る。
【0012】次に、ステップ114のタスクの並べ替え
で、タスク表にある、タスクの並べ替えを行い、ステッ
プ115の終了予定時刻再計算処理で、タスク表の終了
予定時刻をタスク表に登録されている全タスクについて
更新する。
【0013】その後、タスクの実行順序を交換しなかっ
た場合と同様に、ステップ116のタイマセット処理
で、いま活性化を許可したタスクの予測処理時間を、タ
イマにセットし、スケジューラ自身は、一旦休止して、
活性化しようとするタスクに実行権(CPU資源)を移
し、該タスクが終了するのを待つ。
【0014】該タスクが終了すると、ステップ118の
タイマ解除処理で、タイマの動作を停止し、スケジュー
ラの動作を終了とする(ステップ119)。
【0015】このとき、タスクの動作が予め申告した予
測処理時間よりも遅れた場合には、タイマのタイムアウ
トにより、処理装置に対してタイマ割り込み120を発
生する。
【0016】処理装置は、タイマからこのタイマ割り込
みを受けた場合には、ステップ121の時間切れ通知ス
テップで、時間切れの通知122を、要求元のタスクに
送り、実行中のタスクの動作を停止させる。
【0017】
【発明が解決しようとする課題】しかしながら、この従
来のタスクスケジューラは、次のような問題点を有して
いる。
【0018】すなわち、タスクの連続実行を行なおうと
した場合、他のタスクがデッドラインを守れなくなる確
率が高くなるのは明らかであることから、連続実行の可
能性のあるタスクが実際に連続実行されるようにスケジ
ュールが行われるのは、ある程度、タスクがデッドライ
ンに対して余裕があるときに限られ、時間的制約の厳し
い状況下においては、タスクの連続実行は見送られるこ
とになる。
【0019】その理由は、連続実行可能なタスクを検出
し、連続実行しようとした時、他のタスクのどれか1つ
でもデッドラインが守られていなければ、タスクの連続
実行は適用されず、通常のスケジューリングで実行する
ように構成されているため、連続実行の可能性のあるタ
スクが、実際に連続実行タスクとして適用されるのはタ
スクのデッドラインに余裕のある、わずかの機会に限定
されているためである。
【0020】そして、タスクの連続実行が行われるよう
にするためには、連続実行を考慮した上でのスケジュー
リングの見直しが行われなければならない。
【0021】このように、従来のタスクスケジュール方
法では、タスクの実行順序を入れ替えて同一タスクを連
続実行しようとしたときに、デッドラインに余裕のあ
る、つまり連続実行するタスクの処理時間よりも長い余
裕時間を持つタスクが存在するにもかかわらず、他のタ
スクが一つのタスクでもデッドラインを超えていると、
連続実行は実行されないことになる。
【0022】したがって本発明は、上記問題点に鑑みて
なされたものであって、その目的は、デッドラインに余
裕があるタスクが存在する場合には、タスクの連続実行
を可能とするタスクスケジューリング方法及び装置を提
供することにある。
【0023】
【課題を解決するための手段】前記目的を達成する本発
明は、マルチタスクで処理を行う処理装置上でリアルタ
イムに処理を実行するためのタスクスケジューリング方
法において、これから実行するタスクが将来に再度実行
される場合に、後に実行するタスクの実行順番を繰り上
げ、同一タスクの連続実行を行うと仮定し、その結果が
いずれのタスクもデッドラインをオーバしていない、か
つ終了予測時刻が早くなる場合、連続実行を行い、そう
でなければ連続実行を取り止め、デッドラインを超えな
い範囲で、本来これから実行するタスクの実行を次のタ
スクの実行後に見送ることにより、リアルタイム性と、
タスク移行のオーバヘッド時間の削減の両立を図るよう
にしたものである。
【0024】より詳細には、本発明は、情報処理装置で
マルチタスク制御を行なうタスクスケジューラのスケジ
ューリング方法において、(a)これから実行する予定
の第1のタスクに対して、前記第1のタスクの終了の後
に実行される予定の第2のタスクが実行待ちタスクとし
て存在する場合において、前記第1のタスクに対して連
続実行可能な第3のタスクを検出した場合に、前記第1
のタスクにつづいて前記第3のタスクが連続実行される
ようにタスク実行順序を入れ替えるとともに、前記第2
のタスクが、前記第3のタスクの次に実行されるよう
に、タスクの実行順序を入れ替え、(b)前記第3のタ
スクの実行順序の入れ替えにより、予め定められたデッ
ドラインをオーバするタスクが存在する場合には、前記
第3のタスクの実行順序の入れ替えを止めて、前記第2
のタスクと、前記第1のタスクの実行順序を入れ替えて
前記第2のタスクを先に実行するようにし、(c)さら
に、前記第2のタスクの次に実行されるように順序が入
れ替えられた前記第1のタスクにつづいて連続実行可能
な前記第3タスクとを、前記第2のタスクの次に実行す
るようにした場合、どのタスクもデッドラインをオーバ
しない場合には、前記第3タスクを前記第1のタスクの
次に実行するように実行順序を入れ替える、ことを特徴
とする。
【0025】本発明においては、タスクの実行順序入れ
替えによってトータル処理時間が、元のタスク実行順序
よりも減少しているか否か判定し、減少している場合、
前記タスクの実行順序の入れ替えを適用し、減少してい
ない場合、前記タスクの実行順序の入れ替えを適用しな
いように構成してもよい。
【0026】
【発明の実施の形態】本発明の実施の形態について説明
する。本発明は、タスクがタスクスケジューラに対して
活性化許可要求を送り実行待ち状態とされ、タスクスケ
ジューラは実行待ちのタスクを選択し該選択されたタス
クに活性化許可(活性化許可フラグをオンとする)を与
えるタスクスケジューラにおいて、これから実行する予
定の第1のタスクP(0)に対して、第1のタスクP
(0)の終了の後に実行される予定の第2のタスクP
(1)がスケジュール待ちのタスクとして存在している
場合において、第1のタスクP(0)に対して連続実行
可能な第3のタスクP(n)を検出する手段と、第1の
タスクP(0)につづいて連続実行可能と検出された第
3のタスクP(n)が連続実行され、当初、第1のタス
クP(0)の終了後に実行される予定であった第2のタ
スクP(1)を、第3のタスクP(n)の実行終了後に
実行するように、タスクの実行順序を入れ替える手段
と、第3のタスクP(n)の実行順序の入れ替えによ
り、予め定められたデッドラインをオーバするタスクが
存在する場合には、第3のタスクP(n)の実行順序の
入れ替えを止め、第2のタスクP(1)と第1のタスク
P(0)の実行順序の入れ替えを行なう手段と、第2の
タスクP(1)の次に実行されるように順序が入れ替え
られた第1のタスクP(0)につづいて連続実行可能な
第3タスクP(n)を実行するようにした場合に、どの
タスクもデッドラインをオーバしないことが確認された
場合、第3タスクP(n)を第1のタスクP(0)につ
づいて連続実行するようにタスクの実行順序の入れ替え
を確定するように制御する手段、を備える。
【0027】本発明の実施の形態において、タスクスケ
ジューラが、タスクの実行順序入れ替えによってタスク
の実行時間とタスク切換のオーバヘッド時間のトータル
処理時間が元のタスク実行順序によるトータル処理時間
以下である場合には、前記タスクの実行順序の入れ替え
を適用し、前記タスク順序入れ替え後のトータル処理時
間が、前記元のタスク実行順序によるトータル処理時間
を超える場合、前記タスクの実行順序の入れ替えを適用
しないように制御する手段を備えた構成としてもよい。
【0028】本発明の実施の形態において、タスクスケ
ジューラにおける、(a)これから実行する前記予定の
第1のタスクP(0)に対して連続実行可能な第3のタ
スクP(n)を検出する処理と、(b)第1のタスクP
(0)につづいて、連続実行可能と検出された第3のタ
スクP(n)が連続実行され、第3のタスクP(n)の
実行終了後、当初、第1のタスクP(0)の次に実行さ
れる予定であった第2のタスクP(1)を実行するよう
に実行順序を入れ替える処理と、(c)第3のタスクP
(n)の実行順序の入れ替えにより、予め定められたデ
ッドラインをオーバするタスクが存在する場合には、第
3のタスクP(n)の実行順序の入れ替えを止め、第2
のタスクP(1)と第1のタスクP(0)の実行順序の
入れ替える処理と、(d)第2のタスクP(1)の次に
実行されるように順序が入れ替えられた第1のタスクP
(0)につづいて連続実行可能な第3タスクP(n)を
実行するようにした場合、どのタスクもデッドラインを
オーバしないことが確認された場合、第3タスクP
(n)を前記第1のタスクにつづいて連続実行するよう
に前記タスクの実行順序の入れ替えを確定する処理の、
前記(a)乃至(d)の処理は情報処理装置で実行され
るプログラムによりその機能が実現される。また、本発
明の実施の形態において、(e)タスクの実行順序入れ
替えによってトータル処理時間が元のタスク実行順序に
よるトータル処理時間以下である場合には、前記タスク
の実行順序の入れ替えを適用し、前記タスク順序入れ替
え後のトータル処理時間が、前記元のタスク実行順序に
よるトータル処理時間を超える場合、前記タスクの実行
順序の入れ替えを適用しないように制御する処理は、前
記情報処理装置で実行されるプログラムによりその機能
が実現される。本発明の実施の形態において、前記プロ
グラムを記録した情報処理装置で読み出し可能な記録媒
体から該プログラムを読み出して情報処理装置のCPU
の主メモリにロードして実行することで、本発明を実施
することができる。
【0029】本発明の実施の形態についてさらに詳細に
説明する。図1は、本発明の一実施の形態の処理フロー
を示す流れ図であり、実行タスク選択処理を示してい
る。図2は、本発明の一実施の形態のタスクスケジュー
ラの構成を示す図であり、スケジューラは、タスク表2
05へのタスクの並び替えを行う投入並べ替え手段20
4と、実行タスク選択手段204と、活性化許可要求キ
ュー203を備え、活性化を許可したタスクに対して活
性化許可フラグ207をオンすることで実行許可を通知
する。図1及び図2を参照して、本発明の一実施の形態
のタスクスケジューラにおける実行タスク選択処理の処
理フローを説明する。
【0030】ステップ101のオーバヘッド時間計算処
理では、次に実行する予定のタスクP(0)から、さら
にその次に実行する予定のタスクへの移行オーバヘッド
時間を求める。
【0031】ステップ102の最小オーバヘッドタスク
検索処理102で、オーバヘッド時間の最小値と、次に
実行する予定のタスクP(0)が将来において再度実行
されるタスクP(n)を探す。これは、タスクP(0)
から高い連続性で移行できるタスクを探すものである。
【0032】ステップ103の処理時間計算処理103
で、タスクP(n)をタスクP(0)の後に活性化する
ものとして、順序を入れ替えた場合の処理にかかる時間
を計算する。
【0033】さらに、ステップ104の時間増計算処理
104で、タスクP(0)から、順序を入れ替える前の
タスクP(n)の直前に実行されるタスクP(n−1)
についての終了予測時間のずれを計算する。
【0034】ステップ105では、この値を利用して、
デッドラインのチェックを行い、タスクP(0)からタ
スクP(n−1)がデッドラインを守っているかどうか
判定する。
【0035】ステップ106のデッドラインオーバ判定
処理で、タスクP(0)からタスクP(n−1)のうち
デッドラインを超えるタスクが一つもない場合には、ス
テップ110のトータル処理時間減少判定処理で、タス
ク実行順序の交換によってオーバヘッド時間の合計が減
少するかどうか判定する。減少している場合、以降のス
テップ111〜118でタスクの実行順序の交換処理を
行い、減少していなければタスクの実行順序の交換は行
わない。
【0036】一方、ステップ106のデッドラインオー
バ判定で、前記タスクP(0)から前記タスクP(n−
1)のうちデッドラインを超えるタスクが一つでもあっ
た場合には、ステップ123の次期実行タスク順入れ替
え処理で、タスクP(n)の実行順入れ替えを取り消
し、タスクP(0)とその次に実行されるタスクP
(1)の実行順序を入れ替える。
【0037】ステップ124の処理時間計算処理で、タ
スクP(1)を、タスクP(0)の前に活性化するもの
として、その実行順序を入れ替えた場合の処理に要する
時間を計算する。
【0038】ステップ125の時間増計算処理で、タス
クP(0)を入れ替えた場合の終了予測時間のずれを計
算する。
【0039】ステップ126では、この値を利用して、
デッドラインチェックを行い、前記タスクP(0)がデ
ッドラインを守っているかどうか判定する。
【0040】ステップ127のデッドラインオーバ判定
処理で、タスクP(0)がデッドラインを超えていない
場合には、ステップ110のトータル処理時間減少判定
処理で、交換によってオーバヘッド時間の合計が減少す
るかどうか判定し、減少している場合、ステップ111
以降の処理でタスク交換処理を行い、減少していなけれ
ばタスクの交換は行わない。
【0041】また、ステップ127のデッドラインオー
バ判定で、タスクP(0)がデッドラインを超えていた
場合にも、タスクの実行順序の交換は行わない。
【0042】ステップのタスク削除処理において、図2
のタスク表205からタスクP(0)を削除し、ステッ
プ108のタスク活性化許可通知で、該当するタスク、
例えば図2の201a、201b、201cのいずれか
に対してタスク活性化許可フラグ207a、207b、
207cを通じて、図1の通知109を送る。
【0043】タスク表205は、これから実行する各タ
スクの終了予定時刻情報が記憶保持されている。次に活
性化するタスクの情報は、このタスク表205から削除
する。
【0044】図1のステップ111のタスク削除処理で
は、活性化するタスクがタスクP(0)であるかタスク
P(1)であるかを判断し、該当するタスクを、図2の
タスク表205から削除し、ステップ112のタスク活
性化許可通知処理で、該当する要求元のタスク、例えば
図2の201a、201b、201cのいずれかに対し
てタスク活性化許可フラグ207a、207b、207
cを通じて、図1の通知113を送る。
【0045】次に、ステップ114のタスクの並べ替え
で、図2のタスク表205にあるタスクの並べ替えを行
い、ステップ115の終了予定時刻再計算処理で、図2
のタスク表205の終了予定時刻を全タスクに関して更
新する。
【0046】その後、タスク順序を交換しなかった場合
と同様に、ステップ116のタイマセット処理で、いま
活性化を許可したタスクの予測処理時間を、図2のタイ
マ208にセットし、スケジューラ自身は、休止して、
活性化しようとするタスクに実行件を移して終了するの
を待つ。
【0047】タスクが終了すると、ステップ118のタ
イマ解除処理で、図2のタイマ208の動作を停止し、
スケジューラの動作を終了とする(ステップ119)。
【0048】このとき、タスクの動作が申告した予測処
理時間よりも遅れた場合、図2のタイマ208でタイム
アウトが発生し、タイマ208は処理装置に対してタイ
マ割り込み120を通知する。
【0049】処理装置でタイマ208からタイマ割り込
み120を受けた場合には、ステップ121の時間切れ
通知ステップで、時間切れの通知122を要求元のタス
ク、例えば図2の201a、201b、201cのうち
のいずれかに対してタスク活性化許可フラグ、例えば図
2の207a、207b、207cのいずれかを通じて
送る。
【0050】このようにして、リアルタイム性と、タス
ク移行のオーバヘッド時間の削減を両立するスケジュー
リング方法を可能にする。
【0051】
【実施例】本発明の実施例について図面を参照して説明
する。図2は、本発明の一実施例を説明するための図で
ある。図2を参照すると、処理タスク201a、201
b、201cと、スケジューラ202と、活性化許可フ
ラグ207a、207b、207cと、タイマ208
と、を備えている。図2及び以下の説明では簡単のた
め、処理タスクは201a、201b、201cの3個
としているが、本発明において、処理タスクは3個に限
定されるものでないことは勿論である。
【0052】スケジューラ202は、活性化許可要求キ
ュー203と、挿入並べ替え手段204と、記憶手段で
構成されるタスク表205と、実行タスク選択手段20
6とを含む。
【0053】活性化許可フラグは、処理タスクに対して
1個設けられており、図1では活性化許可フラグは20
7a、207b、207cの3個となっている。
【0054】処理タスク201a、201b、201c
は、それぞれ独立したリアルタイムタスクである。ま
た、スケジューラ202は、リアルタイムタスクの活性
化順序(実行順序)を決定する特殊なタスクである。
【0055】各処理タスク201a、201b、201
cは、スケジューラ202に対して活性化許可要求(実
行許可要求)209a、209b、209cを送り、活
性化許可フラグ207a、207b、207cが立つ
(オンされる)まで休止して待つ。
【0056】活性化許可フラグ207a、207b、2
07cが実行許可でオンに設定されると、それぞれの処
理タスク201a、201b、201cは、処理のため
の資源を確保し、処理を行った後、使用した資源を解放
し、その後、終了あるいは休止する。
【0057】次にスケジューラ202の動作について説
明する。スケジューラ202の起動するきっかけは、
「一定時間おき」、「他のタスクが終了したとき」、
「タスクの実行要求が発生したとき」、「その他割り込
み等でシステムの状態が変化したとき」のうち一つ、あ
るいは、これらのいくつかが発生した時である。
【0058】各処理タスク201a、201b、201
cからの活性化許可要求209a、209b、209c
は、スケジューラ202の活性化許可要求キュー203
で受け取る。
【0059】スケジューラ202が起動すると、まず挿
入並べ替え手段204が動作する。挿入並べ替え手段2
04では、活性化許可要求キュー203から、各処理タ
スクからの活性化許可要求209a、209b、209
cを取り出して、タスク表205に挿入する。
【0060】次に、本発明の一実施例における実行タス
ク選択手段に206の動作について説明する。実行タス
ク選択手段206は、例えば、何れかの処理タスクが終
了し、次にどのタスクを実行するかを選択するときに起
動される。実行タスク選択手段206は、前述した従来
技術の課題を解決する主要部をなし、本発明の主たる特
徴を構成するものである。
【0061】図1は、本発明の一実施例のタスクスケジ
ューラにおける実行タスク選択手段206の各処理ステ
ップをフローチャートで示したものである。図3、図
4、図5および図6にそれぞれ示したタスク実行順を示
すタイムチャート例を参照して、本実施例の動作につい
て説明する。なお、図3乃至図5等において、横軸は時
間を示し、Ta、Tb、Tc、Tdは各タスクの類別を
示している。例えば図3において、Taに対応するタス
クP(0)とP(n)は連続実行可能なタスクとされ
る。また例えばタスクP(0)の終了時間とタスクP
(1)実行開始時間との間には、タスク切換えのために
システム側で要するオーバヘッド時間(タスク切換時
間)が存在している。
【0062】図3は、通常のデットライン順に実行する
場合のタスク実行順を示すタイムチャートである。図3
において、306、307a、308、309、310
はそれぞれタスクP(0)301、タスクP(1)30
2、タスクP(n−1)303、タスクP(n)30
4、タスクP(n+1)305のデッドラインであり、
P(0)、P(1)、P(n−1)、P(n)、P(n
+1)の順に実行され、終了時刻は311aで示されて
いる。
【0063】実行タスク選択手段206は、図3のタス
ク実行順序を基に、タスクの入れ替えを行う。
【0064】ステップ102の最小オーバヘッドタスク
検索処理によって、連続実行可能タスクを検出し、タス
クP(0)301の次にタスクP(n)304が実行さ
れるように、タスク実行順序を入れ替える。図4は、そ
の場合の実行順を示している。
【0065】図4を参照すると、タスクP(n)304
の実行順序が入れ替えられており、タスクP(0)30
1に続いて実行されることにより、タスクP(1)30
2の実行開始が遅れ、タスクP(1)302のデッドラ
イン307bまでに、タスクP(1)302が終了せ
ず、デッドラインオーバとなる。
【0066】このとき、ステップ106のデッドライン
オーバ判定処理で、デッドラインオーバするタスクP
(1)が存在すると判定し、ステップ123の次期実行
タスク順入れ替え処理へ分岐する。
【0067】ステップ123の次期実行タスク順入れ替
え処理では、タスクP(n)304の入れ替えを取り止
め、タスクP(0)301とタスクP(1)302の実
行順を入れ替える。
【0068】図5は、次期実行タスクの実行順序を入れ
換えた場合の実行順序を示すタイムチャートであり、図
3に示したタスクP(0)301とタスクP(1)30
2の実行順序を入れ替た状態を示している。図5に示す
ように、タスクP(0)301とタスクP(1)302
の実行順序が入れ替えられても、デッドラインをオーバ
するタスクが存在しないので、ステップ127のデッド
ラインオーバ判定処理で、デッドラインオーバするタス
クが一つも存在しないものと判定し、ステップ110の
トータル処理時間減少判定処理に分岐する。
【0069】ステップ110のトータル処理時間減少判
定処理では、トータル処理時間が減少するか、または同
じならば、タスク(0)と連続実行されるタスクP
(n)に対してその実行順入れ替えを適用し、その結
果、トータル処理時間が増加していれば、実行順の入れ
替えを適用せず、図3に示す実行順序とする。
【0070】一方、ステップ106のデッドラインオー
バ判定処理で、デッドラインオーバするタスクが一つも
存在しないと判定された場合には、ステップ110のト
ータル処理時間減少判定処理に分岐し、トータル処理時
間が減少していれば、タスクP(n)の実行順入れ替え
を適用し、トータル処理時間が増加していれば、実行順
の入れ替えを適用せず、図3で示す実行順序とする。
【0071】図5に示すように、タスクP(0)301
とタスクP(1)302の実行順序を入れ替えること
は、将来のタスクの連続実行の可能性を残すものであ
る。
【0072】図5に示すタスクの実行順序が適用され、
タスクP(1)302の実行が終了したとき、次のタス
クの実行順がどのように入れ替えられるかについて示し
たものが図6である。
【0073】実行タスク選択手段206によって、連続
実行可能なタスクP(n)304がタスクP(0)30
1の次に実行されるように入れ替えられ、どのタスクも
デッドラインをオーバしないので、図6に示したタスク
の入れ替えが適用される。この結果、同一タスク(T
a)の連続実行が可能となる。
【0074】図7は、本発明と従来技術のタスク選択実
行処理によるタスク実行順序を互いに比較して示すタイ
ムチャートである。
【0075】図7(a)に示すように、従来技術では、
タスクの実行順を入れ替えて同一タスクを連続実行しよ
うとしたときに、デッドラインに余裕のある、つまり連
続実行するタスクの処理時間よりも長い余裕時間を持つ
タスクが存在するにもかかわらず、他のタスクが一つの
タスクでもデッドラインを超えていると,連続実行は実
行されない。
【0076】これに対して、図7(b)に示すように、
本発明の一実施例では、デッドラインに余裕のある、つ
まり連続実行するタスクの処理時間よりも長い余裕時間
を持つタスクが1つ以上存在すれば、100%連続実行
が可能になる。
【0077】各タスクの処理時間を1.0、タスク切り
換え時間を0.4としたとき、図7(a)に示すよう
に、従来技術は6.6の処理時間を要するが、本発明で
は、図7(b)に示すように、6.2の処理時間とな
り、処理時間を0.4短縮している。
【0078】次に、本発明の第2の実施例について説明
する。図8は、本発明の第2の実施例の実行タスク選択
手段の処理を説明するための流れ図である。
【0079】図8に示すように、本発明の第2の実施例
においては、ステップ127のデッドラインオーバ判定
において、デッドラインオーバしていない場合の分岐先
を、タスク削除ステップ111としていることが、前記
実施例と相違している。前記実施例では、実行タスク選
択手段206の処理は、ステップ127のデッドライン
オーバ判定において、デッドラインオーバしていない場
合の分岐先は、トータル処理時間減少判定ステップ11
0とされている。
【0080】これは、次に実行するタスクP(0)とそ
の次に実行するタスクP(1)の実行順の入れ替えを行
う際に、トータル処理時間減少判定ステップ110によ
るトータル処理時間減少しているか否かの判定を行わな
ずに、タスク実行順の入れ替えを行うものである。この
2つのタスクP(0)とタスクP(1)を入れ替える前
と後では、タスク移行回数は変わらないので、タスク移
行にかかるオーバヘッド時間に差異があるか否かでトー
タル処理時間が増減する。
【0081】この増減があるかどうかは、タスクスケジ
ューラの設計に依存するものであり、移行にかかるオー
バヘッド時間が一定であるタスクスケジューラであるな
らば、タスクP(0)とタスクP(1)の実行順の入れ
替えてもトータル処理時間は変わらないため、トータル
処理時間減少判定ステップ110を行う必要はない。
【0082】また、タスク移行にかかるオーバヘッド時
間の差異が非常に少ない場合でも、トータル処理時間減
少判定ステップ110を行わないほうが有効な場合もあ
る。トータル処理時間減少判定ステップ110を行わな
ければ、タスクの連続実行が行われるように実行順を入
れ替える頻度が高くなるため、タスク移行にかかるオー
バヘッド時間を無視して、連続実行を行う頻度を多くす
ることにより、トータル処理時間が減少する場合であ
る。
【0083】
【発明の効果】以上説明したように、本発明によれば、
タスクの実行順を入れ替えて同一タスクを連続実行しよ
うとしたときに、デッドラインに余裕のある、つまり連
続実行するタスクの処理時間よりも長い余裕時間を持つ
タスクが1つ以上存在すれば、100%連続実行が可能
とする構成としたことにより、リアルタイム処理に好適
とされ、且つ、タスク切換え(スイッチング)のオーバ
ヘッドを減少させ、性能向上を図るという効果を奏す
る。
【図面の簡単な説明】
【図1】本発明の一実施例の実行タスク選択手段の処理
手順を示す流れ図である。
【図2】本発明の一実施例の構成を示す図である。
【図3】本発明の一実施例を説明するための図であり、
デッドライン順に実行したタイムチャートを示す図であ
る。
【図4】本発明の一実施例を説明するための図であり、
実行順序を入れ換えられない場合のタイムチャートを示
す図である。
【図5】本発明の一実施例を説明するための図であり、
次期実行タスクの実行順序を入れ換えて実行した場合の
タイムチャートを示す図である。
【図6】本発明の一実施例を説明するための図であり、
連続実行可能タスクの実行順序を入れ換えて実行した場
合のタイムチャートを示す図である。
【図7】本発明の一実施例の効果を説明するための図で
あり、(a)は比較例として、従来技術で連続実行でき
なかった場合のタイムチャートであり、(b)は本発明
の一実施例を説明するための図であり、連続実行可能タ
スクの実行順序を入れ換えて実行した場合のタイムチャ
ートを示す図である。
【図8】本発明の第2の実施例の実行タスク選択手段の
処理手順を示す流れ図である。
【図9】従来の実行タスク選択手段の処理手順を示す流
れ図である。
【符号の説明】
201 処理タスク 202 スケジューラ 203 活性化許可要求フラグ 204 挿入並べ替え手段 205 タスク表 206 実行タスク選択手段 207 活性化許可フラグ 208 タイマ 209 活性化許可要求 301〜305 タスク 306〜311 デッドライン
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】情報処理装置でマルチタスク制御を行なう
    タスクスケジューラのスケジューリング方法において、 (a)これから実行する予定の第1のタスクに対して、
    前記第1のタスクの終了の後に実行される予定の第2の
    タスクが存在する場合において、前記第1のタスクに対
    して連続実行可能な第3のタスクを検出した場合に、前
    記第1のタスクにつづいて前記第3のタスクが連続実行
    されるようにタスク実行順序を入れ替えるとともに、前
    記第2のタスクが、前記第3のタスクの次に実行される
    ように、タスクの実行順序を入れ替え、 (b)前記第3のタスクの実行順序の入れ替えにより、
    予め定められたデッドラインをオーバするタスクが存在
    する場合には、前記第3のタスクの実行順序の入れ替え
    を止めて、前記第2のタスクと前記第1のタスクの実行
    順序を入れ替えて前記第2のタスクを先に実行するよう
    にし、 (c)さらに、前記第2のタスクの次に実行されるよう
    に順序が入れ替えられた前記第1のタスクと前記第1の
    タスクにつづいて連続実行可能な前記第3タスクとを、
    前記第2のタスクの次に実行するようにスケジュールし
    た場合、どのタスクもデッドラインをオーバしないこと
    が確認された場合に、前記第3タスクを前記第1のタス
    クの次に実行するように実行順序を入れ替える、ことを
    特徴とするタスクスケジューリング方法。
  2. 【請求項2】タスクの実行順序入れ替えによって実行予
    定のタスクとタスク切換えのオーバヘッドのトータル処
    理時間が、元のタスク実行順序のトータル処理時間より
    も減少しているか否か判定し、減少している場合、前記
    タスクの実行順序の入れ替えを適用し、減少していない
    場合、前記タスクの実行順序の入れ替えを適用しないよ
    うに制御する、ことを特徴とする請求項1記載のタスク
    スケジューリング方法。
  3. 【請求項3】複数のタスクの実行を選択制御するタスク
    スケジューラを備え、前記タスクは、前記タスクスケジ
    ューラに対して活性化許可要求を送り実行待ち状態とさ
    れ、前記タスクスケジューラは実行待ちのタスクを選択
    し該選択されたタスクに活性化許可を与える情報処理装
    置において、 これから実行する予定の第1のタスクに対して、前記第
    1のタスクの終了の後に実行される予定の第2のタスク
    が実行待ちのタスクとして存在しており、 前記第1のタスクに対して連続実行可能な第3のタスク
    を検出する手段と、 前記第1のタスクにつづいて連続実行可能と検出された
    前記第3のタスクが連続実行され、当初前記第1のタス
    クの終了後に実行される予定であった前記第2のタスク
    を、前記第3のタスクの実行終了後に実行するように、
    タスクの実行順序を入れ替える手段と、 前記第3のタスクの実行順序の入れ替えにより、予め定
    められたデッドラインをオーバするタスクが存在する場
    合には、前記第3のタスクの実行順序の入れ替えを止
    め、前記第2のタスクと前記第1のタスクの実行順序の
    入れ替えを行なう手段と、 前記第2のタスクの次に実行されるように実行順序が入
    れ替えられた前記第1のタスクにつづいて連続実行可能
    な前記第3タスクを実行することにした場合、どのタス
    クもデッドラインをオーバしないことが確認された場
    合、前記第3タスクを前記第1のタスクにつづいて連続
    実行するように前記タスクの実行順序の入れ替えを確定
    する手段と、 を備えたことを特徴とする情報処理装置。
  4. 【請求項4】前記タスクスケジューラが、タスクの実行
    順序入れ替えによってトータル処理時間が元のタスク実
    行順序によるトータル処理時間以下である場合には、前
    記タスクの実行順序の入れ替えを適用し、前記タスク順
    序入れ替え後のトータル処理時間が、前記元のタスク実
    行順序によるトータル処理時間を超える場合、前記タス
    クの実行順序の入れ替えを適用しないように制御する手
    段をさらに備えたことを特徴とする請求項記載の情報
    処理装置。
  5. 【請求項5】複数のタスクの実行を選択制御するタスク
    スケジューラを備え、前記タスクは、前記タスクスケジ
    ューラに対して活性化許可要求を送り実行待ち状態とさ
    れ、前記タスクスケジューラは実行待ちのタスクを選択
    し該選択されたタスクに活性化許可を与える、情報処理
    装置のタスクスケジューラにおいて、 これから実行する予定の第1のタスクに対して、前記第
    1のタスクの終了の後に実行される予定の第2のタスク
    が実行待ちタスクとして存在しており、 (a)これから実行する前記予定の第1のタスクに対し
    て連続実行可能な第3のタスクを検出する処理と、 (b)前記第1のタスクにつづいて連続実行可能と検出
    された前記第3のタスクが連続実行され、前記第3のタ
    スクの実行終了後、当初前記第1のタスクの次に実行さ
    れる予定であった第2のタスクを実行するように実行順
    序を入れ替える処理と、 (c)前記第3のタスクの実行順序の入れ替えにより、
    予め定められたデッドラインをオーバするタスクが存在
    する場合には、前記第3のタスクの実行順序の入れ替え
    を止め、前記第2のタスクと前記第1のタスクの実行順
    序の入れ替える処理と、 (d)前記第2のタスクの次に実行されるように順序が
    入れ替えられた前記第1のタスクにつづいて連続実行可
    能な前記第3タスクを実行するようにした場合、どのタ
    スクもデッドラインをオーバしないことが確認された場
    合、前記第3タスクを前記第1のタスクにつづいて連続
    実行するように前記タスクの実行順序の入れ替えを確定
    する処理と、 を備え、 前記(a)乃至(d)の処理を前記情報処理装置で実行
    するためのプログラムを記録した記録媒体。
  6. 【請求項6】請求項記載の記録媒体において、 (e)タスクの実行順序入れ替えによってトータル処理
    時間が元のタスク実行順序によるトータル処理時間以下
    である場合には、前記タスクの実行順序の入れ替えを適
    用し、前記タスク順序入れ替え後のトータル処理時間
    が、前記元のタスク実行順序によるトータル処理時間を
    超える場合、前記タスクの実行順序の入れ替えを適用し
    ないように制御する処理を前記情報処理装置で実行する
    ためのプログラムを記録した記録媒体。
JP11083643A 1999-03-26 1999-03-26 タスクスケジュ―リング方法及び装置 Expired - Fee Related JP3043748B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11083643A JP3043748B1 (ja) 1999-03-26 1999-03-26 タスクスケジュ―リング方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11083643A JP3043748B1 (ja) 1999-03-26 1999-03-26 タスクスケジュ―リング方法及び装置

Publications (2)

Publication Number Publication Date
JP3043748B1 true JP3043748B1 (ja) 2000-05-22
JP2000276360A JP2000276360A (ja) 2000-10-06

Family

ID=13808143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11083643A Expired - Fee Related JP3043748B1 (ja) 1999-03-26 1999-03-26 タスクスケジュ―リング方法及び装置

Country Status (1)

Country Link
JP (1) JP3043748B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149312A (ja) * 2003-11-18 2005-06-09 Toyota Motor Corp タスク管理システム
CN103189842B (zh) 2010-11-15 2016-06-29 富士通株式会社 信息处理装置以及信息处理方法
JP7074286B2 (ja) * 2017-06-19 2022-05-24 Necネクサソリューションズ株式会社 処理計画装置、処理計画方法及びプログラム

Also Published As

Publication number Publication date
JP2000276360A (ja) 2000-10-06

Similar Documents

Publication Publication Date Title
KR100934533B1 (ko) 연산 처리 시스템, 컴퓨터 시스템 상에서의 태스크 제어 방법, 및 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US6272517B1 (en) Method and apparatus for sharing a time quantum
US7448036B2 (en) System and method for thread scheduling with weak preemption policy
KR100864964B1 (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
JP5097251B2 (ja) 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
US8615765B2 (en) Dividing a computer job into micro-jobs
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
US6795873B1 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
JP3043748B1 (ja) タスクスケジュ―リング方法及び装置
EP0913770A2 (en) Method and apparatus for sharing a time quantum
JP2003131892A (ja) タスク実行制御装置及びタスク実行制御方法
JPH0877025A (ja) タスクの優先度制御方法、タスクの優先度制御装置
JP4048638B2 (ja) スケジューリング装置及び方法並びに記録媒体
JP5299869B2 (ja) コンピュータマイクロジョブ
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
WO2018211865A1 (ja) 車両制御装置
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
JPH11203149A (ja) タスクスケジュール装置およびその方法
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
JP2597283B2 (ja) 割込みにおけるスケジューリング方式
KR100321408B1 (ko) 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JPH0855036A (ja) タスクスケジューリング方法
WO2005085994A2 (en) Multi-tasking data processing system
JPH0424828A (ja) マルチタスク管理方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000229

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees