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