JPH05274162A - マルチメディア・コンピュータ・オペレーティング・システム及び方法 - Google Patents

マルチメディア・コンピュータ・オペレーティング・システム及び方法

Info

Publication number
JPH05274162A
JPH05274162A JP4334026A JP33402692A JPH05274162A JP H05274162 A JPH05274162 A JP H05274162A JP 4334026 A JP4334026 A JP 4334026A JP 33402692 A JP33402692 A JP 33402692A JP H05274162 A JPH05274162 A JP H05274162A
Authority
JP
Japan
Prior art keywords
frame manager
task
execution
frame
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4334026A
Other languages
English (en)
Other versions
JP2519382B2 (ja
Inventor
Donald E Carmon
ドナルド・エドワード・カーモン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05274162A publication Critical patent/JPH05274162A/ja
Application granted granted Critical
Publication of JP2519382B2 publication Critical patent/JP2519382B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Selective Calling Equipment (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【目的】 マルチタスキング処理環境において周期的に
反復するタスクのセットの実行スケジューリングにおい
て不要な実行のオーバーヘッドを改善すること。 【構成】 所与のタスクの実効が終了した時点で、活動
している全ての反復しえるタスクをそのタスクの現在の
状態にかかわらずその終了のデッドエンドが早い順に実
行キューに格納する。遊休状態にあるタスクについては
別にキューを作成し、その開始時間が早い順に格納す
る。 【効果】 従来の方法に比べて50〜100%以上のオ
ーバーヘッドの改善を見た。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は総括的にコンピュータ・
オペレーティング・システムに関し、詳細にいえば、特
にマルチメディア・コンピュータ・システムの適用業務
において一般的なもののようなハードで、リアルタイム
な結果を必要とする環境におけるマルチタスク操作に適
合したコンピュータ・オペレーティング・システムに関
する。
【0002】
【従来の技術】ハードで、リアルタイムなタスク実行ス
ケジューリングは多くの研究及び論文の主題となってき
た。これらのうち、以下は総括的に代表的なものであ
り、直面している一般的な問題を記載しているものであ
る。
【0003】V. Gafni, "A Model for a Hard Real Tim
e System Executive", pp. 69-74,IFAC Conference on
Real Time Programming, Valencia, Spain, copyright
1988。
【0004】Henn, "Feasible Processor Allocation i
n a Hard-Real-Time Environment",The Journal of Rea
l-Time Systems, Vol. 1, pp. 77-93, copyright 1989,
Kluwer Academic Publishers。
【0005】Xu and Parnas, "Scheduling Processes w
ith Release Times, Deadlines, Precedence, and Excl
usion Relations", IEEE Transactions on Software En
gineering, Vol. 16, No. 3, March 1990, pp. 360-36
9。
【0006】Chetto and Chetto, "A Feasibility Test
for Scheduling Tasks in a Distributed Hard Real-T
ime System", APII, Vol. 24, 1990. pp. 239-252, cop
yright AFCET 1990。
【0007】ハードでリアルタイムな作動環境において
は、何らかのタスクの実行の保証された結果が一定の、
すなわち「ハードな」デッドラインまでに入手できなけ
ればならないが、さもなければ、そのタスクの結果を必
要とする適用業務が失敗したり、あるいは実行待ちとな
っている他のタスクが悪影響を受けることがある。この
問題を解決するために、上述の論文で述べられているよ
うなスケジューリング・アルゴリズムを一般に使用し
て、新しいタスクがマルチタスキング・システムにおけ
る活動タスクとして呼び出されたときに、タスク実行ス
ケジューリングを行っている。これは通常、実行対象の
タスクを現在実行中の、または実行の機会を待っている
他のタスクとともに実行待ち行列またはスケジュールに
入れることによって、タスク到着あるいは始動または呼
出し時間が生じた場合に、タスクを優先順位にしたがっ
て再スケジューリングすることによって行われる。この
手法はN次の分類ルーチンを行うことであり、この場合
必要となるソートの反復回数は、現在実行待ち行列に入
っているタスクの数によって決まる。
【0008】完了デッドラインがもっとも早いタスクの
優先順位をもっとも高いものとして、現在活動状態のタ
スクを相対的な完了デッドライン順に並べることによっ
て、ハードで、リアルタイムなコンピュータ・システム
のタスクのスケジューリングを行うことが一般に知られ
ており、かつ推奨されている。(前出のHenn、Xu他、ま
たはChetto他を参照。)しかしながら、このような手法
を実施する実際のシステムが構築がはるかに困難なもの
であることが実証されている。実行スケジュールの切換
え及び並べ換えの際の実行タスクの割込み、ならびにオ
ーバヘッド処理装置資源の消費の可能性は、きわめて負
担が重いものとなる。Xu他が述べているように、何らか
のタスクまたはタスクの一部が優先使用できるのかどう
かという、より一般的な問題に関しては、公表されてい
る解決策はなかった。Xu他が提案している解決策は、
「もっとも早いデッドラインが最初」という戦略を使用
しているが、優先順位のリアルタイム再スケジューリン
グに不適切なきわめて複雑なブランチ及び境界の並べ換
えを含むようになっている。
【0009】実行タスクの優先使用(割込み)が認めら
れている場合のハードでリアルタイムな環境における優
先順位の付けられたタスクのリアルタイム再スケジュー
リングが効率的に処理されなければ、重要な実行デッド
ラインを満たす能力がスケジューリング法によって生じ
たオーバヘッドのために失われてしまう。「反応型シス
テム・エグゼクティブ」(RSEX: Reactive Systems Exe
cutive)という手法が知られており、前出のGafniの論
文で説明されている。このモデルはシングル・プロセッ
サ・システムでの優先順位付けにもっとも早いデッドラ
インの基準を使用しているが、経過時間を追跡し、実行
待ちの各タスクに残っている時間を更新しなければなら
ず(72ページ)、また新たに呼び出されたタスクを加
えることによってリストを更新しなければならない。こ
れは優先順位を変更するものであり、かつ新たに呼び出
されたタスクがより高い優先順位を有していれば自己の
優先順位が低くなるので、割り込まれたタスクの実行の
遅延がもたらされることもある。これはマルチメディア
適用業務における動的に変化するタスク・ミックスにお
いて、不必要な処理につながるものであり、もし、新た
に呼び出されたタスクの優先順位がもっとも高く、しか
もその実行期間が他のタスクをスケジュールどおりに完
了できなくするほど残っている時間を消費する場合に当
該他のタスクの、完了デッドラインが実際に守られなく
なることにつながるものである。換言すると、要求され
る完了デッドラインがもっとも早い割込みタスクが実行
の優先順位を獲得し、残っている時間を多量に消費して
しまうので、優先順位が高い割込みタスクが完了するよ
うに実行されると、割込みが生じたときに実行されてい
たタスクがスケジュールどおりに完了するのに充分な時
間がなくなってしまうようになる。
【0010】マルチメディア環境においては、ハード
で、リアルタイムなタスクが周期的に繰り返し発生しが
ちである。さらに、必要とされる可能性のある適用業務
またはタスクがランダムに混じりあっているため、タス
ク到着時間は周期的に一致することとなる。それ故、定
期的に、システム内で活動状態のあらゆるタスクのスケ
ジューリングを行ってから、タスクの実行を開始する。
周期的な反復性及びタスク・スケジューリング活動の集
中のため、システムがタスクの所与のセットをスケジュ
ールする能力に対する深刻な影響がもたらされる。従来
技術に関して上述したように、実行中の現行タスクの実
行、あるいは待ち行列内の他のタスクの優先順位が高い
場合のタスク切換え時間の追加の実行を、スケジューリ
ング活動がブロックする。コンピュータの処理装置資
源、すなわちタスクのスケジューリングに対立するもの
としての実際のタスクの実行に利用できるプロセッサ・
サイクルの数がこれによって悪影響を受ける。ハード
で、リアルタイムなシステムにおいては、各タスクは実
行及び完了するために、反復する実行期間の各々におい
て充分なプロセッサ・サイクルが残っていなければなら
ず、そうでない場合には、そのタスクを必要とする適用
業務の障害が生じる。さらに、実行反復期間がもっとも
短いタスクは、タスクの所与のセットを完全にスケジュ
ールできるかどうかを決定するための制限因子となる。
【0011】空のスケジュール待ち行列から始めると、
タスクをこれらの到着時あるいは呼出し時に優先順位待
ち行列にスケジュールする従来のスケジューリング・ア
ルゴリズムによって達成される、利用可能な処理装置資
源の断片として測定される最悪の場合の「スケジューリ
ング・オーバヘッド」は次の式1によって与えられる。
【数1】
【0012】ただし、 Csched=スケジューリング・コードの1回の反復を実
行する時間 N=スケジュール対象のタスクの数 TS=スケジュールされるタスクのセット内の最短実行
期間
【0013】式1からわかるように、ランダムに混じり
あった周期的に反復するタスクによって課されるスケジ
ューリング・オーバヘッドは、システム内で現在活動状
態のタスクのもっとも短い実行期間に逆比例する。これ
は実行期間が短いものと対照的に、実行期間が長いタス
クに対して不当な負担であり、本発明が解決する課題で
ある。
【0014】
【発明が解決しようとする課題】本発明の目的は、タス
ク・スケジューリング・プロセッサ・サイクルに対する
オーバヘッドの要求を軽減する改善されたタスク・スケ
ジューリング・システム及び方法を使用する、マルチタ
スキング・コンピュータ・システム環境のための改善さ
れたオペレーティング・システムを提供することであ
る。
【0015】本発明の他の目的は、さまざまな実行期間
を有する周期的に反復するタスクのランダムに発生する
混合体のスケジューリングに理想的に適合しているマル
チメディア・コンピュータ・システムの操作方法及び装
置を提供することである。
【0016】
【課題を解決するための手段】本発明は現在の状態にか
かわりなくマルチタスキング・システム内で現在活動状
態の(すなわち、開始時間待ち、または現在実行中の)
すべての呼び出されたタスクを含んでいる実行待ち行列
またはリストを作成することによって、上記の目的及び
明確には列挙されていないその他の目的を達成する。待
ち行列内のタスクの順序は、優先順位によって確立され
る。次いで、タスクの優先順位はタスクの完了時に、こ
れらの相対的な実行デッドラインによって確立される。
タスクの開始時間または終了時間のみに基づいたタスク
の到着時間だけで優先順位の付けられたスケジュールで
はない点が従来技術との主要な相違点となる。さらに、
タスクの実行が完了した場合、あるいはマルチタスキン
グ・システムにおいて現在活動状態のタスクの待ち行列
に、新しいタスクが追加されたり、これから削除された
場合に、実行対象のタスクのスケジュールの順序がタス
クの相対的な優先順位にしたがって検証され、並べ換え
られる。本発明のスケジューリング・プロセス及び技法
によってもたらされるプロセッサ・サイクルのオーバヘ
ッドの削減は、広範囲にわたって変化する反復頻度を有
しているタスクのランダムに発生する選択の正確な混合
の状態にもよるが、50−100%(以上)の改善をも
たらすことが示される。この改善は多数のハードで、リ
アルタイムな結果に依存するユーザ適用業務が同時に稼
動することのあるマルチメディア適用業務において重要
なものである。複数の運動及びサーボ機構フィードバッ
ク信号を管理しなければならないロボット適用業務、な
らびに複数の多様なタスクを稼動して、ユーザの適用業
務の目的を達成するために、ハードで、リアルタイムに
駆動される態様で結果をもたらさなければならないその
他の各種の適用業務環境でも、同様な必要性が存在して
いる。
【0017】
【実施例】まず、本発明の好ましい実施例を、マルチメ
ディア適用業務コンピュータ・システムに関連して説明
する。このようなシステムは通常、「マルチメディア」
タイプの各種のユーザ適用業務を実行するパーソナル・
コンピュータなどのホスト・コンピュータ、特定のマル
チメディア適用業務サポート・タスクを行うためのディ
ジタル信号プロセッサ、及びディジタル信号プロセッサ
をホスト・コンピュータと相互接続するDMAアクセス
及び制御などのデータ及び制御交換手段とからなる。こ
のようなシステムは米国特許願第07/761534号
に図示説明されている。本発明をオペレーティング・シ
ステムとして使用することのできるプロセッサ信号の例
は、米国特許第4794517号明細書に記載されてい
る。
【0018】簡単にいえば、本発明のオペレーティング
・システムは米国特許第4794517号明細書に示さ
れているようなディジタル信号プロセッサに利用される
ものであり、該明細書は独立した命令及びデータ・メモ
リならびに関連するバスを備えた真のハーバード・アー
キテクチャ、演算装置(ALU)、乗算器/アキュミュ
レータ、ならびにマルチメディア環境で見られるものな
どの適用業務で広く使われている反復信号サンプル処理
アルゴリズムの迅速な達成に適したその他の要素を有す
るパイプライン化プロセッサ信号を示している。上述の
特許は本オペレーティング・システムを導入して、使用
できる適切なプロセッサ信号及び構造を教示するものと
して、参照することによって、本明細書の一部を構成す
るものである。しかしながら、本発明がディジタル信号
プロセッサに限定されるものではなく、マルチタスキン
グ・タスクないし反復性で再帰的なハードで、リアルタ
イムなアルゴリズムのタスクの複数の動的に変動する混
合体を実行しなければならない場合に、大型のメインフ
レーム・システムや中規模システムでも同じように有効
に適用できることが理解できよう。
【0019】簡単に上述したように、リアルタイム・オ
ペレーティング・システムで使用される典型的なスケジ
ューリング方法は、タスクが到着したとき、あるいはタ
スクが始動のために呼び出されたときにタスク実行スケ
ジューリングを行う。このようなシステムにおいて、タ
スクの始動または到着時期になった場合、タスクはシス
テム内で現在実行されている、あるいは実行順を待って
いるタスクに関するその優先順位にしたがって実行待ち
行列に入れられる。これには、現在待ち行列に入ってい
るタスクの数によって決まる反復数によって、N次の序
列付けルーチンを実行する必要がある。特にマルチメデ
ィア環境におけるタスク呼出しの周期性または再帰性の
ため、タスクの任意のセットのタスク到着時期または呼
出し時期は、互いに周期的に一致する。したがって、規
則的な再帰に基づいて、システム内にあるすべてのタス
クに対するスケジューリングを行ってから、タスクの実
行を開始する必要がある。スケジューリング活動のこの
周期的で再帰的な集中は、所与のセットのタスクをスケ
ジュールする、あるいはこれらを実行する処理システム
の能力に重大な影響を及ぼす。ハードで、リアルタイム
なシステムにおいて、タスクの再帰時にすべてのタスク
実行期間の終了前に、最後まで実行するのに充分なプロ
セッサ・サイクル資源をタスクに対して確保する必要が
ある。所与のセットのタスクを効果的にスケジュールで
きるかどうかを決定する際に、実行期間がもっとも短い
タスクが制限因子となる。
【0020】上述した従来のスケジューリング・プロセ
スの場合、タスクの到着または呼出し時のタスクのスケ
ジューリングがプロセッサの「オーバヘッド」、すなわ
ちスケジューリングを達成するために必要なプロセッサ
資源に対する要求となる。これは上記の式1によって示
される。
【0021】本発明において、スケジューリング・プロ
セスはタスクの到着または始動時にではなく、タスクの
実行終了または完了時に再スケジューリングを行う。任
意の時点にプロセッサ内で実際に実行できるタスクは1
つだけであるから、タスク完了時期がタスクの到着また
は始動時期のように一致することはない。したがって、
スケジューリング・オーバヘッドの周期的な集中の問題
は、本発明によって排除される。重要なのは、一のタス
クのスケジューリングが、他のタスクの実行の開始前に
完了する必要がないことである。たとえば、低優先順位
のタスクが本発明においてスケジュールされているとき
に、高優先順位のタスクAの到着または始動時期になっ
た場合、高優先順位のタスクAが実際に呼び出され、最
後まで実行されている間、低優先順位のタスク、タスク
Bのスケジューリングを一時的に中断することができ
る。タスクAの完了に引き続き、タスクAがその周期的
な再帰または周期的な反復間隔で再スケジュールされ、
タスクBのスケジューリングが再開され、おそらく、タ
スクBが常駐しているもっとも優先順位の高いタスクで
あり、かつ実行準備が整っていれば、タスクBが完了す
る。
【0022】本発明において、タスク開始時または到着
時ではなく、タスク実行完了時にタスクをスケジューリ
ングすることによって、典型的なタスク実行待ち行列が
常に、タスクの現在の活動状態にかかわりなく、すべて
のタスクを含んでいる他の待ち行列またはリストと置き
換えられる。この好ましい実施例においては、このリス
トを「スケジュール」と呼ぶ。スケジュールはタスクの
実行状態、すなわち実行中であるか、実行待ちであるか
にかかわりなく、実行のために呼び出されたすべてのタ
スクに対応するよう配列され、優先順位付けされたリス
トを含んでいる。タスクが最後まで実行され、次の定期
的に再帰する実行時期に合わせて再スケジュールされた
場合、あるいはタスクがシステムに追加されたり、ある
いはこれから削除された場合に、このリストは動的に並
べ換えられ、調節される。
【0023】プログラミングの点から見ると、スケジュ
ールは2重に連係されたリストであって、1つの項目が
次の優先順位の項目が存在している次の項目のアドレス
に対するポインタを有しており、第2の項目が第1の項
目及び次の優先順位を有する項目に対するポインタを有
しており、以下同様となっている。本発明のスケジュー
ル内の項目はタスク自体ではなく、システム内のすべて
のタスクに対する各種の固定周期をもつ再帰タスク・ハ
ンドリング・コードを呼び出すための「プレース・ホル
ダ」であって、同じ再帰タスク反復期間または周波数を
共有できる。本発明においては、これらのプレース・ホ
ルダを「フレーム・マネージャ」と呼ぶ。フレーム・マ
ネージャは実行対象のタスクに関連づけられた配列され
た優先順位リストに対応するスケジュールまたは待ち行
列の2重連係リストの項目である。
【0024】フレーム・マネージャはフレーム・マネー
ジャが呼び出された間隔における終了時間、すなわちタ
スク完了デッドラインごとに待ち行列ないしスケジュー
ル内で配列される。もっとも早いタスク完了デッドライ
ンまたは終了時間が第1優先順位項目であり、他のフレ
ーム・マネージャはその終了時間に基づいて優先順位が
つけられる。すなわち、第2の項目は第2に早い終了時
間に係わるタスクであり、以下同様となる。2つまたは
それ以上のフレーム・マネージャが、再帰期間が互いの
倍数を形成している場合などのように同じ終了時間を有
している場合には、これらの開始時間順に2重連係リス
ト内で並べ換えられるか、あるいは優先順位づけられ、
その結果、開始時間がもっとも早いタスク・フレーム・
マネージャが最初のものとなる。2重連係リストにおい
て、スケジュール内の最初のフレーム・マネージャ項目
が選択されて、「スケジュールの先頭」と呼ばれるダミ
ー・フレーム・マネージャとなるが、これは現在最高優
先順位のフレーム・マネージャがおかれているメモリ内
に最初のアドレスに対するポインタを含めるためのプレ
ース・ホルダである。2重連係リスト内の最後のフレー
ム・マネージャ項目は常に、システム内に常駐してお
り、すべてのハードで、リアルタイムなタスクが完了し
てからのみ実行されるハウスキーピング・タスクなどの
非リアルタイム・タスクを呼び出すために利用される非
リアルタイム・フレーム・マネージャに割り当てられ
る。
【0025】本実施例には、遊休フレーム・マネージャ
・リストないし遊休タスク待ち行列もある。これはすべ
ての遊休フレーム・マネージャ、すなわち現時点で実行
が完了しており、次の再帰始動時期を待っているフレー
ム・マネージャの順序づけられたリストを含んでいる。
遊休リストの項目は各種のレベルの割込み源に対応して
さらに配列され、割込み源の各レベルに対する独立した
リストとなる。フレーム・マネージャの遊休リストも2
重連係リストであって、次の実行のための始動または呼
出し時間の発生を待っているフレーム・マネージャ・イ
ンディケータを含んでいる。本発明の割込みハンドラは
独立しており、所与のタスクまたはフレーム・マネージ
ャがおかれている割込みのレベルに対応した遊休リスト
内のフレーム・マネージャを追跡する。遊休リスト内の
フレーム・マネージャはタスク完了ないし終了時間では
なく、もっとも早い開始時間を最初にして、開始時間ご
とに順序ないし優先順位づけられている。2つまたはそ
れ以上のフレーム・マネージャが同じ開始時間を有して
いるような場合、終了時間がもっとも早いフレーム・マ
ネージャのみが遊休フレーム・マネージャ・リストに保
持される。
【0026】フレーム・マネージャのタスク実行待ち行
列、遊休フレーム・マネージャの待ち行列またはリス
ト、利用される制御コード及び制御データの各種の部分
について、図1を参照して、さらに詳細に説明する。な
お、タスク完了デッドラインにしたがってタスクの待ち
行列を実行のために優先順位付けする際に、本発明のオ
ペレーティング・システムによって達成される利点を理
解するために、さらに説明を行う。
【0027】本発明の場合、利用可能なプロセッサ資源
に対するオーバヘッド負荷のスケジューリングは、以下
の式2によって説明される。
【数2】
【0028】ただし、 Csched=スケジューリング・コードの1回の反復を実
行する時間 N=スケジュール対象のタスクの数 Ti=タスクiの実行期間
【0029】本発明において、待ち行列内のすべてのタ
スクのスケジューリングはタスクの活動の現在の状態に
かかわりなく、少なくとも若干の負担をもたらす。式2
の分子のNが、最悪の場合、各タスクをシステム内のす
べての他のタスクに対して分類する必要があることを示
している点に留意されたい。ただし、TSがもはや式1
におけるように公分母ではなくなるという利点がある。
2つのスケジューリング・プロセスのオーバヘッド負荷
を比較するために、式1を式3のように頻度項に書き換
えることができる。
【数3】
【0030】ただし、
【数4】
【0031】さらに、式2を以下の式4のように頻度項
に書き換えることができる。
【数5】
【0032】ただし、
【数6】
【0033】所与のタスク・セットに対する頻度項のス
ケジューリング頻度の平均は以下の式5によって与えら
れる。
【数7】
【0034】式5を以下の式6に示すようにタスク・ス
ケジューリング頻度の平均項に書き換えることができ
る。
【数8】
【0035】ただし、 Favg=タスクのスケジューリング頻度の平均
【0036】なお、オペレーティング・システム内でス
ケジューリング・プロセスを1回反復する時間であるC
schedは、与えられたタスクの数が等しいときはすべて
の場合にほぼ等しいものと仮定することによって、比較
を簡単にすることができる。すべてのアルゴリズムがタ
スクを実行待ち行列におくために何らかのタイプの分類
ループを必要とするため、この想定は妥当なものであ
る。この想定を行った場合、本オペレーティング・シス
テムのスケジューリング技法の効率が、以下の式7に示
すように従来のスケジューリング技法と比較される。
【数9】
【0037】式7を以下の式8に示すように単純化する
ことができる。
【数10】
【0038】式8は本発明のオペレーティング・システ
ムにおけるスケジューリング技法の負担及び利点の両方
を明確に示している。N+1/2Nという要素が負担で
ある。全体的な効率に対して、これはN=1の場合の1
から、Nが無限大の場合の1/2の範囲の寄与をする。
平均頻度に対する最大頻度の率は本技法のスケジューリ
ングの平均値を表すが、これは最大頻度が平均頻度と等
しく、正確に1と等しくなる場合を除き、この要素が常
に1よりも大きいからである。簡単にいえば、再帰の最
大周波数がタスクの再帰の平均周波数の2倍以上である
場合、本スケジューリング・プロセスは従来のスケジュ
ーリング・アルゴリズムよりもはるかに効率のよいもの
となる。
【0039】マルチメディア適用業務システムにおい
て、最大タスク再帰頻度が平均再帰タスク頻度よりも大
幅に高くなる可能性はきわめて高い。いくつかの異なる
データ・サンプリング速度で作動する、各々が固有の要
件を有しているタスクを扱う本発明のようなマルチタス
キング・オペレーティング・システムにおいては、各タ
スクに対する最適スケジューリング頻度が大幅に異なっ
ている可能性がある。たとえば、典型的な通信モデムの
タスクはこれに含まれるサブタスクに対して4種類のス
ケジューリング頻度を必要とする。すなわち、あるタイ
プのタスクは16.216Hzの周波数で、他のタイプ
は204.255Hzで、他のタイプは600Hzで、
さらに他のタイプは1378.125Hzで実行しなけ
ればならない。このようなN=4のモデム適用業務の場
合、最大周波数は1378.125Hzであり、平均周
波数は549.649Hzであり、スケジューリング・
プロセスの平均は式8から計算されるように1.567
である。
【0040】DTMFトーン・デコーディング、音声応
答用の周波数合成適用業務またはタスクなどを含む電話
応答には、異なる再帰頻度で作動する6種類のサブタス
クが必要であり、この場合、N=6、Fmax=137
8.125Hz、Favg=534.783Hz、式8か
ら計算された効率は1.503である。本明細書記載の
例はいずれもタスクの最大頻度と平均スケジューリング
頻度との間にきわめて広い発散を有するものではない
が、スケジューリングの改善は処理オーバヘッドの削減
の点で依然50%を超えている。100%を大幅に超え
る改善を、周波数とタスクの適切な混合体で得ることが
できる。たとえば、15Hz、40Hz、100Hz及
び1378.125Hzという4つのタスクに対する仮
定的なスケジューリング頻度を有するタスク・セット
は、N=4、Fmax=1378.125Hz、Favg=3
83.281Hzをもたらし、効率は2.247とな
る。これはスケジューリング・プロセスの効率の124
%超の改善、ならびにシステム内のタスクのスケジュー
リングに関連したプロセッサ資源のオーバヘッドで得ら
れる削減を表している。本発明の他の利点は、このスケ
ジューリング技法がタスク・ブロッキング及びタスク切
換え時間を削減することであるが、これはスケジューリ
ング・プロセスが到着時に行われるのではなく、またタ
スク・ブロッキングまたは切換え待ち時間の一部ではな
いからである。
【0041】好ましい実施例の詳細な説明に戻るが、タ
スク自体が直接スケジュールされたり、再スケジュール
されたりしないことに留意されたい。その代わり、「フ
レーム・マネージャ」と呼ばれ、共通タスク・ハンドリ
ング・コード・ルーチンを呼び出すための識別子に対応
するプレース・ホルダが待ち行列に挿入される。フレー
ム・マネージャは実際にはそれ自体特殊タスクであっ
て、フレーム・マネージャに関連したタスクの周波数に
合致する再帰頻度で共通な、定期的に再帰するタスクの
グループを実行する。フレーム・マネージャはこれに割
り当てられている同じタスク完了デッドラインを有する
すべてのタスクを実行し、これに割り当てられたすべて
のタスクを完了したときに、待ち行列内での再スケジュ
ーリングのためにオペレーティング・システムに戻る。
【0042】オペレーティング・システムはシステム内
のすべてのフレーム・マネージャによって共有されるフ
レーム・マネージャ・コードを供給する。各フレーム・
マネージャはフレーム・マネージャをオペレーティング
・システムが活動化する前に、初期化されるフレーム制
御ブロック(FCB)と呼ぶフレーム・マネージャ自身
のデータ構造を必要とする。フレーム制御ブロックはフ
レーム・マネージャの実行を調整する。共通した実行期
間を有しているタスクはグループとされ、実行待ち行列
内のプレース・ホルダである共通フレーム・マネージャ
に関連づけられるように連係される。したがって、いつ
でもシステム待ち行列内にある各フレーム・マネージャ
に対して1つのフレーム制御ブロックがある。4つまた
は6つのスケジューリング頻度に遭遇する上記の例の場
合、フレーム制御ブロックを有する4つまたは6つのフ
レーム・マネージャが存在することとなる。
【0043】フレーム制御ブロックはホスト・システム
によって構成され、制御データとして記憶のためにディ
ジタル信号プロセッサに渡される。フレーム制御ブロッ
クはデータ構造であり、本発明のオペレーティング・シ
ステムがフレーム・マネージャを実行待ち行列またはリ
ストにスケジュールするのに必要とするすべての情報を
含んでいる。また、タスク切換えが実行されたときに、
ディジタル・プロセッサのプロセッサ・レジスタを保管
できるメモリ内の領域またはアドレスの指定も含んでい
る。FCBは同じタスク完了デッドライン期間ないし時
間を有しているサブタスクについてのフレーム・マネー
ジャの連係されたリストの先頭に対するフレーム・マネ
ージャ及び開始識別アドレスと関連づけられる処理タス
クに対するディジタル信号プロセッサの記憶域またはメ
モリ対するアドレス指定も含んでいる。典型的なフレー
ム制御ブロックは、フレーム・マネージャを活動化する
前に、以下の表1に示すように初期化しなければならな
い。
【表1】
【0044】FCBの構成はDSPとともにホスト・プ
ロセッサによって行われるが、本質24的に本発明の一部
ではない。したがって、フレーム制御ブロックのこうし
て得られた構造と内容だけを表に示した。表1におい
て、最初の2つの項目は制御データとして各割込みレベ
ルに関連して保持されている遊休フレーム・マネージャ
・リストの先頭と末尾に対するポインタである。3番目
の項目はアラームまたは開始時間インディケータであ
り、4番目の項目は所与のFCBに関連した割込みハン
ドラ・データ構造に対する割込み連係アドレス・ポイン
タである。5番目及び6番目の項目はフレーム・マネー
ジャのスケジュールまたはタスク実行優先順位待ち行列
の開始及び終了アドレスに対するポインタである。15
番目ないし38番目の項目はメモリ内のアドレスであっ
て、フレーム・マネージャの優先使用が発生したとき
に、このメモリにディジタル信号プロセッサの作動状態
の内容が保管される。
【0045】所与のフレーム・マネージャを活動化する
前にホストが初期化しなければならないデータは、ホス
トによってフレーム制御ブロックにセットされ、ディジ
タル信号プロセッサに渡される。
【0046】表1の名前順に、ディジタル信号プロセッ
サ内で所与のフレーム・マネージャの活動化前に初期化
しなければならないデータを、以下で詳細に説明する。
【0047】INTLINK−この項目は所与のフレー
ム・マネージャが関連づけられるポインタ(すなわち、
特定のタイプのユーザ・ハードウェア(すなわち、モデ
ム、オーディオ用コンパクト・ディスク・プレーヤ、ビ
デオ表示装置など)と関連づけられた適切な割込みハン
ドラ・データ構造がおかれるメモリ内のアドレス)を含
んでいる。
【0049】FRAME−ディジタル・サンプル時間数
としてフレーム・サイズを保持する。これはタスクの周
期性または再帰タスク間隔によってカバーされる時間で
ある。時間フレームはディジタル・サンプルが、関連す
るユーザ・ハードウェアによってディジタル信号プロセ
ッサに提示される「サンプル時間」で測定される。たと
えば、ユーザ・ハードウェアの所与のサンプリング周波
数のN回のサンプルごとに、フレーム・サイズがNのタ
スクが一回実行される。
【0050】FRAMEH−フレーム・マネージャの実
際のフレーム時間を表す16ビットの数値であり、この
16ビットはフレーム時間当たりの割込みの数に、割込
み源の割込み期間を乗じることによって計算された数値
の上位16ビットである。
【0051】ISADDR−この項目はディジタル信号
プロセッサ・メモリ内のフレーム・マネージャの命令コ
ードに対するポインタを保持する。
【0052】OSRTN−この項目はフレーム・マネー
ジャの命令コードに対する戻りアドレスを保持する。
【0053】FIRSTTCB−この項目はタスクの再
帰頻度におけるタスク固有のデッドラインの発生時、ま
たはその前にフレーム・マネージャが実行するタスクに
関するフレーム・マネージャの連係リストの先頭のアド
レスである。通常、この位置を使用して、フレーム・マ
ネージャに割り当てられた最初のタスクのタスク制御ブ
ロック(TCB)を示す。しかしながら、タスクをフレ
ーム・マネージャに連係せずに、フレーム・マネージャ
を活動化できるようにするために、この項目は0に初期
化しなければならない。この項目が0を保持している場
合、フレーム・マネージャは戻って、再スケジュールさ
れるだけである。FCB内の他のデータ位置は、スケジ
ューリング及びタスク切換えに適合するように使用され
るものであり、以下に簡単に説明されるものである。
【0054】PIFMは前の遊休フレーム・マネージャ
である。これは遊休フレーム・マネージャ・リスト内の
前のフレーム・マネージャに対する後方ポインタであ
る。
【0055】NIFM−次の遊休フレーム・マネージ
ャ。これは遊休フレーム・マネージャ・リスト内の次の
フレーム・マネージャに対する前方ポインタである。
【0056】ALARM−フレーム・マネージャの割込
みハンドリング・コードによって維持されているサンプ
ル・クロックに関して測定されたフレーム・マネージャ
開始時間を保持する。割込みハンドリング・コードはア
ラームの内容及びSCLOCKを使用して、いつフレー
ム・マネージャ開始時間になったかを決定する。
【0057】PSFM−以前にスケジュールされたフレ
ーム・マネージャ。これはフレーム・マネージャ実行待
ち行列またはスケジュール内の前のフレーム・マネージ
ャに対する後方ポインタである。
【0058】NSFM−次にスケジュールされているフ
レーム・マネージャ。これはフレーム・マネージャ実行
待ち行列またはスケジュール内の次のフレーム・マネー
ジャに対する前方ポインタである。
【0059】ETH−終了時間高。この項目はフレーム
・マネージャの現行の終了時間の上位16ビットを保持
する。
【0060】ST−これは開始時間である。フレーム・
マネージャの現在割り当てられている開始時間を保持す
る。開始時間はフレーム・マネージャの割込みハンドラ
・コードによって保持されているサンプル・クロックに
関して測定され、フレーム・マネージャが始動可能状態
になっているかどうかを決定するために使用される。
【0061】INTFLG−割込みフラグ。これはフレ
ーム・マネージャに割込みが行われたのか、または実行
されているのか、あるいは開始時間を待っている遊休ま
たは待機状態であるのかを決定するために使用される。
フレーム・マネージャがその実行時間の始まりに到達
し、割込みフラグが0に等しい場合、フレーム・マネー
ジャは遊休となり、実行はフレーム・マネージャのコー
ドの最初の項目で開始される。割込みフラグ・ビットが
1である場合、フレーム・マネージャには以前に割込み
が行われており、機械の前後関係を復元しなければなら
ず、実行は割込みが行われたところから再開される。
【0062】SILRないしSRCBDという項目は、
フレーム・マネージャが実行中に実行が始まった優先順
位がより高いフレーム・マネージャによって割込みを受
けたとき、あるいは優先使用されたときに機械の状態及
び前後関係を保管するために使用される位置である。
【0063】PRESENTH−プレゼント・ハイは現
行タスクの割り振られたままになっているサイクル・カ
ウントの現在の上位16ビットを含んでいる。
【0064】SCYCLCNT−サイクル・カウントを
保管する。これはフレーム・マネージャが優先順位がよ
り高いフレーム・マネージャによって割込みを受ける
か、もしくは優先使用されたときに、サイクル・カウン
ト・レジスタの内容を保管するために使用される。サイ
クル・カウント・レジスタは現行タスクの残っている実
行サイクル・カウントの低位16ビットを含んでいる。
【0065】SDSPTR−システム・データ格納ポイ
ンタはフレーム・マネージャが優先使用され、現在実行
されているタスクに対するポインタを保持している場合
に、データ記憶領域アドレスを保管するために使用され
る。
【0066】SYSTMP0ないしSYSTMP4はタ
スクが一時絶対データ記憶領域として使用するために予
約されているデータ位置である。これらの位置におかれ
るデータが有効なのは、タスクの現在の実行の間だけで
ある。タスクはこれらの位置におかれたデータがある実
行期間から次の実行期間まで有効であると想定すること
はできない。
【0067】次に、割込みハンドラ・データ構造を簡単
に説明する。表2は、ソフトウェア・クロック、遊休フ
レーム・マネージャ・リストの項目の始まりと終わり、
及びスケジューリングに必要なすべての割込み固有デー
タを含んでいる割込みハンドラ・データ構造を示してい
る。
【表2】
【0068】割込みハンドラ構造に含まれるデータもホ
スト・プロセッサによって初期化される。これは本発明
の本質的な部分ではないが、本発明のオペレーティング
・システムの作動を理解するために、以下で説明する。
【0069】LIFM−最後の遊休フレーム・マネージ
ャ。これは遊休フレーム・マネージャの2重連係リスト
の終わりに対するポインタないしアドレスである。リス
トが空の場合、これはLIFMをポイントする。
【0070】FIFM−最初の遊休フレーム・マネージ
ャ。これは遊休フレーム・マネージャの2重連係リスト
の開始アドレスに対するポインタである。リストが空の
場合、FIFMはLIFMをポイントする。
【0071】CLOCKH−クロック・ハイ。これは最
新の割込みのリアル・タイムを保持し、所与のタスクに
関連したディジタル信号プロセッサがサンプルのブロッ
クを処理のために受け取ったときに、現在時間を収集す
るタイム・スタンプ・レジスタによって更新される。
【0072】SCLOCK−サンプル・クロック。これ
は各割込み期間中に実行されるユーザ・タスクに対する
ハードウェア・システムのサンプル時間数として測定さ
れる相対サンプル時間を保持する。各割込み時に、割込
みハンドリング・コードは割込み当たりのサンプル数で
ある他のレジスタSPERINTに保持されている量だ
けSCLOCKを増加させ、各割込み期間に対して生成
され、使用されるユーザ・ハードウェア装置のサンプル
時間内のサンプル数を測定する。
【0073】IPERIODH−上位割込み期間はユー
ザ・ハードウェア装置の実際の割込み周波数に比例した
数値の上位16ビットを保持する。
【0074】IPERIODL−下位割込み期間はユー
ザ・ハードウェア装置の実際の割込み周波数に比例した
数値の下位16ビットを保持する。
【0075】INTFREQ−割込み周波数はHzで表
した実際の割込み周波数に比例した数値を保持する。
【0076】作動の概要 スケジュール・リスト内のフレーム・マネージャの実行
のスケジューリング及び順序は、各フレーム・マネージ
ャに関連した始動及び終了時間の相互関係によって決定
される。一般に、終了デッドラインまたは終了時間がも
っとも早いフレーム・マネージャが最初に実行される。
しかしながら、フレーム・マネージャの実行が認められ
るのがその開始時間に達してからであるから、終了時間
が遅いが、開始時間が早いフレーム・マネージャは、終
了時間が早い所与のフレーム・マネージャが開始時間の
開始を待っている間に、実行することができる。早いフ
レーム・マネージャ開始時間になると、終了時間の遅い
フレーム・マネージャが優先使用され、その状態は保管
しなければならない。本発明のオペレーティング・シス
テムはフレーム・マネージャの開始時間と終了時間の間
の相互関係を管理し、所与の時間にシステム内に存在す
るすべてのフレーム・マネージャのスケジュール、すな
わち順序づけられ、優先順位のつけられたリストを使用
して、どのフレーム・マネージャを実行すべきかを決定
する。また、各割込みレベルに関連した複数の遊休フレ
ーム・マネージャ・リスト(遊休フレーム・マネージャ
の順位づけられたリストにすぎない)を利用する。これ
は次の反復開始時間を待っている現在のフレーム反復時
間中に実行が完了したフレーム・マネージャの識別を含
んでいる。データ・メモリ内の優先順位レジスタ領域を
利用して、現在実行されているフレーム・マネージャの
終了時間のコピーを保持する。
【0077】簡単にいえば、ホスト・コンピュータのユ
ーザはたとえば、多数のユーザ・マルチメディア・タス
クを呼び出すことができる。タスクはモデムの稼動、C
Dディスク・プレイヤによる再生、圧縮されたビデオ・
データによるビデオ表示装置の操作などである。これら
のタスクを呼び出すユーザはこれらを要求としてホスト
・システムに入力し、ホスト・システムはフレーム制御
ブロックを作成して、ディジタル信号プロセッサに渡
し、ここでフレーム制御ブロックはメモリにおかれる。
ホストはまた、ディジタル信号プロセッサのメモリに、
必要に応じ、個々のタスク実行ルーチンをロードして、
ユーザが呼び出した適用業務をサポートする。ホストは
また、ディジタル信号プロセッサに渡され、個々のタス
ク実行コードを探し出し、取り出すために信号プロセッ
サのメモリにおかれるタスク制御ブロックも構築する。
ホスト・プロセッサがフレーム制御ブロックの初期化及
びスケジューリングを要求すると、ディジタル信号プロ
セッサのオペレーティング・システムは制御を得て、図
1の全体の流れ及び略図に示されている操作を開始す
る。
【0078】図1において、オペレーティング・システ
ムはまず、メモリ内の制御コード・ブロック1に含まれ
ているフレーム・マネージャ・スケジューリング・コー
ドにアクセスする。プロセスについては、図2ないし図
5に関連して詳細に説明する。オペレーティング・シス
テムはハードウェアの所与の部分、または呼び出される
タスクの割込みレベルに関連した遊休リスト2を探索す
る。次いで、これも図2ないし図5で詳細に説明する、
遊休リストの呼び込まれる個々のフレーム・マネージャ
に対する識別子を挿入する。オペレーティング・システ
ムは次いで、メモリ内に制御データとしておかれている
フレーム・マネージャの優先順位付けされた実行スケジ
ュール3を探索し、タスクまたはフレーム・マネージャ
の終了時間に基づいて適切なスタート点を見つけだす。
オペレーティング・システムは制御データ・メモリ内の
フレーム・マネージャ優先順位スケジュールを探索し
て、現在スケジュール内にある他のFCBの終了時間に
基づいて、所与のFCBを挿入するための適切なスター
ト点を見つけだす。オペレーティング・システムはメモ
リ内の制御コードにフレーム・マネージャFCBに対す
るアドレス・ポインタを挿入する。
【0079】次に、図1のオペレーティング・システム
・スケジュール・スキャナ4は実行される次のフレーム
・マネージャについて、フレーム・マネージャの優先順
位付けされた実行スケジュール3を探索する。次いで、
フレーム・マネージャに対するフレーム制御ブロックに
アクセスし、そのフレーム・マネージャ内の実行準備が
できている次のタスクを見つけだす。スケジュール・ス
キャナ4はフレーム・マネージャのFCBをファイル・
マネージャ開始制御部5に渡し、制御部5は所与のフレ
ーム・マネージャが割込み後に再開されるのか、あるい
は新たな反復を開始するのかをチェックする。フレーム
・マネージャ6はフレーム・マネージャ開始制御部5か
ら開始の通知を受け、次に実行すべきタスクを、所与の
フレーム制御ブロックと関連づけられたタスクから呼び
出す。開始制御部5は割込みを受けたタスクをどこから
開始するのか、あるいは再開するのかについての情報
を、FCBのフィールドから得る。
【0080】同期的にプログラムされ、定期的に発生す
る割込みが実行中に発生する場合、フレーム・マネージ
ャ6は停止し、遭遇する割込みのレベルに関連づけられ
たブロック7の割込みハンドラ・コードに分岐し、待機
状態となる。ブロック7の割込みハンドラ・コードは適
切なクロック8を進め、関連する遊休リスト2をチェッ
クし、何らかの遊休FCBに対するこの割込みレベルに
関連した開始時間になっているかどうかを調べる。この
時点で、割込みレベルが呼び出される適用業務の所与の
タイプに対してユーザのハードウェアが必要とするタス
ク再帰または反復の期間に対応していることに留意され
たい。たとえば、典型的な速度は9600回の反復/
秒、8000回/秒、1380回/秒(32のサンプル
というブロック内のCDプレイヤのサンプルを処理する
速度)、などである。
【0081】開始時間になっている場合、開始時間にな
っているフレーム・マネージャが遊休フレーム・マネー
ジャ・リスト2から除去され(これらは優先順位付けさ
れたフレーム・マネージャ実行スケジュール3に以前残
っている)、優先順位インディケータ9に対して、遊休
リストから除去される所与のフレーム・マネージャの優
先順位が、現在実行されているタスクよりも高いか、低
いかを判定するチェックが行われる。したがって、シス
テムは割込みを行って、現在実行中のタスクの状態を保
管するか、あるいは現在実行中のタスクが再開できるよ
うにするかのいずれかを行う。
【0082】図1に示すように、ディジタル信号プロセ
ッサのメモリには位置されている制御コードの4つの1
次部分(及び5つの制御コード部分)がある。図1の2
つの間の相違はメモリ内の制御コードを囲っている太く
黒い境界線によって示されており、これは制御データ項
目を囲っている細い境界線と対照的なものである。デー
タ及び制御信号の流れそれぞれは双方向及び単方向のデ
ータの流れを表す2重の矢印のついた2重線、及び矢印
のついた実線によって示されている。制御コードの流れ
は各種の要素の間の双方向または単方向の制御コードを
表す矢印のついた破線によって示されている。「流れ」
を達成するためには、プロセッサ(図示せず)が適切な
制御コードにアクセスし、このコードが指定しているあ
らゆる操作を実行し、これによって制御データをプロセ
ッサ内のある領域から他の領域にゲートし、以下で詳述
する流れ図に示されている各種の操作を行わなければな
らないことを、明確に理解すべきである。
【0083】作動例の詳細な説明 好ましい実施例の作動を詳細に説明するために、「ユー
ザがハイファイCDプレイヤを選択し、録音した音楽を
再生する」といったホスト・プロセッサで呼び出した単
純で、典型的なユーザ適用業務を想定する。一般に理解
されているように、コンパクト・ディスクはオーディオ
信号のディジタル・データ表現を、エラー回復コード・
ビット、トラッキング・ビット及びその他の制御情報と
ともに格納している。CDプレイヤは2つのタスクを実
行して、コンパクト・ディスクから読み取ったディジタ
ル・データを処理しなければならない。第1のタスクは
CDプレイヤのサンプリング・レート(通常は、441
00サンプル/秒)で32のA/DまたはD/Aサンプ
ル時間の実行期間を有している。第2のタスクは圧縮解
除、エラー修正などのためにディジタル信号プロセッサ
にデータ・サンプルを取り出す機能を実行し、かつ48
個のサンプルについての実行期間で作動しなければなら
ない。このタスクを達成するために、ホスト・プロセッ
サはユーザが呼び出した適用業務が必要とする実行期間
に対応したパラメータを有する2つのフレーム制御ブロ
ックを構築し、これらのフレーム制御ブロックをDSP
のデータ・メモリにロードする。ホスト・プロセッサは
CDプレイヤで遂行されるタスクまたはサブタスクに応
じて、2つのタスク制御ブロックも構築し、これらをD
SPのデータ・メモリにロードする。ホスト・プロセッ
サは次いで、DSPのオペレーティング・システムに要
求して、これらのタスクを遂行するためにフレーム制御
ブロックのスケジューリングを開始する。
【0084】本発明のDSPオペレーティング・システ
ムはフレーム制御ブロックに、ホスト・プロセッサが供
給しないいくつかの情報を割り当てる。すなわち、これ
らはフレーム制御ブロックのALARM、ST及びET
Hフィールドである。これらは上記の表2に示す内容を
有する図1の関連する割込みハンドラ・データ構造7の
クロックの内容にしたがってロードされる。次いで、オ
ペレーティング・システムは図1のブロック10のFM
PTRを、フレーム制御ブロック1と等しくセットす
る。すなわち、「FMPTR」はフレーム制御ブロック
1がロードされているメモリにアドレスを保持する。次
いで、オペレーティング・システムはフレーム・マネー
ジャの優先順位づけられている実行スケジュール3を探
索し、FCB1に対応するフレーム・マネージャFM1
をスケジュール内の適切な点にスケジューリングするこ
とによって、フレーム制御ブロックを適切な位置でスケ
ジュールに挿入する。これは図1、ブロック1のコード
によって一般に制御されているフレーム・マネージャ・
スケジューリング・プロセスを、次いで図2ないし図5
に詳細が示されているプロセスを実行するオペレーティ
ング・システムによって行われる。
【0085】まず、簡単のため、上記のクロックの現在
の内容がゼロになったと想定する。この場合、図1、ブ
ロック1の制御コードによって指示される活動を図2な
いし図5で詳細に説明する。
【0086】図2において、プロセスはブロック11で
開始される。ブロック11において、現行フレームマネ
ージャはFCBからのフレーム・マネージャ・ポインタ
に等しくセットされる。ブロック12で、この特定のフ
レーム・マネージャに対する新しい始動及び終了時間が
計算される。新しい開始時間は古い開始時間にFCBか
らのフレーム・カウントを加えたものである。本例にお
いて、フレームは32個のサンプルである。新しい終了
時間は古い終了時間にFCBからのフレームHを加えた
ものとして計算され、これは64Kt(ただし、Ktはユ
ーザ・タスクがサポートすることを要求される所与のハ
ードウェアのサンプリング時間に比例した定数)であ
る。このようにして、信号プロセッサ内で測定される時
間は、外部ホスト環境のCDプレイヤなどの各種のサン
プリング時間及び間隔、ならびにクロッキング・レート
に相関される。
【0087】ブロック13において、新しいアラーム条
件が古いアラームに、この場合には32であるフレーム
・カウントを加えたものとして計算される。
【0088】次いで、図2のプロセスは図1、ブロック
2の遊休タスク・リストの1番下へ進み、上方へ探索を
行って、遊休リスト内の適切な位置を見つけ、フレーム
制御ブロック・インディケータを挿入する。このリスト
のインディケータはもっとも早いアラーム時間を先頭に
して、アラーム時間順に並べられている。図2のブロッ
ク14はこれを達成するために遊休リストの1番下に向
けられる遊休リスト・ポインタのセッティングを説明す
るものである。図1の遊休リスト2がこの例では現在空
であるから、リストの先頭が見つかり、フレーム・マネ
ージャ1に対するフレーム制御ブロック・インディケー
タが、リスト内の唯一の項目としてのリストの先頭にお
かれる。これ以前に、図2のブロック15を実行し、割
込み保護を始動し、遊休リストが修正されている間に何
らかの割込みが発生した場合にエラーが発生しないよう
にしなければならない。
【0089】ブロック16において、次のフレーム・マ
ネージャに対するインディケータを命令リスト・ポイン
タからのPFIMと等しくセットし、ブロック17に入
って、次のフレーム・マネージャが遊休リストの先頭に
あるかどうかを判定し、先頭にない場合には、ブロック
18、19及び20のステップを利用して、フレーム・
マネージャのアラーム時間に基づいて、フレーム・マネ
ージャを適切な位置に挿入しなければならない。後で挙
げたブロック18、19及び20は、ブロック24に対
する入力となるブロック17からの出力によって示され
ているように、次のフレーム・マネージャがすでにリス
トの先頭にある場合には、スキップすることができる。
次のフレーム・マネージャのアラームが現在のフレーム
・マネージャのアラームよりも低いことを、ブロック1
8におけるテストが示した場合には、テストをさらに行
って、フレーム・マネージャのアラームが図2のブロッ
ク21に示す現在のアラームに等しいかどうかを判定し
なければならない。回答が肯定である場合には、フレー
ム・マネージャの終了時間がブロック22で比較され、
遊休リストが必要に応じ、ブロック23に示すように並
べ換えられる。他の方法では、リスト内で見つかった次
のフレーム・マネージャが現在のフレーム・マネージャ
のアラームと等しくない場合には、ブロック24に入
り、フレーム・マネージャが次のフレーム・マネージャ
と、命令リスト・ポインタ・アドレスの間に挿入され、
図3がタブAで終了し、図4のタブAの項目に続く。
【0090】図4において、FCB1によって示される
現在のフレーム・マネージャの終了時間よりも大きな終
了時間を非リアルタイム・フレーム・マネージャNRT
Mに与えて、該フレーム・マネージャNRTMをリスト
の1番下にセットすることによって、優先順位づけされ
たフレーム・マネージャ実行スケジュールを並べ換える
プロセスが開始される。本例において、NRTMの終了
時間が64Kt+1に等しくなると想定したので、NR
TMの終了時間が少なくとも1クロック・カウント、存
在している唯一の他のフレーム・マネージャ、すなわち
FM1よりも遅くなる。これはブロック25ないしブロ
ック28に示されているが、これは自明なものである。
【0091】次に、オペレーティング・システムは図4
のブロック30のステップから、図1のフレーム・マネ
ージャのスケジュール3を探索する。探索は終了時間ご
とに行われるが、これはフレーム・マネージャ優先順実
行スケジュール3に対する優先順位リストのモードであ
る。フレーム・マネージャFM1を挿入する正しい場所
を見つけるために探索が行われる。本例において、フレ
ーム・マネージャが最初空であると想定されているの
で、FM1はスケジュールないし待ち行列3内の非リア
ルタイム・フレーム・マネージャ以外の唯一のフレーム
・マネージャとして配置される。次いで、新しい開始時
間及び終了時間がFCB1に書き込まれ、FCB1の割
込みフラグが0にセットされ(非稼動)、図1の優先順
位レジスタ9が優先順位順待ち行列ないしスケジュール
3内の次のフレーム・マネージャの終了時間にセットさ
れる。これは図4ないし図5のブロック31−40、特
にブロック39に示されている。
【0092】オペレーティング・システムの制御は次い
で、スケジュール走査プロセスである図1のブロック4
に進む。このコードは実行準備のできている他のフレー
ム・マネージャについて、ブロック3のスケジュールを
探索する。本例には他のフレーム・マネージャがないの
で、非リアルタイム・フレーム・マネージャがリストの
一番下で見つけだされ、その識別記号が図1、ブロック
4のスキャナによって図1、ブロック5のフレーム・マ
ネージャ開始コードに渡される。
【0093】フレーム・マネージャのポインタによって
見つけだされるNRTMコードはプロセッサによって実
行され、図1の優先順位ブロック9がNRTMフレーム
・マネージャのもの、すなわち、本例では、64Kt+
1にセットされる。NRTMコードは第2のフレーム・
マネージャを、上記のFM1の挿入に関して説明したプ
ロセスと同じ態様で、図1のブロック3のメモリ内のス
ケジュールに挿入する。これはこのスケジュール、すな
わちリスト3のFM1に続くFM2をもたらす。図1、
ブロック1から、図2ないし図5について説明した活動
を第2のフレーム・マネージャに対して反復する。
【0094】図2及び図3に戻ると、このフレーム・マ
ネージャに対する新しい開始時間及び終了時間、ならび
に新しいアラーム時間が計算される。CDを再生するた
めに架空のユーザが呼び出した第2のタスクであるFM
2の開始時間は48という開始時間、48というアラー
ム時間及び96Ktという終了時間を有している。図2
において、FM2のインディケータを挿入するため、リ
スト内の適切な位置を見つけだすために、一番下から上
方へ探索を行って、遊休リストがチェックされる。FM
2がFM1よりも遅いALARM時間(すなわち、相対
的にいって、48は32というサンプル時間よりも遅
い)を有するので、FM2は図1の遊休フレーム・マネ
ージャ・リスト2内でFM1の後におかれることにな
る。
【0095】図4及び図5に進むと、図1のフレーム・
マネージャ・スケジュール3が再度探索され、FM2が
スケジュール優先順位リストないし待ち行列内の正しい
位置におかれる。FM2はFM1よりも遅い終了時間を
有するので、スケジュール優先順位リストないし待ち行
列3ではFM1の後になる。この時点で、非リアルタイ
ム・フレーム・マネージャの終了時間が96Kt+1に
セットされ、フレーム・マネージャの以前のスケジュー
ル位置から始めて、実行する他のフレーム・マネージャ
を探索するスケジュール走査操作が行われる図1のブロ
ック4にプロセスが進む。スケジュール3が待ち行列内
のフレーム・マネージャの配列されたリストになってお
り、かつ非リアルタイム・マネージャが後に続いたFM
2が続いているFM1を含んでいるので、非リアルタイ
ム・フレーム・マネージャが図1のブロック4のフレー
ム・マネージャ開始コードによって見いだされ、非リア
ルタイム・フレーム・マネージャが再度実行される。図
1の優先順位ブロック9は96Kt+1にセットされ
る。
【0096】この例ではスケジュールに追加される他の
フレーム・マネージャがないので、FM1またはFM2
のいずれかに対する遊休リストからのアラームが発生し
たことを示す定期的に発生する割込みソースによって、
非リアルタイム・フレーム・マネージャ・コードが割込
みを受けるまで、非リアルタイム・フレーム・マネージ
ャ・コードは各種のユーティリティ機能を実行する。こ
のような割込みが発生した場合、オペレーティング・シ
ステムのコードの実行は図1のブロック7の割込みの所
与のレベルで、割込みハンドラ・コードに渡され、次い
で、図8に示す割込みプロセスが実行される。
【0097】図8のブロック1の割込みハンドラ・コー
ドはブロック58で示すようにクロックを更新する。ク
ロックを更新するデータは上述の表2の割込みハンドラ
・データ構造に含まれている。割込みハンドラ・コード
はこれに関連する割込みレベル対遊休リスト2の遊休リ
ストをチェックする。この場合、FM1が見つけだされ
る。そのアラーム時間は32のサンプル時間に等しく、
SCLOCK(図1のブロック8)によって示される1
に等しい現在時間についてチェックされる。32という
現行アラームがSCLOCKの内容と等しくないので、
実行は割込みを受けた場所から再開される。
【0098】1回ごとに増加させられるSLOCKのカ
ウントがアラーム・カウントに等しくなる、すなわちF
M1の開始時間になったことを示すまで、割込みがこの
ようにフィールドされる。この時点で、遊休リストの先
頭をリスト内の次のフレーム・マネージャ、本例におい
てはFM2にポイントすることによって、FM1が遊休
リストから除去される。次いで、優先順位、すなわちF
M1の終了時間が図1の優先順位レジスタ9の内容と比
較される。フレーム・マネージャ1の優先順位はFCB
1の終了時間であり、これは64Ktである。しかしな
がら、優先順位レジスタ9の内容はNRTMフレーム・
マネージャの96Kt+1であるから、FM1はこの終
了時間がNRTMコードのフレーム・マネージャよりも
早いので高い優先順位を持つことになる。これを図8の
ブロック59ないし64に示す。ブロック64におい
て、図1の優先順位レジスタ9が64Ktにセットされ
るが、これはFM1の終了時間である。ディジタル信号
プロセッサの前後関係、すなわちすべてのオペレーティ
ング・レジスタの現在の状況などは、非リアルタイム・
マネージャのFCBの各種のフィールドにおけるこの割
込みのため、セーブされ、プロセスは図9及び図10へ
進む。
【0099】図9及び図10において、図1のブロック
3のスケジュールをチェックして、FM1が同一の終了
時間を有する、すなわち「同一優先順位」の他のフレー
ム・マネージャによってスケジュール内で処理されてい
ないことを確認する。この現象が生じるのは、マルチイ
ンタラプト・システムにおいてのみであり、また問題の
フレーム・マネージャが同一またはほぼ同一の実行期間
を有している場合だけである。これが発生した場合に
は、フレーム・マネージャのスケジュール3が調節さ
れ、実行対象のフレーム・マネージャが同一の終了時間
を有する他のすべてのフレーム・マネージャに先行する
こととなる。すなわち、同一のデッドラインないし完了
時間を有するフレーム・マネージャのうち、もっとも早
い実行開始時間を有するフレーム・マネージャが最初の
ものとなる。本例において、他のフレーム・マネージャ
がFM1よりも前にないので、実行は図6及び図7のタ
ブDに示すように続き、これは図7のブロック56に入
る。この時点で、ブロック10に対するフレーム・マネ
ージャのポインタはFM1に属するFCB1をポイント
するようにセットされ、FM1が実行される。
【0100】FM1は実行を終了すると、再スケジュー
リングのためにオペレーティング・システムに戻り、オ
ペレーティング・システムは新しい開始時間、終了時間
及びアラームを計算して図2及び図3に示すプロセスを
再度開始する。本例において、64という開始時間、6
4というアラーム及び96Ktという終了時間が再計算
される。次いで、遊休リストが下から探索され、FCB
2のフレーム・マネージャに遊休リスト内で遭遇し、4
8というアラーム時間を有すると判断される。したがっ
て、FM1はFM2より遅い開始時間を有しているの
で、遊休リスト内でFM2の後におかれる。プロセスは
図4及び図5に進み、ここで非リアルタイム・フレーム
・マネージャの終了時間がFM1の終了時間よりも大き
いと判断されるので、NRTMフレーム・マネージャの
終了時間は変更されない。図1のフレーム・マネージャ
のスケジュール3がここで、図1のブロック4のスキャ
ナによって、フレーム・マネージャのスケジュール3内
のFM1の現行位置から探索される。フレーム・マネー
ジャ2が次ぎに見いだされ、FM2の終了時間がFM1
の終了時間と等しいのであるから、FM2が渡される。
FM2の後ろには、FM1よりも大きな終了時間を有す
る非リアルタイム・フレーム・マネージャがおかれてい
るので、FM1がリストのFM2と非リアルタイム・フ
レーム・マネージャの間に再度挿入される。それ故、フ
レーム・マネージャのスケジュール3ないし待ち行列が
ここで並べ変えられ、スケジュールの先頭、FM2、F
M1及び最後に非リアルタイム・フレーム・マネージャ
のマーカを含むようになる。
【0101】FM1の新しい終了時間及び開始時間がF
CB1に書き込まれ、優先順位レジスタ9が次のフレー
ム・マネージャFM2の終了時間に、したがって96K
tにセットされ、再スケジュール・プロセスは図6のタ
ブBに示すように継続する。図6において、フレーム・
マネージャが実行する次のフレーム・マネージャを見つ
けだすために、スケジュール待ち行列内のフレーム・マ
ネージャ1の以前の位置から走査される。FM2はすで
にスケジュール3内でFM1の後ろにおかれているの
で、探索操作はFM2から始められるが、これはFM2
がチェックされる次の候補であることを意味する。
【0102】ここで、この特定の時点において、FM2
の開始時間になった、すなわち、FM2の開始時間のア
ラームに対応する割込みが発生したものと想定する。上
述したように、図1の割込みハンドラ・ブロックにある
図8の割込みハンドリング・コードは、FM2のALA
RMが発生しているかどうかを判断し、FM2がこの割
込みが存在している割込みレベルに対応した遊休リスト
・レベルから除去される。しかしながら、この時点で
は、フレーム・マネージャ2の終了時間は優先順位リス
ト9に含まれているものよりも小さくないので、実行は
割込みを受けた場所から再開される。実行が図6のタブ
Bで割込みを受けているので、この場所から再開され、
FM2は実行の候補となり、この開始時間がブロック4
4においてその割込みソースのSCLOCKの内容と比
較される。これらは本例においては等しいものであると
判断されるので、図1の優先順位ブロック9はFM2の
終了時間にセットされ、FM2はここで、詳細を図7に
示す図1のブロック5のフレーム・マネージャ開始コー
ドによって開始される(すなわち、実行される)フレー
ム・マネージャとなる。
【0103】図7において、まず、FM2の開始フラグ
をテストし、このフレーム・マネージャが割込みを受け
た状態であるかどうかを調べる。割込みフラグは、FM
2が割込みを受けた状態ではないが、最初から実行され
る準備ができていることを示す0であると判断される。
図1のブロック10のフレーム・マネージャのポインタ
はメモリ内のFCB2をポイントし、FM2が実行され
ていることを示す。FM2の割込みフラグは1にセット
され、FM2が引き続いて優先順位の高いフレーム・マ
ネージャによって割込みを受ける、または優先使用され
る場合に、FM2の状態を復元する必要があることを示
す。これを自明の態様でブロック51−57に示す。
【0104】上記のプロセスは複雑なように思われる
が、これは簡単に実行されるものであり、数マシン・サ
イクルを要するだけである。プロセスは限りなく継続
し、実行の完了ごとにFM1及びFM2が再スケジュー
ルされる。これらのフレーム・マネージャはその現在の
それぞれに計算された次の終了時間にしたがってフレー
ム・マネージャのスケジュール内で並べ変えられ、これ
らが活動状態から遊休状態への、及び遊休状態から活動
状態への遷移した場合に連続的に遊休リストにおかれる
か、あるいはこれから除去される。実行されているフレ
ーム・マネージャが実行中に割り込まれ、優先使用され
る点で、この説明全体を通じて説明しているように、再
スケジューリング・プロセスは割込み可能である。これ
が発生した場合、ディジタル信号プロセッサの機械状態
はこれに割り当てられた特定のフィールド内で、上述し
たようにFCBにセーブされる。制御が最終的に割込み
を受けたフレーム・マネージャに戻された場合、再スケ
ジューリングは割込みがまったく生じなかったように、
正常に継続する。
【0105】流れ図の詳細な説明 図2ないし図5を詳細に説明するために、番号を付けた
ブロックを参照して、以下に説明する。図2において、
フレーム・マネージャが図1の優先順位待ち行列3内で
再スケジュールされていることを示す、ブロック11の
活動フレーム・マネージャのFCBに対するポインタの
検索が行われる。ブロック12において、「新しい開始
時間」=「古い開始時間」+FCBからの「FRAM
E」及び「新しい終了時間」=「古い終了時間」+FC
Bからの「FRAMEH」というルーチンにしたがっ
て、プロセスは新しい開始時間及び新しい終了時間を計
算しなければならない。ブロック13において、新しい
アラームを計算し、FCBを新しい開始時間にセットし
なければならない。ブロック14において、システムは
図1の遊休フレーム・マネージャ・リスト2の末尾に対
するポインタを検索しなければならない。これは前出の
表2に示した割込みハンドラ・データ構造からのもので
ある。
【0106】ブロック15において、後続のステップ中
に発生するのを防ぐために、割込みがマスクされる。ブ
ロック16において、チェックすべき次のフレーム・マ
ネージャのFCBをポイントするポインタが検索され
る。ただし、チェックされる次のフレーム・マネージャ
は遊休フレーム・マネージャ・リストに示されている直
前のフレーム・マネージャである。ブロック17におい
て、遊休フレーム・マネージャ・リストの先頭に対する
チェックが行われ、先頭が見つかった場合には、操作は
ブロック24へ進む。
【0107】ブロック18において、次のフレーム・マ
ネージャに対するアラームが活動フレーム・マネージャ
のアラームよりも小さいかどうかを判断するためのチェ
ックを行い、そうである場合には、プロセスはブロック
21へ進む。ブロック19において、遊休リストのポイ
ンタが遊休フレーム・マネージャ・リスト内の直前のフ
レーム・マネージャにセットされる。すなわち、遊休リ
ストのポインタは遊休フレーム・マネージャ・リスト内
で1項目上に移動される。
【0108】ブロック20において、割込みのマスクが
外されるので、待機状態の割込みが行われ、システムは
ブロック15へ進む。割込みが発生しない場合には、ブ
ロック15及び16に流れるなどとなる。
【0109】ブロック21において、次のフレーム・マ
ネージャのアラームが活動フレーム・マネージャのアラ
ームと等しいかどうかを判断するチェックが行われ、等
しい場合には、操作はブロック22へ進む。しかし、等
しくない場合には、ブロック24へ進む。
【0110】ブロック21において、次のフレーム・マ
ネージャのアラームが活動フレーム・マネージャのアラ
ームと等しいと判断された場合には、これら2つのフレ
ーム・マネージャのうち1つのみが遊休フレーム・マネ
ージャ・リストに残っていることが必要となり、ブロッ
ク22が開始される。次のフレーム・マネージャの終了
時間が活動フレーム・マネージャのもの以下であるかど
うかについてのチェックが行われ、そうである場合に
は、活動フレーム・マネージャを遊休フレーム・マネー
ジャ・リストにおく必要がなく、遊休フレーム・マネー
ジャ・リストの探索及び挿入プロセスが完了したことに
なる。
【0111】ブロック23において、プロセスがブロッ
ク22で完了していないものと想定すると、次のフレー
ム・マネージャが遊休フレーム・マネージャ・リスト内
の活動フレーム・マネージャと置き換えられる。すなわ
ち、次のフレーム・マネージャがリストから除去され、
現在活動状態のフレーム・マネージャがその場所におか
れ、遊休フレーム・マネージャ・リスト探索及び挿入プ
ロセスが完了する。
【0112】ブロック24において、次のフレーム・マ
ネージャと遊休リスト・ポインタの間への活動フレーム
・マネージャの挿入が、それが該当する条件に合わせて
行われる。すなわち、活動フレーム・マネージャが次の
フレーム・マネージャの後で、遊休リスト・ポインタが
ポイントするフレーム・マネージャの前におかれ、遊休
リスト探索及び挿入プロセスが完了する。
【0113】図2及び図3はそれ故、実行が完了し、定
期的に再帰するタスク割込みスケジュールの次回の開始
を待っているフレーム・マネージャの待ち行列ないしリ
ストを維持する手段としての手順を表すものである。遊
休フレーム・マネージャのリストはそれ故、現在非活動
のフレーム・マネージャの開始時間になった場合に、オ
ペレーティング・システムを変更する手段を表すもので
ある。これによって、オペレーティング・システムが実
行スケジュールまたは待ち行列を調べ、現在実行準備が
できているフレーム・マネージャの優先順位がすでに実
行されているものよりも高いので、現在実行中のフレー
ム・マネージャよりも優先使用されるべきかどうかを決
定することが可能となる。
【0114】図4及び図5は図1のブロック1及びブロ
ック4の制御コードによって行われるフレーム・マネー
ジャの優先順位実行待ち行列またはスケジュール探索及
び挿入プロセスを詳細に表すものである。図4及び図5
において、プロセスは割込みのマスクを解除して、待機
中の割込みを実行できるようにするブロック25から開
始される。ブロック26において、スケジュール・ポイ
ンタがまず活動フレーム・マネージャにセットされ、実
行されているその時点で活動状態のフレーム・マネージ
ャのフレーム制御ブロックをポイントする。ブロック2
7において、非リアルタイム・マネージャの終了時間が
活動フレーム・マネージャの終了時間よりも遅い(すな
わち、より大きい)かどうかを判定するチェックが行わ
れる。遅い場合には、プロセスはブロック29へ進む。
遅くない場合には、プロセスはブロック28へ進み、非
リアルタイム・フレーム・マネージャの終了時間が活動
フレーム・マネージャの終了時間+1にセットされる。
それ故、非リアルタイム・フレーム・マネージャの終了
時間が現在のスケジュール内のいずれかのフレーム・マ
ネージャのものよりも遅くなる。すなわち、NRTMフ
レーム・マネージャはフレーム・マネージャの終了時間
順に並べられたフレーム・マネージャの待ち行列または
スケジュール・リストの末尾として働く。
【0115】ブロック29において、それ以降の実行中
に割込みが起こらないようにするために、割込みが再度
マスクされる。ブロック30において、次にスケジュー
ルされているフレーム・マネージャがスケジュールされ
ているポインタの後に設定される。すなわち、フレーム
・マネージャ・スケジュールの現行ポインタが次のフレ
ーム・マネージャのインディケータとして設定される。
ブロック31において、次のフレーム・マネージャの終
了時間が活動フレーム・マネージャの終了時間以上であ
るかどうかを判定するチェックが行われる。次いで、活
動フレーム・マネージャに対する適切な新しい位置が見
つけだされ、プロセスはブロック34へ進む。それ以外
の場合には、プロセスはブロック32へ進む。ブロック
32において、スケジュール・ポインタが設定され、現
在のスケジュール・ポインタの後にスケジュールされて
いる次のフレーム・マネージャがポイントされる。すな
わち、ポインタがフレーム・マネージャのスケジュール
内で1位置下へ移動する。ブロック33において、割込
みのマスクが解除され、待機中の割込みを実行できるよ
うになり、次いでプロセスはブロック29へ進む。
【0116】ブロック34において、スケジュール・ポ
インタが活動フレーム・マネージャの後に現在おかれて
いるフレーム・マネージャをポイントするように設定さ
れる。ブロック35において、活動フレーム・マネージ
ャがフレーム・マネージャ・スケジュールから除去さ
れ、ブロック36において、活動状態であったフレーム
・マネージャが「次のフレーム・マネージャ」の後に再
度挿入される。ブロック37において、新しい開始時間
及び終了時間が活動フレーム・マネージャのFCBに書
き込まれ、ブロック38において、活動フレーム・マネ
ージャに対する割込みフラグが、活動フレーム・マネー
ジャが割込み(すなわち、実行中であるが、中断してい
る)状態ではないことを示す0にセットされる。ブロッ
ク39において、システムの優先順位が現在のスケジュ
ール・ポインタによってポイントされているフレーム・
マネージャの終了時間として、図1のブロック9に対し
て設定される。これはフレーム・マネージャのスケジュ
ール待ち行列3内で活動フレーム・マネージャの後に以
前おかれていたフレーム・マネージャである。ブロック
40において、割込みのマスクが解除され、待機中の割
込みが実行できるようになり、フレーム・マネージャ探
索及び挿入プロセスが完了する。
【0117】上記したところから、実行対象のユーザ・
タスクに対応したフレーム・マネージャの優先順位待ち
行列がもっとも早いフレーム・マネージャのデッドライ
ンないし終了時間にしたがって確立され、管理されるプ
ロセスを図4及び図5が示していることがわかる。同じ
再帰頻度及び同じ必要な結果を得られるデッドラインを
有するユーザ・タスクを、その実行期間中にこのフレー
ム・マネージャによって処理しなければならない。フレ
ーム・マネージャの終了時間になるか、あるいは新しい
フレーム・マネージャが非リアルタイム・フレームマネ
ージャによって挿入されるか、削除されたときに、優先
順位順のフレーム・マネージャのリストないし待ち行列
が分類され、再スケジュールされる。
【0118】図6は図1のブロック4によって行われる
フレーム・マネージャ・スケジュール走査プロセスを示
す。ブロック41において、スケジュール・ポインタが
ポイントしているフレーム・マネージャが、実行の候補
として設定される。ブロック42は以降のプロセス中に
割込みをマスクする。ブロック43はフレーム・マネー
ジャの候補がリンクされる割込みソースに対するブロッ
ク7の関連した割込みデータ構造から、サンプル・クロ
ックSCLOCK、すなわちFCB及びフレーム・マネ
ージャがコントロールされる割込みレベルに対するタイ
マの内容を取得する。ブロック44において、フレーム
・マネージャの候補の開始時間が到来した(あるいは、
それを経過した)場合には、開始時間はSCLOCK以
下であり、現在のフレーム・マネージャを実行すること
ができる。次いで、プロセスはブロック48に進む。フ
レーム・マネージャの候補の開始時間が到来しない場
合、これを実行することはできず、バイパスする必要が
ある。それ故、プロセスはブロック45へ進む。非リア
ルタイム・フレーム・マネージャの開始時間が発生した
ように常に見えるので、リスト内で非リアルタイム・フ
レーム・マネージャの開始時間に達した場合に、非リア
ルタイム・フレーム・マネージャを常に実行できるとい
う態様で、非リアルタイム・フレーム・マネージャが初
期化される。
【0119】ブロック45において、優先順位がフレー
ム・マネージャの候補の終了時間+1に等しいものとし
て、図1のブロック9に対して設定される。ブロック4
6において、新しい候補がフレーム・マネージャのスケ
ジュール内の現在の候補の後にあるフレーム・マネージ
ャとして設定される。ブロック47において、割込みの
マスクが解除されて、待機中の割込みの実行が可能とな
り、操作はブロック42へ進む。
【0120】ブロック48において、システムは図1の
ブロック9に対する優先順位を、フレーム・マネージャ
の候補の終了時間として設定する。ブロック49におい
て、システムはフレーム・マネージャの候補を、開始さ
れる(すなわち、実行される)フレーム・マネージャと
して設定する。ブロック50において、システムは割込
みのマスクを解除して、待機中の割込みの実行を可能と
し、スケジュールの操作が完了し、実行対象の次のフレ
ーム・マネージャが見つけだされる。
【0121】図7のプロセスはフレーム・マネージャの
開始、すなわち実行がどのように始まるかを示す。ブロ
ック51において、開始フレーム・マネージャが0に等
しい割込みフラグを有している場合、これは割込みを受
けた状態ではなく、最初から実行しなければならないの
で、プロセスはブロック56に進む。しかしながら、割
込みフラグが1にセットされている場合には、フレーム
・マネージャは以前に割込みを受けており、これが割込
みを受けたときの状態から実行を再開しなければならな
い。これはセーブした内容を再設定しなければならない
ことを意味し、プロセスはブロック52へ進み、ここで
割込みがマスクされる。ブロック53において、割込み
が発生した時点の機械の内容が前述したフレーム・マネ
ージャのFCBの前後関係セーブ領域から復元される。
ブロック54において、フレーム・マネージャのポイン
タが開始されたフレーム・マネージャをポイントするよ
うに設定され、開始されたフレーム・マネージャが実行
のための活動フレーム・マネージャになる。ブロック5
5において、割込みのマスクが解除されて、再スケジュ
ーリング・プロセス全体が完了するので、割込みを受け
たフレーム・マネージャの実行を再開できるようにな
る。
【0122】ブロック51または図10のブロック77
から継続しているブロック56において、開始対象のフ
レーム・マネージャが最初から再開される。したがっ
て、フレーム・マネージャのポインタは開始フレーム・
マネージャのものと等しくセットされ、開始候補が活動
フレーム・マネージャになる。ブロック57において、
開始フレーム・マネージャの割込みが1にセットされ、
開始フレーム・マネージャがその後割込みを受け、他の
フレーム・マネージャによって優先使用される場合に
は、その内容を復元のためにセーブする必要があり、実
行を割込みの場所から再開しなければならない。これは
再スケジューリング・プロセス全体を完了し、新しい活
動フレーム・マネージャの実行が開始される。
【0123】ブロック7の割込みハンドリング・コード
の詳細を図8に示す。ブロック58において、クロック
が表2に示した割込みハンドラ・データ構造内で更新さ
れる。ブロック59において、この割込みレベルに関連
した割込みハンドラの遊休フレーム・マネージャ・リス
トの最初のフレーム・マネージャがアクセスされる。ブ
ロック60に示すように、遊休リスト2が空の場合、こ
れはこの割込みレベルに現在フレーム・マネージャが存
在しておらず、システムが割込みを受けたプロセスに戻
ることを意味している。ブロック61において、フレー
ム・マネージャの遊休リストがフレーム・マネージャを
有しており、そのリストの先頭になっている場合、すな
わち開始時間が発生している場合、プロセスはブロック
62へ進む。それ以外の場合には、割込みを受けたプロ
セスに戻る。ブロック62において、最初のフレーム・
マネージャが活動状態になった、すなわちその開始時間
が経過したので、該フレーム・マネージャがフレーム・
マネージャ・リストから除去される。ブロック63にお
いて、フレーム・マネージャの終了時間が図1の優先順
位ブロック9に現在示されているものよりも小さい場
合、フレーム・マネージャは活動フレーム・マネージャ
よりも高い優先順位を現在有しており、これを実行しな
ければならないので、プロセスはブロック64に進む。
それ以外の場合には、プロセスは割込みを受けたプロセ
スに戻る。ブロック64において、優先順位が現在のフ
レーム・マネージャの終了時間として再設定され、割込
みフレーム・マネージャが優先順位を有していることを
示す。ブロック65において、割込みを行っているフレ
ーム・マネージャが開始すべき、すなわち実行すべきフ
レーム・マネージャとして設定される。ブロック66に
おいて、機械の現在の前後関係が優先使用されるフレー
ム・マネージャの前後関係セーブ領域にセーブされる。
ブロック67において、割込み保護が解除され、以降の
割込みが実行できるようになる。これで割込みプロセス
が完了し、流れがオペレーティング・システム内で、ブ
ロック68から始まる図9及び図10に示す複数割込み
スケジュール調節に進む。
【0124】図9及び図10において、図1に略示して
いるものなどの複数割込みレベル・システムでは、スケ
ジュール・ポインタを開始されたフレーム・マネージャ
のポインタであるように設定する必要がある。すなわ
ち、これが実行対象のフレーム・マネージャをポイント
するようにしなければならない。ブロック69におい
て、フレーム・マネージャ・スケジュールの開始点とし
ての役割を果たすダミーFCBであるフレーム・マネー
ジャ・スケジュールの先頭の終了時間は、開始されたフ
レーム・マネージャの終了時間と等しくなく、それ故、
待ち行列内のフレーム・マネージャのスケジュールの先
頭よりも前方の探索を防止するようになっていなければ
ならない。ブロック70において、現在のスケジュール
・ポインタの前にあるフレーム・マネージャは「直前の
フレーム・マネージャ」として設定される。ブロック7
1において、直前のフレーム・マネージャの終了時間が
開始されたフレーム・マネージャの終了時間と等しくな
い場合、スケジュールの調節は必要なく、プロセスは進
行して、図7のブロック56へ進むことによって、開始
されたフレーム・マネージャを実行する。それ以外の場
合には、プロセスはブロック72へ進む。
【0125】ブロック72において、システムは直前の
フレーム・マネージャをスケジュール・ポインタとして
設定し、フレーム・マネージャをフレーム・マネージャ
のスケジュール内で1スペース上方へ移動させる。ブロ
ック72において、ブロック70のプロセスが反復され
る。ブロック73において、「直前のフレーム・マネー
ジャ」の終了時間が開始されたフレーム・マネージャの
終了時間と等しい場合、走査はまだ開始されたものとは
異なる終了時間を有している先行するフレーム・マネー
ジャを発見していないので、プロセスはブロック72へ
進まなければならない。そうでない場合には、プロセス
はブロック75へ進む。ブロック75において、割込み
がマスクされ、ブロック76において、開始されたフレ
ーム・マネージャがフレーム・マネージャのスケジュー
ルから除去され、直前のフレーム・マネージャの後の点
でフレーム・マネージャ・スケジュールに再挿入される
だけとなる。ブロック78において、割込みのマスクが
解除され、待機している割込みが実行できるようにな
る。開始されたフレーム・マネージャが開始されたもの
の終了時間と同一の終了時間を有しているすべてのフレ
ーム・マネージャに先行するようにするフレーム・マネ
ージャの調節が完了し、プロセスは図7のブロック56
に進む。
【0126】フレーム・マネージャの実行のスケジュー
リング及び再スケジューリング、割込みまたは再設定に
おけるオペレーティング・システムの全体的な作動を、
図11に図示する。図11において、FM11、FM5
及びFM3というフレーム・マネージャの例が、割込み
のカウントに基づく時間線で表されている。フレーム・
マネージャ11、5及び3はそれぞれ11回、5回及び
3回という割込み回数の実行フレームを有している。す
なわち、フレーム・マネージャは11回、5回及び3回
の割込み回数ごとに定期的に発生する開始時間と終了時
間を持つ。フレーム・マネージャをすべて、説明を簡単
にするため、本例に示すように同じハードウェア割込み
ソースに連係することができる。フレーム・マネージャ
11、5及び3に関連した時間線に沿ったボックスは、
フレーム・マネージャが実際に実行される期間を示す。
0、1、2などの0から始まる任意のラベル付けを行う
と、プロセスは次のように進む。
【0127】フレーム・マネージャ11、5及び3はす
べて、割込み0で始まる開始時間を有している。終了時
間に基づく実行スケジュールの順序は、それ故、フレー
ム・マネージャ3、フレーム・マネージャ5、及びフレ
ーム・マネージャ11の順となる。実行スケジュールで
最初のフレーム・マネージャであるフレーム・マネージ
ャ3は割込み0で実行を開始する。フレーム・マネージ
ャ3のタスクの実行は、割込み1の後で完了するものと
示されており、したがって、割込み3で再度始まり、新
しい終了時間が割込み6になるように再スケジュールさ
れる。スケジュールの新しい実行順序はフレーム・マネ
ージャ5、フレーム・マネージャ3及びフレーム・マネ
ージャ11の順となる。フレーム・マネージャ5が次に
実行を開始するが、これはこのフレーム・マネージャが
すでに開始時間に達しており、実行スケジュールで最初
になっており、フレーム・マネージャ3が実行されてい
るからである。フレーム・マネージャ5は割込み2に達
した後で実行を完了し、割込み5で始まる新しい開始時
間で、割込み10の新しい終了時間に再スケジュールさ
れる。実行スケジュールの新しい順序はフレーム・マネ
ージャ3、フレーム・マネージャ5及びフレーム・マネ
ージャ11の順となる。しかしながら、この時点で、す
なわち、割込み2の直後に、フレーム・マネージャ3と
5は実行スケジュール内でフレーム・マネージャ11に
先行しているが、これらの開始時間にはまだ到達してい
ない。フレーム・マネージャ3と5はそれ故、バイパス
され、フレーム・マネージャ11の実行が実際に開始さ
れる。
【0128】割込み3において、フレーム・マネージャ
3の2回目の反復に対する開始時間になるが、フレーム
・マネージャ11の実行はまだ終了していない。フレー
ム・マネージャ3は実行スケジュール内でフレーム・マ
ネージャ11に先行しており、したがって、より高い優
先順位を有している。それ故、フレーム・マネージャ1
1が優先使用され、すなわち、割込みを受け(その処理
の現行状態がそのFCBにセーブされる)、フレーム・
マネージャ3がその実行の2回目の反復を開始する。フ
レーム・マネージャ3が実行を完了すると、このフレー
ム・マネージャは割込み点6の新しい開始時間及び割込
み9の新しい終了時間によって再スケジュールされる。
【0129】スケジュールの実行の新しい順序はFM
3、FM5及びFM11の順となる。この時点で、フレ
ーム・マネージャ3と5はフレーム・マネージャ11に
先行しているが、これらの開始時間はまだ発生ないし再
発生しておらず、それ故、FM11が実行を開始した
(割込みから再開された)際に、バイパスされる。
【0130】割込み#5において、フレーム・マネージ
ャ5の2回目の反復に対する開始時間になるが、フレー
ム・マネージャ11の実行はまだ完了していない。フレ
ーム・マネージャ5はフレーム・マネージャ11に先行
しており、それ故、より高い優先順位を有しているので
(実行スケジュール待ち行列内で)、フレーム・マネー
ジャ11は再度優先使用され(割り込まれ)、フレーム
・マネージャ5は2回目の実行の反復を開始する。割込
み#6において、フレーム・マネージャ3の開始時間が
再度発生するが、フレーム・マネージャ5はその実行を
完了しておらず、したがって、割込みを受ける。
【0131】フレーム・マネージャ3はフレーム・マネ
ージャ5に先行しているので、フレーム・マネージャ5
は優先使用され、すなわち割込みを受け、フレーム・マ
ネージャ3は3回目の実行の反復を開始する。フレーム
・マネージャ3は割込み7に達した後に完了し、割込み
9の新しい開始時間と割込み12の新しい終了時間を有
するように再スケジュールされる。
【0132】実行の新しい順序はフレーム・マネージャ
5、フレーム・マネージャ11及びフレーム・マネージ
ャ3の順となる。フレーム・マネージャ5がスケジュー
ルの先頭にあるので、その実行はこれが割込みを受けた
場所から再開され、完了するまで実行され、割込み10
の新しい開始時間及び割込み15の新しい終了時間を有
するように再スケジュールされる。
【0133】フレーム・マネージャのスケジュールまた
は優先順位待ち行列に対する実行の新しい順序は、フレ
ーム・マネージャ11、フレーム・マネージャ3及びフ
レーム・マネージャ5の順となる。今までに数回割込み
を受けているフレーム・マネージャ11の実行が再開さ
れる。フレーム・マネージャ3の開始時間が割込み9で
発生するが、その優先順位が新しい実行スケジュール内
のフレーム・マネージャ11のものよりも小さいので、
フレーム・マネージャ3の実行は開始されない。フレー
ム・マネージャ5の開始時間は割込み10で発生する
が、フレーム・マネージャ11が新しいスケジュール内
でフレーム・マネージャ5よりも高い優先順位を有して
いるので、フレーム・マネージャ5の実行は開始されな
い。フレーム・マネージャ11はそれ故、実行を完了
し、割込み11の新しい開始時間及び割込み22の新し
い終了時間を有するように再スケジュールされる。スケ
ジュール内の実行の優先順位の新しい順序は、それ故、
フレーム・マネージャ3、フレーム・マネージャ5及び
フレーム・マネージャ11となる。フレーム・マネージ
ャ3の開始時間はすでに発生しているから、フレーム・
マネージャ3は直ちに実行を開始する。フレーム・マネ
ージャ11の開始時間が割込み11で発生するが、フレ
ーム・マネージャ3が新しい実行スケジュール内で、フ
レーム・マネージャ11が保持しているものよりも高い
優先順位を有しているので、フレーム・マネージャ11
は実行を開始しない。フレーム・マネージャ3は割込み
11後に実行を完了し、割込み12の新しい開始時間及
び割込み15の新しい終了時間で再スケジュールされ
る。
【0134】実行スケジュールないし待ち行列内の実行
優先順位の新しい順序はフレーム・マネージャ5、フレ
ーム・マネージャ3、その後にフレーム・マネージャ1
1という順になる。フレーム・マネージャ5の開始時間
がすでに発生しており、フレーム・マネージャ5が実行
優先順位待ち行列内でフレーム・マネージャ3と11に
先行しているので、フレーム・マネージャ5の実行が開
始される。フレーム・マネージャ3の開始時間が割込み
12で発生するが、フレーム・マネージャ3の優先順位
がフレーム・マネージャ5のものよりも高くないので、
フレーム・マネージャ3の実行は開始されない。フレー
ム・マネージャ5はしたがって、割込み12後に実行を
完了し、割込み15の新しい開始時間及び割込み20の
新しい終了時間を有するように再スケジュールされる。
優先順位待ち行列の実行の新しい順序は、フレーム・マ
ネージャ3、フレーム・マネージャ5及びフレーム・マ
ネージャ11の順となる。フレーム・マネージャ3の開
始時間が発生しており、その優先順位がフレーム・マネ
ージャ5及び11よりも高いので、フレーム・マネージ
ャ3の4回目の実行を開始する。
【0135】上記のプロセスはフレーム・マネージャ1
1が再度実行を完了する割込み18まで、何回も反復し
ながら継続する。この時点で、フレーム・マネージャ
3、5及び11はすべて、これらの現行のフレームに対
する実行を完了しており、これらの開始時間は再発生し
ていない。この状態が優勢である場合、非リアルタイム
・フレーム・マネージャのタスクを実行することが可能
となる。結局、割込み20が発生し、フレーム・マネー
ジャ5の開始時間に達し、非リアルタイム・フレーム・
マネージャが割込みを受け、フレーム・マネージャ5の
実行が上述のように再開される。
【0136】
【発明の効果】上記したところから、マルチメディア、
ロボット、及びその他の複雑な対話式のユーザ・システ
ム環境で遭遇するような選択されたハードで、リアルタ
イムな依存的なタスクのランダムに発生する複合体に理
想的に適合する新しいオペレーティング・システム及び
操作の方法が画定されたことが、容易に理解されよう。
このオペレーティング・システム及び方法が任意の汎用
コンピュータ・システムへの適合及び導入に完全に適応
するのであるから、好ましい実施例を説明するために利
用したディジタル信号プロセッサなどの特別なプロセッ
サに対する特定の依存関係が課されることはない。オペ
レーティング・システムを、再発生するタスクの完了ま
たは終了時間に基づくタスクの実行、優先順位付け、及
びスケジューリングを含めて、好ましい実施例に関して
詳細に説明したが、当分野の技術者には、特定の手順の
流れに対して各種の変更をその機能及び内容から逸脱す
ることなく行えることが容易に理解されよう。
【図面の簡単な説明】
【図1】本発明のコンピュータ・システムに存在してい
るデータ及び制御フローの相互関係とともに、コード及
びデータを制御する機能ブロックとしてのコンピュータ
・オペレーティング・システムの要素の配置の略図であ
る。
【図2】現在遊休状態の呼び出されたタスクを含んでい
る補足リストないし待ち行列に呼び出されたタスクを追
加する際に関与する部分に対するスケジューリング技法
の論理プロセスの流れ図である。
【図3】現在遊休状態の呼び出されたタスクを含んでい
る補足リストないし待ち行列に呼び出されたタスクを追
加する際に関与する部分に対するスケジューリング技法
の論理プロセスの流れ図である。
【図4】図2及び図3で開始されたプロセスに継続する
ものであるが、タスク実行優先順位待ち行列を構築する
際に行われる手順のステップを説明する流れ図である。
【図5】図2及び図3で開始されたプロセスに継続する
ものであるが、タスク実行優先順位待ち行列を構築する
際に行われる手順のステップを説明する流れ図である。
【図6】実行対象タスクの待ち行列ないしスケジュール
の走査の詳細を示す、タスク実行待ち行列プロセスの図
4及び図5から継続する部分の流れ図である。
【図7】同等な完了デッドラインを有する所与のタスク
またはタスクのグループの実行が開始されるタスク実行
待ち行列管理プロセスの部分を示す流れ図である。
【図8】活動タスク実行待ち行列による遊休タスク・リ
スト及び反復の管理に関する割込み処理プロセスの効果
を示す流れ図である。
【図9】複数割込みシステムにおいてタスクまたはタス
クのグループを呼び込む直前に、タスク実行待ち行列の
項目を必要に応じ調節するためのプロセスの流れ図であ
る。
【図10】複数割込みシステムにおいてタスクまたはタ
スクのグループを呼び込む直前に、タスク実行待ち行列
の項目を必要に応じ調節するためのプロセスの流れ図で
ある。
【図11】本発明の好ましい実施例にしたがってタスク
の実行結果を必要とするデッドラインに基づいた反復タ
スクのスケジューリングの略図である。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】マルチタスキング・コンピュータ・システ
    ムにおいて再帰する、リアルタイムのコンピュータ・タ
    スクのセットの実行制御方法であって、 1つまたは複数の前記タスクを開始するための要求を前
    記コンピュータ・システムで受け取るステップと、 前記タスクの要求されている完了デッドラインにしたが
    って配列されたタスク実行優先順位待ち行列を生成する
    ステップであって、前記待ち行列はすべての前記タスク
    に対応する項目を有しており、前記項目は前記タスクの
    完了デッドラインが早い順に高い優先順位を有するよう
    にランク付けられている、ステップと、 前記タスクを、実行準備ができていると判断された前記
    待ち行列内のもっとも優先順位の高い前記項目から実行
    するステップと、 からなる実行制御方法。
  2. 【請求項2】前記待ち行列内の項目の実行が完了した場
    合に、前記待ち行列の項目を並べ換えるステップをさら
    に含んでいる請求項1記載の方法。
  3. 【請求項3】実行の完了時に、前記待ち行列から項目を
    除去し、 前記再帰タスクの完了デッドライン期間に等しい新しい
    完了デッドラインを前記待ち行列内の一つの位置に前記
    項目を再挿入するステップをさらに含んでいる請求項1
    記載の方法。
  4. 【請求項4】等しい完了デッドラインを有する前記項目
    を、前記項目に対応する前記タスクの開始時間の早いも
    のから高い優先順位をつけて並べるステップをさらに含
    んでいる請求項1、2、3記載の方法。
  5. 【請求項5】少なくとも1つの非同期非リアルタイム再
    帰タスクに対応した前記待ち行列にもっとも優先順位の
    低い項目を挿入するステップをさらに含んでいる請求項
    1、2、3または4記載の方法。
  6. 【請求項6】次の再帰実行開始時間を待っている前記の
    完了した実行タスクに対応した項目についての待ち行列
    を別に生成するステップをさらに含んでおり、該待ち行
    列は前記開始時間の早い順に高い優先順位をもって並べ
    られている、 請求項1、2、3、4または5のいずれか1項に記載の
    実行制御方法。
  7. 【請求項7】前記待ち行列内の前記項目の各々が前記項
    目が対応している前記デッドラインに等しい実行完了デ
    ッドラインを有している前記タスクのすべてを含んでい
    る請求項1、2、3、4、5または6のいずれか1項に
    記載の方法。
  8. 【請求項8】マルチタスキング・コンピュータ・システ
    ムにおける定期的に帰するリアルタイムなタスクのラン
    ダムに変動するセットのコンピュータにおける実行を制
    御するオペレーティング・システムにおいて、 前記のすべてのタスクを実行完了デッドラインにしたが
    って並べたタスク実行優先順位待ち行列を生成し、該待
    ち行列内のもっとも優先順位の高い前記項目をもっとも
    早い前記タスク実行完了デッドラインに対応させる手段
    と、 前記待ち行列を探索して、実行準備のできていると判断
    されるタスクを有するもっとも優先順位の高い前記項目
    を見つけだす手段と、 実行準備ができていると判断されるタスクの実行を開始
    させる手段とからなる前記オペレーティング・システ
    ム。
  9. 【請求項9】実行の完了時に前記待ち行列から項目を除
    去する手段と、 前記再帰タスクの完了デッドライン期間に等しい期間を
    前記待ち行列内の新しい完了デッドラインを挿入すべき
    前記項目内の位置に再挿入する手段とをさらに含んでい
    る請求項8記載のシステム。
JP4334026A 1992-01-31 1992-12-15 マルチメディア・コンピュ―タ・オペレ―ティング・システム及び方法 Expired - Fee Related JP2519382B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US829201 1992-01-31
US07/829,201 US5640563A (en) 1992-01-31 1992-01-31 Multi-media computer operating system and method

Publications (2)

Publication Number Publication Date
JPH05274162A true JPH05274162A (ja) 1993-10-22
JP2519382B2 JP2519382B2 (ja) 1996-07-31

Family

ID=25253831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4334026A Expired - Fee Related JP2519382B2 (ja) 1992-01-31 1992-12-15 マルチメディア・コンピュ―タ・オペレ―ティング・システム及び方法

Country Status (10)

Country Link
US (1) US5640563A (ja)
EP (1) EP0553588B1 (ja)
JP (1) JP2519382B2 (ja)
KR (1) KR960005105B1 (ja)
CN (1) CN1038620C (ja)
AT (1) ATE184119T1 (ja)
BR (1) BR9300031A (ja)
CA (1) CA2080187C (ja)
DE (1) DE69229909T2 (ja)
TW (1) TW216474B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028843A (en) * 1997-03-25 2000-02-22 International Business Machines Corporation Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first
WO2006080371A2 (ja) 2005-01-31 2006-08-03 Matsushita Electric Ind Co Ltd アクセス調停装置、および調停可能条件検証装置

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3334970B2 (ja) * 1993-10-29 2002-10-15 松下電器産業株式会社 生産進捗管理支援方法及び装置
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
JP3658420B2 (ja) * 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
US6141412A (en) * 1994-06-01 2000-10-31 Davox Corporation Unscheduled event task processing system
TW270193B (ja) * 1994-08-10 1996-02-11 Ibm
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
DE19530483A1 (de) * 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE19648422C2 (de) * 1996-11-22 2000-03-30 Hans Beckhoff Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm
US6317774B1 (en) * 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule
JP3037182B2 (ja) * 1997-02-17 2000-04-24 日本電気株式会社 タスク管理方式
US6324562B1 (en) * 1997-03-07 2001-11-27 Fujitsu Limited Information processing apparatus, multitask control method, and program recording medium
GB2323945B (en) * 1997-04-04 2002-02-27 Sony Uk Ltd Automated job scheduling in a data storage and/or retrieval system
US6243735B1 (en) * 1997-09-01 2001-06-05 Matsushita Electric Industrial Co., Ltd. Microcontroller, data processing system and task switching control method
US5999963A (en) * 1997-11-07 1999-12-07 Lucent Technologies, Inc. Move-to-rear list scheduling
IL122299A (en) * 1997-11-25 2003-11-23 Broadcom Corp Video encoding device
US7805724B1 (en) * 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
US7451447B1 (en) 1998-08-07 2008-11-11 Arc International Ip, Inc. Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls
US6477558B1 (en) * 1999-05-17 2002-11-05 Schlumberger Resource Management Systems, Inc. System for performing load management
US7165252B1 (en) 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
JP2001022600A (ja) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd ディジタル信号処理装置
KR100727901B1 (ko) * 1999-07-10 2007-06-14 삼성전자주식회사 마이크로 스케듈링 방법 및 운영체제 커널 장치
US6633942B1 (en) * 1999-08-12 2003-10-14 Rockwell Automation Technologies, Inc. Distributed real-time operating system providing integrated interrupt management
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
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
US20030023655A1 (en) * 2001-07-26 2003-01-30 Stepan Sokolov Method and apparatus to facilitate suspending threads in a platform-independent virtual machine
US20050091376A1 (en) * 2001-10-12 2005-04-28 Helfman Nadav B. Apparatus and method for optimized and secured reflection of network services to remote locations
EP2284721B1 (en) * 2001-12-10 2013-10-23 SAP Portals Israel Ltd. Apparatus and method for optimized and secured reflection of network services to remote locations
US7305675B1 (en) * 2002-01-11 2007-12-04 Advanced Micro Devices, Inc. Processing tasks with failure recovery
US6985976B1 (en) 2002-02-22 2006-01-10 Teja Technologies, Inc. System, method, and computer program product for memory management for defining class lists and node lists for allocation and deallocation of memory blocks
US7039772B1 (en) 2002-02-22 2006-05-02 Teja Technologies, Inc. System, method, and computer program product for processing reflective state machines
US7130936B1 (en) 2002-02-22 2006-10-31 Teja Technologies, Inc. System, methods, and computer program product for shared memory queue
US7320044B1 (en) 2002-02-22 2008-01-15 Arc International I.P., Inc. System, method, and computer program product for interrupt scheduling in processing communication
US20070079077A1 (en) * 2002-04-29 2007-04-05 Baines Mandeep S System, method, and computer program product for shared memory queue
US7076781B2 (en) * 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
DE10234050A1 (de) * 2002-07-26 2004-02-05 Abb Patent Gmbh System und Verfahren zum Erzeugen eines Steuerprogramms
KR20050084107A (ko) * 2002-12-03 2005-08-26 코닌클리케 필립스 일렉트로닉스 엔.브이. 하드 실시간 시스템에서의 소프트웨어 구성요소의 풀스케줄링
US7093256B2 (en) * 2002-12-13 2006-08-15 Equator Technologies, Inc. Method and apparatus for scheduling real-time and non-real-time access to a shared resource
US7243351B2 (en) * 2002-12-17 2007-07-10 International Business Machines Corporation System and method for task scheduling based upon the classification value and probability
CN100349149C (zh) * 2003-01-24 2007-11-14 中兴通讯股份有限公司 嵌入式实时操作系统的进程调度方法
WO2004100420A2 (en) * 2003-05-08 2004-11-18 Sap Portals Israel Ltd. A pattern driven message oriented compression apparatus and method
GB2403823B (en) * 2003-07-08 2005-09-21 Toshiba Res Europ Ltd Controller for processing apparatus
KR100524763B1 (ko) * 2003-07-23 2005-10-31 엘지전자 주식회사 개선된 edf 스케쥴링 방법
WO2005073853A2 (en) * 2004-01-30 2005-08-11 Koninklijke Philips Electronics N.V. Method of and system for handling deferred execution
US7272692B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Arbitration scheme for memory command selectors
US20060208829A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation System and method for timer windows
US7466715B2 (en) * 2005-03-28 2008-12-16 International Business Machines Corporation Flexible control block format for frame description and management
TWI286704B (en) 2005-08-08 2007-09-11 Via Tech Inc Computer system and boot method thereof
CN100371896C (zh) * 2005-08-22 2008-02-27 威盛电子股份有限公司 计算机系统及其开机方法
US20090158293A1 (en) * 2005-09-05 2009-06-18 Nec Corporation Information processing apparatus
CN100424642C (zh) * 2005-10-24 2008-10-08 神基科技股份有限公司 以预设优先次序执行电脑程序的方法
US7877752B2 (en) * 2005-12-14 2011-01-25 Broadcom Corp. Method and system for efficient audio scheduling for dual-decode digital signal processor (DSP)
US20070185929A1 (en) * 2006-02-01 2007-08-09 Sap Portals Isreal Ltd. Method and apparatus for processing monitoring
US7774323B2 (en) * 2006-03-27 2010-08-10 Sap Portals Israel Ltd. Method and apparatus for delivering managed applications to remote locations
US7844970B2 (en) * 2006-08-22 2010-11-30 International Business Machines Corporation Method and apparatus to control priority preemption of tasks
US8396214B2 (en) * 2006-11-02 2013-03-12 SAP Portals Israel Limited Method and apparatus for centrally managed encrypted partition
KR101366802B1 (ko) * 2007-01-05 2014-02-21 삼성전자주식회사 실시간 운영체제를 위한 스케쥴링 방법 및 장치
CN101290585B (zh) * 2007-04-19 2011-09-21 中兴通讯股份有限公司 一种嵌入式系统实时任务的调度方法
US7779175B2 (en) * 2007-05-04 2010-08-17 Blackwave, Inc. System and method for rendezvous in a communications network
CN101252516B (zh) * 2008-03-27 2011-07-13 中兴通讯股份有限公司 一种高速下行分组业务的实现方法
US8650270B2 (en) * 2008-07-10 2014-02-11 Juniper Networks, Inc. Distributed computing with multiple coordinated component collections
US9176779B2 (en) * 2008-07-10 2015-11-03 Juniper Networks, Inc. Data access in distributed systems
US8099402B2 (en) 2008-07-10 2012-01-17 Juniper Networks, Inc. Distributed data storage and access systems
US8954976B2 (en) * 2008-07-10 2015-02-10 Juniper Networks, Inc. Data storage in distributed resources of a network based on provisioning attributes
US8887166B2 (en) * 2008-07-10 2014-11-11 Juniper Networks, Inc. Resource allocation and modification using access patterns
US8191070B2 (en) * 2008-07-10 2012-05-29 Juniper Networks, Inc. Dynamic resource allocation
US20100011091A1 (en) * 2008-07-10 2010-01-14 Blackwave Inc. Network Storage
US8364710B2 (en) * 2008-07-10 2013-01-29 Juniper Networks, Inc. Model-based resource allocation
US8706900B2 (en) * 2008-07-10 2014-04-22 Juniper Networks, Inc. Dynamic storage resources
US9066141B2 (en) * 2009-01-21 2015-06-23 Juniper Networks, Inc. Resource allocation and modification using statistical analysis
CN101923487A (zh) * 2010-08-06 2010-12-22 西华师范大学 一种综合嵌入式实时周期任务调度方法
US9367354B1 (en) 2011-12-05 2016-06-14 Amazon Technologies, Inc. Queued workload service in a multi tenant environment
JP5831324B2 (ja) * 2012-03-27 2015-12-09 富士通株式会社 制御装置,制御方法,プログラム及び分散処理システム
CN102819459A (zh) * 2012-07-09 2012-12-12 浪潮电子信息产业股份有限公司 一种多媒体操作系统
FR3004825B1 (fr) * 2013-04-19 2015-04-24 Krono Safe Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel
US9811484B1 (en) * 2014-06-30 2017-11-07 Altera Corporation Methods and apparatus for rapid interrupt lookups
WO2016122596A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Checkpoint-based scheduling in cluster
CN104731645A (zh) * 2015-03-19 2015-06-24 蔡树彬 一种任务调度方法和装置及数据下载方法和装置
CN106301466B (zh) * 2015-05-25 2019-05-31 深圳市中兴微电子技术有限公司 一种多径解调方法和装置
CN106325981A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 一种任务调度方法及装置
CN107291548B (zh) 2016-03-31 2021-04-13 阿里巴巴集团控股有限公司 任务的资源调度方法及装置
US10289448B2 (en) * 2016-09-06 2019-05-14 At&T Intellectual Property I, L.P. Background traffic management
US10489220B2 (en) * 2017-01-26 2019-11-26 Microsoft Technology Licensing, Llc Priority based scheduling
US11334391B2 (en) * 2017-04-17 2022-05-17 Red Hat, Inc. Self-programmable and self-tunable resource scheduler for jobs in cloud computing
JP7025966B2 (ja) 2018-03-20 2022-02-25 日立Astemo株式会社 車両制御装置
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
CN111198894B (zh) * 2020-01-03 2023-09-22 中国铁道科学研究院集团有限公司通信信号研究所 一种实现运行线数据融合与一致性的方法
CN111880910A (zh) * 2020-07-31 2020-11-03 北京小米移动软件有限公司 数据处理方法及装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4827732U (ja) * 1971-08-06 1973-04-04
JPS62284437A (ja) * 1986-05-31 1987-12-10 Nec Corp タスク管理方式
JPS6368934A (ja) * 1986-09-10 1988-03-28 Nec Corp タスクスケジユ−ル方式

Family Cites Families (7)

* 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
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
US5254480A (en) * 1992-02-20 1993-10-19 Minnesota Mining And Manufacturing Company Process for producing a large area solid state radiation detector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4827732U (ja) * 1971-08-06 1973-04-04
JPS62284437A (ja) * 1986-05-31 1987-12-10 Nec Corp タスク管理方式
JPS6368934A (ja) * 1986-09-10 1988-03-28 Nec Corp タスクスケジユ−ル方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6028843A (en) * 1997-03-25 2000-02-22 International Business Machines Corporation Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first
WO2006080371A2 (ja) 2005-01-31 2006-08-03 Matsushita Electric Ind Co Ltd アクセス調停装置、および調停可能条件検証装置
US7739437B2 (en) 2005-01-31 2010-06-15 Panasonic Corporation Access arbiter and arbitrable condition verification device

Also Published As

Publication number Publication date
CN1075021A (zh) 1993-08-04
DE69229909T2 (de) 2000-04-27
KR960005105B1 (ko) 1996-04-20
DE69229909D1 (de) 1999-10-07
CA2080187C (en) 1999-02-16
BR9300031A (pt) 1993-08-03
TW216474B (ja) 1993-11-21
US5640563A (en) 1997-06-17
EP0553588A3 (ja) 1994-01-26
ATE184119T1 (de) 1999-09-15
EP0553588B1 (en) 1999-09-01
JP2519382B2 (ja) 1996-07-31
EP0553588A2 (en) 1993-08-04
CA2080187A1 (en) 1993-08-01
CN1038620C (zh) 1998-06-03

Similar Documents

Publication Publication Date Title
JP2519382B2 (ja) マルチメディア・コンピュ―タ・オペレ―ティング・システム及び方法
US5339415A (en) Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
US5448735A (en) Task organization for execution using linked records referencing code modules
US6948172B1 (en) Preemptive multi-tasking with cooperative groups of tasks
US7805727B2 (en) Execution control for processor tasks
US6052707A (en) Preemptive multi-tasking with cooperative groups of tasks
US8087020B2 (en) Method and system for performing real-time operation
US6304891B1 (en) Execution control for processor tasks
US20100153957A1 (en) System and method for managing thread use in a thread pool
JP2003044295A (ja) スリープキュー管理
JPH0635726A (ja) 確率的優先順位に基づいてタスクを選択する方法
US6408324B1 (en) Operating system having a non-interrupt cooperative multi-tasking kernel and a method of controlling a plurality of processes with the system
US6854116B1 (en) Execution control for process task
US7562364B2 (en) Adaptive queue scheduling
EP0544822B1 (en) Dual level scheduling of processes
Mutka et al. A tool for allocating periodic real-time tasks to a set of processors
KR100298212B1 (ko) 우선순위역전현상을해결하기위한실시간태스크스케쥴링방법
Mercer An introduction to real-time operating systems: Scheduling theory
US5386586A (en) System and method for construction of lists of deferred service requests
Binns Scheduling slack in MetaH
KR100272092B1 (ko) 시간정보에 의한 우선순위 스케줄링 방법 및 그에 적합한 태스크 생성방법
Ploeg et al. 18 Progress in Transputer and Occam Research R. Miles and A. Chalmers (Eds.) IOS Press, 1994 Dedicated Multi-Priority Scheduling
WO2001035209A2 (en) Modified move to rear list system and methods for thread scheduling
Wang et al. Hierarchical budget management in the RED-Linux scheduling framework
KR100321408B1 (ko) 처리기한에따른데이터처리순서에의한실시간다중처리시스템및그처리방법

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees