JPH08249194A - タスクスケジューリング方法 - Google Patents

タスクスケジューリング方法

Info

Publication number
JPH08249194A
JPH08249194A JP7737995A JP7737995A JPH08249194A JP H08249194 A JPH08249194 A JP H08249194A JP 7737995 A JP7737995 A JP 7737995A JP 7737995 A JP7737995 A JP 7737995A JP H08249194 A JPH08249194 A JP H08249194A
Authority
JP
Japan
Prior art keywords
task
execution
execution level
stopped
tasks
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
JP7737995A
Other languages
English (en)
Other versions
JP3169316B2 (ja
Inventor
Yoshimoto Toyoda
義元 豊田
Takanari Hoshiai
隆成 星合
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP07737995A priority Critical patent/JP3169316B2/ja
Publication of JPH08249194A publication Critical patent/JPH08249194A/ja
Application granted granted Critical
Publication of JP3169316B2 publication Critical patent/JP3169316B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 実行レベルの低いタスクにも一定の即応性を
保証するタスクスケジューリング方法を提供することを
目的とするものである。 【構成】 実行中のタスクが停止したときに、この停止
したタスクの実行レベル以下の実行レベルを有ししかも
レディ状態にあるタスクが存在する場合、その停止した
タスクの実行レベル以下の実行レベルを有ししかもレデ
ィ状態にあるタスクからディスパッチするものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、リアルタイムOS(オ
ペレーティングシステム)における、タスクスケジュー
リング方法に関するものである。
【0002】
【従来の技術】一般的なリアルタイムOSのタスクスケ
ジューリング処理においては、ユーザからの要求事象に
対する即応性を重視するために、プリエンプション(実
行権の横取り)制御を伴う優先度順のスケジューリング
方法を用いている。
【0003】すなわち、従来のスケジューリング方法で
は、実行の優先順位を示す実行レベルを各タスクに予め
与え、常に、実行レベルの高い順にタスクを実行する。
そして、実行中のタスクよりも優先度の高い他のタスク
がレディ化すると、直ちに、実行中のタスクの処理を一
時中断し、優先度の高い他のタスクを実行するものであ
る。
【0004】
【発明が解決しようとする課題】しかし、上記従来のス
ケジューリング方法において、CPU利用率が高い場合
には、実行レベルの高いタスクのみが実行され、実行レ
ベルの低いタスクは実行の機会が奪われ、応答時間の予
測が不能になることがあるという問題がある。
【0005】本発明は、実行レベルの低いタスクにも一
定の即応性を保証するタスクスケジューリング方法を提
供することを目的とするものである。
【0006】
【課題を解決するための手段】本発明は、実行中のタス
クが停止したときに、この停止したタスクの実行レベル
以下の実行レベルを有ししかもレディ状態にあるタスク
が存在する場合、その停止したタスクの実行レベル以下
の実行レベルを有ししかもレディ状態にあるタスクか
ら、ディスパッチするものである。
【0007】
【作用】本発明は、実行中のタスクが停止したときに、
この停止したタスクの実行レベル以下の実行レベルを有
ししかもレディ状態にあるタスクが存在する場合、その
停止したタスクの実行レベル以下の実行レベルを有しし
かもレディ状態にあるタスクから、ディスパッチするの
で、実行レベルの低いタスクへのCPU資源を予め確保
することができ、したがって、実行レベルの低いタスク
にも一定の即応性を保証することができる。
【0008】
【実施例】図1は、本発明の一実施例であるタスクスケ
ジューリング方法において、スケジューリング契機とス
ケジューリング順序との関係を示す図である。
【0009】上記実施例において、そのスケジューリン
グ契機は、実行中のタスクの停止と、タイマによるクロ
ック割り込みと、CPUのアイドル状態時におけるタス
クのレディ化との3つである。
【0010】また、上記実施例においては、そのスケジ
ューリング順序として、ストレート型とフィードバック
型とが使用されている。「ストレート型のスケジューリ
ング順序」は、レディ化したタスクのうちで、スケジュ
ーリング契機直前の実行レベル以下のタスクからディス
パッチするスケジューリング順序であり、つまり、スケ
ジューリング契機直前の実行レベルと同じ実行レベルの
タスクからディスパッチし、スケジューリング契機直前
の実行レベルと同じ実行レベルのタスクが存在しない場
合には、次に低い実行レベルのタスクからディスパッチ
するスケジューリング順序である。「フィードバック型
のスケジューリング順序」は、レディ化したタスクのう
ちで、最も高い実行レベルのタスクからディスパッチす
るスケジューリング順序であり、この場合、スケジュー
リング契機直前の実行タスクはプリエンプション(実行
権の横取り)される。
【0011】なお、上記「実行レベル」は、各タスクが
有する属性の1つであって、タスクの優先順位を示すと
共にプリエンプション制御の指標ともなるレベルであ
り、各タスクは、自分の実行レベルよりも低い実行レベ
ルのタスクをプリエンプションすることができるように
なっている。
【0012】また、上記「スケジューリング順序」は、
レディ状態にあるタスクのうちで、どの実行レベルのタ
スクからディスパッチしていくかの順序を示すものであ
る。さらに、上記「タスクの停止」は、実行中タスクの
終了、削除、自主中断、強制中断(たとえばタイムスラ
イス切れ)である。
【0013】上記実施例は、基本的には、タスクの実行
優先順位を示す実行レベルの高いタスクから順に、スケ
ジューリングを行うタスクスケジューリング方法である
が、ただし、実行中のタスクが停止したときに、この停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクが存在する場合には、ストレ
ート型のスケジューリング順序を採用する。つまり、停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクが存在する場合には、上記停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクから、ディスパッチする(図
1(1))。一方、実行中のタスクが停止したときに、
この停止したタスクの実行レベル以下の実行レベルを有
ししかもレディ状態にあるタスクが存在しない場合、フ
ィードバック型のスケジューリング順序を採用し、つま
り、レディ状態にある最も高い実行レベルのタスクから
ディスパッチする(図1(2))。
【0014】また、上記実施例は、一定周期毎にCPU
へクロック割り込みを行うタイマが設けられ、このタイ
マによるクロック割り込みがあったときには、レディ状
態にある最も高い実行レベルのタスクからディスパッチ
する(図1(3))。さらに、CPUのアイドル状態時
に(すなわち、実行中のタスクが存在せず、またレディ
状態にあるタスクが存在しないときに)タスクのレディ
化があった場合は、レディ状態にある最も高い実行レベ
ルのタスクからディスパッチする(図1(4))。
【0015】なお、上記実施例において、実行を開始し
たタスクは、一定周期が到来してタイマによるクロック
割り込みが起きない限り、そのタスクが停止するまで実
行を続行する。
【0016】次に、上記実施例の動作について説明す
る。
【0017】図2は、上記実施例の動作を示すフローチ
ャートである。
【0018】まず、動作を開始したときに、タスクのレ
ディ化があれば(S1)、フィードバック型のスケジュ
ーリング順序でタスクをディスパッチし、このディスパ
ッチされたタスクを実行する(S2)。つまり、レディ
化したタスクのうちで、最も高い実行レベルのタスクか
ら実行する。このように、CPUのアイドル状態時にタ
スクのレディ化があった場合、レディ状態にある最も高
い実行レベルのタスクからディスパッチすることによっ
て、ユーザからの要求事象に即応できる。
【0019】そして、このタスクを実行している間にタ
イマによるクロック割り込みがあれば(S3)、フィー
ドバック型のスケジューリング順序でタスクをディスパ
ッチし、このディスパッチされたタスクを実行する(S
4)。このように、クロック割り込みがあったときに、
フィードバック型のスケジューリング順序でタスクをデ
ィスパッチすることによって、ユーザからの要求事象に
即応できる。
【0020】一方、タイマによるクロック割り込みがな
いときに、実行しているタスクの停止があれば、つま
り、その実行タスクが終了し、削除され、自主中断し、
または強制中断(たとえばタイムスライス切れによる強
制中断)があれば(S5)、その停止したタスクの実行
レベル以下のタスクであって、レディ化しているタスク
の存否を判断する(S6)。停止したタスクの実行レベ
ル以下のタスクであって、レディ化しているタスクが存
在すれば、ストレート型のスケジューリング順序でタス
クをディスパッチし、このディスパッチされたタスクを
実行する(S7)。すなわち、停止したタスクの実行レ
ベル以下のタスクであってレディ化しているタスクが存
在すれば、これらのタスクのうちで、停止したタスクの
実行レベルと同じ実行レベルのタスクをディスパッチ
し、実行し、一方、停止したタスクの実行レベルと同じ
実行レベルのタスクがなければ、その次に高い実行レベ
ルのタスクをディスパッチし、実行する。
【0021】また、ステップS6において、停止したタ
スクの実行レベル以下のタスクであって、レディ化して
いるタスクが存在しなければ、フィードバック型のスケ
ジューリング順序でタスクをディスパッチし、このディ
スパッチされたタスクを実行する(S8)。このよう
に、停止したタスクの実行レベル以下のタスクがレディ
化していないときにフィードバック型のスケジューリン
グ順序でタスクをディスパッチすることによって、ユー
ザからの要求事象に即応できる。
【0022】上記実施例においては、タスクの実行中
に、この実行中タスクよりも高い実行レベルの他のタス
クがレディ化しても、スケジューリング契機が到来した
とは判断せず、したがって、直ちにプリエンプションは
起こらない。そのときに実行中のタスクの実行レベル以
下の実行レベルを有するタスクを順次実行し(そのとき
に実行中のタスクの実行レベルと同じ実行レベルのタス
ク、または、そのときに実行中のタスクの実行レベルよ
りも低い実行レベルのタスクを順次実行し)、最も低い
実行レベルのタスクが停止したときにフィードバック型
のスケジューリングを開始することによって、上記実行
中タスクよりも高い実行レベルの他のタスクが初めて実
行される。なお、上記実行中タスクよりも高い実行レベ
ルの他のタスクは、タイマのクロック割り込みがあれ
ば、フィードバック型のスケジューリングを開始するこ
とによって、初めて実行される。
【0023】上記実施例は、実行中のタスクよりも高い
実行レベルのタスクがレディ化したときに直ちにプリエ
ンプションを起こす従来のスケジューリング方法とは異
なり、実行中のタスクよりも高い実行レベルのタスクに
実行を移す契機を制限しているので、実行レベルの低い
タスクへのCPU資源を予め確保することができ、した
がって、実行レベルの低いタスクにも一定の即応性を保
証できる。
【0024】なお、スケジューリング契機の頻度は、タ
イマのクロック割り込みの周期間隔が短い程大きくな
り、長い程小さくなる。つまり、確保できるCPU資源
の量は、タイマのクロック割り込みの周期間隔が長い程
多くなるので、CPU利用率が高い場合であっても、タ
イマのクロック割り込みの周期間隔を適切に設定するこ
とによって、実行レベルの低いタスクに対して、一定の
即応性を保証することができる。
【0025】次に、上記実施例におけるタスクの処理例
を具体的に説明する。
【0026】図3は、上記実施例における第1の処理例
を示す図であり、図4は、上記実施例における第2の処
理例を示す図である。
【0027】まず、レディ状態のタスクを待機させるレ
ディキューを、実行レベルの数と同じ数だけ用意し、実
行レベルごとに、レディ状態のタスクをレディキューで
待機させる。ここで、3つの実行レベルLV1、LV
2、LV3を設け、実行レベルLV1の優先度が最も高
く、実行レベルLV2がその次の優先度であり、実行レ
ベルLV3が最も低い優先度であるとする。
【0028】図3において、タスク、、がそれぞ
れ、実行レベルLV1、LV2、LV3であり、タスク
が実行中であり、タスクとタスクとがレディ状態
であるとする。ここで、図3(1)に示すように、タス
クの実行が終了すると、実行中タスクの停止であり、
ストレート型のスケジューリングを開始し、図3(2)
に示すように、タスクをディスパッチし、実行する。
タスクの実行が終了すると、実行中タスクの停止では
あるが、タスクと同じ実行レベルのタスクが存在せ
ず、またタスクよりも低い実行レベルのタスクも存在
しないので、図3(3)に示すように、フィードバック
型のスケジューリングを開始し、タスクをディスパッ
チし、実行する。なお、このときにタイマを初期化すれ
ば、次のクロック割り込み時刻は、この初期化の時刻か
らタイマの周期間隔後となる。
【0029】図4において、タスク、、がそれぞ
れ、実行レベルLV1、LV2、LV3であり、CPU
がアイドル状態であるときに、タスクとタスクとが
同時にレディ化したとする。この場合、フィードバック
型のスケジューリングを開始し、図4(1)に示すよう
に、タスクをディスパッチし、実行し、タスクの実
行中に、実行レベルLV1のタスクがレディ化して
も、スケジューリング契機とはならず、プリエンプショ
ンは起こらない。そして、実行中のタスクが終了する
と、実行中タスクの停止であり、図4(2)に示すよう
に、ストレート型のスケジューリングを開始し、タスク
をディスパッチし、実行する。
【0030】そして、タスクの実行中にタイマの周期
時刻が到来したとし、このときにクロック割り込みが起
き、フィードバック型のスケジューリングを開始し、タ
スクがタスクをプリエンプションする。すなわち、
タスクの実行を中断し、実行レベルLV3のキューに
タスクを戻し、図4(3)に示すように、タスクを
ディスパッチし、実行する。
【0031】なお、上記実施例においては、実行中のタ
スクが停止したときに、その停止したタスクの実行レベ
ル以下の実行レベルを有ししかもレディ状態にあるタス
クが複数存在する場合、この複数のタスクのうちで、実
行レベルの高い順に、ディスパッチするようにしている
が、このようにする代りに、上記複数のタスクのうち
で、実行レベルとは無関係の順に、ディスパッチするよ
うにしてもよい。つまり、たとえば、図3の第1の処理
例において、実行レベルLV3よりも優先度が低い実行
レベルLV4が設けられ、タスクが実行レベルLV4
であり、タスクの実行が終了したときにタスクがレ
ディ化した場合、タスクの実行が終了すると、ストレ
ート型のスケジューリングを開始するが、タスクの実
行が終了したときに、まずタスクをディスパッチし、
実行し、このタスクが終了した後に、タスクをディ
スパッチし、実行するようにしてもよい。
【0032】また、上記実施例では、一定周期毎にCP
Uへクロック割り込みを行うタイマが設けられている
が、一定周期毎にCPUへクロック割り込みを行うタイ
マを設けなくてもよく、つまり、クロック割り込みを行
わないようにしてもよい。
【0033】
【発明の効果】本発明によれば、実行中のタスクよりも
実行レベルの高いタスクへ実行を移す契機を制限するの
で、実行レベルの低いタスクへのCPU資源を予め確保
することになり、これによって、実行レベルの低いタス
クを実行する機会を与えることができるという効果を奏
する。
【図面の簡単な説明】
【図1】本発明の一実施例であるタスクスケジューリン
グ方法において、スケジューリング契機とスケジューリ
ング順序との関係を示す図である。
【図2】上記実施例の動作を示すフローチャートであ
る。
【図3】上記実施例における第1の処理例を示す図であ
る。
【図4】上記実施例における第2の処理例を示す図であ
る。
【符号の説明】 〜…タスク、LV1〜LV4…実行レベル。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 タスクの実行優先順位を示す実行レベル
    の高いタスクから順に、スケジューリングを行うタスク
    スケジューリング方法において、実行中のタスクが停止
    したときに、この停止したタスクの実行レベル以下の実
    行レベルを有ししかもレディ状態にあるタスクが存在す
    る場合、上記停止したタスクの実行レベル以下の実行レ
    ベルを有ししかもレディ状態にあるタスクからディスパ
    ッチし、一方、実行中のタスクが停止したときに、この
    停止したタスクの実行レベル以下の実行レベルを有しし
    かもレディ状態にあるタスクが存在しない場合、レディ
    状態にある最も高い実行レベルのタスクからディスパッ
    チすることを特徴とするタスクスケジューリング方法。
  2. 【請求項2】 請求項1において、上記タスクの停止
    は、実行中タスクの終了、削除、自主中断、強制中断の
    うちの少なくとも1つであることを特徴とするタスクス
    ケジューリング方法。
  3. 【請求項3】 請求項1において、所定周期毎にクロッ
    ク割り込みを行うタイマを有し、このタイマによるクロ
    ック割り込みがあったときには、レディ状態にある最も
    高い実行レベルのタスクからディスパッチし、上記タイ
    マによるクロック割り込みが起きない限り、実行中のタ
    スクが停止するまでそのタスクの実行を続行することを
    特徴とするタスクスケジューリング方法。
  4. 【請求項4】 請求項1において、CPUのアイドル状
    態時にタスクのレディ化があったときには、レディ状態
    にある最も高い実行レベルのタスクからディスパッチす
    ることを特徴とするタスクスケジューリング方法。
  5. 【請求項5】 請求項1において、実行中のタスクが停
    止したときに、上記停止したタスクの実行レベル以下の
    実行レベルを有ししかもレディ状態にあるタスクが複数
    存在する場合、この複数のタスクのうちで、上記実行レ
    ベルの高い順に、または上記実行レベルとは無関係の順
    に、ディスパッチすることを特徴とするタスクスケジュ
    ーリング方法。
JP07737995A 1995-03-08 1995-03-08 タスクスケジューリング方法 Expired - Lifetime JP3169316B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07737995A JP3169316B2 (ja) 1995-03-08 1995-03-08 タスクスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07737995A JP3169316B2 (ja) 1995-03-08 1995-03-08 タスクスケジューリング方法

Publications (2)

Publication Number Publication Date
JPH08249194A true JPH08249194A (ja) 1996-09-27
JP3169316B2 JP3169316B2 (ja) 2001-05-21

Family

ID=13632267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07737995A Expired - Lifetime JP3169316B2 (ja) 1995-03-08 1995-03-08 タスクスケジューリング方法

Country Status (1)

Country Link
JP (1) JP3169316B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470376B1 (en) 1997-03-04 2002-10-22 Matsushita Electric Industrial Co., Ltd Processor capable of efficiently executing many asynchronous event tasks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470376B1 (en) 1997-03-04 2002-10-22 Matsushita Electric Industrial Co., Ltd Processor capable of efficiently executing many asynchronous event tasks

Also Published As

Publication number Publication date
JP3169316B2 (ja) 2001-05-21

Similar Documents

Publication Publication Date Title
Lipari et al. Efficient scheduling of real-time multi-task applications in dynamic systems
US8006247B2 (en) Multi-tasking real-time operating system for microprocessors with limited memory
US6148322A (en) Processing unit with an improved ability to coordinate the execution of multiple tasks with varying priorities
JP2000347883A (ja) 仮想計算機装置
JPH0454255B2 (ja)
JP2001202258A (ja) リアルタイム処理装置
KR100848323B1 (ko) 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법
US8423681B2 (en) Control apparatus for process input-output device
JP3169316B2 (ja) タスクスケジューリング方法
JP6861275B2 (ja) 車両制御装置
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JP2000148513A (ja) タスク制御方法およびタスク制御装置
JPH1063515A (ja) マルチタスク制御のスケジューリング方法
JP2667575B2 (ja) タスクスケジューリング方式
JPH10177489A (ja) タスクのスケジュール方法
JPH0877039A (ja) テスト方法
CN115981829B (zh) 一种物联网中的调度方法及系统
CN110109743B (zh) 一种实时进程调度方法
JPH0895803A (ja) タスクスケジュール方法
JPS60181934A (ja) タスク優先度制御方式
JPH08314740A (ja) プロセスディスパッチ方法
JPH0778091A (ja) マルチタスク管理方法
JPH01180641A (ja) Cpuソース平均化方式
JPH04287234A (ja) 処理多重度制御方式
Huang et al. Analysis

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090316

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090316

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100316

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110316

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110316

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120316

Year of fee payment: 11

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130316

Year of fee payment: 12

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term