JPH10177489A - タスクのスケジュール方法 - Google Patents

タスクのスケジュール方法

Info

Publication number
JPH10177489A
JPH10177489A JP8336563A JP33656396A JPH10177489A JP H10177489 A JPH10177489 A JP H10177489A JP 8336563 A JP8336563 A JP 8336563A JP 33656396 A JP33656396 A JP 33656396A JP H10177489 A JPH10177489 A JP H10177489A
Authority
JP
Japan
Prior art keywords
task
priority
execution
time
timer
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.)
Pending
Application number
JP8336563A
Other languages
English (en)
Inventor
Masami Murakami
雅美 村上
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP8336563A priority Critical patent/JPH10177489A/ja
Publication of JPH10177489A publication Critical patent/JPH10177489A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 優先度の低いタスクと優先度の高いタスクが
ともに実行可能な状態のとき、優先度の高いタスクがあ
る時間まで実行を継続したら、一時的に優先度の低いタ
スクに実行を譲渡することによって、システム全体のス
ループットの良いタスクのスケジュールを得る。 【解決手段】 タスクの実行時間を計測するタイマーが
予め定めた時間を越えた場合に(s1)、実行中の現タ
スクの優先度とレディキューの最低優先度のタスクの優
先度とを比較する(s7)。レディキューの最低優先度
のタスクの方が低ければ、そのタスクが実行できる実行
最低保証時間をタイマーに設定し(s8)、実行を切換
える(s10)。優先度の高いタスクへは、タイマー割
込みの発生によって実行を戻す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リアルタイムマル
チタスクモニタにおけるタスクのスケジュール方法に関
する。
【0002】
【従来の技術】タスクの優先度に基づくスケジュール方
法では、優先度の低いタスクと優先度の高いタスクがと
もに実行できる状態では、優先度の高いタスクが実行を
占有してしまうため、優先度の低いタスクは優先度の高
いタスクが実行を中断しなければ実行できない。
【0003】そこで従来、例えば、特開平1−2925
39号公報に示されるように、一定周期のタイマー割込
みによって、優先度の高いタスクをある時間継続して実
行してから、優先度の低いタスクに実行を一時的に譲渡
するスケジュール方法がある。これは、一定周期のタイ
マー割込み信号により起動される一連のプログラムによ
り、優先度の低いタスクの待ち時間を計測したり、待ち
タスクの優先度を変更したりして、タスク切換えの条件
が整えば、優先度の低いタスクに切換えを行っている。
【0004】
【発明が解決しようとする課題】従来のタスクのスケジ
ュール方法は、一定周期のタイマー割込みで行うため、
タスクのスケジュールを細かに制御しようとすれば、タ
イマー割込みの一定周期を短くしなくてはならない。し
かしながら短くすればする程、高精度にスケジュールは
できるものの、このタイマー割込み実行時間がオーバー
ヘッドとなってしまう。
【0005】このようなオーバーヘッドの状態でスケジ
ュールされれば、コンピュータシステムの単位時間あた
りの処理量であるスループットが低下するだけでなく、
事象発生からその事象に対応した一連の処理が完了する
までの時間を尺度としたリアルタイム性能も悪くなる。
【0006】このリアルタイム性能は、ある事象発生時
にタイマー割込みプログラムが、割込み禁止の状態で実
行される確率が高ければその分悪くなり、また上記タイ
マー割込みプログラムが割込み許可の状態で実行されて
いれば、タイマー割込み処理がある事象発生に対応した
一連の処理時間だけ遅れることになる。さらに上記タイ
マー割込み処理が完了しないうちに次のタイマー割込み
が発生するようなことがあると、正確なスケジュールが
できないことがある。
【0007】したがってこのタイマー周期は、スループ
ットやシステムに要求されるリアルタイムの性能を考慮
して、比較的長く設定される傾向にある。そのため一定
周期のタイマー割込みを用いたタスクのスケジュール
は、リアルタイム性能が強く要求されるシステムには使
いづらい、あるいは使えないといった問題があった。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明のタスクのスケジュール方法は、従来のタスク
のスケジュールに使われていた待ちタスクの待ち時間を
計測する一定周期のタイマー割込みを廃止し、替わりに
タスクの実行時間を計測するタイマーを用い、このタイ
マーがあるしきい値を越えたとき、優先度の高いタスク
から優先度の低いタスクに一定期間だけ実行を譲渡し、
譲渡された優先度の低いタスクから譲渡してもらった優
先度の高いタスク以上の優先度をもつタスクに切換る必
要があるときだけ、タイマー割込みを発生させてタスク
を切換えるようにすることで、タスクのスケジュールを
より高精度に制御できるようにすることを目的とする。
【0009】
【発明の実施の形態】本発明の請求項1に記載の発明
は、実行の優先度をもった複数のタスクをスケジュール
する方法において、優先度の高いタスクが実行される時
間をタイマーにより計測し、前記実行時間が予め定めた
時間を越えた場合に、優先度の低いタスクが実行できる
状態ならば、前記優先度の高いタスクから前記優先度の
低いタスクに実行を予め定めた所定の期間だけ実行を譲
渡し、前記期間中は、割込みにより前記優先度の低いタ
スクから、最高の優先度をもつタスクに切換えることが
できるようにすることを特徴とするものである。
【0010】この方法では、一定周期のタイマー割込み
による割込みハンドラによるタスクの待ち時間の計測や
優先度の判定などの処理が、システムのスループットや
リアルタイム性能を悪化させる要因であることに注目し
て、タイマー割込みを最小限に使用することによってシ
ステムのスループットおよびリアルタイム性能を向上さ
せようとするものである。
【0011】すなわち、タスクの実行時間を計測するタ
イマーを用意し、タスクの切換えが必要ない場合はこの
タイマー割込みを禁止しておき、タイマー割込みを使っ
たタスクの切換えが必要となればタイマー割込みを許可
することで、タイマー割込みを最小限にしている。
【0012】(実施の形態1)以下本発明の一実施の形
態について図面を参照しながら説明する。図1は、タス
ク管理プログラムからの要求に基づきスケジュールをお
こなうためのブロック図を示している。
【0013】図1において、11は複数のタスクの状態
を管理するタスク管理プログラムである。タスクは、現
在そのタスクを実行中であるというrun状態、タスク側
の実行の準備は整っているがそのタスクよりも優先度が
高いタスクが実行中であるためそのタスクの実行は出来
ないready状態、タスクが実行できる条件が整わないた
めに実行ができないwait状態のいずれかをとる。このタ
スク管理プログラム11は、新しいready状態のタスク
が発生すると、ready状態のタスクが列となっているレ
ディキューに新しく登録したあと、スケジュールが必要
なときタスクのスケジュールに制御を移す。
【0014】15は、タスクの実行開始からアップカウ
ントされるタスクの実行時間を計測するタイマーであ
り、タイマー割込みを可能とする。12は優先度正逆制
御部であり、タイマー15のカウント値と予め定められ
たあるしきい値とを大小比較し、優先度の高いタスクを
最優先させる従来の優先度に基づいたスケジュールをと
る場合と、ちょうどその逆である優先度の低いタスクを
最優先させるスケジュールをとる。
【0015】13は、優先度正逆制御部12によって新
たに実行可能なタスクがみつけられた場合に、現在実行
のタスクと実行を切換えるタスク切換え部である。14
は、優先度正逆制御部12によって、優先度に基づいた
場合には割込みを禁止し、逆優先度に基づいた場合には
割込みを許可することのできるタイマー15のタイマー
割込みマスクである。
【0016】17は、タイマー割込みマスク14が許可
に設定され、かつ実行最低保証時間が経過した場合にお
いて、タイマー15からの割込み信号によって割込みが
発生したときに、優先度に基づいたスケジュールをおこ
なうタイマー割込みハンドラの優先度制御部である。
【0017】16は、タイマー割込みハンドラの優先度
制御部17によって、新たに実行可能なタスクがみつけ
られた場合に、現在実行のタスクと実行を切換えるタイ
マー割込みハンドラのタスク切換え部である。
【0018】なお、タイマー15は、タスク切換え部1
3およびタイマー割込みハンドラのタスク切換え部16
のタスク切換えがおこなわれた場合に初期化される。
【0019】以下、優先度の高いタスクが優先度の低い
タスクに一時実行を譲渡して、再び優先度の高いタスク
に実行を戻すまでを、図2のフローチャートを参照しな
がら説明するが、その前に、以降の説明で用いる優先度
逆時間と最低実行保証時間について述べておく。
【0020】すべてのタスクは、タスクに特有の事象が
起こるまでwait状態であり、その事象が起こればready
状態となってスケジュールされるのを待つ。スケジュー
ルされるとrun状態となり、その事象に対応したタスク
特有の処理を実行し、実行が完了したらwait状態とな
り、最初のタスク特有の事象が起こるのを待つ。
【0021】したがって、優先度の高いタスクを長時間
継続して実行する場合は、このタスクの事象の発生から
その事象に対応したタスク特有の処理を実行完了してwa
it状態になった時、すでにそのタスクの事象が生起して
おり、しかもready状態のタスクよりも優先度が高いと
いう状態が続いているためである。
【0022】よって優先度逆時間は、優先度の高いタス
ク特有の処理にかかる最大時間よりも大きく、かつ優先
度の低いタスクが許容できる最大待ち時間よりも小さい
値に設定する。
【0023】一方、最低実行保証時間は、他のタスクに
スイッチすることのないタスクのrun状態の時間のこと
である。すなわち、タスク特有の処理を実行している
時、この実行タスクよりも優先度の高いタスクがready
状態になっても、実行タスクがrun状態になってからこ
の最低実行保証時間を過ぎなければ、優先度の高いタス
クに実行を譲らないようにするために採用するものであ
る。この最低実行保証時間は、応答性が最大に要求され
たタスク特有の処理が許容できる範囲内でなくてはなら
ず、ここではリアルタイムマルチタスクモニタのオーバ
ーヘッドの2倍以下に設定している。
【0024】さて、タスク管理プログラム11におい
て、現在実行中のタスク以外に実行できるready状態の
タスクが、新たにレディキューに登録されるとスケジュ
ール開始となる。
【0025】ステップs1において、タイマー15によ
り計測しているタスクの実行時間が、予め定められたし
きい値である優先度逆時間以下である場合は、優先度に
基づくスケジュールをおこなう。すなわちステップs2
において、現在実行中のタスクの優先度と、レディキュ
ーに存在する最高の優先度とを比較して、優先度の高い
方のタスクを実行させる判断をする。現在実行中のタス
クの優先度の方が大きければ、ステップs3にてそのま
ま現タスクを実行させる。
【0026】一方、レディキューの最高優先度の方が大
きければ、大きい方のタスクに実行を切換える。このと
き切換えられたタスク特有の処理中に、切換えられたタ
スクよりもさらに優先度の高いタスクがready状態にな
れば、最低実行保証時間後にタスク切換えをする必要が
ある。このためステップs4にて最低実行保証時間でタ
イマー割込みが発生できるようにタイマー15を設定
し、ステップs5にて、このタイマー割込みマスク14
を禁止しておく。
【0027】繰り返すが、このタイマー割込みマスク
は、最低保証時間後に他のタスクに切換える必要が有る
場合に限り、割込み許可に設定しなければならない。次
にステップs1において、タイマー15により計測して
いるタスクの実行時間が、予め定めた優先度逆時間を経
過した場合は、優先度の低いタスクが優先して実行され
るように、ステップs7において、現在実行中のタスク
の優先度とレディキューに存在する最低の優先度のタス
クとを比較して、優先度の低い方のタスクを実行させ
る。
【0028】現在実行中のタスクの優先度の方が低けれ
ば、ステップs3にてそのまま現タスクを実行させる。
レディキューの最低優先度の方が小さければ、小さい方
のタスクに実行を切換える。このときもステップs8に
てタスクの最低実行保証時間をタイマー15に設定する
が、最低保証時間後に優先度の高いタスクに切換えるた
め、ステップs9にてタイマー割込みマスク14は許可
しておく。
【0029】こうすればレディキューに存在する最低優
先度のタスクに譲渡された実行は、最低実行保証時間経
過後、タイマー15の割込み信号によって、タイマー割
込みハンドラの優先度制御部17が、優先度に基づくス
ケジュールをおこない、ステップs10にて再び優先度
の高いタスクに実行を戻すことができる。
【0030】なお実行最低保証時間を守るために、実行
最低保証時間中に現実行のタスクよりも高い優先度のタ
スクがready状態になった場合は、タスク管理プログラ
ム11がこのタスクをレディキューに登録する。そして
タスクのスケジュール要求を出さずに、タイマー割込み
マスク14が禁止に設定されていれば許可に設定するだ
けとし、実行最低保証時間経過後に、タイマー割込みハ
ンドラの優先度制御部17とタスク切換え部16によっ
て、現実行のタスクよりも高い優先度のタスクに実行を
切換えることができるようにしておく。
【0031】以上説明したタスクのスケジュール方法で
は、一定周期のタイマー割込みを発生させないで、基本
的には優先度の高いタスクから優先度の低いタスクに切
換えた場合だけ、タイマー割込みの発生をおこなってい
る。そのため従来のタイマー割込みハンドラの処理によ
るオーバーヘッドの大半を省くことができ、高精度にか
つ短い時間でタスクの時間配分が可能となる。よってシ
ステムのスループットを落とさずにタスクのスケジュー
ルが可能である。
【0032】なお、タスクプログラムが動作している
時、予め決められた優先度逆時間をダイナミックに変更
できるようにすれば、システムの状況や特殊なモードに
応じて、さらにきめ細かいタスクのスケジュールが可能
となる。
【0033】
【発明の効果】以上のように本発明によれば、優先度の
高いタスクが長時間実行を占有して、優先度の低いタス
クを長い時間待たせることがないように、優先度の高い
タスクから優先度の低いタスクに一時的に実行を譲るよ
うにしているため、一定周期のタイマー割込みを使う場
合に比べて、タイマー割込みハンドラによるオーバーヘ
ッドを格段に小さくすることができるので、システムの
スループットの大きい、リアルタイムの応答に優れたリ
アルタイムマルチタスクモニタにおけるタスクのスケジ
ュール方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態におけるタスクのスケジ
ュール方法を説明するためのブロック図
【図2】同タスクのスケジュール方法を説明するフロー
チャート
【符号の説明】
11 タスク管理プログラム 12 優先度正逆制御部 13 タスク切換え部 14 タイマー割込みマスク 15 タイマー 16 タイマー割込みハンドラのタスク切換え部 17 タイマー割込みハンドラの優先度制御部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】実行の優先度をもった複数のタスクをスケ
    ジュールする方法において、優先度の高いタスクが実行
    される時間をタイマーにより計測し、前記実行時間が予
    め定めた時間を越えた場合に、優先度の低いタスクが実
    行できる状態ならば、前記優先度の高いタスクから前記
    優先度の低いタスクに実行を予め定めた所定の期間だけ
    実行を譲渡し、前記期間中は、割込みにより前記優先度
    の低いタスクから、最高の優先度をもつタスクに切換え
    ることができるようにすることを特徴とするタスクのス
    ケジュール方法。
JP8336563A 1996-12-17 1996-12-17 タスクのスケジュール方法 Pending JPH10177489A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8336563A JPH10177489A (ja) 1996-12-17 1996-12-17 タスクのスケジュール方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8336563A JPH10177489A (ja) 1996-12-17 1996-12-17 タスクのスケジュール方法

Publications (1)

Publication Number Publication Date
JPH10177489A true JPH10177489A (ja) 1998-06-30

Family

ID=18300443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8336563A Pending JPH10177489A (ja) 1996-12-17 1996-12-17 タスクのスケジュール方法

Country Status (1)

Country Link
JP (1) JPH10177489A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384339B1 (ko) * 2000-04-21 2003-05-16 주식회사 아이네스테크 태스크 스케쥴링 방법
JP2006244293A (ja) * 2005-03-04 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> タスク実行制御方法及び装置
KR100707663B1 (ko) 2006-04-26 2007-04-13 주식회사 대우일렉트로닉스 멀티미디어 데이터 재생 시스템 및 방법
CN1329825C (zh) * 2004-10-08 2007-08-01 华为技术有限公司 基于数字信号处理器的多任务处理方法
JP2010506270A (ja) * 2006-09-29 2010-02-25 クゥアルコム・インコーポレイテッド 無線機器におけるリソース管理のための方法及び装置
JP2019125242A (ja) * 2018-01-18 2019-07-25 株式会社デンソー スケジューリング装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100384339B1 (ko) * 2000-04-21 2003-05-16 주식회사 아이네스테크 태스크 스케쥴링 방법
CN1329825C (zh) * 2004-10-08 2007-08-01 华为技术有限公司 基于数字信号处理器的多任务处理方法
JP2006244293A (ja) * 2005-03-04 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> タスク実行制御方法及び装置
KR100707663B1 (ko) 2006-04-26 2007-04-13 주식회사 대우일렉트로닉스 멀티미디어 데이터 재생 시스템 및 방법
JP2010506270A (ja) * 2006-09-29 2010-02-25 クゥアルコム・インコーポレイテッド 無線機器におけるリソース管理のための方法及び装置
US8954045B2 (en) 2006-09-29 2015-02-10 Qualcomm Incorporated Method and apparatus for managing resources at a wireless device
JP2019125242A (ja) * 2018-01-18 2019-07-25 株式会社デンソー スケジューリング装置

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US7020879B1 (en) Interrupt and exception handling for multi-streaming digital processors
US6349321B1 (en) Data processing system and scheduling method
US5083261A (en) Dynamically alterable interrupt priority circuit
EP1685486B1 (en) Interrupt handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation
US20110078702A1 (en) Multiprocessor system
JPH10177489A (ja) タスクのスケジュール方法
JP2001216170A (ja) 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
US20050160425A1 (en) Limitation of the response time of a software process
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JP2013152636A (ja) 情報処理装置、タスクスケジューリング方法
JPH08272627A (ja) リアルタイムタスク制御装置
WO2000070482A1 (en) Interrupt and exception handling for multi-streaming digital processors
JPH1063515A (ja) マルチタスク制御のスケジューリング方法
JP2002099434A (ja) 制御装置
JP2667575B2 (ja) タスクスケジューリング方式
JPH08314740A (ja) プロセスディスパッチ方法
JPH01154237A (ja) 時分割タスク実行装置
JPH0644234B2 (ja) タスク管理装置
JPH05257718A (ja) プロセス制御装置
Raxmonova et al. Analysis of scheduling algorithms in operating systems
JP2566002B2 (ja) タスクディスパッチング方式
JP3169316B2 (ja) タスクスケジューリング方法
JP2006172229A (ja) タスクの動作制御方法、タスクの動作制御システムおよびプログラム
JPH1055283A (ja) タイマ割り込み制御装置