JPH06168143A - タスクスケジューリング法およびタスクコントローラ - Google Patents

タスクスケジューリング法およびタスクコントローラ

Info

Publication number
JPH06168143A
JPH06168143A JP4169161A JP16916192A JPH06168143A JP H06168143 A JPH06168143 A JP H06168143A JP 4169161 A JP4169161 A JP 4169161A JP 16916192 A JP16916192 A JP 16916192A JP H06168143 A JPH06168143 A JP H06168143A
Authority
JP
Japan
Prior art keywords
task
time
memory
critical
computer system
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
JP4169161A
Other languages
English (en)
Inventor
E Ferguson Edward
イー.ファーガソン エドワード
Dexter S Cook
エス.クック デクスター
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH06168143A publication Critical patent/JPH06168143A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/48—Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806—Task transfer initiation or dispatching
    • G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 自動メモリ管理もしくはビットレートで消耗
される他の資源を有するリアルタイムコンピュータシス
テム用タスクスケジューリング法を提供する。 【構成】 本方法により非クリティカルタスクがクリテ
ィカルタスクのタイムリーな実行を妨げないことが保証
される。各タスクは資源の消耗率により評価される。消
耗率は各タスクに消耗割当てを割り付けかつ実行時に各
タスクの消耗を追跡し続けることにより制御される(5
4,55,56)。その割当てを越えて消耗しようとす
る場合、タスクはそのプロセッサ時間を放棄する必要が
ある。(57)。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はリアルタイムシステムに
関し、より詳細にはクリティカルタスクのタイムリーな
実行を保証するリアルタイムコンピュータオペレーティ
ングシステムに関する。
【0002】
【従来の技術】コンピュータシステムはリアルタイムシ
ステムの一体部である。これらのコンピュータシステム
はシステム内の他の装置を監視制御する意味において
“埋込み型”である。それらは装置と歩調を合せて作動
するため、リアルタイムで作動するといわれる。
【0003】リアルタイムシステムの支配的特徴はシス
テムがある外部刺激に対してある“短い”時間内に応答
しなければならないことである。どれだけ短い時間かと
いうことは解決すべき問題および使用する装置に依存す
る。代表的なリアルタイムシステムのもう一つの特徴は
2つ以上の外部刺激に対して本質的に同時に応答できな
ければならないことである。
【0004】リアルタイムシステムでは、システム応答
を取り扱うプロセスは“タスク”と呼ばれる。守るべき
デッドラインを有するタスクは“クリティカル”タスク
と呼ばれる。クリティカルタスクがデッドラインを守る
ことを保証するために、コンピュータオペレーティング
システムには適切なスケジューリングアルゴリズムを含
めなければならない。
【0005】一つのスケジューリング法が従来の汎用オ
ペレーティングシステムで使用されている。これらのシ
ステムは一般的にプロセッサ時間の割付けに関連してい
る。一般的に使用される技術は、ある種のタイムスライ
シングアルゴリズムを使用して、アプリケーションプロ
セスへ処理時間を割り付けることである。割り付けられ
た処理時間が限られるたびに、そのプロセスの実行が中
止され次のプロセスの実行が許可される。
【0006】最近開発されたリアルタイムシステムはメ
モリ管理支援ソフトウェアを使用し、ユーザはそれによ
りオブジェクト記憶領域をダイナミックに割付けおよび
解放することができる。これらのメモリ管理ツールのい
くつかは、アプリケーションプログラムがもはや記憶領
域を使用せずそれを回収する時を決定する意味におい
て、自動的である。回収サービスを行うコンポーネント
は“ごみ集め”と呼ばれる。
【0007】自動メモリ管理を有するシステムでは、メ
モリ管理プロセスのメモリ回収能力は、通常ビット/秒
で表わされる、特定レートに制限される。したがって、
プロセッサと同様に、メモリ管理システムは資源であ
り、その能力をスケジュール化しなければならない。ク
リティカルおよび非クリティカルタスクの両方が資源を
消費する場合、クリティカルタスクは非クリティカルタ
スクにより消耗されている資源を取得するのに待機しな
ければならないため、デッドラインが守られなくなる危
険性がある。
【0008】
【発明が解決しようとする課題】しかしながら、従来の
プロセッサスケジューリング技術はメモリ割付けのスケ
ジューリングには適していない。プロセッサアベイラビ
リティとは対照的に、割り付けられるメモリのアベイラ
ビリティは消耗率の関数である。また、ダイナミックメ
モリ割付けに固有の特徴として、メモリ消耗はシステム
条件に依存し予測困難である。非クリティカルタスクが
クリティカルタスクデッドラインに干渉しないような自
動メモリ管理を有するリアルタイムコンピュータシステ
ムのスケジューリング法に対するニーズが存在する。
【0009】
【課題を解決するための手段】本発明の一つの特徴はダ
イナミックに割付けられるメモリもしくは通信リンク等
の単位時間当りビットで消耗される資源を有するリアル
タイム埋込コンピュータシステムにより実行されるタス
クスケジューリング法である。現在実行中の各タスクは
最大割付値を有し、それはコンピュータのメモリに記憶
される。この最大割付値は活性化されるたびにタスクが
消耗する最大ビット数を表わす。タスクが実行される
と、その資源消耗ビットがカウントされる。カウントさ
れた消耗値はタスクの最大割付値と比較される。カウン
トされた消耗値が最大割付値を越える場合には、スケジ
ューラに信号が送られ、そのタスクの次の周期が開始す
るまでタスクの実行を停止することが示される。タスク
の実行頻度を制御することにより、スケジューリング法
はタスクの最大資源消耗率を間接的に制御する。
【0010】本発明の技術的利点は、非クリティカルタ
スクによる資源消耗によりクリティカルタスクのタイム
リーな実施が妨げられないよう保証するのに使用できる
ことである。非クリティカルタスクの消耗率を分析する
必要はなく、許容資源消耗率に上界が課せられるだけで
ある。こようなタスクの総資源消耗率はクリティカルタ
スクの消耗率が決定された後の残りの限度内にあるた
め、システム性能を低下させることなく非クリティカル
タスクをシステムに加えることができる。
【0011】
【実施例】図1に埋込型リアルタイムコンピュータシス
テムを示す。機上車10はセンサ12〜15に接続され
たコンピュータシステム11を有している。センサ12
〜15を使用して、コンピュータシステム11は高度、
対気速度、方向、およびレーダデータ等の機上車10の
飛行状態に関するデータを得る。コンピュータシステム
11内に常駐するコンピュータソフトウェアがこのデー
タを分析し出力装置16を介してパイロットにアドバイ
スするかもしくは自動制御システムへ制御データを与え
る。後者の場合、コンピュータシステム11はエレベー
タ、はしごおよびスロットルのアクチュエータ17〜1
9等の制御装置へのアクセスを有している。
【0012】コンピュータシステム11はハードリアル
タイムで作動し、コンピュータプログラムはクリティカ
ルデッドラインを有するコンピュータシステム11で実
行されることを意味する。すなわち、これらのデッドラ
インを守ることが望まれるだけでなく、守られなければ
ひどいことになる。
【0013】図2Aにコンピュータシステム11の例を
示す。コンピュータシステム11にはメモリ22に接続
された中央処理装置21が含まれている。メモリ22は
プログラム記憶エリア22Aおよびデータ記憶エリア2
2Bを有している。プログラムメモリ22Aにはさまざ
まなプログラム23〜26が格納されている。これらの
プログラムのいくつかはアプリケーションプログラム2
3,24であり、出力装置16もしくはアクチュエータ
17〜19への出力を発生するかもしくはセンサ12〜
15からのデータを分析する。他のプログラムはジョブ
スケジューラ25およびごみ集め26等のオペレーティ
ングシステムプログラムである。
【0014】図2Bにコンピュータシステムの別の実施
例を示し、ここには2台以上のプロセッサがある。第1
のプロセッサ21aはアプリケーションプログラム2
3,24を実行し、第2のプロセッサ21bはオペレー
ティングシステムプログラム25,26を実行する。
【0015】スケジューラ25は任意の時間にプロセッ
サ21にどのタスクを割り付けるかを決定する。全ての
タスクは実行中、封鎖状態、実行可能状態の3つの状態
のいずれかにある。後の2つの状態にはそれぞれタスク
待ち行列が付随している。スケジューラ25は一方の待
ち行列から他方の待ち行列への移動、およびプロセッサ
21に対するタスクの移動を制御する。本発明は、図5
に関して後記するように、メモリ割付データに基いて決
定することを特徴とする。
【0016】ごみ集め26はコンピュータシステム11
をプログラムする自動メモリ管理ソフトウェアの一部で
ある。ごみ集め26は知覚可能な速度でデータメモリ2
2B内のメモリを回収する。ごみ集め26が有効となる
ことを保証するために、アプリケーションプログラムが
記憶領域を割り付ける速度はごみ集め26が回収する速
度よりも小さくなければならない。自動メモリ管理技術
の一例が米国特許出願第07/682,806号、代理
人予定表#TI−13685に記載されており、ここに
参照として組み入れられている。
【0017】図3にアプリケーションプログラム23等
のアプリケーションプログラムを格納するメモリ部22
を示す。アプリケーションプログラム23はダイナミッ
クメモリ割付けおよび自動回収を支援する任意の言語で
記載することができる。この種の言語の2つの例として
LISPおよびSmalltalkプログラミング語が
挙げられる。
【0018】アプリケーションプログラム23はアプリ
ケーションコード31、アロケータ32、ライトルーチ
ン33およびオブジェクトアイディンティファイア34
を含むいくつかのモジュールを有している。これらのモ
ジュールの一般的動作は公知の計算技術に従う。アロケ
ータ32はメモリ割付けを行う。ライトルーチン33は
アプリケーションコード33が競合してリアルタイムメ
モリ管理を行うのに必要なオーバヘッドを管理する。
【0019】前記リアルタイムシステムは説明用であ
り、本発明は自動メモリ管理を行う埋込型コンピュータ
システムを有する任意のリアルタイムシステムについて
有用である。したがって、コンピュータシステム11の
資源にはプロセッサ時間だけでなく、ダイナミックに割
り付けおよび回収される記憶領域が含まれる。
【0020】一般的に、コンピュータシステム11は任
意数のこのような資源を有することができ、それは有界
能力を有することを特徴とする。したがって、メモリ2
2はnビツト/秒で回収することができ、プロセッサ2
1はnサイクル/秒で作動することができる。プロセッ
サ21およびメモリ22は2つの資源の例であり、もう
一つの例は入出力通信リンク29であり、それはあるビ
ット/秒で消耗することができる。
【0021】プロセッサ21等のいくつかの資源は個別
装置として利用することができ、割付けはタイムスライ
シングの関数となる。メモリ22および(図示せぬ)通
信リンク等の他の資源は時間だけでなくサイズの関数、
すなわち、消耗率の関数、として割り付けることができ
る。例えば、1メガビット/秒で消耗される資源は、各
々が1メガビット/秒の消耗率を有し毎秒1回0.5秒
間実行される2つのタスクに分割することができる。
【0022】図2Aおよび図2Bに示すように、メモリ
22には2つ以上のアプリケーションプログラムを格納
することができる。また、コンピュータシステム11の
オペレーティングシステムは2本以上のプログラムを含
むことができる。後記するように、プログラム数に無関
係に、実行すべきアプリケーションタスクおよびシステ
ムタスクがある。いくつかのタスクはクリティカルであ
り、リアルタイムシステムを成功させるためにあるデッ
ドライン内で実施しなければならないことを意味する。
一般的に、クリティカルタスクにはセンサ12〜15か
ら周期的に到来するデータを処理するタスクおよび出力
装置16もしくはアクチュエータ17〜19へデータを
出力するタスクが含まれる。他のタスクは非クリティカ
ルであり、明確な実行デッドラインを持たないことを意
味する。例えば、もう一つのプログラムが診断ルーチン
を取り扱い、資源が利用可能となるまで実施を遅延させ
ることができる。
【0023】各タスクにはそれが実行適格となる時点間
で経過する時間間隔に対して下界が課せられている。こ
の持続時間はタスクの周期と呼ばれる。したがって、周
期Pのタスクが時間Tにおいて実行解除されると、次に
解除されるのは時間T+Pよりも後である。例えば、あ
るプログラムはセンサ12からのデータを毎秒1回収集
する必要がある。したがって、このデータ収集タスクの
周期は1秒である。
【0024】タスクのもう一つの特徴は各々が一つ以上
の資源を消耗することである。各タスクの資源要求は資
源の容量以内と想定される。すなわち、要求される資源
の瞬時容量を越えなければ利用できないような大きな要
求を行うタスクは無い。非クリティカルタスクは予想不
能な資源の消耗が少く、この特徴に適応するように本発
明は設計される。
【0025】システム設計中に、システムデザイナーは
コンピュータシステム11が実施する各タスクにクリテ
ィカル対非クリティカル状態を割り付ける。各クリティ
カルタスクには、タスク周期および、満足な実施に対し
て適切である、最大割付速度が付随している。すなわ
ち、各クリティカルタスクには充分な周波数でそのシス
テムデッドラインを守るのに充分な時間が与えられる。
【0026】各タスクに最小活性化間時間を割り付ける
ことにより割付レートはタスク活性化当り最大割付けへ
変換される。例えば、データ収集例を使用すれば、セン
サ12から毎秒1回データを収集するタスクを実施する
のに0.1秒を要し各活性化中にメモリ22の最大0.
2メガビットの割付けを行うことができる。
【0027】次に、クリティカルタスクの総資源消耗が
計算される。このレートはシステムの資源容量を超えな
いものとする。例えば、1メガビット/秒のメモリ回収
容量を有するシステムではクリティカルタスクは0.6
メガビット/秒を要するように決定することができる。
【0028】クリティカルタスクを割り付けた後、資源
の残容量が決定される。この資源残容量は非クリティカ
ルタスクに利用できるものとして処理される。次に、各
非クリティカルタスクに割当てが割り付けられる。した
がって、システムが毎秒実施すべき非クリティカルタス
クが5つでする場合、各々がタスク活性化ごとに最大
0.2メガビットを使用することができる。
【0029】図4にクリティカルおよび非クリティカル
タスクに対するメモリ割付けを時間の関数として示す。
毎秒3つのクリティカルタスクT1〜T3を実行しなけ
ればならないものとする。これらの各タスクは1秒の周
期、0.1秒の実施時間、および2メガビット/秒の最
大資源消耗率を有する。したがって、0.3秒後に、各
タスクは実行され、最大0.6メガビットのメモリが割
り付けられる。これにより、0.4メガビット/秒を非
クリティカルタスクに利用することができ、残りの0.
7秒を使用してメモリの0.4メガビットを割り付ける
ことができる。
【0030】第4のクリティカルタスクはごみ集めであ
り、0.1秒の処理時間中に毎秒他のタスクにより割り
付けられるメモリの1メガビットを回収する。また、ご
み集めタスクは割付けタスクと同時に実行することがで
きる。いずれの場合にも、本発明の利点は、余分なプロ
セッサ時間を使用することなくメモリの適切な量を回収
しなければならない、ごみ集めタスクのスケジューリン
グがメモリ割付けに上界があるために簡単化されること
である。
【0031】実行時間スケジューリングを実施するため
に、各タスクの局所メモリ管理ルーチンがタスクオブジ
ェクトを実施するデータ構造へアクセスする。このデー
タ構造は各タスクに対して2つのメモリ管理フィールド
を有している。第1のフィールドにはタスク活性化当り
最大割付けを表わす値、すなわちタスク割当てが含まれ
ている。他のフィールドにはカウンタが含まれている。
【0032】クリティカルタスクのタスク割当てはタス
クの完了を保証するのに充分に高くされ、非クリティカ
ルタスク割当てはクリティカルタスクがデッドラインを
守るのを妨げられないことを保証するのに充分に低くさ
れる。本発明を強化するために、現在の条件および過去
の挙動に従って割付値をダイナミックに調整する手段が
含まれる。
【0033】図5に本発明の実行時間動作を示す。任意
所与の時間に、少くとも一つのタスクが実行可能状態に
ある。ステップ51において、スケジューラ25は実行
可能待ち行列からタスクを選定する。前記したように、
スケジューラ25はクリティカルタスクがそのデッドラ
インを守ることができるアルゴリズムに従って作動す
る。
【0034】ステップ52において、タスクが活性化さ
れるたびに、そのデータレコード内のカウンタフィール
ドがゼロへイニシャライズされる。タスクを実行する
と、ステップ53に示すように、割付け要求がなされ
る。ステップ54において、各要求に対してアロケータ
32はタスクが要求する資源の量に従ってカウンタを増
分する。
【0035】ステップ55において、現在のカウンタ値
がタスク割当てと比較される。この比較はアロケータ3
2に組み入れもしくはリンクされる任意のルーチンもし
くは他の局所メモリ管理ルーチンにより行うことができ
る。公知のタイムスケジューリング技術を使用して、タ
スクのタイムスライスを越えるかどうかも決定される。
【0036】カウンタ値がタスク割当てを越えずタスク
にプロセッサ時間が残っている場合、ステップ56によ
り割付けが行われ、タスクは継続して実行される。
【0037】しかしながら、ステップ55の比較により
要求が割当てを越えると決定されるか、もしくはタスク
のプロセッサ時間が尽きると、ステップ57においてス
ケジューラ25へ信号が送られタスクの実行が停止され
る。封鎖タスク待ち行列にプリエンプティブタスクが加
えられ、適切な時間にスケジューラ25により再起動さ
れる。
【0038】このようにして、任意の活性化中に割当て
以上に消耗しようとしたり全プロセッサ時間を使用する
ような場合に、次の周期の開始まで各タスクにプロセッ
サ21を放棄するよう要求することにより、メモリ22
内のスペース消耗率が制御される。図5はメモリ割付け
に関するものであるが、単位時間当りビットで消耗され
る任意の資源に対して同じ方法を使用することができ
る。
【0039】図6、図7Aおよび図7Bに本発明を使用
してダイナミックに割り付けられるメモリを消耗するタ
スクおよびごみ集めタスクをスケジュールする詳細例を
示す。図6はごみ集めタスクおよび割付メモリを消耗す
る5つのタスク(T1〜T5)のパラメータを示す。各
タスクは周期、実行時間、総プロセッサ時間の%、最大
割付率、総割付けの%、割付け割当ておよび図7Aのタ
スクが活性化されるたびに消耗される実際のメモリ量を
有している。総割付率は2メガビット/秒であり、各タ
スクの最大割付率はその一部となる。ごみ集めタスクは
2メガビット/秒のレートでメモリを回収できるものと
する。
【0040】図7Aに図6に示す各タスクのタスク周
期、実行時間および割当てに関する消耗率を示す。ごみ
集めタスクの優先順位が最も高く、T1〜T5タスクの
優先順位はこの順で低くなるものとする。ごみ集めタス
クはt=0.75秒において0.1秒間実行される。各
タスクT1〜T5をそれ自体のグラフに示し、x軸はタ
スク周期により制限される時間(秒)を表わし、y軸は
タスク割当てにより制限される割付けメモリ(メガビッ
ト)を表わす。
【0041】例えば、T1の周期は0.5秒であり1秒
のプロセッサ時間中に2回実行される。それは0.1秒
間実行され、その間に最大0.4メガビット/秒の割合
いでメモリが消耗される。したがって、実際上0.1メ
ガビットが消耗されるため、0.2メガビットの割当て
を越えることはない。同様に、T2およびT3の割当て
も越えることがない。しかしながら、T4は最初の活性
化中に割当てを越えようとし次の周期まで横取りされ
る。実行時間が0.2秒であるT5は0.4秒で開始さ
れ0.5秒でT1の第2の実行により横取りされ次にT
4の再開により横取りされる。T5は0.65秒で再開
され0.75秒で終了し、その時ごみ集めが0.1秒実
行されてダイナミックに割り付けられた非使用メモリを
回収する。
【0042】図7BにGCタスクにより回収されるメモ
リだけでなく、図7Aの1秒間隔中に各タスクにより割
り付けられるメモリの和を示す。前記したように、5つ
のタスクT1〜T5はt=0.75秒でGCが開始され
てメモリを回収するまでに1.3メガビットのメモリを
消耗する。
【0043】他の実施例 特定実施例について本発明を説明してきたが、本説明は
制約的な意味合いを有するものではない。同業者ならば
別の実施例や開示した実施例のさまざまな変更を容易に
考えられることと思う。したがって、特許請求の範囲に
は本発明の範囲に入る全ての修正が含まれるものとす
る。
【0044】以上の説明に関して更に以下の項を開示す
る。 (1) 単位時間当りビットで消耗される資源を有するリ
アルタイム埋込コンピュータシステムにより実行される
タスクのスケジューリング法において、該方法は、現在
実行中のタスクに前記タスクが活性化するたびに消耗す
る最大ビット数を表わす最大割付値を関連ずけ、前記タ
スクの実行間隔で前記資源の消耗をビットでカウント
し、前記消耗値を前記最大割付値と比較し、前記カウン
タ値が前記最大割付値を越える場合には前記タスクの実
行を停止すべきことを示す信号をスケジューラへ送る、
ことからなるタスクスケジューリング法。
【0045】(2) 第(1) 項記載の方法において、前記
資源はダイナミックに割り付けられかつメモリが回収さ
れる、タスクスケジューリング法。
【0046】(3) 第(2) 項記載の方法において、さら
にごみ集めタスクをスケジューリングするステップから
なる、タスクスケジューリング法。
【0047】(4) 第(1) 項記載の方法において、前記
資源はビット/秒の容量を有する通信リンクである、タ
スクスケジューリング法。
【0048】(5) 第(1) 項記載の方法において、前記
タスクは、前記タスクがシステムデッドラインを守るこ
とができるように前記最大割付値が決定されている、ク
リティカルタスクである、タスクスケジューリング法。
【0049】(6) 第(1) 項記載の方法において、前記
タスクは非クリティカルタスクであり前記最大割付値は
前記非クリティカルタスクがクリティカルタスクのタイ
ムリーな実行を妨げないように決定されている、タスク
スケジューリング法。
【0050】(7) 第(2) 項記載の方法において、前記
カウンティングステップおよび前記比較ステップは前記
タスクを実行するプログラムの局所アロケータへリンク
されている、タスクスケジューリング法。
【0051】(8) 第(1) 項記載の方法において、前記
タスクは前記コンピュータシステムのプロセッサのタイ
ムスライス内で実行され、前記タイムスライスが限れる
かもしくは前記カウンタ値が前記最大割付値を越える場
合には前記タスクの実行を停止させる必要がある、タス
クスケジューリング法。
【0052】(9) 第(1) 項記載の方法において、さら
に前記最大割付値をダイナミックに調整するステップか
らなる、タスクスケジューリング法。
【0053】(10) アプリケーションプログラムをハー
ドリアルタイムで実行しかつ自動メモリ管理プログラミ
ングによりプログラムされているコンピュータシステム
において、該コンピュータシステムは、アプリケーショ
ンプログラムおよびオペレーティングシステムプログラ
ムを実行する中央処理ユニットと、前記プログラムおよ
びそれにより処理されるデータを記憶するコンピュータ
メモリと、前記アプリケーションプログラムにより割り
付けられるメモリを回収するごみ集めと、前記プログラ
ムの現在タスクの割付け要求に従って割付値を増分する
カウンタと、前記カウンタの現在値を前記メモリ内に格
納されかつ前記現在タスクに関連する最大割付値と比較
する比較器と、前記中央処理装置がどのタスクを処理す
べきかを決定するスケジューラであって前記カウンタ値
が前記最大割付値を越える場合に前記比較器から信号を
受信し前記信号に応答して前記現在タスクの実行を一時
的に中止させるスケジューラ、を具備するコンピュータ
システム。
【0054】(11) 第(10)項記載のシステムにおいて、
前記カウンタおよび前記コンピュータは前記自動メモリ
管理プログラミングの局所割付ルーチンにリンクされて
いるソフトウェアルーチンである、コンピュータシステ
ム。
【0055】(12) 第(10)項記載のシステムにおいて、
前記カウンタおよび前記比較器はハードウェアデバイス
として実施される、コンピュータシステム。
【0056】(13) 単位時間当りビットで消耗される資
源を有するリアルタイム埋込コンピュータシステム用タ
スクコントローラにおいて、該タスクコントローラは、
コンピュータシステムにより実行されるタスクに対する
最大割付値を格納するメモリと、現在実行中タスクの割
付要求をカウントするカウンタと、前記現在実行中タス
クの最大割付値を前記カウンタの出力と比較する比較器
と、前記カウンタの前記出力が前記最大割付値を越える
場合には前記現在実行中タスクに関してシステムスケジ
ューラへ信号を送出する通信手段、を具備するタスクコ
ントローラ。
【0057】(14) 第(13)項記載のシステムにおいて、
前記カウンタおよび前記比較器は前記自動メモリ管理プ
ログラミングの局所割付ルーチンにリンクされたソフト
ウェアである、タスクコントローラ。
【0058】(15) 第(13)項記載のシステムにおいて、
前記カウンタおよび前記比較器はハードウェアデバイス
として実施される、タスクコントローラ。
【0059】(16) 第(13)項記載の方法において、前記
資源はダイナミックに割り付けられるメモリである、タ
スクコントローラ。
【0060】(17) 第(16)項記載の方法において、さら
にごみ集めタスクをスケジューリングするステップから
なる、タスクコントローラ。
【0061】(18) 第(13)項記載の方法において、前記
資源はビット/秒の容量を有する通信リンクである、タ
スクコントローラ。
【0062】(19) 第(13)項記載の方法において、前記
タスクは、前記タスクがシステムデッドラインを守るこ
とができるように前記最大割付値が決定されている、ク
リティカルタスクである、タスクコントローラ。
【0063】(20) 第(13)項記載の方法において、前記
タスクは非クリティカルタスクであり前記最大割付値は
前記非クリティカルタスクによりクリティカルタスクの
タイムリーな実行が妨げられないように決定されてい
る、タスクコントローラ。
【0064】(21) 自動メモリ管理もしくはビットレー
トで消耗される他の資源を有するリアルタイムコンピュ
ータシステム用タスクスケジューリング法。本方法によ
り非クリティカルタスクがクリティカルタスクのタイム
リーな実行を妨げないことが保証される。各タスクは資
源の消耗率で評価される。消耗率は各タスクに消耗割当
てを割り付け、実行時の各タスクの消耗を追跡し続けて
制御される54,55,56。割当て以上に消耗しよう
とする場合、タスクはそのプロセッサ時間を放棄する必
要がある。
【図面の簡単な説明】
【図1】埋込リアルタイムコンピュータシステムを有す
る航空機のブロック図。
【図2】図1の埋込コンピュータシステムをプログラム
するソフトウェアを示す図であって、Aは一実施例を示
す図、Bはもう一つの実施例を示す図。
【図3】アプリケーションプログラムのプログラムモジ
ュールを示す図。
【図4】単位時間当りビットで消費されるリソースの分
割例を示す図。
【図5】非クリティカルタスクによる割付メモリの消費
がクリティカルタスクのタイムリーな実行を妨げないよ
うにリアルタイムシステムでタスクをスケジューリング
する方法を示す図。
【図6】本発明を使用してスケジュールされるタスクの
タスクパラメータを示すテーブル。
【図7】本発明に従った図6のタスクのタスクスケジュ
ーリングを示す図であって、Aは各タスクの消費率を示
す図、Bは各タスクにより割付けられるメモリの和を示
す図。
【符号の説明】
10 機上車 11 コンピュータシステム 12 センサ 13 センサ 14 センサ 15 センサ 16 出力装置 17 アクチュエータ 18 アクチュエータ 19 アクチュエータ 21 CPU 22 メモリ 22A プログラムメモリ 22B データ記憶エリア 23 アプリケーションプログラム 24 アプリケーションプログラム 25 ジョブスケジューラ 26 ごみ集め 29 入出力通信リンク 31 アプリケーションコード 32 アロケータ 33 ライトルーチン 34 オブジェクトアイディンティファイア
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年11月25日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 単位時間当りビットで消耗される資源を
    有するリアルタイム埋込コンピュータシステムにより実
    行されるタスクのスケジューリング法において、該方法
    は、現在実行中のタスクに前記タスクが活性化するたび
    に消耗する最大ビット数を表わす最大割付値を関連ず
    け、前記タスクの実行間隔で前記資源の消耗をビットで
    カウントし、前記消耗値を前記最大割付値と比較し、前
    記カウンタ値が前記最大割付値を越える場合には前記タ
    スクの実行を停止すべきことを示す信号をスケジューラ
    へ送る、ことからなるタスクスケジューリング法。
  2. 【請求項2】 単位時間当りビットで消耗される資源を
    有するリアルタイム埋込コンピュータシステム用タスク
    コントローラにおいて、該タスクコントローラは、コン
    ピュータシステムにより実行されるタスクに対する最大
    割付値を格納するメモリと、現在実行中タスクの割付要
    求をカウントするカウンタと、前記現在実行中タスクの
    最大割付値を前記カウンタの出力と比較する比較器と、
    前記カウンタの前記出力が前記最大割付値を越える場合
    には前記現在実行中タスクに関してシステムスケジュー
    ラへ信号を送出する通信手段、を具備するタスクコント
    ローラ。
JP4169161A 1991-06-28 1992-06-26 タスクスケジューリング法およびタスクコントローラ Pending JPH06168143A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US722776 1991-06-28
US07/722,776 US5210872A (en) 1991-06-28 1991-06-28 Critical task scheduling for real-time systems

Publications (1)

Publication Number Publication Date
JPH06168143A true JPH06168143A (ja) 1994-06-14

Family

ID=24903342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4169161A Pending JPH06168143A (ja) 1991-06-28 1992-06-26 タスクスケジューリング法およびタスクコントローラ

Country Status (2)

Country Link
US (1) US5210872A (ja)
JP (1) JPH06168143A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004513588A (ja) * 2000-11-13 2004-04-30 シーメンス メディカル ソリューションズ ユーエスエー インコーポレイテッド リアルタイムデータを表わすイメージとノンリアルタイムデータを表わすイメージの各々を同時に表示するための方法および装置
JP2008217141A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 制御装置および記憶装置

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2520544B2 (ja) * 1991-09-26 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置
FR2682202B1 (fr) * 1991-10-03 1994-03-11 Sextant Avionique Procede et dispositif pour la gestion temps reel d'un systeme comprenant au moins un processeur apte a gerer plusieurs fonctions.
CA2076293A1 (en) * 1991-10-11 1993-04-12 Prathima Agrawal Multiprocessor computer for solving sets of equations
US5421011A (en) * 1991-12-20 1995-05-30 International Business Machines Corporation Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users
US5386561A (en) * 1992-03-31 1995-01-31 International Business Machines Corporation Method of integrated system load control through dynamic time-slicing in a virtual storage environment
FI91456C (fi) * 1992-07-29 1994-06-27 Nokia Telecommunications Oy Menetelmä tietokoneessa varattujen resurssien hallitsemiseksi
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
US5388261A (en) * 1992-09-30 1995-02-07 Apple Computer, Inc. Apparatus and method for handling frame overruns in a digital signal processing system
EP0594871A1 (en) * 1992-10-09 1994-05-04 Fujitsu Limited Multi-media scheduling system
DE69429204T2 (de) * 1993-03-26 2002-07-25 Cabletron Systems Inc Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5432924A (en) * 1993-12-15 1995-07-11 Microsoft Corporation Method and system for selectively applying an appropriate object ownership model
US5619695A (en) * 1994-02-03 1997-04-08 Lockheed Martin Corporation Method and apparatus for scheduling resources
JP3588485B2 (ja) * 1994-08-26 2004-11-10 富士通株式会社 プロセススケジューリング方式
US5550970A (en) * 1994-08-31 1996-08-27 International Business Machines Corporation Method and system for allocating resources
EP0725340A3 (en) * 1995-02-03 1996-10-02 Ibm Apparatus and method for managing the workload of a distributed data processing system by limiting the consumption of processing capacity
JPH08328880A (ja) * 1995-05-31 1996-12-13 Mitsubishi Electric Corp 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US6223201B1 (en) * 1996-08-27 2001-04-24 International Business Machines Corporation Data processing system and method of task management within a self-managing application
US6601083B1 (en) * 1996-08-29 2003-07-29 Frederick John Reznak Multitasking data processing system and method of controlling allocation of a shared resource
US5954792A (en) * 1996-12-30 1999-09-21 Cadence Design Systems, Inc. Method for schedule validation of embedded systems
US6317774B1 (en) * 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule
US6289488B1 (en) 1997-02-24 2001-09-11 Lucent Technologies Inc. Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems
US6117180A (en) * 1997-02-24 2000-09-12 Lucent Technologies Inc. Hardware-software co-synthesis of heterogeneous distributed embedded systems for low overhead fault tolerance
US6178542B1 (en) 1997-02-24 2001-01-23 Lucent Technologies Inc. Hardware-software co-synthesis of embedded system architectures using quality of architecture metrics
US6230303B1 (en) 1997-02-24 2001-05-08 Lucent Technologies Inc. Proximity-based cluster allocation for hardware-software co-synthesis of heterogeneous distributed embedded systems
US6110220A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Concurrent hardware-software co-synthesis of hard real-time aperiodic and periodic specifications of embedded system architectures
US6112023A (en) * 1997-02-24 2000-08-29 Lucent Technologies Inc. Scheduling-based hardware-software co-synthesis of heterogeneous distributed embedded systems
EP0863462B8 (en) 1997-03-04 2010-07-28 Panasonic Corporation Processor capable of efficiently executing many asynchronous event tasks
JPH10257281A (ja) * 1997-03-12 1998-09-25 Minolta Co Ltd 画像形成装置
US6654780B1 (en) * 1997-03-28 2003-11-25 International Business Machines Corporation System of managing processor resources in a non-dedicated computer system
US5925102A (en) * 1997-03-28 1999-07-20 International Business Machines Corporation Managing processor resources in a multisystem environment in order to provide smooth real-time data streams, while enabling other types of applications to be processed concurrently
US5948065A (en) * 1997-03-28 1999-09-07 International Business Machines Corporation System for managing processor resources in a multisystem environment in order to provide smooth real-time data streams while enabling other types of applications to be processed concurrently
US6282560B1 (en) * 1997-03-28 2001-08-28 International Business Machines Corporation Managing processor resources in a non-dedicated computer system
US6604200B2 (en) * 1997-04-22 2003-08-05 Intel Corporation System and method for managing processing
US6938254B1 (en) * 1997-05-06 2005-08-30 Microsoft Corporation Controlling memory usage in systems having limited physical memory
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6014760A (en) * 1997-09-22 2000-01-11 Hewlett-Packard Company Scheduling method and apparatus for a distributed automated testing system
US6256679B1 (en) * 1997-12-23 2001-07-03 Simmonds Precision Products, Inc. Blackboard-centric layered software architecture for an embedded airborne fuel gauging subsystem
US6097886A (en) * 1998-02-17 2000-08-01 Lucent Technologies Inc. Cluster-based hardware-software co-synthesis of heterogeneous distributed embedded systems
US6086628A (en) * 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US6415384B1 (en) 1998-10-30 2002-07-02 Lucent Technologies Inc. Hardware/software co-synthesis of dynamically reconfigurable embedded systems
GB9907280D0 (en) * 1999-03-31 1999-05-26 Philips Electronics Nv A method of scheduling garbage collection
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6738972B1 (en) * 1999-12-30 2004-05-18 Opentv, Inc. Method for flow scheduling
US7099855B1 (en) 2000-01-13 2006-08-29 International Business Machines Corporation System and method for electronic communication management
US20010049710A1 (en) * 2000-05-16 2001-12-06 Curey Randall K. Partitioned executive structure for real-time programs
US6408277B1 (en) 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
US7165221B2 (en) * 2000-11-13 2007-01-16 Draeger Medical Systems, Inc. System and method for navigating patient medical information
FR2818769B1 (fr) * 2000-12-21 2004-06-18 Eads Airbus Sa Procede et systeme d'exploitation temps reel multitaches
US7644057B2 (en) 2001-01-03 2010-01-05 International Business Machines Corporation System and method for electronic communication management
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US6957431B2 (en) * 2001-02-13 2005-10-18 International Business Machines Corporation System for incrementally computing the maximum cost extension allowable for subsequent execution of each task using fixed percentage of the associated cost
US8122119B1 (en) 2001-02-27 2012-02-21 Flowcharge, Inc. Non-resident metering and billing system for applications and devices
US20030009508A1 (en) * 2001-06-26 2003-01-09 Troia Terry A. Method and system for providing processor task scheduling
US20030028583A1 (en) * 2001-07-31 2003-02-06 International Business Machines Corporation Method and apparatus for providing dynamic workload transition during workload simulation on e-business application server
US7203943B2 (en) * 2001-10-31 2007-04-10 Avaya Technology Corp. Dynamic allocation of processing tasks using variable performance hardware platforms
US7007197B2 (en) * 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
US7484216B2 (en) * 2002-06-18 2009-01-27 Microsoft Corporation System and method for decoupling space reservation in transactional logging systems
US7536689B2 (en) * 2003-01-10 2009-05-19 Tricerat, Inc. Method and system for optimizing thread scheduling using quality objectives
US7389230B1 (en) 2003-04-22 2008-06-17 International Business Machines Corporation System and method for classification of voice signals
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US8495002B2 (en) * 2003-05-06 2013-07-23 International Business Machines Corporation Software tool for training and testing a knowledge base
US20050187913A1 (en) 2003-05-06 2005-08-25 Yoram Nelken Web-based customer service interface
US20050259683A1 (en) * 2004-04-15 2005-11-24 International Business Machines Corporation Control service capacity
US8789051B2 (en) 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
JP2008527558A (ja) * 2005-01-13 2008-07-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ タスクスケジューリングのデータ処理システム及び方法
US7729270B2 (en) 2005-01-13 2010-06-01 International Business Machines Corporation Method for supporting on-demand performance
US7613897B2 (en) * 2005-03-30 2009-11-03 International Business Machines Corporation Allocating entitled processor cycles for preempted virtual processors
US8495613B2 (en) * 2005-12-22 2013-07-23 Microsoft Corporation Program execution service windows
US8225320B2 (en) * 2006-08-31 2012-07-17 Advanced Simulation Technology, Inc. Processing data using continuous processing task and binary routine
US8949555B1 (en) 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
DE102007051803A1 (de) * 2007-10-30 2009-05-07 Infineon Technologies Ag Verfahren und Vorrichtung zur Datenverarbeitung
US8959328B2 (en) * 2007-11-13 2015-02-17 Intel Corporation Device, system, and method for multi-resource scheduling
US8284198B1 (en) * 2008-03-03 2012-10-09 Network Appliance, Inc. Method for visualizing space utilization in storage containers
US8392924B2 (en) * 2008-04-03 2013-03-05 Sharp Laboratories Of America, Inc. Custom scheduling and control of a multifunction printer
US8102552B2 (en) * 2008-04-03 2012-01-24 Sharp Laboratories Of America, Inc. Performance monitoring and control of a multifunction printer
US8161493B2 (en) * 2008-07-15 2012-04-17 International Business Machines Corporation Weighted-region cycle accounting for multi-threaded processor cores
US20120079486A1 (en) * 2010-09-23 2012-03-29 International Business Machines Corporation Integration of dissimilar job types into an earliest deadline first (edf) schedule
CN102945185B (zh) * 2012-10-24 2015-04-22 深信服网络科技(深圳)有限公司 任务调度方法及装置
US9519869B2 (en) * 2013-11-25 2016-12-13 International Business Machines Corporation Predictive computer system resource monitoring
US10007556B2 (en) * 2015-12-07 2018-06-26 International Business Machines Corporation Reducing utilization speed of disk storage based on rate of resource provisioning
CN112379983A (zh) * 2020-11-13 2021-02-19 天合光能股份有限公司 基于时间片的嵌入式实时系统负载均衡任务调度算法
JP2023123074A (ja) * 2022-02-24 2023-09-05 トヨタ自動車株式会社 情報処理システム、および、それが搭載された車両
US11792135B2 (en) 2022-03-07 2023-10-17 Bank Of America Corporation Automated process scheduling in a computer network
US11922161B2 (en) 2022-03-07 2024-03-05 Bank Of America Corporation Scheduling a pausable automated process in a computer network
US12026501B2 (en) 2022-03-07 2024-07-02 Bank Of America Corporation Automated process and system update scheduling in a computer network
CN121745636B (zh) * 2026-02-25 2026-06-23 蓝色向量智能科技(杭州)有限公司 一种低空飞行器的电能分配方法、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648253A (en) * 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
US4035778A (en) * 1975-11-17 1977-07-12 International Business Machines Corporation Apparatus for assigning space in a working memory as a function of the history of usage
US4262331A (en) * 1978-10-30 1981-04-14 Ibm Corporation Self-adaptive computer load control
US4989133A (en) * 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
US4954948A (en) * 1986-12-29 1990-09-04 Motorola, Inc. Microprocessor operating system for sequentially executing subtasks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004513588A (ja) * 2000-11-13 2004-04-30 シーメンス メディカル ソリューションズ ユーエスエー インコーポレイテッド リアルタイムデータを表わすイメージとノンリアルタイムデータを表わすイメージの各々を同時に表示するための方法および装置
JP2008217141A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 制御装置および記憶装置

Also Published As

Publication number Publication date
US5210872A (en) 1993-05-11

Similar Documents

Publication Publication Date Title
US5210872A (en) Critical task scheduling for real-time systems
US5212793A (en) Generic initiators
Gu et al. Dynamic budget management with service guarantees for mixed-criticality systems
US6732139B1 (en) Method to distribute programs using remote java objects
US7302685B2 (en) Methods and apparatus for sharing slack in a time-partitioned system
US20110161972A1 (en) Goal oriented performance management of workload utilizing accelerators
US20070169125A1 (en) Task scheduling policy for limited memory systems
CN111258746B (zh) 资源分配方法和服务设备
US7191446B2 (en) Method for resource management in a real-time embedded system
US8316365B2 (en) Computer system
US6473780B1 (en) Scheduling of direct memory access
US12180475B2 (en) Oversubscription scheduling
US20060037021A1 (en) System, apparatus and method of adaptively queueing processes for execution scheduling
TWI838000B (zh) 雲端資源配置系統、裝置及方法
CN120123052A (zh) 任务调度方法、装置、电子设备和存储介质
CN118295820B (zh) 一种基于Map Reduce的分布式任务计算调度方法
CN119248446A (zh) 基于分布式集成的自适应软硬件协同调度系统及方法
CN118585301A (zh) 一种突发计算任务下实时控制系统的安全调度方法
US20030023660A1 (en) Real-time embedded resource management system
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JPH05151064A (ja) 密結合マルチプロセツサシステム
Kang et al. Elastic vertical memory management for container-based stateful applications in kubernetes
JP3885748B2 (ja) グループ単位ギャングスケジューリング方式
Yabuuchi et al. Multi-resource low-latency cluster scheduling without execution time estimation
AU2021106510A4 (en) A method of cpu scheduling performance analysis using markov chain modeling.