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
Links
Abstract
保証するタスクスケジューリング方法を提供することを
目的とするものである。 【構成】 実行中のタスクが停止したときに、この停止
したタスクの実行レベル以下の実行レベルを有ししかも
レディ状態にあるタスクが存在する場合、その停止した
タスクの実行レベル以下の実行レベルを有ししかもレデ
ィ状態にあるタスクからディスパッチするものである。
Description
ペレーティングシステム)における、タスクスケジュー
リング方法に関するものである。
ジューリング処理においては、ユーザからの要求事象に
対する即応性を重視するために、プリエンプション(実
行権の横取り)制御を伴う優先度順のスケジューリング
方法を用いている。
は、実行の優先順位を示す実行レベルを各タスクに予め
与え、常に、実行レベルの高い順にタスクを実行する。
そして、実行中のタスクよりも優先度の高い他のタスク
がレディ化すると、直ちに、実行中のタスクの処理を一
時中断し、優先度の高い他のタスクを実行するものであ
る。
ケジューリング方法において、CPU利用率が高い場合
には、実行レベルの高いタスクのみが実行され、実行レ
ベルの低いタスクは実行の機会が奪われ、応答時間の予
測が不能になることがあるという問題がある。
定の即応性を保証するタスクスケジューリング方法を提
供することを目的とするものである。
クが停止したときに、この停止したタスクの実行レベル
以下の実行レベルを有ししかもレディ状態にあるタスク
が存在する場合、その停止したタスクの実行レベル以下
の実行レベルを有ししかもレディ状態にあるタスクか
ら、ディスパッチするものである。
この停止したタスクの実行レベル以下の実行レベルを有
ししかもレディ状態にあるタスクが存在する場合、その
停止したタスクの実行レベル以下の実行レベルを有しし
かもレディ状態にあるタスクから、ディスパッチするの
で、実行レベルの低いタスクへのCPU資源を予め確保
することができ、したがって、実行レベルの低いタスク
にも一定の即応性を保証することができる。
ジューリング方法において、スケジューリング契機とス
ケジューリング順序との関係を示す図である。
グ契機は、実行中のタスクの停止と、タイマによるクロ
ック割り込みと、CPUのアイドル状態時におけるタス
クのレディ化との3つである。
ューリング順序として、ストレート型とフィードバック
型とが使用されている。「ストレート型のスケジューリ
ング順序」は、レディ化したタスクのうちで、スケジュ
ーリング契機直前の実行レベル以下のタスクからディス
パッチするスケジューリング順序であり、つまり、スケ
ジューリング契機直前の実行レベルと同じ実行レベルの
タスクからディスパッチし、スケジューリング契機直前
の実行レベルと同じ実行レベルのタスクが存在しない場
合には、次に低い実行レベルのタスクからディスパッチ
するスケジューリング順序である。「フィードバック型
のスケジューリング順序」は、レディ化したタスクのう
ちで、最も高い実行レベルのタスクからディスパッチす
るスケジューリング順序であり、この場合、スケジュー
リング契機直前の実行タスクはプリエンプション(実行
権の横取り)される。
有する属性の1つであって、タスクの優先順位を示すと
共にプリエンプション制御の指標ともなるレベルであ
り、各タスクは、自分の実行レベルよりも低い実行レベ
ルのタスクをプリエンプションすることができるように
なっている。
レディ状態にあるタスクのうちで、どの実行レベルのタ
スクからディスパッチしていくかの順序を示すものであ
る。さらに、上記「タスクの停止」は、実行中タスクの
終了、削除、自主中断、強制中断(たとえばタイムスラ
イス切れ)である。
優先順位を示す実行レベルの高いタスクから順に、スケ
ジューリングを行うタスクスケジューリング方法である
が、ただし、実行中のタスクが停止したときに、この停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクが存在する場合には、ストレ
ート型のスケジューリング順序を採用する。つまり、停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクが存在する場合には、上記停
止したタスクの実行レベル以下の実行レベルを有ししか
もレディ状態にあるタスクから、ディスパッチする(図
1(1))。一方、実行中のタスクが停止したときに、
この停止したタスクの実行レベル以下の実行レベルを有
ししかもレディ状態にあるタスクが存在しない場合、フ
ィードバック型のスケジューリング順序を採用し、つま
り、レディ状態にある最も高い実行レベルのタスクから
ディスパッチする(図1(2))。
へクロック割り込みを行うタイマが設けられ、このタイ
マによるクロック割り込みがあったときには、レディ状
態にある最も高い実行レベルのタスクからディスパッチ
する(図1(3))。さらに、CPUのアイドル状態時
に(すなわち、実行中のタスクが存在せず、またレディ
状態にあるタスクが存在しないときに)タスクのレディ
化があった場合は、レディ状態にある最も高い実行レベ
ルのタスクからディスパッチする(図1(4))。
たタスクは、一定周期が到来してタイマによるクロック
割り込みが起きない限り、そのタスクが停止するまで実
行を続行する。
る。
ャートである。
ディ化があれば(S1)、フィードバック型のスケジュ
ーリング順序でタスクをディスパッチし、このディスパ
ッチされたタスクを実行する(S2)。つまり、レディ
化したタスクのうちで、最も高い実行レベルのタスクか
ら実行する。このように、CPUのアイドル状態時にタ
スクのレディ化があった場合、レディ状態にある最も高
い実行レベルのタスクからディスパッチすることによっ
て、ユーザからの要求事象に即応できる。
イマによるクロック割り込みがあれば(S3)、フィー
ドバック型のスケジューリング順序でタスクをディスパ
ッチし、このディスパッチされたタスクを実行する(S
4)。このように、クロック割り込みがあったときに、
フィードバック型のスケジューリング順序でタスクをデ
ィスパッチすることによって、ユーザからの要求事象に
即応できる。
いときに、実行しているタスクの停止があれば、つま
り、その実行タスクが終了し、削除され、自主中断し、
または強制中断(たとえばタイムスライス切れによる強
制中断)があれば(S5)、その停止したタスクの実行
レベル以下のタスクであって、レディ化しているタスク
の存否を判断する(S6)。停止したタスクの実行レベ
ル以下のタスクであって、レディ化しているタスクが存
在すれば、ストレート型のスケジューリング順序でタス
クをディスパッチし、このディスパッチされたタスクを
実行する(S7)。すなわち、停止したタスクの実行レ
ベル以下のタスクであってレディ化しているタスクが存
在すれば、これらのタスクのうちで、停止したタスクの
実行レベルと同じ実行レベルのタスクをディスパッチ
し、実行し、一方、停止したタスクの実行レベルと同じ
実行レベルのタスクがなければ、その次に高い実行レベ
ルのタスクをディスパッチし、実行する。
スクの実行レベル以下のタスクであって、レディ化して
いるタスクが存在しなければ、フィードバック型のスケ
ジューリング順序でタスクをディスパッチし、このディ
スパッチされたタスクを実行する(S8)。このよう
に、停止したタスクの実行レベル以下のタスクがレディ
化していないときにフィードバック型のスケジューリン
グ順序でタスクをディスパッチすることによって、ユー
ザからの要求事象に即応できる。
に、この実行中タスクよりも高い実行レベルの他のタス
クがレディ化しても、スケジューリング契機が到来した
とは判断せず、したがって、直ちにプリエンプションは
起こらない。そのときに実行中のタスクの実行レベル以
下の実行レベルを有するタスクを順次実行し(そのとき
に実行中のタスクの実行レベルと同じ実行レベルのタス
ク、または、そのときに実行中のタスクの実行レベルよ
りも低い実行レベルのタスクを順次実行し)、最も低い
実行レベルのタスクが停止したときにフィードバック型
のスケジューリングを開始することによって、上記実行
中タスクよりも高い実行レベルの他のタスクが初めて実
行される。なお、上記実行中タスクよりも高い実行レベ
ルの他のタスクは、タイマのクロック割り込みがあれ
ば、フィードバック型のスケジューリングを開始するこ
とによって、初めて実行される。
実行レベルのタスクがレディ化したときに直ちにプリエ
ンプションを起こす従来のスケジューリング方法とは異
なり、実行中のタスクよりも高い実行レベルのタスクに
実行を移す契機を制限しているので、実行レベルの低い
タスクへのCPU資源を予め確保することができ、した
がって、実行レベルの低いタスクにも一定の即応性を保
証できる。
イマのクロック割り込みの周期間隔が短い程大きくな
り、長い程小さくなる。つまり、確保できるCPU資源
の量は、タイマのクロック割り込みの周期間隔が長い程
多くなるので、CPU利用率が高い場合であっても、タ
イマのクロック割り込みの周期間隔を適切に設定するこ
とによって、実行レベルの低いタスクに対して、一定の
即応性を保証することができる。
を具体的に説明する。
を示す図であり、図4は、上記実施例における第2の処
理例を示す図である。
ディキューを、実行レベルの数と同じ数だけ用意し、実
行レベルごとに、レディ状態のタスクをレディキューで
待機させる。ここで、3つの実行レベルLV1、LV
2、LV3を設け、実行レベルLV1の優先度が最も高
く、実行レベルLV2がその次の優先度であり、実行レ
ベルLV3が最も低い優先度であるとする。
れ、実行レベルLV1、LV2、LV3であり、タスク
が実行中であり、タスクとタスクとがレディ状態
であるとする。ここで、図3(1)に示すように、タス
クの実行が終了すると、実行中タスクの停止であり、
ストレート型のスケジューリングを開始し、図3(2)
に示すように、タスクをディスパッチし、実行する。
タスクの実行が終了すると、実行中タスクの停止では
あるが、タスクと同じ実行レベルのタスクが存在せ
ず、またタスクよりも低い実行レベルのタスクも存在
しないので、図3(3)に示すように、フィードバック
型のスケジューリングを開始し、タスクをディスパッ
チし、実行する。なお、このときにタイマを初期化すれ
ば、次のクロック割り込み時刻は、この初期化の時刻か
らタイマの周期間隔後となる。
れ、実行レベルLV1、LV2、LV3であり、CPU
がアイドル状態であるときに、タスクとタスクとが
同時にレディ化したとする。この場合、フィードバック
型のスケジューリングを開始し、図4(1)に示すよう
に、タスクをディスパッチし、実行し、タスクの実
行中に、実行レベルLV1のタスクがレディ化して
も、スケジューリング契機とはならず、プリエンプショ
ンは起こらない。そして、実行中のタスクが終了する
と、実行中タスクの停止であり、図4(2)に示すよう
に、ストレート型のスケジューリングを開始し、タスク
をディスパッチし、実行する。
時刻が到来したとし、このときにクロック割り込みが起
き、フィードバック型のスケジューリングを開始し、タ
スクがタスクをプリエンプションする。すなわち、
タスクの実行を中断し、実行レベルLV3のキューに
タスクを戻し、図4(3)に示すように、タスクを
ディスパッチし、実行する。
スクが停止したときに、その停止したタスクの実行レベ
ル以下の実行レベルを有ししかもレディ状態にあるタス
クが複数存在する場合、この複数のタスクのうちで、実
行レベルの高い順に、ディスパッチするようにしている
が、このようにする代りに、上記複数のタスクのうち
で、実行レベルとは無関係の順に、ディスパッチするよ
うにしてもよい。つまり、たとえば、図3の第1の処理
例において、実行レベルLV3よりも優先度が低い実行
レベルLV4が設けられ、タスクが実行レベルLV4
であり、タスクの実行が終了したときにタスクがレ
ディ化した場合、タスクの実行が終了すると、ストレ
ート型のスケジューリングを開始するが、タスクの実
行が終了したときに、まずタスクをディスパッチし、
実行し、このタスクが終了した後に、タスクをディ
スパッチし、実行するようにしてもよい。
Uへクロック割り込みを行うタイマが設けられている
が、一定周期毎にCPUへクロック割り込みを行うタイ
マを設けなくてもよく、つまり、クロック割り込みを行
わないようにしてもよい。
実行レベルの高いタスクへ実行を移す契機を制限するの
で、実行レベルの低いタスクへのCPU資源を予め確保
することになり、これによって、実行レベルの低いタス
クを実行する機会を与えることができるという効果を奏
する。
グ方法において、スケジューリング契機とスケジューリ
ング順序との関係を示す図である。
る。
る。
る。
Claims (5)
- 【請求項1】 タスクの実行優先順位を示す実行レベル
の高いタスクから順に、スケジューリングを行うタスク
スケジューリング方法において、実行中のタスクが停止
したときに、この停止したタスクの実行レベル以下の実
行レベルを有ししかもレディ状態にあるタスクが存在す
る場合、上記停止したタスクの実行レベル以下の実行レ
ベルを有ししかもレディ状態にあるタスクからディスパ
ッチし、一方、実行中のタスクが停止したときに、この
停止したタスクの実行レベル以下の実行レベルを有しし
かもレディ状態にあるタスクが存在しない場合、レディ
状態にある最も高い実行レベルのタスクからディスパッ
チすることを特徴とするタスクスケジューリング方法。 - 【請求項2】 請求項1において、上記タスクの停止
は、実行中タスクの終了、削除、自主中断、強制中断の
うちの少なくとも1つであることを特徴とするタスクス
ケジューリング方法。 - 【請求項3】 請求項1において、所定周期毎にクロッ
ク割り込みを行うタイマを有し、このタイマによるクロ
ック割り込みがあったときには、レディ状態にある最も
高い実行レベルのタスクからディスパッチし、上記タイ
マによるクロック割り込みが起きない限り、実行中のタ
スクが停止するまでそのタスクの実行を続行することを
特徴とするタスクスケジューリング方法。 - 【請求項4】 請求項1において、CPUのアイドル状
態時にタスクのレディ化があったときには、レディ状態
にある最も高い実行レベルのタスクからディスパッチす
ることを特徴とするタスクスケジューリング方法。 - 【請求項5】 請求項1において、実行中のタスクが停
止したときに、上記停止したタスクの実行レベル以下の
実行レベルを有ししかもレディ状態にあるタスクが複数
存在する場合、この複数のタスクのうちで、上記実行レ
ベルの高い順に、または上記実行レベルとは無関係の順
に、ディスパッチすることを特徴とするタスクスケジュ
ーリング方法。
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)
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 |
-
1995
- 1995-03-08 JP JP07737995A patent/JP3169316B2/ja not_active Expired - Lifetime
Cited By (1)
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 |