JP3676827B2 - マルチプロセッサシステム用のスケジューリング方法 - Google Patents

マルチプロセッサシステム用のスケジューリング方法 Download PDF

Info

Publication number
JP3676827B2
JP3676827B2 JP22021091A JP22021091A JP3676827B2 JP 3676827 B2 JP3676827 B2 JP 3676827B2 JP 22021091 A JP22021091 A JP 22021091A JP 22021091 A JP22021091 A JP 22021091A JP 3676827 B2 JP3676827 B2 JP 3676827B2
Authority
JP
Japan
Prior art keywords
task
processing
tasks
processing characteristics
time
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.)
Expired - Fee Related
Application number
JP22021091A
Other languages
English (en)
Other versions
JPH06119300A (ja
Inventor
エイ.ボーケアーディング マーク
クールマン ジェイ.チャールズ
シュナイダー スティーブ
Original Assignee
テキサス インスツルメンツ インコーポレイテツド
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 テキサス インスツルメンツ インコーポレイテツド filed Critical テキサス インスツルメンツ インコーポレイテツド
Publication of JPH06119300A publication Critical patent/JPH06119300A/ja
Application granted granted Critical
Publication of JP3676827B2 publication Critical patent/JP3676827B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling 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)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【産業上の利用分野】
本発明はコンピュータシステムに関し、特に、マルチプロセッサ;マルチタスキングシステムのタスクをスケジューリングする方法に関する。
【0002】
【従来の技術】
マルチ処理は並列処理の一種であり、2個以上のプロセッサで別々のプログラムの実行を分担するやり方である。マルチタスキングはマルチ処理の特別の場合であって、ソフトウェアの処理、すなわちタスクを規定するものである。タスクはサブプログラムであって、同時に他のサブプログラムと一緒に実行することができる。
【0003】
マルチタスク環境では、衝突せずに並列に実行できるように、タスクとジョブのデータ構造とを注意深く分割しなければならない。しかし、プロセッサの使用可能度、実行の順番およびタスクの完了はシステムの運転時の状態の関数である。したがって、タスク自身は正しく決められていても、マルチタスキングは時間に関して本質的に不確定なものである。
【0004】
マルチタスキングを確実に成功させるには、一旦タスクを分割した場合、効率的に資源を共有するようにオペレーティングシステムを展開しなければならない。資源を処理に割り当てることを「スケジューリング」と呼ぶ。スケジューリングはリアルタイム入力に対してリアルタイムに応答することを必要とするシステムにおいて特に重要である。
【0005】
既存のマルチタスキング・スケジューリング・システムではたいていが優先度方式を用いているが、これは本質的に静的なものである。優先度方式では、タスクがどれほどの時間を必要とするか、タスクがどれほどのメモリ量を必要とするか、あるいはそのメモリが必要とする時間のような、タスクの処理に必要なことを考慮していない。メモリに対する要求は、タスクがもっとメモリを必要とする前に、所定量のメモリを用いて、どれ位の時間そのタスクを実行することができるかにより決定される。
【0006】
スケジューリングを行う他の方法としては、「タイムスライシング」がある。この場合、タスクの各部分に、限定された実行時間が与えられる。この時間が経過すると、別のタスクの部分が実行される。すなわち、タスクが所定の時間内に終らなかったならば、プロセッサは次に待っているタスクに割当てられ、未完了のタスクはもう一度スケジューリングされる。タイムスライス方式の欠点は、タスクの切替え時にオーバヘッドがあることである。
【0007】
【発明が解決しようとする課題】
余分な処理用オーバヘッドを生ずることなく、資源を効率よく利用するタスクのスケジューリング方法が必要である。
【0008】
【課題を解決するための手段】
本発明によれば、マルチタスキング、マルチプロセッサシステムのプロセッサにより実行される、タスクのスケジューリング方法が提供される。メモリの要求やプロセッサの使用のような、実行すべきタスクの処理特性が実験的に決められる。各タスクはそのタスクの処理特性を表わすデータ構造に関連づけられている。実行時にはタスクが呼び出されて、タスク待ち行列の中に配置される。実行のためにタスクが待ち行列から取り出されると、タスクは自分の処理特性をスケジューラプログラムに知らせる。それからスケジューラはタスクの処理特性と利用可能な資源とに応じて、タスクにより使用される処理資源を選択する。
【0009】
本発明の技術的特徴は、リアルタイム応答性を従来より容易に維持できることである。タスクは必要な時間だけ実行し続けられるように、その処理の必要性に応じてスケジューリングされる。システムの資源の負荷がどの位か、および、更に処理を負担させることができるか否かを決めるために、システムの性能を監視することもできる。
【0010】
【実施例】
図1はマルチプロセッサ、マルチタスキングコンピュータ処理システム10のブロック図であり、ホストプロセッサシステム11が信号プロセッサシステム15と通信可能になっている。プロセッサ11と15間の通信手段はバス19であって、例えば32ビットNU−BUS標準のような認知されたいくつかの2進通信法のうち任意のものに適合している。本発明の利点の一つはNU−BUS標準の簡単なメモリマップアーキテクチャに適合していることである。
【0011】
ホストプロセッサシステム11はホストプロセッサ12とメモリ13とを含む。ホストプロセッサ12は例えばモトローラ社製の68030のような汎用プロセッサである。メモリ13はホストプロセッサ12の命令を記憶するためのプログラムメモリと、信号プロセッサシステム15にダウンロードされるプログラムルーチンとパラメータとを記憶するメモリとを含む。ダウンロードするプロセスは後述する。
【0012】
信号プロセッサシステム15はいくつかの信号プロセッサ16とそれらの各々に付属したメモリ17とを含む。信号プロセッサ16は例えばテキサスインスツルメント社製のTMS320C30である。本実施例の場合、メモリ17の適当な大きさは250K×4バイトである。信号プロセッサシステム15はホストプロセッサ12からダウンロードされたプログラムルーチンを実行する。1個のプログラムルーチンを実行し終わると、信号プロセッサシステム15はそのことをホストプロセッサ12に知らせるので、ホストプロセッサは別のルーチンをダウンロードすることができる。
【0013】
信号プロセッサ16同士は相互に通信可能なので、信号プロセッサシステム15は同時に2個以上のタスクを実行することができる。例えば、信号プロセッサシステムは図1に示すように3個の信号プロセッサ16から構成してもよい。各信号プロセッサ16は自己に割当てられたメモリ17を有し、各メモリは隣接メモリ17と相互に接続されているので、信号プロセッサ16間で通信することができる。
【0014】
各信号プロセッサ16は呼処理部を持っているので、2個以上の呼出しを同時に処理することができる。処理の仕方はホストプロセッサ12から供給されたスクリプトにより各呼出しに毎に異なってもよい。
【0015】
図2は電話回線通信に使われる典型的なマルチプロセッサシステム10の適用例を示す。この例では、ホストプロセッサシステム11はボイスメールサービスを扱うサービスコントロールシステム21の一部である。サービスコントロール21はまた、データベース管理システム(図示せず)と通信するための通信搬送部と適当なインタフェイスとを有する。データベース管理システムとは、大きなデータベースシステムを必要とする顧客の記録とその他の情報とを管理するものである。サービスコントロールシステムはまた、バス19を介して電話制御システム22とも通信することができるようになっている。電話制御システム22にはディジタル処理システム15が含まれている。ディジタル処理システム15はT1線24からT1バッファ23を経由してデータを受信して、電気通信プロトコルに従って音声データを実際に送受信する。T1バッファ23は例えば、マイテル社製のMT8920 ST−バス並列アクセス回路である。図3を用いて後述するが、本発明を実際に応用する際には、信号処理システム15は、複数個の信号プロセッサ16を有し、T1線の複数チャネルから入力を受信するマルチプロセッサ、マルチタスキングシステムである。
【0016】
ボイスメールにマルチプロセッサシステム10を使うことに関しては、係属中の米国特許出願シリアルNo. 570,171,「Digital Signal Processing Control Method and Apparatus(ディジタル信号処理制御方法および装置)」にもっと詳細に記載されている。なお、この特許出願も本発明の譲り受け人に譲渡されている。そこに開示されている方法は、その発明のマルチプロセッサ環境の範囲内でデータを転送するひとつの方法である。しかし、本発明の方法はそのような特定の構成を用いて機能するものに限らず、図1に示すように、少なくとも2個のプロセッサが1個のプロセッサのメモリへのアクセスを共有するようなマルチプロセッサ環境ならば、どんなものでも使うことができよう。
【0017】
信号処理システム15の処理タスク、すなわち、信号プロセッサ16により実行される機能は、ホストプロセッサシステム11にロードされるアプリケーションプログラムの部分により表わされる。これらのコードの部分はここでは「スクリプト」と呼ぶ。ホストプロセッサ12は実行すべきタスクの特定の順番を動的に決定する。したがって「スクリプト」を決定する。スクリプトは擬似コード形式で信号プロセッサ12にダウンロードされ、図3に示すようにスクリプトインタプリンタ32により解読される。その結果は、ホストプロセッサ12が信号プロセッサ16に実行することを要求するタスクを特定する1組のバイトコードを表わす。ホストプロセッサ12またはスクリプトインタプリンタ32のいずれかによって、タスクを処理する能力のある特定の信号プロセッサ16にタスクが割当てられる。
【0018】
ボイスメールの場合には、タスクは着呼により開始される。タスクの一例は電話に応答することである。他のタスクにはメッセージを聴くことや、メッセージを記録することなどがある。ボイスメッセージ処理のような場合には、一旦電話に応答するタスクが実行されると、その次のタスクは発呼者の入力により変る。例えば発呼者はメッセージを聴くこと、メッセージを記録すること、あるいは交換手につなぐことなどを要求するだろう。したがって、ボイスメッセージの場合には、スクリプトは、一旦電話応答がなされたとき、続いて信号プロセッサが実行すべきコードを表わす。
【0019】
マルチタスキング動作の一例として、電話に応答するタスクがある。ホストドライバ33は選択組を受信するために「複合読取り」を行い、ホストプロセッサ12はこのタスク用のスクリプトを含む領域サブセットを信号プロセッサ16に供給する。タスクを実行する能力を有する各信号プロセッサ16はスクリプトを解釈してそれを実行する準備を行う。電話が鳴ると、最初に利用可能な信号プロセッサ16が呼び出しに応答する。次の電話が鳴ると、第2の信号プロセッサ16が処理する。以下同様に動作する。
【0020】
図3はメモリ17に記憶されている信号プロセッサ16のプログラムとデータの記憶に関する機能ブロック図である。プログラムは3個の主部を有する。実行制御部31と、スクリプトインタプリタ部32と、ホストドライバ部33とである。実行制御部31は信号プロセッサ16により実行されるコードを記憶する。このコードはホストプロセッサ12により変えられない。このコードはダウンロードされたルーチンからの特定の機能の呼出しをサポートする。例えば、ダウンロードされたルーチンは機能「ゲントーン(gentone)5」を呼び出してもよいだろう。この機能はキーパッドの数字5に相当するDTMF信号が所望されていることを示している。ホストドライバ33は、標準デバイスドライバがディスクドライブのような周辺機器とやりとりするのと同様なI/O処理法で、ホストプロセッサ12とI/O処理のやりとりを行う。スクリプトインタ プリタ部32は上述のようにスクリプトを解釈する。図3に示すように、メモリ17はまたホストプロセッサ12からダウンロードされたプログラムコードとその他のデータを記憶するための主記憶領域34を有する。
【0021】
ホストプロセッサ12と信号プロセッサ16は各々それぞれ自分のメモリ13と17ヘのアクセスに関して、排他的に制御することができる。したがって、各プロセッサ12と16は自分自身のI/O動作を実行する。
【0022】
プロセッサ間の通信、特にホストプロセッサ12から信号プロセッサ16へのダウンロードについては、係属中の米国特許出願シリアルNo.576,258,「Method for Communications Between Processors of a Multi−processor System(マルチプロセッサシステムにおけるプロセッサ間の通信方法)」に詳しく述べてある。なお、この発明も本発明の譲り受け人に譲渡されている。要約すると、ホストプロセッサ12は信号プロセッサ16に書きこもうとするデータを領域により特定する。信号プロセッサ16は整合読取り動作を行って、その領域のデータを受信する。これらの整合書込み/読取り動作を行うことにより、信号プロセッサ16上ではホストプロセッサ12の領域へ排他的にアクセスする処理がなされるようになる。信号プロセッサに領域が供給可能になる前に信号プロセッサが領域を要求できるようにすることによって、信号プロセッサ16がホストプロセッサの領域へのアクセスを完了する前に、ホストプロセッサがその領域に書込むことができないようにする。
【0023】
ホストドライバ33を用いて「複合読取り」(compoundread)操作を行うことにより、処理のオーバヘッドが軽減される。この操作は1スクリプト当り1回だけI/O動作を必要とするが、この操作を行うと、信号プロセッサ16が必要とするすべての領域を1度に受信することができるようになる。
【0024】
特定のタスク用のデータをダウンロードする際に効率を考慮することとは別に、タスクスケジューリングはリアルタイム処理にも望ましいことである。本発明の基本概念は、スケジューラが処理特性に基づいたスケジュールを決めることができるように、各タスクに処理特性を割り当てることである。これらの特性は処理に必要な時間とメモリ容量とを含む。
【0025】
ひとつの処理特性は「リアルタイム」プロセッサ比率である。これは処理時間をデータ時間で割ったものである。例えば、データが20msの合計データ時間の間、kHzで160サンプル読まれて、そのデータの処理時間が5msであるとしよう。プロセッサ比率は5/20=25%である。もしタスクが5msプラス「スロップファクタ」(slop factor)よりも長時間要したならば、その処理はリアルタイムと見なされない。データの多少に対して必要な処理時間は容易に決めることができる。
【0026】
次のデータ構造はタスクにより主張される処理特性の一例であり、C言語でプログラムが書かれている。
【0027】
Struct Task_Characteristics

long task_type;
long task_degrade_path;
long task_time_max;
long task_id:
long buffer_size;
long buffer_time;
long average_execution_time;
long total_execution_time;
long minimum_execution_time;
long maximum_execution_time;
long number_executions;
long number_alarms;
long task_status;

【0028】
この構造におけるデータ項目は次のように記述されている。
task_type タスクが実行する処理の種類を識別する。例えば
task_type=DTMF_RECEIVER.
task_degrade_path より低次の資源集約タスクへの下がり
方、または現在のタスクの処理をより低次の資源集約動作への変更の
仕方を指示する。
task_time_max アラームが発せられる前にタスクの実行が許さ
れる最長の時間を示す。
task_id このタスクを他のすべてのタスクから唯一に識別する数。
buffer_size 各タスクに割当てられているバッファのバイト数を
を規定する。
buffer_time buffer_sizeのタスクバッファ内のデー
タで表わされる時間量を規定する。
average_execution_time このタスクがデータバッフ
ァを処理するのに要する平均時間を示す統計値。
total_execution_time このタスクがデータバッフアを
処理するのに使った合計時間を示す統計値。
minimum_execution_time データバッファを処理する
のに使った最短時間を示す統計値。
maximum_execution_time データバッファを処理する
のに使った最長時間を示す統計値。
number_executions 処理されたデータバッファの数を明ら
かにする。
number_alarms このタスクの実行中に起きたアラームの数。
task_status このタスクの現在の状態。例えば、
TASK_OK ALARM_ON TASK_KILLED。
【0029】
実行時スケジューラは各ディジタルプロセッサ16のプログラミングの一部である。このスケジューラはタスク識別子と、タスクの処理特性を表わすデータと、資源の使用可能度とを用いる。スケジューラはこのデータを用いて、各タスクの実行時間中に資源を動的に割当てたり解除したりする。処理特性は後述するように、ホストプロセッサ12からダウンロードされるか、または動的に再構築されることによって、初期化時に決定される。本発明の発展形として、システムが過負荷になった際の低次への移行を扱ったり、あるいは実行統計を提供したりする付加プログラミングを含むことができる。
【0030】
信号プロセッサシステム15の初期化を行っている間、各プロセッサ16が実行するタスクにデータとスタック空間とが割当てられる。これらの資源割当ては実行時間中スケジューラにより利用される。
【0031】
図4はスケジューラのプログラム構成と、スケジューリングタスクの実行時プロセスとを示す。スケジューラの主なプログラム構成は、タスク待ち行列41、待ち行列マネージャー42、アラームドライバ43、タイミング発生器44、およびオーバタイムマネージャ45である。
【0032】
処理が始まる前には、タスクA−Eがタスク待ち行列41の中に保管されている。タスクの要求があると、タスクAをタスク待ち行列41から取り出して、待ち行列マネージャ42に渡す。
【0033】
それからタスクAは待ち行列マネージャ42に自分の処理特性を知らせる。これは「主張特性」と呼ぶ。
【0034】
タスクAを扱う次のステップは、その処理特性とシステム資源の使用可能度とにより決定される。すなわち、どのプロセッサ16が利用可能であってタスクAの要求に合っているかにより、タスクはその方向に向けられる。すなわち、待ち行列マネージャ42はタスクAの主張する処理特性を読んで、どの資源が利用可能であるかを決定する。タスクAの要求にあう資源の利用可能度により、スケジューラ42はプロセッサ16にタスクAを割当てて実行させるか、もしくは実行を遅らせる。
【0035】
タスクAが実行開始されると、タスクAはアラームドライバ43に「パンチイン」する。アラームドライバ43は前述の機能を監視する役を果たす。タイミング発生器44がタスクAの処理時間を計る。タスクAが自分の主張した時間以内で処理を完了すれば、タスクAはパンチアウトし、アラームはオフになる。性能データが集められて、タスクA用に記憶される。タイミング発生器44で使われるタイマは周知のハードウェアのタイミング装置のうち任意のものでよい。
【0036】
しかし、もしタスクAの実行が自分の主張した時間よりも長くかかったならば、タイミング発生器44がプロセッサ16に割込み信号を送る。割込み信号はアラームサービスルーチン43aを動かし、それがアラーム信号を送ってオーバタイムマネージャ45を動かす。
【0037】
オーバタイムマネージャ45はタスクAの処理状態を診断して、メモリ故障、無限ループ、デッドロックあるいはスタック不良のような問題が遅延を引起こしているか否かを決定する。オーバタイムマネージャ45はまた、タスクを再スケジュールするとか、あるいはバッファを操作するというような、遅延の解決方法も決定する。オーバタイムマネージャ45はまた、タスクが誤った実行時間の期待値を提供したに過ぎないのか否かも決定する。オーバタイムマネージャはアラーム信号により作動開始させられる優先度の高いタスクとして働く。
【0038】
前述の例において、もしタスクAが5msプラス小さい「スロップ」時間要因より長時間かかったならば、アラームが発せられる。オーバタイムマネージャ45はバッファ戦略を変更するか、タスクAを停止するか、あるいはタスクAがもっと短い時間で実行されるアルゴリズムでプログラムするか、もしくは他の管理決定法を実行する。
【0039】
オーバタイムマネージャ45にタスクの処理特性に関する情報を提供することにより、タスクをの実行を延期することができる。例えば、RAMを要求することにより、前述したバッファの操作が可能になる。いいかえれば、タスクの実行を延期してそのデータをバッファに記憶することができる。更に、RAMの要求はプロセッサ比の倍数でなされるから、オーバタイムマネージャ45は所定量のデータに対してどの位処理時間がかかるかと共に、メモリの容量がどのくらい必要かも知る。
【0040】
オーバタイムマネージャ45の他の特徴は、タスクが延期されたときに、低下技法を提供することである。例えば、オーバタイムマネージャ45はプロセッサ比という表現により集約度の低いタスクを呼出すことができる。このタスクはユーザに代わりのサービスを提供して、サービスが完全に欠落するのを避けることができる。例えば、代わりのサービスがビジィ信号を発生し続けることがある。
【0041】
ディジタルプロセッサ16により実行されるタスクの処理特性を監視する能力をスケジューラシステムが有しているので、実行時間中これらの特性を動的に修正することが可能である。あるいは、これらの特性を別々に試験してシステムに供給することもできよう。
【0042】
以上、本発明を特定の実施例について説明したが、限定的意味を持つものではない。開示した実施例をいろいろ修正したり、代わりの実施例を考えたりすることは当業者にとって容易である。したがって、本発明の範囲はすべてのそれらの修正例を含むものである。
【0043】
【発明の効果】
以上説明したように本発明によれば資源が効率よく割当てられ、リアルタイム応答性にすぐれたマルチプロセッサ、マルチタスキングシステムが提供される。
【図面の簡単な説明】
【図1】 信号プロセッサシステムと通信可能なホストプロセッサを有する、マルチプロセッサ、マルチタスキングコンピュータ処理システムのブロック図。
【図2】 電話通信の処理に利用される、図1のマルチプロセッサシステムの典型的な応用を示すブロック図。
【図3】 図1の各信号プロセッサのプログラムとデータの記憶に関する機能ブロック図。
【図4】 図1の各信号プロセッサ用のスケジューリングシステムのプログラムの構成図。
【符号の説明】
11 ホストプロセッサシステム
12 ホストプロセッサ
13 メモリ
15 信号プロセッサシステム
16 信号プロセッサ
17 メモリ
19 バス

Claims (6)

  1. マルチタスキング、マルチプロセッサシステムの複数のプロセッサにより実行されるタスクのスケジューリング方法であって、
    複数のタスクを特定のシーケンスで実行する要求のアプリケーションプログラムを実行するステップと、
    前記実行が要求される複数のタスクの処理特性を決めるステップと、
    前記複数のタスクを前記処理特性を表わすデータ構造に関連づけるステップと、
    前記複数のタスクをタスク待ち行列に配置するステップと、
    前記複数のタスクの中から実行するために第1のタスクを取り出すステップと、
    スケジューラプログラムに前記第1のタスクの処理特性を伝えるステップと
    前記処理特性と利用可能な資源とに応じて、前記スケジューラプログラムを用いて、前記第1のタスクで使うべき処理資源を選択するステップと、
    前記第1のタスクが前記処理資源の利用を開始する時アラームドライバを活性化し、実際の処理特性を生成するために前記利用を計測するステップと、
    前記実際の処理特性が予め定められた値を超えた場合には、オーバータイムマネージャーを活性化するステップを有し、その際、オーバータイムマネージャーは前記タスクの実行を停止し、前記第1のタスクの処理状態を診断して障害が遅延を引き起こしているか否かを決定し、もしそうならば該遅延の解決方法を決定し、処理特性は不正か否かを判定しており、更に
    タスクを取り出し、処理特性を伝え、処理資源を選択し、アラームドライバとオーバータイムマネージャーを活性化するステップを、もし適切ならば、全てのタスクが実行されるまで繰り返すステップを有する方法。
  2. 請求項1記載の方法において、更に、前記伝えられた特性と前記実際の特性を比較するステップを含む方法。
  3. 請求項2記載の方法において、更に、前記実際の特性が前記伝えられた特性を予め定められた値越えた時、割り込みサービスを活性化するステップを含む方法。
  4. 請求項1記載の方法において、更に、前記伝えられた特性を前記実際の特性に基づいて修正するステップを含む方法。
  5. 請求項1記載の方法において、前記処理特性はプロセッサの使用比率を含む方法。
  6. 請求項1記載の方法において、前記アラームマネージャは代わりの処理方法を決めステップを含む方法。
JP22021091A 1990-08-31 1991-08-30 マルチプロセッサシステム用のスケジューリング方法 Expired - Fee Related JP3676827B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US576300 1990-08-31
US07/576,300 US5303369A (en) 1990-08-31 1990-08-31 Scheduling system for multiprocessor operating system

Publications (2)

Publication Number Publication Date
JPH06119300A JPH06119300A (ja) 1994-04-28
JP3676827B2 true JP3676827B2 (ja) 2005-07-27

Family

ID=24303832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22021091A Expired - Fee Related JP3676827B2 (ja) 1990-08-31 1991-08-30 マルチプロセッサシステム用のスケジューリング方法

Country Status (4)

Country Link
US (1) US5303369A (ja)
EP (1) EP0473444B1 (ja)
JP (1) JP3676827B2 (ja)
DE (1) DE69127945T2 (ja)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
US5628013A (en) * 1992-09-30 1997-05-06 Apple Computer, Inc. Apparatus and method for allocating processing time in a frame-based computer system
JP3208870B2 (ja) * 1992-10-30 2001-09-17 株式会社日立製作所 データ分割パタンの評価方法
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US5459865A (en) * 1993-04-05 1995-10-17 Taligent Inc. Runtime loader
JPH06337729A (ja) * 1993-05-27 1994-12-06 Fujitsu Ltd ネットワークサービスシステム
US6012072A (en) * 1993-09-17 2000-01-04 Digital Equipment Corporation Display apparatus for the display of documents in a three-dimensional workspace
DE4332993C1 (de) * 1993-09-28 1994-11-24 Siemens Ag Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
DE59402939D1 (de) * 1993-09-28 1997-07-03 Siemens Ag Tracer-system zur fehleranalyse in laufenden realzeitsystemen
US5408663A (en) * 1993-11-05 1995-04-18 Adrem Technologies, Inc. Resource allocation methods
US6151610A (en) * 1993-12-27 2000-11-21 Digital Equipment Corporation Document display system using a scripting language having container variables setting document attributes
US5442789A (en) * 1994-03-31 1995-08-15 International Business Machines Corporation System and method for efficiently loading and removing selected functions on digital signal processors without interrupting execution of other functions on the digital signal processors
DE69536008D1 (de) * 1994-06-27 2009-11-12 Intel Corp Gerät und Verfahren zum Verteilen von Anrufverarbeitungshilfsmitteln
US6041354A (en) * 1995-09-08 2000-03-21 Lucent Technologies Inc. Dynamic hierarchical network resource scheduling for continuous media
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US6282561B1 (en) * 1995-12-07 2001-08-28 Microsoft Corporation Method and system for resource management with independent real-time applications on a common set of machines
US5867725A (en) * 1996-03-21 1999-02-02 International Business Machines Corporation Concurrent multitasking in a uniprocessor
CA2178898C (en) * 1996-06-12 2000-02-01 David Joseph Streeter Sequencing and error detection of template instantiations during compilation of c++ programs
US5946463A (en) * 1996-07-22 1999-08-31 International Business Machines Corporation Method and system for automatically performing an operation on multiple computer systems within a cluster
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
US6615279B1 (en) * 1997-01-29 2003-09-02 Iq Systems Central and distributed script servers in an object oriented processor array
US6418517B1 (en) * 1997-08-29 2002-07-09 International Business Machines Corporation Optimized function execution for a multiprocessor computer 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
US5999990A (en) * 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6131187A (en) * 1998-08-17 2000-10-10 International Business Machines Corporation Method and system for translating exception handling semantics of a bytecode class file
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
US7661107B1 (en) * 2000-01-18 2010-02-09 Advanced Micro Devices, Inc. Method and apparatus for dynamic allocation of processing resources
US20010034558A1 (en) * 2000-02-08 2001-10-25 Seagate Technology Llc Dynamically adaptive scheduler
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
US7003523B1 (en) * 2000-07-26 2006-02-21 Revolutionary Learning Systems, Inc. Configurable software system for automatically storing computer files
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
US20020144143A1 (en) * 2000-12-15 2002-10-03 International Business Machines Corporation Method and system for network management capable of restricting consumption of resources along endpoint-to-endpoint routes throughout a network
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6931570B2 (en) * 2001-05-02 2005-08-16 Cyrus Peikari Self-optimizing the diagnosis of data processing systems by flexible multitasking
EP1262871A3 (en) * 2001-06-01 2007-05-30 Telogy Networks Real-time embedded resource management system
US20030009508A1 (en) * 2001-06-26 2003-01-09 Troia Terry A. Method and system for providing processor task scheduling
JP2003029989A (ja) * 2001-07-16 2003-01-31 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7200609B2 (en) * 2001-07-19 2007-04-03 Emc Corporation Attribute based resource allocation
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
JP3878508B2 (ja) * 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
JP2003263331A (ja) * 2002-03-07 2003-09-19 Toshiba Corp マルチプロセッサシステム
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
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US20060123421A1 (en) * 2002-12-27 2006-06-08 Loboz Charles Z Streamlining cpu utilization by delaying transactions
JP4090908B2 (ja) * 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
EP1763748A1 (en) * 2004-05-27 2007-03-21 Koninklijke Philips Electronics N.V. Signal processing apparatus
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US8789051B2 (en) * 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
US7689993B2 (en) * 2004-12-04 2010-03-30 International Business Machines Corporation Assigning tasks to processors based at least on resident set sizes of the tasks
US7921425B2 (en) * 2005-03-14 2011-04-05 Cisco Technology, Inc. Techniques for allocating computing resources to applications in an embedded system
US8185905B2 (en) * 2005-03-18 2012-05-22 International Business Machines Corporation Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
JP2007156824A (ja) * 2005-12-05 2007-06-21 Nec Electronics Corp プロセッサシステム、タスク制御方法
US8345053B2 (en) 2006-09-21 2013-01-01 Qualcomm Incorporated Graphics processors with parallel scheduling and execution of threads
WO2008141356A1 (en) * 2007-05-21 2008-11-27 Honeywell International Inc. Systems and methods for scheduling the operation of building resources
KR100930017B1 (ko) * 2007-06-29 2009-12-07 주식회사 마크애니 다수 개의 커널을 운영하는 시스템 및 방법
US9058206B2 (en) 2008-06-19 2015-06-16 Freescale emiconductor, Inc. System, method and program product for determining execution flow of the scheduler in response to setting a scheduler control variable by the debugger or by a processing entity
WO2009153620A1 (en) * 2008-06-19 2009-12-23 Freescale Semiconductor, Inc. A system, method and computer program product for scheduling a processing entity task
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US8510744B2 (en) * 2009-02-24 2013-08-13 Siemens Product Lifecycle Management Software Inc. Using resource defining attributes to enhance thread scheduling in processors
US8589931B2 (en) * 2009-03-18 2013-11-19 International Business Machines Corporation Environment based node selection for work scheduling in a parallel computing system
EP2312442A3 (en) * 2009-08-27 2012-02-01 Siemens Product Lifecycle Management Software Inc. System and method for thread scheduling in processors
US9229779B2 (en) * 2009-12-28 2016-01-05 Empire Technology Development Llc Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy
WO2011161830A1 (ja) 2010-06-25 2011-12-29 富士通株式会社 マルチコアシステムおよびスケジューリング方法
KR101671184B1 (ko) 2010-12-14 2016-11-01 삼성전자주식회사 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
US9201688B2 (en) * 2010-12-17 2015-12-01 Microsoft Technology Licensing, Llc Configuration of asynchronous message processing in dataflow networks
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US8566831B2 (en) * 2011-01-26 2013-10-22 International Business Machines Corporation Execution of work units in a heterogeneous computing environment
US8533720B2 (en) 2011-02-25 2013-09-10 International Business Machines Corporation Offloading work from one type to another type of processor based on the count of each type of service call instructions in the work unit
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
KR101871941B1 (ko) * 2013-03-12 2018-07-02 한화에어로스페이스 주식회사 카메라의 동작 방법, 카메라, 및 감시 시스템
KR102285749B1 (ko) * 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9552229B2 (en) * 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
US10592280B2 (en) * 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs
CN109582456A (zh) * 2017-09-28 2019-04-05 北京国双科技有限公司 报表执行方法和装置
CN109828833B (zh) * 2018-11-02 2020-09-29 上海帆一尚行科技有限公司 一种神经网络训练任务的排队系统及其方法
CN109710463A (zh) * 2018-12-27 2019-05-03 亚信科技(中国)有限公司 一种任务调度方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
EP0346039A2 (en) * 1988-06-06 1989-12-13 Demax Software, Inc Dynamic load balancing for multi-user computers

Also Published As

Publication number Publication date
DE69127945D1 (de) 1997-11-20
EP0473444B1 (en) 1997-10-15
US5303369A (en) 1994-04-12
JPH06119300A (ja) 1994-04-28
EP0473444A2 (en) 1992-03-04
EP0473444A3 (en) 1992-04-29
DE69127945T2 (de) 1998-02-12

Similar Documents

Publication Publication Date Title
JP3676827B2 (ja) マルチプロセッサシステム用のスケジューリング方法
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
US5349682A (en) Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US8006247B2 (en) Multi-tasking real-time operating system for microprocessors with limited memory
KR100289627B1 (ko) 멀티태스킹 기능을 가지는 정보처리시스템을 위한 자원관리방법 및 그 장치
US5748959A (en) Method of conducting asynchronous distributed collective operations
JP4056491B2 (ja) 論理的に区画化されたコンピュータにおける区画管理操作に関する非同期通知の選択的生成
JPH0820963B2 (ja) 計算機システムを動作させる方法及び計算機システム
JP2005513644A (ja) オペレーティングシステム機能を実行する方法及びシステム並びに電子装置
JP3938343B2 (ja) タスク管理システム、プログラム、及び制御方法
CN111274019A (zh) 一种数据处理方法、装置及计算机可读存储介质
US5754795A (en) Method for communication between processors of a multi-processor system
CA1304513C (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
CN1147112A (zh) 多处理机控制系统中控制单位程序信息过载的方法
US9507637B1 (en) Computer platform where tasks can optionally share per task resources
CN114691321A (zh) 一种任务调度方法、装置、设备及存储介质
US10523746B2 (en) Coexistence of a synchronous architecture and an asynchronous architecture in a server
EP0049521A2 (en) Information processing system
CN112748883B (zh) 一种io请求流水线处理设备、方法、系统及存储介质
CN115220908A (zh) 资源调度方法、装置、电子设备及存储介质
US5392426A (en) Method and apparatus for use in program operation, control and control block management and storage
CN112559148A (zh) 有序任务的执行方法、执行装置和执行系统
US20010039558A1 (en) Cache memory management method for real time operating system
JP2003186686A (ja) リソース制御装置、方法及び記憶媒体
CN117539639B (zh) 显存资源调度方法、装置、系统、存储介质及电子设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090513

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100513

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees