JP3005562B1 - タスク管理装置及びタスクスケジューリング方法 - Google Patents

タスク管理装置及びタスクスケジューリング方法

Info

Publication number
JP3005562B1
JP3005562B1 JP34730498A JP34730498A JP3005562B1 JP 3005562 B1 JP3005562 B1 JP 3005562B1 JP 34730498 A JP34730498 A JP 34730498A JP 34730498 A JP34730498 A JP 34730498A JP 3005562 B1 JP3005562 B1 JP 3005562B1
Authority
JP
Japan
Prior art keywords
task
time
priority
group
sharing
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 - Lifetime
Application number
JP34730498A
Other languages
English (en)
Other versions
JP2000172514A (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 JP34730498A priority Critical patent/JP3005562B1/ja
Application granted granted Critical
Publication of JP3005562B1 publication Critical patent/JP3005562B1/ja
Publication of JP2000172514A publication Critical patent/JP2000172514A/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

【要約】 【課題】 本発明は、リアルタイムOSで使用される優
先度スケジューリングにおいて、ある限定された範囲の
優先度のタスクのレディ状態とウェイト状態とを指定さ
れた時間で入れ替えるタスク管理装置及びタスクスケジ
ューリング方法を提供することを課題とする。 【解決手段】 優先度スケジューリングを実行するタス
ク管理装置であって、優先度スケジューリングの実行の
際、所定範囲の優先度のタスクのレディ状態とウェイト
状態とを指定された時間に基づいて入れ替える機能を有
するデータ処理装置と情報を記憶する記憶装置とを有す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、タスクのスケジュ
ール管理技術に関し、特に、リアルタイムOSで使用さ
れる優先度スケジューリングを実行するタスク管理装置
及びタスクスケジューリング方法に関する。
【0002】
【従来の技術】従来、組み込みマイクロコンピュータの
応用製品において、システムの大規模化、複合化が進む
中、リアルタイムOSが採用されるようになった。リア
ルタイムOSの多くは、タスク管理装置及びタスクスケ
ジューリング方法により、タスクのスケジュール管理が
行われている。
【0003】従来技術のタスク管理装置及びタスクスケ
ジューリング方法では、タスクの優先度割り付け設計が
重要であり、一般的には、ハード的制約などで急ぐタス
クほど優先度を高くし、急がないタスクは優先度を低く
設定する。システムの実現性を検討する場合、時間的制
約がクリアできるかどうかは、すべてのモジュールの高
優先度タスクについて、優先度、処理時間の検討と調整
が必ず必要である。しかし、低優先度タスクの優先度、
処理時間については、すべてのモジュール間で調整を行
うことは生産性を低下させ、また、再利用時にモジュー
ルの組み合わせが変わるたびにすべてのタスク間で再調
整が必要になるためあまり行われていない。
【0004】まず、従来使用されているタスクスケジュ
ーリング方法について説明する。図9は、従来のタスク
管理装置を説明するためのブロック図である。図9に示
すように、この従来の優先度スケジューリング方法は、
実行タスク切り替え手段(実行タスク決定手段)10
と、実行可能なタスクの情報を優先度毎に記憶するレデ
ィキュー20から構成されている。
【0005】図10に示すレディキュー20の状態にお
ける、タスクの実行順序について説明する。図10は、
図9のタスク管理装置で実行されるタスクの実行順序を
説明するためのレディキューの状態を示している。図1
0に示すように、実行タスク切り替え手段10によって
選択される実行タスクは優先度3のタスク1Aである。
タスク1Aが終了した場合、優先度4にタスク1B、タ
スク1C、タスク2Aが実行可能となった順番に並んで
いるので、データ処理装置はタスク1Bを選択してこれ
を実行する。以降、実行されるタスクの順番は、タスク
1C→タスク2A→タスク2B→タスク2Cという順番
になる。
【0006】次に、優先度スケジューリング方法以外の
タスクスケジューリング方法について説明する。大型コ
ンピュータなどで発展してきたタイムシェアリングによ
るタスクスケジューリング方法の一例が、特開平9−1
98261号公報に記載されている。すなわち、従来技
術は、タスクのCPUに対するスケジュール優先度とは
別に、周辺入出力装置に対する処理優先度をタスク毎に
設定する手段を持つことにより、リアルタイム性が要求
されるタスクを優先的に処理できるようにしたものであ
って、タスクのCPUに対するスケジューリング優先度
とは無関係に、周辺入出力装置に対する入出力処理待ち
キュー上の処理優先度をオペレーティングシステムから
タスク毎に設定する手段、周辺入出力機器に対する入出
力完了時のタスクスケジューリングの優先度を前記オペ
レーティングシステムから設定する手段を有し、入出力
処理待ちキュー上の処理優先度をリアルタイム性を要求
されず、かつバックグラウンドで行う処理でもない一般
のタスクの間で差をつけて設定することが記載されてい
る。これにより、リアルタイム性の要求されるタスクは
周辺装置への出力処理も含めて他のタスクより優先的に
処理されるため、リアルタイム性がより上がり、また、
バッチ処理をバックグラウンドで実行するタスクは、周
辺装置への入出力も含めて他のタスクにあまり性能的な
影響を与えないで処理できるという効果があることが記
載されている。
【0007】
【発明が解決しようとする課題】しかしながら、従来技
術には以下に掲げる問題点があった。
【0008】第1の問題点は、タスクスケジューリング
方法では、独立に設計されたモジュールを組み合わせた
場合に、他モジュールのタスクの影響を受け、自モジュ
ールのタスクが思うように動かない場合があるというこ
とである。その理由は、ある優先度で先に実行可能状態
になったタスクの処理時間が長い場合、後から実行可能
状態になった同じ優先度のタスクは、先のタスクが完了
しないと、いつまでたっても処理が行われないためであ
る。
【0009】第2の問題点は、タイムシェアリングタス
クスケジューリング方法では、ハードなリアルタイム性
が要求される処理が間に合わないということである。そ
の理由は、一定時間毎にタスクを切り替えるため、タス
クの途中で発生したイベントに対して対応できるのは、
一定時間経過後となる。リアルタイム性を上げる目的
で、一定時間を短くすると、タスク切り替え時間のオー
バーヘッドが大きくなるため、組み込み用途には向かな
い。
【0010】本発明は斯かる問題点を鑑みてなされたも
のであり、その目的とするところは、リアルタイムOS
で使用される優先度スケジューリングにおいて、ある限
定された範囲の優先度のタスクのレディ状態とウェイト
状態とを指定された時間で入れ替えるタスク管理装置及
びタスクスケジューリング方法を提供する点にある。
【0011】
【課題を解決するための手段】本発明の請求項1に記載
の要旨は、優先度スケジューリングを実行するタスク管
理装置であって、優先度スケジューリングの実行の際、
所定範囲の優先度のタスクのレディ状態とウェイト状態
とを指定された時間に基づいて入れ替える機能を有する
データ処理装置と情報を記憶する記憶装置とを有し、前
記記憶装置は、実行可能なタスクの情報を優先度毎に記
憶するレディキューと、当該レディキューの一部分の情
報を記憶するタイムシェアリングウェイトキューと、タ
イムシェアリングを行う優先度の上位及び下位を記憶す
るタイムシェアリング優先度範囲と、実行中のタスクグ
ループ番号を記憶するアクティブタスクグループと、タ
スクグループ毎の処理時間情報を記憶するタイムシェア
リング時間テーブルとを備え、前記データ処理装置は、
前記レディキューに記憶されている実行可能なタスクの
中から優先度の最も高いタスクを選択して実行する実行
タスク切り替え手段と、前記タイムシェアリング優先度
範囲で指定された範囲のタスクを前記レディキューから
前記タイムシェアリングウェイトキューへ待避させると
ともに、前記タイムシェアリングウェイトキューに待避
されている次のグループのタスクを前記レディキューへ
復帰させるタスクグループ切り替え手段と、前記アクテ
ィブタスクグループに基づいて現在のタスクグループを
判定するとともに、前記タイムシェアリング時間テーブ
ルに記憶された時間の経過を待って前記タスクグループ
切り替え手段を起動する切り替え時間検知手段とを備え
ていることを特徴とするタスク管理装置に存する。また
本発明の請求項2に記載の要旨は、前記タイムシェアリ
ングウェイトキューは、前記タイムシェアリング優先度
範囲で指定された範囲のタスクを前記レディキューから
一時待避するための領域に少なくとも全タスクグループ
分だけ記憶するように構成されていることを特徴とする
請求項1に記載のタスク管理装置に存する。また本発明
の請求項3に記載の要旨は、前記実行タスク切り替え手
段は、前記レディキューを参照するとともに、優先度の
高いタスクを選択して実行させるように構成されている
ことを特徴とする請求項1に記載のタスク管理装置に存
する。また本発明の請求項4に記載の要旨は、前記実行
タスク切り替え手段は、同じ優先度のタスクが複数ある
場合、先にレディ状態になったタスクを選択して実行さ
せるように構成されていることを特徴とする請求項1に
記載のタスク管理装置に存する。また本発明の請求項5
に記載の要旨は、前記タスクグループ切り替え手段は、
前記タイムシェアリング優先度範囲で指定された範囲の
タスクを前記レディキューから前記タイムシェアリング
ウェイトキューへ待避し、次のグループのタスクを前記
レディキューへ復帰させるように構成されていることを
特徴とする請求項1に記載のタスク管理装置に存する。
また本発明の請求項6に記載の要旨は、前記切り替え時
間検知手段は、前記アクティブタスクグループから現在
実行中のグループ番号情報を得て、当該グループの処理
時間情報を前記タイムシェアリング時間テーブルから知
るとともに、当該知り得た時間が経過した際に前記タス
クグループ切り替え手段を起動するように構成されてい
ることを特徴とする請求項1に記載のタスク管理装置に
存する。また本発明の請求項7に記載の要旨は、前記レ
ディキューは、レディ状態のタスクを優先度毎に記憶す
るように構成されていることを特徴とする請求項1に記
載のタスク管理装置に存する。また本発明の請求項8に
記載の要旨は、優先度スケジューリングを実行するタス
クスケジューリング方法であって、優先度スケジューリ
ングの実行の際、所定範囲の優先度のタスクのレディ状
態とウェイト状態とを指定された時間に基づいて入れ替
える機能を有するデータ処理工程と情報を記憶する記憶
工程とを有し、前記記憶工程は、実行可能なタスクの情
報を優先度毎に記憶するレディキュー記憶工程と、当該
レディキュー記憶工程の一部分の情報を記憶するタイム
シェアリングウェイトキュー記憶工程と、タイムシェア
リングを行う優先度の上位及び下位を記憶するタイムシ
ェアリング優先度範囲記憶工程と、実行中のタスクグル
ープ番号を記憶するアクティブタスクグループ記憶工程
と、タスクグループ毎の処理時間情報を記憶するタイム
シェアリング時間テーブル記憶工程とを備え、前記デー
タ処理工程は、前記レディキュー記憶工程に記憶されて
いる実行可能なタスクの中から優先度の最も高いタスク
を選択して実行する実行タスク切り替え工程と、前記タ
イムシェアリング優先度範囲記憶工程で指定された範囲
のタスクを前記レディキュー記憶工程から前記タイムシ
ェアリングウェイトキュー記憶工程へ待避させるととも
に、前記タイムシェアリングウェイトキュー記憶工程に
待避されている次のグループのタスクを前記レディキュ
ー記憶工程へ復帰させるタスクグループ切り替え工程
と、前記アクティブタスクグループ記憶工程に基づいて
現在のタスクグループを判定するとともに、前記タイム
シェアリング時間テーブル記憶工程に記憶された時間の
経過を待って前記タスクグループ切り替え工程を起動す
る切り替え時間検知工程とを備えていることを特徴とす
るタスクスケジューリング方法に存する。また本発明の
請求項9に記載の要旨は、前記タイムシェアリングウェ
イトキュー記憶工程は、前記タイムシェアリング優先度
範囲記憶工程で指定された範囲のタスクを前記レディキ
ュー記憶工程から一時待避するための領域に少なくとも
全タスクグループ分だけ記憶する工程を含むことを特徴
とする請求項8に記載のタスクスケジューリング方法に
存する。また本発明の請求項10に記載の要旨は、前記
実行タスク切り替え工程は、前記レディキュー記憶工程
を参照するとともに、優先度の高いタスクを選択して実
行させる工程を含むことを特徴とする請求項8に記載の
タスクスケジューリング方法に存する。また本発明の請
求項11に記載の要旨は、前記実行タスク切り替え工程
は、同じ優先度のタスクが複数ある場合、先にレディ状
態になったタスクを選択して実行させる工程を含むこと
を特徴とする請求項8に記載のタスクスケジューリング
方法に存する。また本発明の請求項12に記載の要旨
は、前記タスクグループ切り替え工程は、前記タイムシ
ェアリング優先度範囲記憶工程で指定された範囲のタス
クを前記レディキュー記憶工程から前記タイムシェアリ
ングウェイトキュー記憶工程へ待避し、次のグループの
タスクを前記レディキュー記憶工程へ復帰させる工程を
含むことを特徴とする請求項8に記載のタスクスケジュ
ーリング方法に存する。また本発明の請求項13に記載
の要旨は、前記切り替え時間検知工程は、前記アクティ
ブタスクグループ記憶工程から現在実行中のグループ番
号情報を得て、当該グループの処理時間情報を前記タイ
ムシェアリング時間テーブル記憶工程から知るととも
に、当該知り得た時間が経過した際に前記タスクグルー
プ切り替え工程を起動する工程を含むことを特徴とする
請求項8に記載のタスクスケジューリング方法に存す
る。また本発明の請求項14に記載の要旨は、前記レデ
ィキュー記憶工程は、レディ状態のタスクを優先度毎に
記憶する工程を含むことを特徴とする請求項8に記載の
タスクスケジューリング方法に存する。
【0012】
【発明の実施の形態】以下に説明する第1、第2実施形
態のタスク管理装置及びタスクスケジューリング方法
は、リアルタイムOS(実時間処理用オペレーティング
ソフトウェア:RTOSと呼ばれることが多い)で使用
される優先度スケジューリングにおいて、ある限定され
た範囲の優先度のタスクのレディ状態とウェイト状態と
を指定された時間で入れ替える点に特徴を有している。
以下、本発明の実施の形態を図面に基づいて詳細に説明
する。
【0013】(第1実施形態)図1は、本発明のタスク
管理装置の第1実施形態を説明するための機能ブロック
図である。図1を参照すると、第1実施形態のタスク管
理装置は、プログラム制御により動作するデータ処理装
置1(データ処理工程の実行主体)と、情報を記憶する
記憶装置2(記憶工程の実行主体)とを備えている。
【0014】記憶装置2は、実行可能なタスクの情報を
優先度毎に記憶(レディ状態のタスクを優先度毎に記
憶)するレディキュー20(レディキュー記憶工程の実
行主体)、レディキュー20の一部分の情報を複数記憶
するタイムシェアリングウェイトキュー40(タイムシ
ェアリングウェイトキュー記憶工程の実行主体)、タイ
ムシェアリングを行う優先度の上位と下位を記憶するタ
イムシェアリング優先度範囲41(タイムシェアリング
優先度範囲記憶工程の実行主体)、実行中のタスクグル
ープ番号を記憶するアクティブタスクグループ42(ア
クティブタスクグループ記憶工程の実行主体)、タスク
グループ毎の処理時間情報を記憶するタイムシェアリン
グ時間テーブル43(タイムシェアリング時間テーブル
記憶工程の実行主体)を備えている。
【0015】タイムシェアリングウェイトキュー40
は、タイムシェアリング優先度範囲41で指定された範
囲のタスクをレディキュー20から一時待避するための
領域で全タスクグループ分記憶できる。
【0016】データ処理装置1は、実行タスク切り替え
手段(図中、実行タスク決定手段と表記)10、タスク
グループ切り替え手段30、切り替え時間検知手段31
を備えている。
【0017】実行タスク切り替え手段10は、実行タス
ク切り替え工程の実行主体であって、レディキュー20
に記憶されている実行可能なタスクの中から優先度の最
も高いタスクを選択してこれを実行する。また、同じ優
先度のタスクが複数存在するときは、先に実行可能にな
ったタスクから先に実行する。具体的には、実行タスク
切り替え手段10は、レディキュー20を参照し、優先
度の高いタスクを選択して実行させる。同じ優先度のタ
スクが複数ある場合、先にレディ状態になったタスクを
選択して実行させる。
【0018】タスクグループ切り替え手段30は、タス
クグループ切り替え工程の実行主体であって、タイムシ
ェアリング優先度範囲41で指定された範囲のタスクを
レディキュー20からタイムシェアリングウェイトキュ
ー40へ待避させ、タイムシェアリングウェイトキュー
40に待避されている次のグループのタスクをレディキ
ュー20へ復帰させる。具体的には、タイムシェアリン
グ優先度範囲41で指定された範囲のタスクをレディキ
ュー20からタイムシェアリングウェイトキュー40へ
待避し、次のグループのタスクをレディキュー20へ復
帰させる。このようにして、限定された範囲の優先度の
タスクのレディ状態とウェイト状態を入れ替えることを
可能にする。
【0019】切り替え時間検知手段31は、切り替え時
間検知工程の実行主体であって、アクティブタスクグル
ープ42に基づいて、現在のタスクグループを判定し、
タイムシェアリング時間テーブル43に記憶された時間
の経過を待って、タスクグループ切り替え手段30を起
動する。具体的には、アクティブタスクグループ42か
ら現在実行中のグループ番号情報を得て、そのグループ
の処理時間情報をタイムシェアリング時間テーブル43
から知ることができる。さらに、知り得た時間が経過し
た時に、タスクグループ切り替え手段30を起動する。
【0020】次に、図1乃至図4を参照して本実施形態
の全体の動作について詳細に説明する。図2は、図1の
実行タスク切り替え手段10で実行されるタスクスケジ
ューリング方法を説明するためのフローチャートであ
る。まず、タスク状態に変化が発生した場合に、実行タ
スク切り替え手段10が実行タスクを決定する。実行タ
スク切り替え手段10は、レディキュー20に基づい
て、現在実行可能となっているタスクの最高優先度情報
を得る(図2のステップF10)。次に、レディキュー
20に基づいて、現在の最高優先度のタスク番号を得て
(図2のステップF11)、現在実行中のタスク番号と
比較し、一致するかを見る(図2のステップF12)。
一致した場合、現在のタスクの継続であると判定し、も
とのタスク処理へジャンプする。一致しなかった場合、
実行中であったタスクの情報を保存し(図2のステップ
F13)、実行中タスク番号を更新(図2のステップF
14)し、新しいタスク処理へジャンプする。
【0021】切り替え時間検知手段31は、アクティブ
タスクグループ42に対応した処理時間が経過したら、
タスクグループ切り替え手段30を呼び出す。
【0022】タスクグループ切り替え手段30は、ま
ず、タイムシェアリング優先度範囲41を参照し、その
優先度範囲のタスク情報をレディキュー20からタイム
シェアリングウェイトキュー40へ移動する。次に、ア
クティブタスクグループ42を更新し、タイムシェアリ
ングウェイトキュー40から新しいタスクグループのタ
スク情報をレディキュー20に移動する。最後にタイム
シェアリング時間テーブル43を参照し、新しいタスク
グループの処理時間を設定する。
【0023】次に、具体例を用いて説明する。図4は、
タスクグループが2つある場合の、タスクグループ切り
替え手段30によるタスクグループ切り替え前と後の、
アクティブタスクグループ42、レディキュー20、タ
イムシェアリングウェイトキュー40の状態を示してい
る。
【0024】まず、切り替え前の状態について説明す
る。アクティブタスクグループ42(図4中で110と
表記)が1であり、レディキュー20(図4中で210
と表記)の優先度3,4にはグループ1のタスクである
タスク1A、タスク1B、タスク1Cといったタスクが
実行可能な状態として記憶されている。一方、現在アク
ティブではない2のタスクとしては、タイムシェアリン
グウェイトキュー40(図4中で410)のグループ2
用(図4中で412と表記)に、タスク2A、タスク2
B、タスク2Cがウェイト状態として記憶されている。
なお、タイムシェアリング優先度範囲41は優先度3か
ら6である。
【0025】図3は、図1のタスクグループ切り替え手
段30で実行されるタスクスケジューリング方法を説明
するためのフローチャートである。タスクグループ切り
替え手段30は、アクティブタスクグループ42(図4
中で110と表記)を参照し、待避するグループ情報が
1であることを得る(図3のステップF20)。次に、
タイムシェアリング優先度範囲41を参照し、レディキ
ュー20の参照位置情報として優先度3から6という情
報を得る(図3のステップF21)。さらに、レディキ
ュー20(図4中で210)からタイムシェア範囲のタ
スク情報を獲得し、タイムシェアリングウェイトキュー
40の待避するグループのウェイトキューへタスク情報
を移動する(図3のステップF22)。この時移動した
情報は、タイムシェアリングウェイトキュー40(図4
中で420)のグループ1用(図4中で421)に入っ
ている。次に、アクティブタスクグループ42(図4中
で120と表記)を2に更新(図3のステップF2
3)、タイムシェアリングウェイトキュー40(図4中
で410と表記)のグループ2用(図4中で412)か
らグループ2のタスク情報をレディキュー20(図4中
で220と表記)へ復帰させる(図3のステップF2
4)。この際、タスクのないタイムシェアリングウェイ
トキュー40(図4中で411と表記)は、タイムシェ
アリングウェイトキュー40(図4中で422と表記)
に復帰させる。最後に、タイムシェアリング時間テーブ
ルを参照し、このグループの処理時間を設定する(図3
のステップF25)。
【0026】このようにしてタスクグループの切り替え
が完了する。切り替え後の状態は、アクティブタスクグ
ループ42(図4中で210と表記)が優先度2とな
り、レディキュー20(図4中で220と表記)の優先
度3から6には、グループ2のタスクであるタスク2
A、タスク2B、タスク2Cといったタスクが実行可能
状態な状態として記憶されている。一方切り替え前にア
クティブであったグループ1のタスクは、タイムシェア
リングウェイトキュー40(図4中で420と表記)の
グループ1用(図4中で421と表記)にタスク1A、
タスク1B、タスク1Cがウェイト状態として記憶され
る。
【0027】以上説明したように、第1実施形態によれ
ば、第1に、タイムシェアリング優先度範囲41で指定
した優先度のタスクのみを、タスクグループ切り替え手
段30がレディ状態とウェイト状態を入れ替えるので、
リアルタイムな処理が要求される高優先度のタスクに対
しては従来からのリアルタイム性を保持しながら、低優
先度タスクに対しては、予め分けられたタスクグループ
毎に、予め設定した時間の処理機会が提供できる。第2
に、予め分けられたタスクグループ毎に、タスクグルー
プ切り替え手段30がレディ状態とウェイト状態を入れ
替えるので、低優先度のタスクでは、予め設定した時間
の処理機会が与えられることを前提に設計できるので、
優先度や処理時間の調整をモジュール間(タスクグルー
プ間)で行う必要がなくなり、独立性の高いモジュール
単位の設計が可能になり、ソフトウエアの部品化を促進
できるといった効果を奏する。
【0028】(第2実施形態)次に、本発明の第2実施
形態について図面を参照して詳細に説明する。図5は、
本発明のタスク管理装置の第2実施形態を説明するため
の機能ブロック図である。図5を参照すると、第2実施
形態のタスク管理装置は、データ処理装置1が、図1に
示された第1実施形態におけるデータ処理装置1の構成
に加えて、切り替え時間タイマ管理手段32を有する点
に特徴を有している。
【0029】切り替え時間タイマ管理手段32は、実行
中のタスクがタイムシェアリング優先度範囲41の外の
場合に、切り替え時間検知手段31の切り替え時間タイ
マを一時停止し、タイムシェアリング優先度範囲41の
内の場合に、切り替え時間タイマを再スタートする。実
行タスク切り替え手段10は、実行するタスク決定後
に、切り替え時間タイマ管理手段32を呼び出して、切
り替え時間タイマの一時停止、再スタートを制御する。
【0030】本実施形態の動作を図面を参照して詳細に
説明する。図6は、図5の実行タスク切り替え手段10
で実行されるタスクスケジューリング方法を説明するた
めのフローチャートである。図5のタスクグループ切り
替え手段30、切り替え時間検知手段31の動作、記憶
装置2の構成は、図1に示された実施形態の切り替え時
間検知手段31、切り替え時間タイマ管理手段32の動
作および記憶装置2の構成と同一のため、説明は省略す
る。図1に示された実施形態では、実行中のタスクがタ
イムシェアリング優先度範囲41の外のタスクであって
も、切り替え時間タイマのカウントに含まれていた。す
なわち、切り替え範囲のタスクグループに対して与えら
れる処理時間は、タイムシェアリング時間テーブル43
に記憶しておいた時間から、切り替え範囲より高い優先
度のタスクを実行している時間を引いた時間となってい
た。本実施形態の場合、実行タスク切り替え手段10
が、実行するタスクを決定後、切り替え時間タイマ管理
手段32を呼び出し(図6のステップF15)、切り替
え時間タイマを制御し、タイムシェアリング時間テーブ
ル43に記憶した時間との誤差が出ないようにしてい
る。
【0031】次に、具体例について説明する。図7は、
図5の切り替え時間タイマ管理手段32で実行されるタ
スクスケジューリング方法を説明するためのフローチャ
ートであり、図8は、図6の実行タスク切り替え手段で
実行されるタスクスケジューリング方法の具体例を示し
ている。実行タスク切り替え手段10が実行するタスク
を決定したとき、レディキュー20の状態が図8の状態
であり、実行するタスクは優先度2のタスク0Aであっ
たとする。実行タスク切り替え手段10から呼び出され
た切り替え時間タイマ管理手段32は、実行するタスク
の優先度2とタイムシェアリング優先度範囲41を比較
し、切り替え範囲かどうかを判定する(図7のステップ
F30)。優先度2は範囲外なので(ステップF30の
「いいえ」)、切り替え時間タイマ停止中かどうかの判
定(図7のステップF32)を行い、停止中でなければ
(ステップF32の「いいえ」)、切り替え時間タイマ
カウントを停止する(図7のステップF34)。タスク
0Aの実行が終了した場合、次に実行されるタスクは優
先度3のタスク1Aとなる。実行タスク切り替え手段1
0から、実行するタスク決定後に切り替え時間タイマ管
理手段32が呼び出され、切り替え範囲の判定(図7の
ステップF30)で、範囲内と判定され(ステップF3
0の「はい」)、切り替え時間タイマはカウント中かの
判定(図7のステップF31)は、「いいえ」なので、
切り替え時間タイマのカウントを開始(図7のステップ
F33)する。
【0032】以上説明したように、第2実施形態によれ
ば、第1実施形態に記載の効果に加えて、実行タスク切
り替え手段10より、呼び出される切り替え時間タイマ
管理手段32により、タイムシェアリング優先度範囲4
1の外のタスク実行中に、切り替え時間タイマのカウン
トが停止するため、タイムシェアリング時間テーブル4
3に設定した時間に対する誤差が少なくなるという新た
な効果を奏する。
【0033】なお、本実施の形態においては、本発明は
上記実施形態に限定されず、本発明を適用する上で好適
なマイクロコンピュータで実行されるタスクスケジュー
リング技術に適用することができる。また、上記構成部
材の数、位置、形状等は上記実施の形態に限定されず、
本発明を実施する上で好適な数、位置、形状等にするこ
とができる。また、各図において、同一構成要素には同
一符号を付している。
【0034】
【発明の効果】本発明は以上のように構成されているの
で、以下に掲げる効果を奏する。第1の効果は、タイム
シェアリング優先度範囲で指定した優先度のタスクのみ
を、タスクグループ切り替え手段がレディ状態とウェイ
ト状態を入れ替えるので、リアルタイムな処理が要求さ
れる高優先度のタスクに対しては従来からのリアルタイ
ム性を保持しながら、低優先度タスクに対しては、予め
分けられたタスクグループ毎に、予め設定した時間の処
理機会が提供できることにある。第2の効果は、予め分
けられたタスクグループ毎に、タスクグループ切り替え
手段がレディ状態とウェイト状態を入れ替えるので、低
優先度のタスクでは、予め設定した時間の処理機会が与
えられることを前提に設計できるので、優先度や処理時
間の調整をモジュール間(タスクグループ間)で行う必
要がなくなり、独立性の高いモジュール単位の設計が可
能になり、ソフトウエアの部品化を促進できることにあ
る。
【図面の簡単な説明】
【図1】本発明のタスク管理装置の第1実施形態を説明
するための機能ブロック図である。
【図2】図1の実行タスク切り替え手段で実行されるタ
スクスケジューリング方法を説明するためのフローチャ
ートである。
【図3】図1のタスクグループ切り替え手段で実行され
るタスクスケジューリング方法を説明するためのフロー
チャートである。
【図4】タスクグループが2つある場合の、タスクグル
ープ切り替え手段によるタスクグループ切り替え前と後
の、アクティブタスクグループ、レディキュー、タイム
シェアリングウェイトキューの状態を示している。
【図5】本発明のタスク管理装置の第2実施形態を説明
するための機能ブロック図である。
【図6】図5の実行タスク切り替え手段で実行されるタ
スクスケジューリング方法を説明するためのフローチャ
ートである。
【図7】図5の切り替え時間タイマ管理手段で実行され
るタスクスケジューリング方法を説明するためのフロー
チャートである。
【図8】図6の実行タスク切り替え手段で実行されるタ
スクスケジューリング方法の具体例を示している。
【図9】従来のタスク管理装置を説明するためのブロッ
ク図である。
【図10】図9のタスク管理装置で実行されるタスクの
実行順序を説明するためのレディキューの状態を示して
いる。
【符号の説明】
1…データ処理装置 2…記憶装置 10…実行タスク切り替え手段 20…レディキュー 30…タスクグループ切り替え手段 31…切り替え時間検知手段 32…切り替え時間タイマ管理手段 40…タイムシェアリングウェイトキュー 41…タイムシェアリング優先度範囲 42…アクティブタスクグループ 43…タイムシェアリング時間テーブル
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/46

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 優先度スケジューリングを実行するタス
    ク管理装置であって、 優先度スケジューリングの実行の際、所定範囲の優先度
    のタスクのレディ状態とウェイト状態とを指定された時
    間に基づいて入れ替える機能を有するデータ処理装置と
    情報を記憶する記憶装置とを有し、 前記記憶装置は、 実行可能なタスクの情報を優先度毎に記憶するレディキ
    ューと、当該レディキューの一部分の情報を記憶するタ
    イムシェアリングウェイトキューと、タイムシェアリン
    グを行う優先度の上位及び下位を記憶するタイムシェア
    リング優先度範囲と、実行中のタスクグループ番号を記
    憶するアクティブタスクグループと、タスクグループ毎
    の処理時間情報を記憶するタイムシェアリング時間テー
    ブルとを備え、 前記データ処理装置は、 前記レディキューに記憶されている実行可能なタスクの
    中から優先度の最も高いタスクを選択して実行する実行
    タスク切り替え手段と、前記タイムシェアリング優先度
    範囲で指定された範囲のタスクを前記レディキューから
    前記タイムシェアリングウェイトキューへ待避させると
    ともに、前記タイムシェアリングウェイトキューに待避
    されている次のグループのタスクを前記レディキューへ
    復帰させるタスクグループ切り替え手段と、前記アクテ
    ィブタスクグループに基づいて現在のタスクグループを
    判定するとともに、前記タイムシェアリング時間テーブ
    ルに記憶された時間の経過を待って前記タスクグループ
    切り替え手段を起動する切り替え時間検知手段とを備え
    ていることを特徴とするタスク管理装置。
  2. 【請求項2】 前記タイムシェアリングウェイトキュー
    は、前記タイムシェアリング優先度範囲で指定された範
    囲のタスクを前記レディキューから一時待避するための
    領域に少なくとも全タスクグループ分だけ記憶するよう
    に構成されていることを特徴とする請求項1に記載のタ
    スク管理装置。
  3. 【請求項3】 前記実行タスク切り替え手段は、前記レ
    ディキューを参照するとともに、優先度の高いタスクを
    選択して実行させるように構成されていることを特徴と
    する請求項1に記載のタスク管理装置。
  4. 【請求項4】 前記実行タスク切り替え手段は、同じ優
    先度のタスクが複数ある場合、先にレディ状態になった
    タスクを選択して実行させるように構成されていること
    を特徴とする請求項1に記載のタスク管理装置。
  5. 【請求項5】 前記タスクグループ切り替え手段は、前
    記タイムシェアリング優先度範囲で指定された範囲のタ
    スクを前記レディキューから前記タイムシェアリングウ
    ェイトキューへ待避し、次のグループのタスクを前記レ
    ディキューへ復帰させるように構成されていることを特
    徴とする請求項1に記載のタスク管理装置。
  6. 【請求項6】 前記切り替え時間検知手段は、前記アク
    ティブタスクグループから現在実行中のグループ番号情
    報を得て、当該グループの処理時間情報を前記タイムシ
    ェアリング時間テーブルから知るとともに、当該知り得
    た時間が経過した際に前記タスクグループ切り替え手段
    を起動するように構成されていることを特徴とする請求
    項1に記載のタスク管理装置。
  7. 【請求項7】 前記レディキューは、レディ状態のタス
    クを優先度毎に記憶するように構成されていることを特
    徴とする請求項1に記載のタスク管理装置。
  8. 【請求項8】 優先度スケジューリングを実行するタス
    クスケジューリング方法であって、 優先度スケジューリングの実行の際、所定範囲の優先度
    のタスクのレディ状態とウェイト状態とを指定された時
    間に基づいて入れ替える機能を有するデータ処理工程と
    情報を記憶する記憶工程とを有し、 前記記憶工程は、 実行可能なタスクの情報を優先度毎に記憶するレディキ
    ュー記憶工程と、当該レディキュー記憶工程の一部分の
    情報を記憶するタイムシェアリングウェイトキュー記憶
    工程と、タイムシェアリングを行う優先度の上位及び下
    位を記憶するタイムシェアリング優先度範囲記憶工程
    と、実行中のタスクグループ番号を記憶するアクティブ
    タスクグループ記憶工程と、タスクグループ毎の処理時
    間情報を記憶するタイムシェアリング時間テーブル記憶
    工程とを備え、 前記データ処理工程は、 前記レディキュー記憶工程に記憶されている実行可能な
    タスクの中から優先度の最も高いタスクを選択して実行
    する実行タスク切り替え工程と、 前記タイムシェアリング優先度範囲記憶工程で指定され
    た範囲のタスクを前記レディキュー記憶工程から前記タ
    イムシェアリングウェイトキュー記憶工程へ待避させる
    とともに、前記タイムシェアリングウェイトキュー記憶
    工程に待避されている次のグループのタスクを前記レデ
    ィキュー記憶工程へ復帰させるタスクグループ切り替え
    工程と、 前記アクティブタスクグループ記憶工程に基づいて現在
    のタスクグループを判定するとともに、前記タイムシェ
    アリング時間テーブル記憶工程に記憶された時間の経過
    を待って前記タスクグループ切り替え工程を起動する切
    り替え時間検知工程とを備えていることを特徴とするタ
    スクスケジューリング方法。
  9. 【請求項9】 前記タイムシェアリングウェイトキュー
    記憶工程は、前記タイムシェアリング優先度範囲記憶工
    程で指定された範囲のタスクを前記レディキュー記憶工
    程から一時待避するための領域に少なくとも全タスクグ
    ループ分だけ記憶する工程を含むことを特徴とする請求
    項8に記載のタスクスケジューリング方法。
  10. 【請求項10】 前記実行タスク切り替え工程は、前記
    レディキュー記憶工程を参照するとともに、優先度の高
    いタスクを選択して実行させる工程を含むことを特徴と
    する請求項8に記載のタスクスケジューリング方法。
  11. 【請求項11】 前記実行タスク切り替え工程は、同じ
    優先度のタスクが複数ある場合、先にレディ状態になっ
    たタスクを選択して実行させる工程を含むことを特徴と
    する請求項8に記載のタスクスケジューリング方法。
  12. 【請求項12】 前記タスクグループ切り替え工程は、
    前記タイムシェアリング優先度範囲記憶工程で指定され
    た範囲のタスクを前記レディキュー記憶工程から前記タ
    イムシェアリングウェイトキュー記憶工程へ待避し、次
    のグループのタスクを前記レディキュー記憶工程へ復帰
    させる工程を含むことを特徴とする請求項8に記載のタ
    スクスケジューリング方法。
  13. 【請求項13】 前記切り替え時間検知工程は、前記ア
    クティブタスクグループ記憶工程から現在実行中のグル
    ープ番号情報を得て、当該グループの処理時間情報を前
    記タイムシェアリング時間テーブル記憶工程から知ると
    ともに、当該知り得た時間が経過した際に前記タスクグ
    ループ切り替え工程を起動する工程を含むことを特徴と
    する請求項8に記載のタスクスケジューリング方法。
  14. 【請求項14】 前記レディキュー記憶工程は、レディ
    状態のタスクを優先度毎に記憶する工程を含むことを特
    徴とする請求項8に記載のタスクスケジューリング方
    法。
JP34730498A 1998-12-07 1998-12-07 タスク管理装置及びタスクスケジューリング方法 Expired - Lifetime JP3005562B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34730498A JP3005562B1 (ja) 1998-12-07 1998-12-07 タスク管理装置及びタスクスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34730498A JP3005562B1 (ja) 1998-12-07 1998-12-07 タスク管理装置及びタスクスケジューリング方法

Publications (2)

Publication Number Publication Date
JP3005562B1 true JP3005562B1 (ja) 2000-01-31
JP2000172514A JP2000172514A (ja) 2000-06-23

Family

ID=18389318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34730498A Expired - Lifetime JP3005562B1 (ja) 1998-12-07 1998-12-07 タスク管理装置及びタスクスケジューリング方法

Country Status (1)

Country Link
JP (1) JP3005562B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190335A (zh) * 2021-05-07 2021-07-30 安徽南瑞中天电力电子有限公司 一种电力采集终端的多任务调度和采集方法及电力采集系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100349149C (zh) * 2003-01-24 2007-11-14 中兴通讯股份有限公司 嵌入式实时操作系统的进程调度方法
CN100442239C (zh) * 2007-01-09 2008-12-10 上海新时达电气有限公司 中断程序的分时运行方法
JP4650697B2 (ja) * 2007-06-06 2011-03-16 エヌイーシーコンピュータテクノ株式会社 Cpuリソース管理方式
CN102043667A (zh) * 2010-11-25 2011-05-04 深圳市科陆电子科技股份有限公司 一种嵌入式操作系统的任务调度方法
KR102182295B1 (ko) * 2014-04-21 2020-11-24 삼성전자 주식회사 하드웨어 기반 태스크 스케쥴링 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190335A (zh) * 2021-05-07 2021-07-30 安徽南瑞中天电力电子有限公司 一种电力采集终端的多任务调度和采集方法及电力采集系统

Also Published As

Publication number Publication date
JP2000172514A (ja) 2000-06-23

Similar Documents

Publication Publication Date Title
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
JPH113232A (ja) 2レベル・マルチスレッド・システムにおける信号の生成および配信
KR970016979A (ko) 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법
JPH10301793A (ja) 情報処理装置及びスケジューリング方法
EP1162536A1 (en) Multiple operating system control method
JPH06250853A (ja) プロセス・スケジューリングの管理方法およびシステム
US5241676A (en) Method for controlling process priority in semaphore operation
JP3005562B1 (ja) タスク管理装置及びタスクスケジューリング方法
US8555285B2 (en) Executing a general-purpose operating system as a task under the control of a real-time operating system
JPH0877025A (ja) タスクの優先度制御方法、タスクの優先度制御装置
JPH05250188A (ja) プロセスのプライオリティ制御方式
JPH05108380A (ja) データ処理システム
JP2693916B2 (ja) タスクスケジュール方法
JP2597283B2 (ja) 割込みにおけるスケジューリング方式
JP3043748B1 (ja) タスクスケジュ―リング方法及び装置
JPH0877039A (ja) テスト方法
JPH07114518A (ja) マルチプロセッサシステムにおけるタスクスケジューリング方式
JPH11203149A (ja) タスクスケジュール装置およびその方法
JP2001155001A (ja) マルチプロセッサタスク制御方法及びタスク制御装置
JPH08314740A (ja) プロセスディスパッチ方法
JPS63636A (ja) タスク制御方式
JP3093714B2 (ja) マルチタスクの実行優先順位決定システム
JPH11327921A (ja) 計算機システムに於けるスレッド優先度制御装置、及びスレッド優先度制御方法
JPH05241860A (ja) タイムスライス最適化方式
JPH02211545A (ja) ジョブ実行制御方式