JP2581451B2 - タスクスケジューリング方法 - Google Patents
タスクスケジューリング方法Info
- Publication number
- JP2581451B2 JP2581451B2 JP6122812A JP12281294A JP2581451B2 JP 2581451 B2 JP2581451 B2 JP 2581451B2 JP 6122812 A JP6122812 A JP 6122812A JP 12281294 A JP12281294 A JP 12281294A JP 2581451 B2 JP2581451 B2 JP 2581451B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- group
- queue
- execution
- 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
Links
Description
【0001】
【産業上の利用分野】本発明はコンピュータのタスクの
処理順序を管理するタスクスケジューリング方法に関す
る。
処理順序を管理するタスクスケジューリング方法に関す
る。
【0002】
【従来の技術】従来この種のタスクスケジューリング方
法には、FIFO(ファーストイン・ファーストアウ
ト)スケジューリング、ラウンドロビンスケジューリン
グ、優先度スケジューリングなどがある。これらのスケ
ジューリングの詳細は、株式会社アスキーから発行され
た、アンドリュー・タンネンバウム著,坂本文監修の刊
行物、「MINIXオペレーティングシステム」を参照
できる。
法には、FIFO(ファーストイン・ファーストアウ
ト)スケジューリング、ラウンドロビンスケジューリン
グ、優先度スケジューリングなどがある。これらのスケ
ジューリングの詳細は、株式会社アスキーから発行され
た、アンドリュー・タンネンバウム著,坂本文監修の刊
行物、「MINIXオペレーティングシステム」を参照
できる。
【0003】FIFOスケジューリングとは、実行可能
になった順番にタスクを実行するものであり、一般に優
先度の高いタスクも、優先度の低いタスクも同等に扱わ
れる。
になった順番にタスクを実行するものであり、一般に優
先度の高いタスクも、優先度の低いタスクも同等に扱わ
れる。
【0004】ラウンドロビンスケジューリングとは、実
行可能状態にあるタスクに対し一定のCPU時間を割り
付け、一定時間あるタスクの処理を行った後に処理を中
断して実行待ち行列の最後に入れ、別のプロセスに対し
て順次CPUを割り当てるものである。
行可能状態にあるタスクに対し一定のCPU時間を割り
付け、一定時間あるタスクの処理を行った後に処理を中
断して実行待ち行列の最後に入れ、別のプロセスに対し
て順次CPUを割り当てるものである。
【0005】優先度スケジューリングとは、処理の緊急
度に応じてタスクに優先度を設け、優先度の高いタスク
から実行し、同じ優先度のタスク同士では早く実行可能
状態になった順番にタスクを実行するものである。
度に応じてタスクに優先度を設け、優先度の高いタスク
から実行し、同じ優先度のタスク同士では早く実行可能
状態になった順番にタスクを実行するものである。
【0006】
【発明が解決しようとする課題】上記従来の技術では、
以下のような問題点がある。
以下のような問題点がある。
【0007】FIFOスケジューリングでは、緊急な処
理を必要とする事象の発生に対してリアルタイムな処理
が保証できないという問題がある。
理を必要とする事象の発生に対してリアルタイムな処理
が保証できないという問題がある。
【0008】ラウンドロビンスケジューリングでは、一
定時間毎にタスクの処理が中断するため、別のタスクを
起動するためのレジスタ退避/復帰などの処理に時間を
要してしまうという問題がある。
定時間毎にタスクの処理が中断するため、別のタスクを
起動するためのレジスタ退避/復帰などの処理に時間を
要してしまうという問題がある。
【0009】また、優先度スケジューリングでは、優先
度の高いタスクがCPUを占有して、優先度の低いタス
クを長時間待たせてしまうという問題がある。
度の高いタスクがCPUを占有して、優先度の低いタス
クを長時間待たせてしまうという問題がある。
【0010】本発明の目的は、対象となる処理の特性に
適合するように、柔軟なタスクスケジューリング方法を
提供することにある。すなわち、リアルタイム性が要求
される場合や、システム全体のスループットが要求され
る場合、または、タスク間の公平性が要求される場合な
ど、これらの要求は各システム毎に異なる。本発明はこ
れらの要求に応じて、適切なタスクスケジューリング方
法を提供することを目的とする。
適合するように、柔軟なタスクスケジューリング方法を
提供することにある。すなわち、リアルタイム性が要求
される場合や、システム全体のスループットが要求され
る場合、または、タスク間の公平性が要求される場合な
ど、これらの要求は各システム毎に異なる。本発明はこ
れらの要求に応じて、適切なタスクスケジューリング方
法を提供することを目的とする。
【0011】
【課題を解決するための手段】上記課題を解決するため
に本発明のタスクスケジューリング方法は、実行状態に
あるタスクの優先度を格納したタスク制御ブロックを複
数個リンクさせて待ち行列を形成し、前記待ち行列に含
まれる前記タスクからグループを構成するために少なく
とも1つ取り出される前記タスクの個数が定義されるグ
ループ化個数を含む待ち行列管理テーブルを有し、前記
待ち行列管理テーブルに基づいて前記タスクの実行順序
を制御するタスクスケジューリング方法において、前記
待ち行列の先頭から前記グループ化個数分だけの前記タ
スクを取り出してグループ化する第1のステップと、こ
の第1のステップによりグループ化されたグループ内の
前記タスクを前記優先度に基づいて前記グループ内に含
まれる全ての前記タスクを実行する第2のステップとを
含む。
に本発明のタスクスケジューリング方法は、実行状態に
あるタスクの優先度を格納したタスク制御ブロックを複
数個リンクさせて待ち行列を形成し、前記待ち行列に含
まれる前記タスクからグループを構成するために少なく
とも1つ取り出される前記タスクの個数が定義されるグ
ループ化個数を含む待ち行列管理テーブルを有し、前記
待ち行列管理テーブルに基づいて前記タスクの実行順序
を制御するタスクスケジューリング方法において、前記
待ち行列の先頭から前記グループ化個数分だけの前記タ
スクを取り出してグループ化する第1のステップと、こ
の第1のステップによりグループ化されたグループ内の
前記タスクを前記優先度に基づいて前記グループ内に含
まれる全ての前記タスクを実行する第2のステップとを
含む。
【0012】また、本発明の他のタスクスケジューリン
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御するタス
クスケジューリング方法において、前記待ち行列の先頭
からあらかじめ定めた1つ以上の数のタスク制御ブロッ
クに対応するタスクのそれぞれをグループに入れるステ
ップと、前記グループに属するタスクを当該タスクの優
先度を満たすように実行するグループ内タスク実行ステ
ップとを有し、前記グループ内タスク実行ステップにお
いてグループ内の全てのタスクの実行が終了した際には
再び前記グループ化ステップと前記グループ内タスク実
行ステップとを繰り返すように構成される。
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御するタス
クスケジューリング方法において、前記待ち行列の先頭
からあらかじめ定めた1つ以上の数のタスク制御ブロッ
クに対応するタスクのそれぞれをグループに入れるステ
ップと、前記グループに属するタスクを当該タスクの優
先度を満たすように実行するグループ内タスク実行ステ
ップとを有し、前記グループ内タスク実行ステップにお
いてグループ内の全てのタスクの実行が終了した際には
再び前記グループ化ステップと前記グループ内タスク実
行ステップとを繰り返すように構成される。
【0013】また、本発明の他のタスクスケジューリン
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御し、前記
タスク制御ブロックは、そのタスクに関する優先度を表
すタスク優先度を含み、前記待ち行列管理テーブルは、
実行待ち状態にあるタスクの総数を示す実行待ち全タス
ク数と、グループ内の実行待ちタスク数を示すグループ
内実行待ちタスク数と、グループを構成すべき1つ以上
のタスクの数を設定するグループ化個数と、実行待ち行
列に最も早く加わったタスクに関するタスク制御ブロッ
クのアドレスを示す先頭タスクアドレスと、タスクの状
態を調査されているそのタスクに関するタスク制御ブロ
ックのアドレスを示す調査タスクアドレスと、グループ
内で実行待ち行列に最も遅く加わったタスクに関するタ
スク制御ブロックのアドレスを示すグループ内最終タス
クアドレスとを含むタスクスケジューリング方法におい
て、前記先頭タスクアドレスの示すタスク制御ブロック
から前記グループ化個数分のタスク制御ブロックに対応
するタスクのそれぞれを前記グループ内実行待ちタスク
数とグループ内最終タスクアドレスとを設定することに
より前記グループに入れるステップと、前記調査タスク
アドレスを順次変更していくことにより前記グループに
属するタスクを当該タスクのタスク制御ブロックの前記
タスク優先度に従って実行するグループ内タスク実行ス
テップとを有し、前記グループ内タスク実行ステップに
おいてグループ内の全てのタスクの実行が終了した際に
は再び前記グループ化ステップと前記グループ内タスク
実行ステップとを繰り返すように構成される。
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御し、前記
タスク制御ブロックは、そのタスクに関する優先度を表
すタスク優先度を含み、前記待ち行列管理テーブルは、
実行待ち状態にあるタスクの総数を示す実行待ち全タス
ク数と、グループ内の実行待ちタスク数を示すグループ
内実行待ちタスク数と、グループを構成すべき1つ以上
のタスクの数を設定するグループ化個数と、実行待ち行
列に最も早く加わったタスクに関するタスク制御ブロッ
クのアドレスを示す先頭タスクアドレスと、タスクの状
態を調査されているそのタスクに関するタスク制御ブロ
ックのアドレスを示す調査タスクアドレスと、グループ
内で実行待ち行列に最も遅く加わったタスクに関するタ
スク制御ブロックのアドレスを示すグループ内最終タス
クアドレスとを含むタスクスケジューリング方法におい
て、前記先頭タスクアドレスの示すタスク制御ブロック
から前記グループ化個数分のタスク制御ブロックに対応
するタスクのそれぞれを前記グループ内実行待ちタスク
数とグループ内最終タスクアドレスとを設定することに
より前記グループに入れるステップと、前記調査タスク
アドレスを順次変更していくことにより前記グループに
属するタスクを当該タスクのタスク制御ブロックの前記
タスク優先度に従って実行するグループ内タスク実行ス
テップとを有し、前記グループ内タスク実行ステップに
おいてグループ内の全てのタスクの実行が終了した際に
は再び前記グループ化ステップと前記グループ内タスク
実行ステップとを繰り返すように構成される。
【0014】また、本発明の他のタスクスケジューリン
グ方法は、実行状態にあるタスクの優先度を格納したタ
スク制御ブロックを複数個リンクさせて待ち行列を形成
し、前記待ち行列に含まれる前記タスクからグループを
構成するために少なくとも1つ取り出される前記タスク
の個数が定義されるグループ化個数を含む待ち行列管理
テーブルを有し、前記待ち行列管理テーブルに基づいて
前記タスクの実行順序を制御するタスクスケジューリン
グ方法において、前記待ち行列の先頭から前記グループ
化個数分だけの前記タスクを取り出してグループ化する
第1のステップと、この第1のステップによりグループ
化されたグループ内の前記タスクを前記優先度に基づい
て前記グループ内に含まれる全ての前記タスクを実行す
る第2のステップと、前記タスクの処理状態に応じて前
記グループに属すべき前記タスクの数を変更する第3の
ステップとを含む。
グ方法は、実行状態にあるタスクの優先度を格納したタ
スク制御ブロックを複数個リンクさせて待ち行列を形成
し、前記待ち行列に含まれる前記タスクからグループを
構成するために少なくとも1つ取り出される前記タスク
の個数が定義されるグループ化個数を含む待ち行列管理
テーブルを有し、前記待ち行列管理テーブルに基づいて
前記タスクの実行順序を制御するタスクスケジューリン
グ方法において、前記待ち行列の先頭から前記グループ
化個数分だけの前記タスクを取り出してグループ化する
第1のステップと、この第1のステップによりグループ
化されたグループ内の前記タスクを前記優先度に基づい
て前記グループ内に含まれる全ての前記タスクを実行す
る第2のステップと、前記タスクの処理状態に応じて前
記グループに属すべき前記タスクの数を変更する第3の
ステップとを含む。
【0015】また、本発明の他のタスクスケジューリン
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御するタス
クスケジューリング方法において、前記待ち行列の先頭
からあらかじめ定めた1つ以上の数のタスク制御ブロッ
クに対応するタスクのそれぞれをグループに入れるステ
ップと、前記グループに属するタスクを当該タスクの優
先度を満たすように実行するグループ内タスク実行ステ
ップと、前記グループ内タスク実行ステップにより呼び
出されて前記グループに属すべきタスクの数を変更する
ステップとを有し、前記グループ内タスク実行ステップ
においてグループ内の全てのタスクの実行が終了した際
には再び前記グループ化ステップと前記グループ内タス
ク実行ステップとを繰り返すように構成される。
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御するタス
クスケジューリング方法において、前記待ち行列の先頭
からあらかじめ定めた1つ以上の数のタスク制御ブロッ
クに対応するタスクのそれぞれをグループに入れるステ
ップと、前記グループに属するタスクを当該タスクの優
先度を満たすように実行するグループ内タスク実行ステ
ップと、前記グループ内タスク実行ステップにより呼び
出されて前記グループに属すべきタスクの数を変更する
ステップとを有し、前記グループ内タスク実行ステップ
においてグループ内の全てのタスクの実行が終了した際
には再び前記グループ化ステップと前記グループ内タス
ク実行ステップとを繰り返すように構成される。
【0016】また、本発明の他のタスクスケジューリン
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御し、前記
タスク制御ブロックは、そのタスクに関する優先度を表
すタスク優先度と、前記実行待ち行列に加入した時間を
示す行列加入時間とを含み、前記待ち行列管理テーブル
は、実行待ち状態にあるタスクの総数を示す実行待ち全
タスク数と、グループ内の実行待ちタスク数を示すグル
ープ内実行待ちタスク数と、グループを構成すべき1つ
以上のタスクの数を設定するグループ化個数と、実行待
ち行列に最も早く加わったタスクに関するタスク制御ブ
ロックのアドレスを示す先頭タスクアドレスと、タスク
の状態を調査されているそのタスクに関するタスク制御
ブロックのアドレスを示す調査タスクアドレスと、グル
ープ内で実行待ち行列に最も遅く加わったタスクに関す
るタスク制御ブロックのアドレスを示すグループ内最終
タスクアドレスと、緊急に実行すべきタスクの存在を示
す緊急タスク有フラグと、グループに入れるべきタスク
の数を変更する最大時間を示すグループ化個数変更最大
時間と、グループに入れるべきタスクの数を変更する最
小時間を示すグループ化個数変更最小時間と、実行待ち
行列の先頭のタスクが実行状態待ちになっている時間を
示す先頭タスク実行待ち時間とを含むタスクスケジュー
リング方法において、前記先頭タスクアドレスの示すタ
スク制御ブロックから前記グループ化個数分のタスク制
御ブロックに対応するタスクのそれぞれを前記グループ
内実行待ちタスク数とグループ内最終タスクアドレスと
を設定することにより前記グループに入れるステップ
と、前記調査タスクアドレスを順次変更していくことに
より前記グループに属するタスクを当該タスクのタスク
制御ブロックの前記タスク優先度に従って実行するグル
ープ内タスク実行ステップと、前記グループ内タスク実
行ステップにより呼び出され、前記緊急タスク有フラグ
が緊急タスクの存在を示している場合には前記グループ
化個数に前記実行待ち全タスク数を設定し、前記緊急タ
スク有フラグが緊急タスクの存在を示していない場合に
は前記先頭タスク実行待ち時間が前記グループ化個数変
更最大時間および前記グループ化個数変更最小時間の範
囲外であれば前記グループ化個数の値を変更するステッ
プとを有し、前記グループ内タスク実行ステップにおい
てグループ内の全てのタスクの実行が終了した際には再
び前記グループ化ステップと前記グループ内タスク実行
ステップとを繰り返すように構成される。
グ方法は、実行可能状態にあるタスクの制御情報を格納
したタスク制御ブロックを複数個リンクさせて待ち行列
を形成し、当該待ち行列を待ち行列管理テーブルによっ
て管理することによりタスクの実行順序を制御し、前記
タスク制御ブロックは、そのタスクに関する優先度を表
すタスク優先度と、前記実行待ち行列に加入した時間を
示す行列加入時間とを含み、前記待ち行列管理テーブル
は、実行待ち状態にあるタスクの総数を示す実行待ち全
タスク数と、グループ内の実行待ちタスク数を示すグル
ープ内実行待ちタスク数と、グループを構成すべき1つ
以上のタスクの数を設定するグループ化個数と、実行待
ち行列に最も早く加わったタスクに関するタスク制御ブ
ロックのアドレスを示す先頭タスクアドレスと、タスク
の状態を調査されているそのタスクに関するタスク制御
ブロックのアドレスを示す調査タスクアドレスと、グル
ープ内で実行待ち行列に最も遅く加わったタスクに関す
るタスク制御ブロックのアドレスを示すグループ内最終
タスクアドレスと、緊急に実行すべきタスクの存在を示
す緊急タスク有フラグと、グループに入れるべきタスク
の数を変更する最大時間を示すグループ化個数変更最大
時間と、グループに入れるべきタスクの数を変更する最
小時間を示すグループ化個数変更最小時間と、実行待ち
行列の先頭のタスクが実行状態待ちになっている時間を
示す先頭タスク実行待ち時間とを含むタスクスケジュー
リング方法において、前記先頭タスクアドレスの示すタ
スク制御ブロックから前記グループ化個数分のタスク制
御ブロックに対応するタスクのそれぞれを前記グループ
内実行待ちタスク数とグループ内最終タスクアドレスと
を設定することにより前記グループに入れるステップ
と、前記調査タスクアドレスを順次変更していくことに
より前記グループに属するタスクを当該タスクのタスク
制御ブロックの前記タスク優先度に従って実行するグル
ープ内タスク実行ステップと、前記グループ内タスク実
行ステップにより呼び出され、前記緊急タスク有フラグ
が緊急タスクの存在を示している場合には前記グループ
化個数に前記実行待ち全タスク数を設定し、前記緊急タ
スク有フラグが緊急タスクの存在を示していない場合に
は前記先頭タスク実行待ち時間が前記グループ化個数変
更最大時間および前記グループ化個数変更最小時間の範
囲外であれば前記グループ化個数の値を変更するステッ
プとを有し、前記グループ内タスク実行ステップにおい
てグループ内の全てのタスクの実行が終了した際には再
び前記グループ化ステップと前記グループ内タスク実行
ステップとを繰り返すように構成される。
【0017】
【実施例】次に本発明のタスクスケジューリング方法の
一実施例について図面を参照して詳細に説明する。
一実施例について図面を参照して詳細に説明する。
【0018】図1を参照すると、本発明のタスクスケジ
ューリング方法のためのデータ構造の一実施例は、タス
ク制御ブロック(TCB)210,220,....,2N
0とこれらタスク制御ブロックを管理するタスク制御ブ
ロック管理テーブル100とから構成される。ここで、
タスクとはオペレーティングシステムの制御単位であ
り、プログラムの制御のもとでプロセッサで行われる動
作の列をいい、タスク制御ブロックとはこれらタスクを
制御するための情報を含むデータ構造をいう。
ューリング方法のためのデータ構造の一実施例は、タス
ク制御ブロック(TCB)210,220,....,2N
0とこれらタスク制御ブロックを管理するタスク制御ブ
ロック管理テーブル100とから構成される。ここで、
タスクとはオペレーティングシステムの制御単位であ
り、プログラムの制御のもとでプロセッサで行われる動
作の列をいい、タスク制御ブロックとはこれらタスクを
制御するための情報を含むデータ構造をいう。
【0019】タスク制御ブロック210,22
0,....,2N0は、リスト構造を有し、ポインタによ
り一連の待ち行列(以下、実行待ち行列という)を形成
する。すなわち、各タスクは実行可能状態になるとその
タスク制御ブロックが実行待ち行列の最後尾に加わる。
0,....,2N0は、リスト構造を有し、ポインタによ
り一連の待ち行列(以下、実行待ち行列という)を形成
する。すなわち、各タスクは実行可能状態になるとその
タスク制御ブロックが実行待ち行列の最後尾に加わる。
【0020】タスク制御ブロック210は、そのタスク
に関する優先度を有するタスク優先度211や実行待ち
行列中の次のタスク制御ブロックのアドレスを有する次
タスクアドレス219を含んでいる。タスク優先度21
1は、従来の優先度スケジューリングの場合と同様に各
タスクの優先度を有する。ここでは、このタスク優先度
211に格納される数字が小さい程高い優先度を有する
ものとする。また、次タスクアドレス219は、実行待
ち行列中の次のタスク制御ブロック220のアドレスを
有している。すなわち、実行可能状態となったタスクに
関するタスク制御ブロックから順に、TCB210,T
CB220,....、のようにポインタにより順序付けら
れ、最後尾のTCB2N0の次タスクアドレス2N9は
ヌルポインタ(どこも指さないポインタ)となってい
る。
に関する優先度を有するタスク優先度211や実行待ち
行列中の次のタスク制御ブロックのアドレスを有する次
タスクアドレス219を含んでいる。タスク優先度21
1は、従来の優先度スケジューリングの場合と同様に各
タスクの優先度を有する。ここでは、このタスク優先度
211に格納される数字が小さい程高い優先度を有する
ものとする。また、次タスクアドレス219は、実行待
ち行列中の次のタスク制御ブロック220のアドレスを
有している。すなわち、実行可能状態となったタスクに
関するタスク制御ブロックから順に、TCB210,T
CB220,....、のようにポインタにより順序付けら
れ、最後尾のTCB2N0の次タスクアドレス2N9は
ヌルポインタ(どこも指さないポインタ)となってい
る。
【0021】タスク制御ブロック管理テーブル100
は、実行待ち状態にあるタスクの総数を有する実行待ち
全タスク数(NTA)101と、グループ内の実行待ち
タスク数を有するグループ内実行待ちタスク数(NT
W)102と、後述の「グループ」を構成すべきタスク
の数を有するグループ化個数(NTG)103と、実行
待ち行列に最も早く加わったタスクに関するタスク制御
ブロックのアドレスを有する先頭タスクアドレス(PT
H)104と、タスクの状態を調査されているそのタス
クに関するタスク制御ブロックのアドレスを有する調査
タスクアドレス(PTC)105と、後述の「グルー
プ」内で実行待ち行列に最も遅く加わったタスクに関す
るタスク制御ブロックのアドレスを有するグループ内最
終タスクアドレス(PTG)106とを含んでいる。
は、実行待ち状態にあるタスクの総数を有する実行待ち
全タスク数(NTA)101と、グループ内の実行待ち
タスク数を有するグループ内実行待ちタスク数(NT
W)102と、後述の「グループ」を構成すべきタスク
の数を有するグループ化個数(NTG)103と、実行
待ち行列に最も早く加わったタスクに関するタスク制御
ブロックのアドレスを有する先頭タスクアドレス(PT
H)104と、タスクの状態を調査されているそのタス
クに関するタスク制御ブロックのアドレスを有する調査
タスクアドレス(PTC)105と、後述の「グルー
プ」内で実行待ち行列に最も遅く加わったタスクに関す
るタスク制御ブロックのアドレスを有するグループ内最
終タスクアドレス(PTG)106とを含んでいる。
【0022】図2を参照すると、上述のデータ構造にお
いて、本発明のタスクスケジューリング方法の一実施例
は、タスクを「グループ」に入れるグループ化ステップ
300とその「グループ」に存在するタスクを実行する
グループ内タスク実行ステップ400とを含んでいる。
ここにいうグループとは、実行可能状態にある1つ以上
のタスクを選び出した集合をいう。すなわち、グループ
化ステップ300によって実行可能状態のタスクを「グ
ループ」に入れた後、グループ内タスク実行ステップ4
00によってその「グループ」内のタスクを実行する。
そして、「グループ」中の全てのタスクが実行されてし
まうと、再びグループ化ステップ300によって他の実
行可能状態のタスクを「グループ」に入れて、処理を繰
り返す。
いて、本発明のタスクスケジューリング方法の一実施例
は、タスクを「グループ」に入れるグループ化ステップ
300とその「グループ」に存在するタスクを実行する
グループ内タスク実行ステップ400とを含んでいる。
ここにいうグループとは、実行可能状態にある1つ以上
のタスクを選び出した集合をいう。すなわち、グループ
化ステップ300によって実行可能状態のタスクを「グ
ループ」に入れた後、グループ内タスク実行ステップ4
00によってその「グループ」内のタスクを実行する。
そして、「グループ」中の全てのタスクが実行されてし
まうと、再びグループ化ステップ300によって他の実
行可能状態のタスクを「グループ」に入れて、処理を繰
り返す。
【0023】図3を参照すると、グループ化ステップ
は、さらに以下の処理により実現される。まず、実行待
ち全タスク数(NTA)101とグループ化個数(NT
G)103とを比較する(ステップ301)。これによ
り、実行待ち全タスク数(NTA)101がグループ化
個数(NTG)103以上であれば、グループ内実行待
ちタスク数(NTW)102にグループ化個数(NT
G)103を設定し(ステップ302)、そうでなけれ
ばグループ内実行待ちタスク数(NTW)102に実行
待ち全タスク数(NTA)101を設定する(ステップ
303)。これにより、グループ内実行待ちタスク数
(NTW)102には、現在「グループ」内に存在する
タスクの数が格納される。なお、グループ化個数(NT
G)103には予め1以上の整数値が設定されているも
のとする。また、「グループ」内の最後のタスクに関す
るタスク制御ブロックのアドレスを グループ内最終タ
スクアドレス(PTG)106に設定する(ステップ3
04)。
は、さらに以下の処理により実現される。まず、実行待
ち全タスク数(NTA)101とグループ化個数(NT
G)103とを比較する(ステップ301)。これによ
り、実行待ち全タスク数(NTA)101がグループ化
個数(NTG)103以上であれば、グループ内実行待
ちタスク数(NTW)102にグループ化個数(NT
G)103を設定し(ステップ302)、そうでなけれ
ばグループ内実行待ちタスク数(NTW)102に実行
待ち全タスク数(NTA)101を設定する(ステップ
303)。これにより、グループ内実行待ちタスク数
(NTW)102には、現在「グループ」内に存在する
タスクの数が格納される。なお、グループ化個数(NT
G)103には予め1以上の整数値が設定されているも
のとする。また、「グループ」内の最後のタスクに関す
るタスク制御ブロックのアドレスを グループ内最終タ
スクアドレス(PTG)106に設定する(ステップ3
04)。
【0024】図4を参照すると、グループ内タスク実行
ステップは、さらに以下の処理により実現される。ま
ず、グループ内実行待ちタスク数(NTW)102が
0、すなわち「グループ」内にタスクがなければ(ステ
ップ401)、当該グループ内タスク実行ステップを終
了する。そうでない場合、グループ内のタスクの状態を
調査するために以下の処理を行う。
ステップは、さらに以下の処理により実現される。ま
ず、グループ内実行待ちタスク数(NTW)102が
0、すなわち「グループ」内にタスクがなければ(ステ
ップ401)、当該グループ内タスク実行ステップを終
了する。そうでない場合、グループ内のタスクの状態を
調査するために以下の処理を行う。
【0025】まず、初期値として、優先度を表す変数P
Lに”1”を設定し(ステップ402)、調査タスクア
ドレス(PTC)105に先頭タスクアドレス(PT
H)104の値を設定する(ステップ403)。これに
より、まず優先度が”1”のタスクを調査する前準備が
整ったことになる。
Lに”1”を設定し(ステップ402)、調査タスクア
ドレス(PTC)105に先頭タスクアドレス(PT
H)104の値を設定する(ステップ403)。これに
より、まず優先度が”1”のタスクを調査する前準備が
整ったことになる。
【0026】そして、調査タスクアドレス(PTC)1
05の指すタスク制御ブロックのタスク優先度がPLと
等しいか否かを判断する(ステップ404)。当該タス
ク制御ブロックのタスク優先度がPLと等しければ、当
該タスクを実行待ち行列から外す(ステップ405)。
これに伴い、実行待ち全タスク数(NTA)101から
1を引き(ステップ406)、グループ内実行待ちタス
ク数(NTW)102からも1を引く(ステップ40
7)。そして、当該タスクを実行する(ステップ50
7)。このタスク実行終了後、グループ内実行待ちタス
ク数(NTW)102が0、すなわち「グループ」内に
タスクがないか否かを調べる(ステップ410)。タス
クがなければ当該グループ内タスク実行ステップを終了
する。
05の指すタスク制御ブロックのタスク優先度がPLと
等しいか否かを判断する(ステップ404)。当該タス
ク制御ブロックのタスク優先度がPLと等しければ、当
該タスクを実行待ち行列から外す(ステップ405)。
これに伴い、実行待ち全タスク数(NTA)101から
1を引き(ステップ406)、グループ内実行待ちタス
ク数(NTW)102からも1を引く(ステップ40
7)。そして、当該タスクを実行する(ステップ50
7)。このタスク実行終了後、グループ内実行待ちタス
ク数(NTW)102が0、すなわち「グループ」内に
タスクがないか否かを調べる(ステップ410)。タス
クがなければ当該グループ内タスク実行ステップを終了
する。
【0027】ステップ404においてタスク優先度がP
Lと等しくなかった場合、もしくはステップ410でグ
ループ内実行待ちタスク数(NTW)102が0でなか
った場合には、調査タスクアドレス(PTC)105と
グループ内最終タスクアドレス(PTG)106とが等
しいか否かを判断する(ステップ411)。両者が等し
くない場合、すなわち「グループ」内のタスクを全て調
査していない場合には、調査タスクアドレス(PTC)
105を1つ増やす(ステップ413)ことにより「グ
ループ」内の次のタスクを調査すべく、ステップ404
に戻る。
Lと等しくなかった場合、もしくはステップ410でグ
ループ内実行待ちタスク数(NTW)102が0でなか
った場合には、調査タスクアドレス(PTC)105と
グループ内最終タスクアドレス(PTG)106とが等
しいか否かを判断する(ステップ411)。両者が等し
くない場合、すなわち「グループ」内のタスクを全て調
査していない場合には、調査タスクアドレス(PTC)
105を1つ増やす(ステップ413)ことにより「グ
ループ」内の次のタスクを調査すべく、ステップ404
に戻る。
【0028】ステップ411において、調査タスクアド
レス(PTC)105とグループ内最終タスクアドレス
(PTG)106とが等しい場合、すなわちグループ内
の全てのタスクを調査してしまった場合には、優先度を
1つ下げ(優先度に1を加え)て(ステップ412)、
再びステップ403で調査タスクアドレス(PTC)1
05に先頭タスクアドレス(PTH)104の値を設定
して、再び「グループ」内のタスクを調査する。
レス(PTC)105とグループ内最終タスクアドレス
(PTG)106とが等しい場合、すなわちグループ内
の全てのタスクを調査してしまった場合には、優先度を
1つ下げ(優先度に1を加え)て(ステップ412)、
再びステップ403で調査タスクアドレス(PTC)1
05に先頭タスクアドレス(PTH)104の値を設定
して、再び「グループ」内のタスクを調査する。
【0029】このように、本発明の一実施例であるタス
クスケジューリング方法によると、グループ化個数(N
TG)103に予め設定された数のタスクを含む「グル
ープ」内で優先度の高い順にタスクを実行することがで
きる。したがって、このグループ化個数(NTG)10
3の設定を換えることにより、柔軟にスケジュール方法
を変更することができる。極端な例として、このグルー
プ化個数(NTG)103を”1”に設定すればFIF
Oスケジューリングを実現でき、逆にグループ化個数
(NTG)103に実行待ち全タスク数(NTA)10
1を設定すれば通常の優先度スケジューリングを実現す
ることができる。
クスケジューリング方法によると、グループ化個数(N
TG)103に予め設定された数のタスクを含む「グル
ープ」内で優先度の高い順にタスクを実行することがで
きる。したがって、このグループ化個数(NTG)10
3の設定を換えることにより、柔軟にスケジュール方法
を変更することができる。極端な例として、このグルー
プ化個数(NTG)103を”1”に設定すればFIF
Oスケジューリングを実現でき、逆にグループ化個数
(NTG)103に実行待ち全タスク数(NTA)10
1を設定すれば通常の優先度スケジューリングを実現す
ることができる。
【0030】次に本発明のタスクスケジューリング方法
の第二の実施例について図面を参照して詳細に説明す
る。
の第二の実施例について図面を参照して詳細に説明す
る。
【0031】図5を参照すると、本発明のタスクスケジ
ューリング方法のためのデータ構造の第二の実施例は、
タスク制御ブロック210,220,....,2N0とこ
れらタスク制御ブロックを管理するタスク制御ブロック
管理テーブル100とから構成される点で、前記一実施
例と同様である。
ューリング方法のためのデータ構造の第二の実施例は、
タスク制御ブロック210,220,....,2N0とこ
れらタスク制御ブロックを管理するタスク制御ブロック
管理テーブル100とから構成される点で、前記一実施
例と同様である。
【0032】タスク制御ブロック210は、タスク優先
度211と次タスクアドレス219とを含んでいる点は
前記一実施例と同様である。但し、実行待ち行列に加わ
った時間を有する行列加入時間212を含んでいる点で
異なっている。この行列加入時間212は、後述のグル
ープ化個数の変更のために使用される。
度211と次タスクアドレス219とを含んでいる点は
前記一実施例と同様である。但し、実行待ち行列に加わ
った時間を有する行列加入時間212を含んでいる点で
異なっている。この行列加入時間212は、後述のグル
ープ化個数の変更のために使用される。
【0033】タスク制御ブロック管理テーブル100
は、実行待ち全タスク数(NTA)101と、グループ
内実行待ちタスク数(NTW)102と、グループ化個
数(NTG)103と、先頭タスクアドレス(PTH)
104と、調査タスクアドレス(PTC)105と、グ
ループ内最終タスクアドレス(PTG)106とを含ん
でいる点は前記一実施例と同様である。但し、以下の項
目を含む点で異なる。すなわち、緊急に実行すべきタス
クの存在を示す緊急タスク有フラグ(FUT)107
と、「グループ」に入れるべきタスクの数を変更する最
大時間を有するグループ化個数変更最大時間(TXG)
108と、「グループ」に入れるべきタスクの数を変更
する最小時間を有するグループ化個数変更最小時間(T
NG)109と、「グループ」に入れるべきタスクの数
の最小値を有する最小グループ化個数値(NNT)11
0と、「グループ」に入れるべきタスクの数の最大値を
有する最大グループ化個数値(NXT)111と、現在
の時刻を有する現在時間(TCT)112と、実行待ち
行列の先頭のタスクが実行状態待ちになっている時間を
有する先頭タスク実行待ち時間(THW)113とをさ
らに含んでいる。
は、実行待ち全タスク数(NTA)101と、グループ
内実行待ちタスク数(NTW)102と、グループ化個
数(NTG)103と、先頭タスクアドレス(PTH)
104と、調査タスクアドレス(PTC)105と、グ
ループ内最終タスクアドレス(PTG)106とを含ん
でいる点は前記一実施例と同様である。但し、以下の項
目を含む点で異なる。すなわち、緊急に実行すべきタス
クの存在を示す緊急タスク有フラグ(FUT)107
と、「グループ」に入れるべきタスクの数を変更する最
大時間を有するグループ化個数変更最大時間(TXG)
108と、「グループ」に入れるべきタスクの数を変更
する最小時間を有するグループ化個数変更最小時間(T
NG)109と、「グループ」に入れるべきタスクの数
の最小値を有する最小グループ化個数値(NNT)11
0と、「グループ」に入れるべきタスクの数の最大値を
有する最大グループ化個数値(NXT)111と、現在
の時刻を有する現在時間(TCT)112と、実行待ち
行列の先頭のタスクが実行状態待ちになっている時間を
有する先頭タスク実行待ち時間(THW)113とをさ
らに含んでいる。
【0034】上述のデータ構造において、本発明のタス
クスケジューリング方法の第二の実施例は、前記一実施
例と同様に、グループ化ステップ300とグループ内タ
スク実行ステップ400とを含んでいる。グループ化ス
テップ300は前記一実施例と同様の処理を行う。グル
ープ内タスク実行ステップ400は、図7のグループ化
個数変更ステップを呼び出す点で前記一実施例における
処理と異なる。また、タイマによる割り込みが発生する
度に時間計測ステップが起動される。この割り込みが発
生する度に割り込み回数をカウントし、これに基づいて
現在時間(TCT)112に現在の時刻を設定する。
クスケジューリング方法の第二の実施例は、前記一実施
例と同様に、グループ化ステップ300とグループ内タ
スク実行ステップ400とを含んでいる。グループ化ス
テップ300は前記一実施例と同様の処理を行う。グル
ープ内タスク実行ステップ400は、図7のグループ化
個数変更ステップを呼び出す点で前記一実施例における
処理と異なる。また、タイマによる割り込みが発生する
度に時間計測ステップが起動される。この割り込みが発
生する度に割り込み回数をカウントし、これに基づいて
現在時間(TCT)112に現在の時刻を設定する。
【0035】図6を参照すると、グループ内タスク実行
ステップは、ステップ409においてタスク化個数変更
ステップを呼び出す点以外は同様の手順となっている。
すなわち、選び出されたタスクの実行を行うと(ステッ
プ408)、その後タスク化個数変更ステップが呼び出
される(ステップ409)。
ステップは、ステップ409においてタスク化個数変更
ステップを呼び出す点以外は同様の手順となっている。
すなわち、選び出されたタスクの実行を行うと(ステッ
プ408)、その後タスク化個数変更ステップが呼び出
される(ステップ409)。
【0036】図7を参照すると、タスク化個数変更ステ
ップは、まず緊急タスク有フラグ(FUT)107を参
照することにより、緊急タスクが有るか否かを判断する
(ステップ501)。緊急タスクとは、リアルタイムな
レスポンスを必要とするタスクであり、特に制御システ
ムなどで必要となる。緊急タスクが存在する場合、グル
ープ化個数(NTG)103に実行待ち全タスク数(N
TA)101を設定する(ステップ505)。すなわ
ち、全ての実行可能状態にあるタスクから実行すべきタ
スクを選択することにより、緊急タスクを優先して実行
することが可能となる。但し、緊急タスクのタスク制御
ブロックには高い優先度を設定しておく必要がある。
ップは、まず緊急タスク有フラグ(FUT)107を参
照することにより、緊急タスクが有るか否かを判断する
(ステップ501)。緊急タスクとは、リアルタイムな
レスポンスを必要とするタスクであり、特に制御システ
ムなどで必要となる。緊急タスクが存在する場合、グル
ープ化個数(NTG)103に実行待ち全タスク数(N
TA)101を設定する(ステップ505)。すなわ
ち、全ての実行可能状態にあるタスクから実行すべきタ
スクを選択することにより、緊急タスクを優先して実行
することが可能となる。但し、緊急タスクのタスク制御
ブロックには高い優先度を設定しておく必要がある。
【0037】ステップ501において、緊急タスク無し
と判断した場合、現在時間(TCT)112から先頭タ
スクアドレス(PTH)104が指しているタスク制御
ブロックの行列加入時間を引いた値を先頭タスク実行待
ち時間(THW)113に設定する(ステップ50
2)。また、先頭タスク実行待ち時間(THW)113
とグループ化個数変更最大時間(TXG)108とを判
断する(ステップ503)。このとき、先頭タスク実行
待ち時間(THW)113がグループ化個数変更最大時
間(TXG)108以上の場合には、グループ化個数
(NTG)103に最小グループ化個数値(NNT)1
10を設定する(ステップ506)。すなわち、グルー
プ化個数変更最大時間(TXG)108以上、タスクの
実行が待たされている場合には、グループ化すべきタス
ク数を最小グループ化個数値(NNT)110に設定し
て減少させることにより、より早く実行待ち行列に入っ
たタスクを優先して実行させる。
と判断した場合、現在時間(TCT)112から先頭タ
スクアドレス(PTH)104が指しているタスク制御
ブロックの行列加入時間を引いた値を先頭タスク実行待
ち時間(THW)113に設定する(ステップ50
2)。また、先頭タスク実行待ち時間(THW)113
とグループ化個数変更最大時間(TXG)108とを判
断する(ステップ503)。このとき、先頭タスク実行
待ち時間(THW)113がグループ化個数変更最大時
間(TXG)108以上の場合には、グループ化個数
(NTG)103に最小グループ化個数値(NNT)1
10を設定する(ステップ506)。すなわち、グルー
プ化個数変更最大時間(TXG)108以上、タスクの
実行が待たされている場合には、グループ化すべきタス
ク数を最小グループ化個数値(NNT)110に設定し
て減少させることにより、より早く実行待ち行列に入っ
たタスクを優先して実行させる。
【0038】また、ステップ504において、先頭タス
ク実行待ち時間(THW)113がグループ化個数変更
最大時間(TXG)108よりも小さいと判断した場合
には、さらに先頭タスク実行待ち時間(THW)113
とグループ化個数変更最小時間(TNG)109とを比
較する(ステップ504)。ここで、先頭タスク実行待
ち時間(THW)113がグループ化個数変更最小時間
(TNG)109よりも大きいと判断した場合にはグル
ープ化個数を変更する必要がないとみなし、当該グルー
プ化個数変更ステップを終了する。一方、このステップ
504で、先頭タスク実行待ち時間(THW)113が
グループ化個数変更最小時間(TNG)109以下であ
ると判断した場合には、グループ化個数(NTG)10
3に最大グループ化個数値(NXT)111を設定する
(ステップ507)。すなわち、タスクの実行が待たさ
れている時間がグループ化個数変更最小時間(TNG)
以下である場合には、グループ化すべきタスク数を最大
グループ化個数値(NXT)111に設定して増加させ
ることにより、タスクが「グループ」に入る機会を増や
し、システム全体のスループットを向上させる。
ク実行待ち時間(THW)113がグループ化個数変更
最大時間(TXG)108よりも小さいと判断した場合
には、さらに先頭タスク実行待ち時間(THW)113
とグループ化個数変更最小時間(TNG)109とを比
較する(ステップ504)。ここで、先頭タスク実行待
ち時間(THW)113がグループ化個数変更最小時間
(TNG)109よりも大きいと判断した場合にはグル
ープ化個数を変更する必要がないとみなし、当該グルー
プ化個数変更ステップを終了する。一方、このステップ
504で、先頭タスク実行待ち時間(THW)113が
グループ化個数変更最小時間(TNG)109以下であ
ると判断した場合には、グループ化個数(NTG)10
3に最大グループ化個数値(NXT)111を設定する
(ステップ507)。すなわち、タスクの実行が待たさ
れている時間がグループ化個数変更最小時間(TNG)
以下である場合には、グループ化すべきタスク数を最大
グループ化個数値(NXT)111に設定して増加させ
ることにより、タスクが「グループ」に入る機会を増や
し、システム全体のスループットを向上させる。
【0039】ステップ505、ステップ506またはス
テップ507を実行した後は、グループ内実行待ちタス
ク数(NTW)102に”0”を設定する(ステップ5
08)。これにより、グループ化個数変更ステップを終
了後、グループ内タスク実行ステップを終了させること
になり(ステップ410)、再度グループ化ステップ3
00によりグループ化が行われることになる。
テップ507を実行した後は、グループ内実行待ちタス
ク数(NTW)102に”0”を設定する(ステップ5
08)。これにより、グループ化個数変更ステップを終
了後、グループ内タスク実行ステップを終了させること
になり(ステップ410)、再度グループ化ステップ3
00によりグループ化が行われることになる。
【0040】このように、本発明の第二の実施例である
タスクスケジューリング方法によると、前記一実施例に
加え、グループ化個数をシステムの状態に応じて自動的
に変更することができる。すなわち、グループ化個数変
更最大時間(TXG)108以上、タスクの実行が待た
されている場合には、グループ化すべきタスク数を最小
グループ化個数値(NNT)110に設定して減少させ
ることにより、より早く実行待ち行列に入ったタスクを
優先して実行させることができる。また、タスクの実行
が待たされている時間がグループ化個数変更最小時間
(TNG)以下である場合には、グループ化すべきタス
ク数を最大グループ化個数値(NXT)111に設定し
て増加させることにより、タスクが「グループ」に入る
機会を増やし、システム全体のスループットを向上させ
ることができる。
タスクスケジューリング方法によると、前記一実施例に
加え、グループ化個数をシステムの状態に応じて自動的
に変更することができる。すなわち、グループ化個数変
更最大時間(TXG)108以上、タスクの実行が待た
されている場合には、グループ化すべきタスク数を最小
グループ化個数値(NNT)110に設定して減少させ
ることにより、より早く実行待ち行列に入ったタスクを
優先して実行させることができる。また、タスクの実行
が待たされている時間がグループ化個数変更最小時間
(TNG)以下である場合には、グループ化すべきタス
ク数を最大グループ化個数値(NXT)111に設定し
て増加させることにより、タスクが「グループ」に入る
機会を増やし、システム全体のスループットを向上させ
ることができる。
【0041】
【発明の効果】以上の説明で明らかなように、本発明の
タスクスケジューリング方法によれば、グループに属す
べきタスクの個数を予め設定することができ、柔軟にス
ケジュール方法を変更することができる。
タスクスケジューリング方法によれば、グループに属す
べきタスクの個数を予め設定することができ、柔軟にス
ケジュール方法を変更することができる。
【0042】また、グループに属すべきタスクの個数を
システムの状態に応じて自動的に変更することができ
る。これにより、タスクの実行が長時間待たされている
場合には、グループ化すべきタスク数を減少させること
により、より早く実行待ち行列に入ったタスクを優先し
て実行させることができる。逆に、タスクの実行が短時
間で消化されている場合には、グループ化すべきタスク
数を増加させることにより、タスクが「グループ」に入
る機会を増やし、システム全体のスループットを向上さ
せることができる。
システムの状態に応じて自動的に変更することができ
る。これにより、タスクの実行が長時間待たされている
場合には、グループ化すべきタスク数を減少させること
により、より早く実行待ち行列に入ったタスクを優先し
て実行させることができる。逆に、タスクの実行が短時
間で消化されている場合には、グループ化すべきタスク
数を増加させることにより、タスクが「グループ」に入
る機会を増やし、システム全体のスループットを向上さ
せることができる。
【図1】本発明のタスクスケジューリング方法のための
データ構造を表す図である。
データ構造を表す図である。
【図2】本発明のタスクスケジューリング方法の一実施
例の処理手順を表す流れ図である。
例の処理手順を表す流れ図である。
【図3】本発明のタスクスケジューリング方法における
グループ化ステップの処理手順を表す流れ図である。
グループ化ステップの処理手順を表す流れ図である。
【図4】本発明のタスクスケジューリング方法における
グループ内タスク実行ステップの処理手順を表す流れ図
である。
グループ内タスク実行ステップの処理手順を表す流れ図
である。
【図5】本発明のタスクスケジューリング方法のための
他のデータ構造を表す図である。
他のデータ構造を表す図である。
【図6】本発明のタスクスケジューリング方法における
グループ内タスク実行ステップの他の処理手順を表す流
れ図である。
グループ内タスク実行ステップの他の処理手順を表す流
れ図である。
【図7】本発明のタスクスケジューリング方法における
タスク化個数変更ステップの処理手順を表す流れ図であ
る。
タスク化個数変更ステップの処理手順を表す流れ図であ
る。
100 タスク制御ブロック管理テーブル 101 実行待ち全タスク数NTA 102 グループ内実行待ちタスク数NTW 103 グループ化個数NTG 104 先頭タスクアドレスPTH 105 調査タスクアドレスPTC 106 グループ内最終タスクアドレスPTG 107 緊急タスク有フラグFUT 108 グループ化個数変更最大時間TXG 109 グループ化個数変更最小時間TNG 110 最小グループ化個数値NNT 111 最大グループ化個数値NXT 112 現在時間TCT 113 先頭タスク実行待ち時間THW 210,220,2N0 タスク制御ブロック 211,221,2N1 タスク優先度 212,222,2N2 行列加入時間 219,229,2N9 次タスクアドレス
Claims (4)
- 【請求項1】 実行可能状態にあるタスクの優先度を格
納したタスク制御ブロックを複数個リンクさせて待ち行
列を形成し、前記待ち行列に含まれる前記タスクからグ
ループを構成するために少なくとも1つ取り出される前
記タスクの個数が定義されるグループ化個数を含む待ち
行列管理テーブルを有し、前記待ち行列管理テーブルに
基づいて前記タスクの実行順序を制御するタスクスケジ
ューリング方法において、前記待ち行列の先頭から前記グループ化個数分だけの前
記タスクを取り出してグループ化する第1のステップ
と、 この第1のステップによりグループ化されたグループ内
の前記タスクを前記優先度に基づいて前記グループ内に
含まれる全ての前記タスクを実行する第2のステップと
を含む ことを特徴とするタスクスケジューリング方法。 - 【請求項2】 実行可能状態にあるタスクの制御情報を
格納したタスク制御ブロックを複数個リンクさせて待ち
行列を形成し、当該待ち行列を待ち行列管理テーブルに
よって管理することによりタスクの実行順序を制御し、
前記タスク制御ブロックは、そのタスクに関する優先度
を表すタスク優先度を含み、 前記待ち行列管理テーブルは、実行待ち状態にあるタス
クの総数を示す実行待ち全タスク数と、グループ内の実
行待ちタスク数を示すグループ内実行待ちタスク数と、
グループを構成すべき1つ以上のタスクの数を設定する
グループ化個数と、実行待ち行列に最も早く加わったタ
スクに関するタスク制御ブロックのアドレスを示す先頭
タスクアドレスと、タスクの状態を調査されているその
タスクに関するタスク制御ブロックのアドレスを示す調
査タスクアドレスと、グループ内で実行待ち行列に最も
遅く加わったタスクに関するタスク制御ブロックのアド
レスを示すグループ内最終タスクアドレスとを含むタス
クスケジューリング方法において、 前記先頭タスクアドレスの示すタスク制御ブロックから
前記グループ化個数分のタスク制御ブロックに対応する
タスクのそれぞれを前記グループ内実行待ちタスク数と
グループ内最終タスクアドレスとを設定することにより
前記グループに入れるステップと、 前記調査タスクアドレスを順次変更していくことにより
前記グループに属するタスクを当該タスクのタスク制御
ブロックの前記タスク優先度に従って実行するグループ
内タスク実行ステップとを有し、 前記グループ内タスク実行ステップにおいてグループ内
の全てのタスクの実行が終了した際には再び前記グルー
プ化ステップと前記グループ内タスク実行ステップとを
繰り返すことを特徴とするタスクスケジューリング方
法。 - 【請求項3】 実行可能状態にあるタスクの優先度を格
納したタスク制御ブロックを複数個リンクさせて待ち行
列を形成し、前記待ち行列に含まれる前記タスクからグ
ループを構成するために少なくとも1つ取り出される前
記タスクの個数が定義されるグループ化個数を含む待ち
行列管理テーブルを有し、前記待ち行列管理テーブルに
基づいて前記タスクの実行順序を制御するタスクスケジ
ューリング方法において、前記待ち行列の先頭から前記グループ化個数分だけの前
記タスクを取り出してグループ化する第1のステップ
と、 この第1のステップによりグループ化されたグループ内
の前記タスクを前記優先度に基づいて前記グループ内に
含まれる全ての前記タスクを実行する第2のステップ
と、 前記タスクの処理状態に応じて前記グループに属すべき
前記タスクの数を変更する第3のステップとを含むこと
を特徴とするタスクスケジューリング方法。 - 【請求項4】 実行可能状態にあるタスクの制御情報を
格納したタスク制御ブロックを複数個リンクさせて待ち
行列を形成し、当該待ち行列を待ち行列管理テーブルに
よって管理することによりタスクの実行順序を制御し、
前記タスク制御ブロックは、そのタスクに関する優先度
を表すタスク優先度と、前記実行待ち行列に加入した時
間を示す行列加入時間とを含み、 前記待ち行列管理テーブルは、実行待ち状態にあるタス
クの総数を示す実行待ち全タスク数と、グループ内の実
行待ちタスク数を示すグループ内実行待ちタスク数と、
グループを構成すべき1つ以上のタスクの数を設定する
グループ化個数と、実行待ち行列に最も早く加わったタ
スクに関するタスク制御ブロックのアドレスを示す先頭
タスクアドレスと、タスクの状態を調査されているその
タスクに関するタスク制御ブロックのアドレスを示す調
査タスクアドレスと、グループ内で実行待ち行列に最も
遅く加わったタスクに関するタスク制御ブロックのアド
レスを示すグループ内最終タスクアドレスと、緊急に実
行すべきタスクの存在を示す緊急タスク有フラグと、グ
ループに入れるべきタスクの数を変更する最大時間を示
すグループ化個数変更最大時間と、グループに入れるべ
きタスクの数を変更する最小時間を示すグループ化個数
変更最小時間と、実行待ち行列の先頭のタスクが実行状
態待ちになっている時間を示す先頭タスク実行待ち時間
とを含むタスクスケジューリング方法において、 前記先頭タスクアドレスの示すタスク制御ブロックから
前記グループ化個数分のタスク制御ブロックに対応する
タスクのそれぞれを前記グループ内実行待ちタスク数と
グループ内最終タスクアドレスとを設定することにより
前記グループに入れるステップと、 前記調査タスクアドレスを順次変更していくことにより
前記グループに属するタスクを当該タスクのタスク制御
ブロックの前記タスク優先度に従って実行するグループ
内タスク実行ステップと、 前記グループ内タスク実行ステップにより呼び出され、
前記緊急タスク有フラグが緊急タスクの存在を示してい
る場合には前記グループ化個数に前記実行待ち全タスク
数を設定し、前記緊急タスク有フラグが緊急タスクの存
在を示していない場合には前記先頭タスク実行待ち時間
が前記グループ化個数変更最大時間および前記グループ
化個数変更最小時間の範囲外であれば前記グループ化個
数の値を変更するステップとを有し、 前記グループ内タスク実行ステップにおいてグループ内
の全てのタスクの実行が終了した際には再び前記グルー
プ化ステップと前記グループ内タスク実行ステップとを
繰り返すことを特徴とするタスクスケジューリング方法
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6122812A JP2581451B2 (ja) | 1994-06-03 | 1994-06-03 | タスクスケジューリング方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6122812A JP2581451B2 (ja) | 1994-06-03 | 1994-06-03 | タスクスケジューリング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07334378A JPH07334378A (ja) | 1995-12-22 |
JP2581451B2 true JP2581451B2 (ja) | 1997-02-12 |
Family
ID=14845253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6122812A Expired - Fee Related JP2581451B2 (ja) | 1994-06-03 | 1994-06-03 | タスクスケジューリング方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2581451B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021077180A (ja) * | 2019-11-12 | 2021-05-20 | 富士通株式会社 | ジョブスケジューリングプログラム、情報処理装置及びジョブスケジューリング方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59231966A (ja) * | 1983-06-14 | 1984-12-26 | Tamura Electric Works Ltd | 公衆電話機の処理制御方式 |
JPH04219830A (ja) * | 1990-12-20 | 1992-08-10 | Hokuriku Nippon Denki Software Kk | タスクごとのイベント待ち行列制御方式 |
-
1994
- 1994-06-03 JP JP6122812A patent/JP2581451B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07334378A (ja) | 1995-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6675190B1 (en) | Method for cooperative multitasking in a communications network, and a network element for carrying out the method | |
JP4694595B2 (ja) | スリープキュー管理 | |
US7962913B2 (en) | Scheduling threads in a multiprocessor computer | |
US7302686B2 (en) | Task management system | |
JP4094550B2 (ja) | スケジューリングの順序付けられたステージの基準を使用してリクエストをスケジューリングする方法及び装置 | |
KR970016979A (ko) | 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법 | |
JPH10301793A (ja) | 情報処理装置及びスケジューリング方法 | |
CN112099975B (zh) | 一种消息处理方法及系统、存储介质 | |
CN112395067A (zh) | 任务调度方法、系统、设备及介质 | |
CN111897637A (zh) | 作业调度方法、装置、主机及存储介质 | |
CN112579271A (zh) | 用于非实时操作系统的实时任务调度方法、模块、终端和存储介质 | |
WO2015052501A1 (en) | Scheduling function calls | |
JP4206653B2 (ja) | タスクスケジューリングシステムおよび方法、プログラム | |
JP2581451B2 (ja) | タスクスケジューリング方法 | |
CN115309519A (zh) | 基于时间触发机制的确定性任务调度编排方法、系统和存储介质 | |
CN109426562B (zh) | 优先级加权轮转调度器 | |
JP3876818B2 (ja) | マルチプロセッサ計算機及びプログラム | |
JPH07191863A (ja) | マルチタスク実行管理方式 | |
JP2667575B2 (ja) | タスクスケジューリング方式 | |
JPH01154237A (ja) | 時分割タスク実行装置 | |
US20230409001A1 (en) | Method and device for controlling the sequence of program parts, programming method, programming device | |
JPH0895803A (ja) | タスクスケジュール方法 | |
JP3076303B2 (ja) | 情報処理装置 | |
JP2607595B2 (ja) | キューイングテーブル検索方式 | |
JPH0640315B2 (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: 19961001 |
|
LAPS | Cancellation because of no payment of annual fees |