JPH06250853A - プロセス・スケジューリングの管理方法およびシステム - Google Patents
プロセス・スケジューリングの管理方法およびシステムInfo
- Publication number
- JPH06250853A JPH06250853A JP6011510A JP1151094A JPH06250853A JP H06250853 A JPH06250853 A JP H06250853A JP 6011510 A JP6011510 A JP 6011510A JP 1151094 A JP1151094 A JP 1151094A JP H06250853 A JPH06250853 A JP H06250853A
- Authority
- JP
- Japan
- Prior art keywords
- context
- control
- control context
- scheduling
- process scheduling
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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)
Abstract
(57)【要約】
【目的】 データ処理環境内の多重制御コンテキストの
間でプロセス・スケジューリングを管理する方法および
システムを提供する。 【構成】 多重制御コンテキストの中の1つである所定
の制御コンテキストは、データ処理環境10内の処理ノ
ード12で実行される。この方法は、スケジューリング
・イベントを処理することを含んでおり、実行制御コン
テキスト内から処理スケジューリングを評価して多重制
御コンテキストの中の1つである再開制御コンテキスト
を決定し、かつ所定の制御コンテキストで起こっている
プロセス・スケジューリングに応答して再開制御コンテ
キストでデータの実行を再開する。コンテキスト・スイ
ッチは、再開制御コンテキストが所定の制御コンテキス
ト以外のコンテキストであるのを処理スケジューリング
が決定するときのみ用いられる。この技術はノンプリエ
ンプティブな並列データ処理環境で特に有利である。
間でプロセス・スケジューリングを管理する方法および
システムを提供する。 【構成】 多重制御コンテキストの中の1つである所定
の制御コンテキストは、データ処理環境10内の処理ノ
ード12で実行される。この方法は、スケジューリング
・イベントを処理することを含んでおり、実行制御コン
テキスト内から処理スケジューリングを評価して多重制
御コンテキストの中の1つである再開制御コンテキスト
を決定し、かつ所定の制御コンテキストで起こっている
プロセス・スケジューリングに応答して再開制御コンテ
キストでデータの実行を再開する。コンテキスト・スイ
ッチは、再開制御コンテキストが所定の制御コンテキス
ト以外のコンテキストであるのを処理スケジューリング
が決定するときのみ用いられる。この技術はノンプリエ
ンプティブな並列データ処理環境で特に有利である。
Description
【0001】
【産業上の利用分野】本発明は、一般的にデータ処理環
境、より詳細にはコンテキスト・スイッチ(context sw
itching:プロセッサの処理対象を1つのタスクから別
のタスクに切り換えること)を使用して、アプリケーシ
ョン・プログラムの多重スレッド処理を容易にするよう
なデータ処理環境のプロセス・スケジューリング管理方
法およびシステムに関する。
境、より詳細にはコンテキスト・スイッチ(context sw
itching:プロセッサの処理対象を1つのタスクから別
のタスクに切り換えること)を使用して、アプリケーシ
ョン・プログラムの多重スレッド処理を容易にするよう
なデータ処理環境のプロセス・スケジューリング管理方
法およびシステムに関する。
【0002】
【従来の技術】標準のプロセッサ・アレイを並列に用い
て実行するように記述されたプログラムが増加してい
る。アプリケーション・プログラマが、これらのプロセ
ッサを利用することができ、且つ各処理ユニットの効率
的な共用を調整することができるようにソフトウェア・
スーパバイザ・システムを記述することによって、全体
的なプログラム処理の目標を達成することができる。こ
のようなソフトウェア・スーパバイザは、従来技術では
並列「マイクロカーネル(microkernel)」と呼ばれて
いる。総合的には、これらのマイクロカーネルは、任意
の単一カーネルまたはオペレーティング・システムによ
って生成されたアプリケーション・プログラム環境と同
様の環境を生成する。
て実行するように記述されたプログラムが増加してい
る。アプリケーション・プログラマが、これらのプロセ
ッサを利用することができ、且つ各処理ユニットの効率
的な共用を調整することができるようにソフトウェア・
スーパバイザ・システムを記述することによって、全体
的なプログラム処理の目標を達成することができる。こ
のようなソフトウェア・スーパバイザは、従来技術では
並列「マイクロカーネル(microkernel)」と呼ばれて
いる。総合的には、これらのマイクロカーネルは、任意
の単一カーネルまたはオペレーティング・システムによ
って生成されたアプリケーション・プログラム環境と同
様の環境を生成する。
【0003】並列マイクロカーネルは、周辺マシン環境
の資源を管理するという点で、単一カーネルと類似して
いるが、両者の間には著しい相違点が存在する。具体的
にいうと、単一カーネルは、競合するタスク・コンテキ
スト間で、マシン環境を時間的に公平に分割しようとす
る。一方、並列マイクロカーネルは、一般的に、単一の
最終目的のため、すなわち並列アプリケーション・プロ
グラムの個々のカーネル部を効率的に完了するために、
各マシン環境の能力を効果的に引き出すように記述され
ている。並列マイクロカーネル内で、構成タスクは実際
には決して競合しない。なぜならば、それらはこの単一
の最終目的に向かって1つのアプリケーション・プログ
ラム内で動作しているからである。
の資源を管理するという点で、単一カーネルと類似して
いるが、両者の間には著しい相違点が存在する。具体的
にいうと、単一カーネルは、競合するタスク・コンテキ
スト間で、マシン環境を時間的に公平に分割しようとす
る。一方、並列マイクロカーネルは、一般的に、単一の
最終目的のため、すなわち並列アプリケーション・プロ
グラムの個々のカーネル部を効率的に完了するために、
各マシン環境の能力を効果的に引き出すように記述され
ている。並列マイクロカーネル内で、構成タスクは実際
には決して競合しない。なぜならば、それらはこの単一
の最終目的に向かって1つのアプリケーション・プログ
ラム内で動作しているからである。
【0004】制御コンテキストのスケジューリングおよ
びディスケジューリング(descheduling)は、すべての
カーネルの義務の中心である。制御コンテキストは、コ
ンテキストの特性およびカーネルの命名規則により、
「スレッド」、「プロセス」、または「タスク」といっ
た異なった名称が与えられる。コンテキストは、生成さ
れるまで、ブロックされて待機中になるまで、または割
り込まれるまで、マシン環境の制御下におかれる。スケ
ジューリング・アルゴリズムが、コンテキスト実行の優
先順位をこれらの時に評価するのでこれらの事象は、デ
ィスケジューリング・イベントと呼ばれる。ノンプリエ
ンプティブ(nonpreemptive:すなわち処理が開始され
たジョブが完了まで中断することなく処理されること)
・スケジューリングにおいて、ユーザ・コンテキスト
は、割り込みの結果として決してスイッチされることは
ない。結局、すべてのプロセッサの割り込みは、割り込
みの時にコンテキスト処理に戻る。
びディスケジューリング(descheduling)は、すべての
カーネルの義務の中心である。制御コンテキストは、コ
ンテキストの特性およびカーネルの命名規則により、
「スレッド」、「プロセス」、または「タスク」といっ
た異なった名称が与えられる。コンテキストは、生成さ
れるまで、ブロックされて待機中になるまで、または割
り込まれるまで、マシン環境の制御下におかれる。スケ
ジューリング・アルゴリズムが、コンテキスト実行の優
先順位をこれらの時に評価するのでこれらの事象は、デ
ィスケジューリング・イベントと呼ばれる。ノンプリエ
ンプティブ(nonpreemptive:すなわち処理が開始され
たジョブが完了まで中断することなく処理されること)
・スケジューリングにおいて、ユーザ・コンテキスト
は、割り込みの結果として決してスイッチされることは
ない。結局、すべてのプロセッサの割り込みは、割り込
みの時にコンテキスト処理に戻る。
【0005】ノンプリエンプティブ並列マイクロカーネ
ルにおいて、アプリケーション・プログラマはコンテキ
スト・スケジューリングを制御する。これは、単一スレ
ッド・モデルでプログラミングすることによって直接的
に、または多重コンテキスト間で生成することによって
間接的に行われる。前者の場合、マシン環境当たり単一
の応用コンテキストのみが存在し、したがってプログラ
マの見地から、走行可能時にいつもスケジュールがされ
ているはずである。後者の場合、プログラマは特別にブ
ロッキング・カーネル呼び出しを生成または作成し、参
加するユーザ・コンテキストのスケジューリングを制御
する。いずれの場合も、マイクロカーネル・サービスに
対する呼び出しが、走行しているコンテキストをブロッ
クし、スケジューリング・アルゴリズムの評価をもたら
す。いずれにせよ、コンテキスト・スイッチはしばしば
冗長である。これは、マイクロカーネルが、スケジュー
リング・アルゴリズムの評価の後に、優先コンテキスト
が、まさに生成したコンテキストであるかブロックした
コンテキストであるかをしばしば決定するからである。
ルにおいて、アプリケーション・プログラマはコンテキ
スト・スケジューリングを制御する。これは、単一スレ
ッド・モデルでプログラミングすることによって直接的
に、または多重コンテキスト間で生成することによって
間接的に行われる。前者の場合、マシン環境当たり単一
の応用コンテキストのみが存在し、したがってプログラ
マの見地から、走行可能時にいつもスケジュールがされ
ているはずである。後者の場合、プログラマは特別にブ
ロッキング・カーネル呼び出しを生成または作成し、参
加するユーザ・コンテキストのスケジューリングを制御
する。いずれの場合も、マイクロカーネル・サービスに
対する呼び出しが、走行しているコンテキストをブロッ
クし、スケジューリング・アルゴリズムの評価をもたら
す。いずれにせよ、コンテキスト・スイッチはしばしば
冗長である。これは、マイクロカーネルが、スケジュー
リング・アルゴリズムの評価の後に、優先コンテキスト
が、まさに生成したコンテキストであるかブロックした
コンテキストであるかをしばしば決定するからである。
【0006】
【発明が解決しようとする課題】しかしながら、ここに
問題が存在する。標準的なカーネル・コンテキストのス
ケジューリングにおいて、完全なコンテキスト・スイッ
チは、スケジューリング・アルゴリズムを再評価する機
会があればいつでも実行される。優先権が与えられた次
のコンテキストが、生成しまたはブロックしたコンテキ
スト以外のコンテキストであるという可能性が高いこと
を想定する。並列マイクロカーネル環境において、これ
は厳しい想定である。実際に、あるコンテキストが、自
身が継続的に再スケジューリングされて実行されること
を認識すると、冗長なコンテキスト・スイッチが生じる
可能性が高い。したがって、スケジューリング・アルゴ
リズムの評価によってコンテキスト・スイッチが冗長性
であることがわかると、データ処理技術において、コン
テキスト・スイッチの荷重なオーバヘッドに影響されな
いスケジューリング方法が必要とされることとなる。
問題が存在する。標準的なカーネル・コンテキストのス
ケジューリングにおいて、完全なコンテキスト・スイッ
チは、スケジューリング・アルゴリズムを再評価する機
会があればいつでも実行される。優先権が与えられた次
のコンテキストが、生成しまたはブロックしたコンテキ
スト以外のコンテキストであるという可能性が高いこと
を想定する。並列マイクロカーネル環境において、これ
は厳しい想定である。実際に、あるコンテキストが、自
身が継続的に再スケジューリングされて実行されること
を認識すると、冗長なコンテキスト・スイッチが生じる
可能性が高い。したがって、スケジューリング・アルゴ
リズムの評価によってコンテキスト・スイッチが冗長性
であることがわかると、データ処理技術において、コン
テキスト・スイッチの荷重なオーバヘッドに影響されな
いスケジューリング方法が必要とされることとなる。
【0007】
【課題を解決するための手段】簡単に要約すれば、本発
明の一側面として、データ処理環境の処理ノードで少な
くとも2つの制御コンテキスト間のプロセス・スケジュ
ーリングを管理する方法を有する。この方法は、少なく
とも2つの制御コンテキストの中の1つである所定の制
御コンテキスト内でデータを実行するステップと、スケ
ジューリング・イベントの処理に応答してデータの実行
をもたらし、所定の制御コンテキスト内からプロセス・
スケジューリングを評価するステップと、少なくとも2
つの制御コンテキストの中の1つである再開制御コンテ
キスト内でデータの実行を再開するステップとを含む。
拡張された実施例において、データ処理システムはノン
プリエンプティブ(nonpreemptive)な並列データ処理
システムを形成する。
明の一側面として、データ処理環境の処理ノードで少な
くとも2つの制御コンテキスト間のプロセス・スケジュ
ーリングを管理する方法を有する。この方法は、少なく
とも2つの制御コンテキストの中の1つである所定の制
御コンテキスト内でデータを実行するステップと、スケ
ジューリング・イベントの処理に応答してデータの実行
をもたらし、所定の制御コンテキスト内からプロセス・
スケジューリングを評価するステップと、少なくとも2
つの制御コンテキストの中の1つである再開制御コンテ
キスト内でデータの実行を再開するステップとを含む。
拡張された実施例において、データ処理システムはノン
プリエンプティブ(nonpreemptive)な並列データ処理
システムを形成する。
【0008】他の側面として、処理ノードにおける複数
の制御コンテキスト間でプロセス・スケジューリングを
管理するシステムを提供する。所定の制御コンテキスト
が、当該複数の制御コンテキストの中の1つであり処理
ノードで実行されるものと想定される。この管理システ
ムは、コンテキスト・スケジューリング・イベントを識
別する処理手段を含む。コンテキスト・スケジューリン
グ・イベントが識別されると、コンテキスト・スケジュ
ーラは、この所定の制御コンテキスト内から評価され、
当該処理ノードに対して再開制御コンテキストを識別す
る。この再開制御コンテキストは、複数の制御コンテキ
ストの中の1つであり、複数の走行可能な制御コンテキ
ストのいずれにも勝るスケジューリングの優先順位を有
する。実行再開手段は、スケジュール評価手段によって
識別された再開制御コンテキスト内の処理ノードでデー
タの実行を再開するのにも提供される。
の制御コンテキスト間でプロセス・スケジューリングを
管理するシステムを提供する。所定の制御コンテキスト
が、当該複数の制御コンテキストの中の1つであり処理
ノードで実行されるものと想定される。この管理システ
ムは、コンテキスト・スケジューリング・イベントを識
別する処理手段を含む。コンテキスト・スケジューリン
グ・イベントが識別されると、コンテキスト・スケジュ
ーラは、この所定の制御コンテキスト内から評価され、
当該処理ノードに対して再開制御コンテキストを識別す
る。この再開制御コンテキストは、複数の制御コンテキ
ストの中の1つであり、複数の走行可能な制御コンテキ
ストのいずれにも勝るスケジューリングの優先順位を有
する。実行再開手段は、スケジュール評価手段によって
識別された再開制御コンテキスト内の処理ノードでデー
タの実行を再開するのにも提供される。
【0009】要約すれば、データ処理環境内の多重制御
コンテキスト間でプロセス・スケジューリングを管理す
る新規な技術が提供される。この技術は、プロセス・ス
ケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるか否
かを決定するために使用される。第2に、コンテキスト
・スイッチが保証されれば、コンテキスト・スイッチャ
が呼び出され、ディスケジューリング制御コンテキスト
の状態を保存し、優先制御コンテキストの状態を復元す
る。この第2の機能は、ディスケジューリング・コンテ
キスト内で、または特権コンテキストとして実行され
る。この管理技術は、単一のコンピュータ・ノードがノ
ンプリエンプティブ処理スケジューリングを提供する単
一プログラムによって使用される状況で最も有用であ
る。スケジューリング機構は、冗長なコンテキスト・ス
イッチが呼び出されるどのような状況でも有用であり、
これによって性能オーバヘッドをもたらす。この概念
は、プリエンプティブ処理スケジューリングにも容易に
拡張できる。
コンテキスト間でプロセス・スケジューリングを管理す
る新規な技術が提供される。この技術は、プロセス・ス
ケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるか否
かを決定するために使用される。第2に、コンテキスト
・スイッチが保証されれば、コンテキスト・スイッチャ
が呼び出され、ディスケジューリング制御コンテキスト
の状態を保存し、優先制御コンテキストの状態を復元す
る。この第2の機能は、ディスケジューリング・コンテ
キスト内で、または特権コンテキストとして実行され
る。この管理技術は、単一のコンピュータ・ノードがノ
ンプリエンプティブ処理スケジューリングを提供する単
一プログラムによって使用される状況で最も有用であ
る。スケジューリング機構は、冗長なコンテキスト・ス
イッチが呼び出されるどのような状況でも有用であり、
これによって性能オーバヘッドをもたらす。この概念
は、プリエンプティブ処理スケジューリングにも容易に
拡張できる。
【0010】
【実施例】図1は、並列データ処理環境10の簡略化し
た実施例であり、処理ノード12のアレイを有してい
る。各処理ノード12は、ハードウェア、ソフトウェア
とハードウェアの組み合わせ、または主にソフトウェア
(例えば仮想処理ノード)で実現される。総合すれば、
処理ノード12は、どのデータ処理機能が実行されるマ
シン環境を提供する。ある標準的な実施例において、各
処理ノード12は、CPU、通信インターフェース、メ
モリおよびクロック機構を有する。
た実施例であり、処理ノード12のアレイを有してい
る。各処理ノード12は、ハードウェア、ソフトウェア
とハードウェアの組み合わせ、または主にソフトウェア
(例えば仮想処理ノード)で実現される。総合すれば、
処理ノード12は、どのデータ処理機能が実行されるマ
シン環境を提供する。ある標準的な実施例において、各
処理ノード12は、CPU、通信インターフェース、メ
モリおよびクロック機構を有する。
【0011】処理ノードのアレイ内において、通常、ノ
ードは高い優先順位のメッセージと低い優先順位のメッ
セージによって通信を行う。一例として、図2に示すよ
うに、4つの処理ノード12(または処理スタック)
は、通信インターフェース16に接続され、各々のノー
ド間で双方向にデータを転送を行う。本実施例におい
て、各処理ノード12は、ソフトウェア構成18および
ハードウェア構成17を有し、ともに処理スタックを形
成する。ソフトウェア構成18は、アプリケーション・
プログラム22および制御システムまたはカーネル24
を有する。各制御システムまたはカーネル24は、大規
模なシステムすなわち並列データ処理環境の一部分であ
ることを本質的に理解している。カーネル24は、処理
ノード12間で情報の流れを制御する。
ードは高い優先順位のメッセージと低い優先順位のメッ
セージによって通信を行う。一例として、図2に示すよ
うに、4つの処理ノード12(または処理スタック)
は、通信インターフェース16に接続され、各々のノー
ド間で双方向にデータを転送を行う。本実施例におい
て、各処理ノード12は、ソフトウェア構成18および
ハードウェア構成17を有し、ともに処理スタックを形
成する。ソフトウェア構成18は、アプリケーション・
プログラム22および制御システムまたはカーネル24
を有する。各制御システムまたはカーネル24は、大規
模なシステムすなわち並列データ処理環境の一部分であ
ることを本質的に理解している。カーネル24は、処理
ノード12間で情報の流れを制御する。
【0012】図3に示すように、並列データ処理環境に
あるすべての処理ノード12は、互いに関連した単一の
アドレス空間「ADDR.0」、「ADDR.1」、
「ADDR.2」、「ADDR.3」を有する。すなわ
ち、完全なアドレス空間が多重スレッド化されている。
各々のカーネル/アプリケーション・インターフェース
19は、他のすべての処理ノード12で得られるグロー
バル関数と同じグローバル関数を、その処理ノードで利
用できるようにする。所定のアドレス空間内でデータを
実行することによって、そのアドレス空間に影響を及ぼ
すことができ、または通信インターフェース16(図
2)を通してそのデータでアドレスされたオブジェクト
のアドレス空間に同等の効果を生成することができる。
以下に示すコンテキスト・スケジューリングの方法/シ
ステムは、並列データ処理環境の単一アドレス空間内で
処理性能を高めることを追及している(本発明は、アプ
リケーション・プログラムの多重スレッドを処理するた
めに割り当てられた単一プロセッサの性能を向上させる
ようにも拡張できる)。
あるすべての処理ノード12は、互いに関連した単一の
アドレス空間「ADDR.0」、「ADDR.1」、
「ADDR.2」、「ADDR.3」を有する。すなわ
ち、完全なアドレス空間が多重スレッド化されている。
各々のカーネル/アプリケーション・インターフェース
19は、他のすべての処理ノード12で得られるグロー
バル関数と同じグローバル関数を、その処理ノードで利
用できるようにする。所定のアドレス空間内でデータを
実行することによって、そのアドレス空間に影響を及ぼ
すことができ、または通信インターフェース16(図
2)を通してそのデータでアドレスされたオブジェクト
のアドレス空間に同等の効果を生成することができる。
以下に示すコンテキスト・スケジューリングの方法/シ
ステムは、並列データ処理環境の単一アドレス空間内で
処理性能を高めることを追及している(本発明は、アプ
リケーション・プログラムの多重スレッドを処理するた
めに割り当てられた単一プロセッサの性能を向上させる
ようにも拡張できる)。
【0013】オペレーティング・システムは、異なる制
御コンテキスト(すなわち異なるプロセスおよび/また
はスレッド)間で、あるオペレーティング・システムに
よって管理されるマシン環境を時間的に分割する。スケ
ジューリング・イベントに到達すると、従来の方法では
以下の3つのステップを順番に実行していた。すなわ
ち、(1)現コンテキストのパラメータを保存すること
によって現在走行しているコンテキストをディスケジュ
ーリング(descheduling)する、(2)オペレーティン
グ・システム内のスケジューリング・コードを用いて、
次に走行するコンテキスト(オペレーティング・システ
ムのコンテキストのロードが通常必要とされる)を決定
する、(3)新しいコンテキストを(処理ノードで新し
いコンテキストのパラメータをロードすることによっ
て)スケジューリングすることの3つである。
御コンテキスト(すなわち異なるプロセスおよび/また
はスレッド)間で、あるオペレーティング・システムに
よって管理されるマシン環境を時間的に分割する。スケ
ジューリング・イベントに到達すると、従来の方法では
以下の3つのステップを順番に実行していた。すなわ
ち、(1)現コンテキストのパラメータを保存すること
によって現在走行しているコンテキストをディスケジュ
ーリング(descheduling)する、(2)オペレーティン
グ・システム内のスケジューリング・コードを用いて、
次に走行するコンテキスト(オペレーティング・システ
ムのコンテキストのロードが通常必要とされる)を決定
する、(3)新しいコンテキストを(処理ノードで新し
いコンテキストのパラメータをロードすることによっ
て)スケジューリングすることの3つである。
【0014】この方法とは対象的に、本発明によれば、
スケジューリング・コードはまず現コンテキスト内から
評価され、コンテキスト・スイッチが発生するような決
定が(スケジューリング・コードを走行することによっ
て)なされるときのみ、この現コンテキストがディスケ
ジューリングされる。本質的に本発明は、スケジューリ
ング機能を、現制御コンテキスト内から再び行われる評
価段、および条件付きのコンテキスト・スイッチング段
に分割することである。本発明の一実施例において、ス
ケジューリング・コードは、どのような制御コンテキス
トによっても読み出し可能なサブルーチン・ライブラリ
のコード(すなわち、どのコンテキストが優先権を有す
るかを決定するために走行させなければならないプログ
ラム・ルーチン)を提供することによって、現在走行中
のコンテキスト内から実行可能であり、どのような再ス
ケジューリング地点においても、たとえばサブルーチン
・コールによってまたは割り込みによって、現在走行し
ているコンテキスト内から実行可能である(少数のパラ
メータはサブルーチン・コールまたは割込み時に必ず保
存される一方で、大多数のパラメータはプロセスまたは
スレッド・コンテキストがスイッチされるときはいつで
も保存されなければならない)。
スケジューリング・コードはまず現コンテキスト内から
評価され、コンテキスト・スイッチが発生するような決
定が(スケジューリング・コードを走行することによっ
て)なされるときのみ、この現コンテキストがディスケ
ジューリングされる。本質的に本発明は、スケジューリ
ング機能を、現制御コンテキスト内から再び行われる評
価段、および条件付きのコンテキスト・スイッチング段
に分割することである。本発明の一実施例において、ス
ケジューリング・コードは、どのような制御コンテキス
トによっても読み出し可能なサブルーチン・ライブラリ
のコード(すなわち、どのコンテキストが優先権を有す
るかを決定するために走行させなければならないプログ
ラム・ルーチン)を提供することによって、現在走行中
のコンテキスト内から実行可能であり、どのような再ス
ケジューリング地点においても、たとえばサブルーチン
・コールによってまたは割り込みによって、現在走行し
ているコンテキスト内から実行可能である(少数のパラ
メータはサブルーチン・コールまたは割込み時に必ず保
存される一方で、大多数のパラメータはプロセスまたは
スレッド・コンテキストがスイッチされるときはいつで
も保存されなければならない)。
【0015】コンテキスト・スイッチは、従来の「コン
テキスト・スイッチャ」機能によって行われる。この機
能には、通常、ディスケジューリングされたコンテキス
トの全状態を保存し、カーネルのスケジューリング構造
を更新し、その後、到来する制御コンテキストの全状態
を回復することが含まれる。コンテキスト・スイッチャ
は、たとえば実行するディスケジューリング・コンテキ
ストを用いることにより、自身の制御コンテキストをも
たなくてもよいし、またはスーパーバイザ・コールによ
って入力された特権コンテキストから実行されるように
してもよい。
テキスト・スイッチャ」機能によって行われる。この機
能には、通常、ディスケジューリングされたコンテキス
トの全状態を保存し、カーネルのスケジューリング構造
を更新し、その後、到来する制御コンテキストの全状態
を回復することが含まれる。コンテキスト・スイッチャ
は、たとえば実行するディスケジューリング・コンテキ
ストを用いることにより、自身の制御コンテキストをも
たなくてもよいし、またはスーパーバイザ・コールによ
って入力された特権コンテキストから実行されるように
してもよい。
【0016】図4および図5に、本発明によるコンテキ
スト・スケジューリングを管理する方法/システムの一
実施例を示し、ノンプリエンプティブ・スケジューリン
グ環境と関連して以下に示す。しかしながら本発明は、
スケジューリング・コードで用いられたデータの構造
が、スケジューリングされているコンテキスト内からア
クセス(すなわち読み出し)される限り、プリエンプテ
ィブ・スケジューリングへ拡張するよう容易に一般化さ
れる。
スト・スケジューリングを管理する方法/システムの一
実施例を示し、ノンプリエンプティブ・スケジューリン
グ環境と関連して以下に示す。しかしながら本発明は、
スケジューリング・コードで用いられたデータの構造
が、スケジューリングされているコンテキスト内からア
クセス(すなわち読み出し)される限り、プリエンプテ
ィブ・スケジューリングへ拡張するよう容易に一般化さ
れる。
【0017】処理ノードにおいて、多数の制御コンテキ
ストの中の1つを実行することによって処理を開始する
(ステップ40「所与のコンテキスト内で実行」)。ス
ケジューリング・イベントを処理し(ステップ42「ス
ケジューリング・イベントを処理する」)、その後、実
行コンテキストを随時(voluntarily)生成するか否か
を初期問合せする(ステップ44「実行コンテキストを
随時生成するか?」)。Noならば、その後、走行中の
制御コンテキストをブロックして待機させ、結合部
「A」46を経て処理を図5の制御シーケンスに渡す。
ストの中の1つを実行することによって処理を開始する
(ステップ40「所与のコンテキスト内で実行」)。ス
ケジューリング・イベントを処理し(ステップ42「ス
ケジューリング・イベントを処理する」)、その後、実
行コンテキストを随時(voluntarily)生成するか否か
を初期問合せする(ステップ44「実行コンテキストを
随時生成するか?」)。Noならば、その後、走行中の
制御コンテキストをブロックして待機させ、結合部
「A」46を経て処理を図5の制御シーケンスに渡す。
【0018】引き続き図4において、実行制御コンテキ
ストを随時生成する場合、次に、関連する走行準備(re
ady to run)待ち行列が空か否かを問合わせる(ステッ
プ48「走行準備待ち行列が空であるか?」)。実行制
御コンテキストを随時生成しているときはいつでも、そ
の優先順位が他の走行準備待ち行列よりも高いと確認さ
れればすぐに実際に実行が継続される。したがって、走
行準備待ち行列が空であれば、結合部56から命令58
へ処理を受け渡し(ステップ58「生成コンテキストに
戻る」)、それによって、生成中のコンテキストに即時
戻りを作成する。
ストを随時生成する場合、次に、関連する走行準備(re
ady to run)待ち行列が空か否かを問合わせる(ステッ
プ48「走行準備待ち行列が空であるか?」)。実行制
御コンテキストを随時生成しているときはいつでも、そ
の優先順位が他の走行準備待ち行列よりも高いと確認さ
れればすぐに実際に実行が継続される。したがって、走
行準備待ち行列が空であれば、結合部56から命令58
へ処理を受け渡し(ステップ58「生成コンテキストに
戻る」)、それによって、生成中のコンテキストに即時
戻りを作成する。
【0019】走行準備待ち行列が1つ以上の制御コンテ
キストを含んでいると、その後、スケジューリング・ア
ルゴリズムを適用し、関連する走行準備待ち行列の先頭
にある制御コンテキストとその生成中の生成制御コンテ
キストとの間で優先順位を決定する(ステップ50「ス
ケジューリング・アルゴリズムを使用」)。再び、たと
えばサブルーチン・コールによって生成制御コンテキス
ト内からスケジューリング・アルゴリズムが適用され
る。生成制御コンテキストが依然として優先権を有する
ならば(ステップ52「生成されたコンテキストが優先
権を有するか?」)、結合部56を経て命令58で生成
制御コンテキストに戻る(ステップ58「生成コンテキ
ストに戻る」)。これとは反対に、新しい制御コンテキ
ストが優先権を有すれば、コンテキスト・スイッチャを
呼び出し、この優先権を有する制御コンテキストに処理
ノードを移動する、すなわちコンテキストが切り換えら
れる(ステップ54「コンテキスト・スイッチャを呼び
出す」)。
キストを含んでいると、その後、スケジューリング・ア
ルゴリズムを適用し、関連する走行準備待ち行列の先頭
にある制御コンテキストとその生成中の生成制御コンテ
キストとの間で優先順位を決定する(ステップ50「ス
ケジューリング・アルゴリズムを使用」)。再び、たと
えばサブルーチン・コールによって生成制御コンテキス
ト内からスケジューリング・アルゴリズムが適用され
る。生成制御コンテキストが依然として優先権を有する
ならば(ステップ52「生成されたコンテキストが優先
権を有するか?」)、結合部56を経て命令58で生成
制御コンテキストに戻る(ステップ58「生成コンテキ
ストに戻る」)。これとは反対に、新しい制御コンテキ
ストが優先権を有すれば、コンテキスト・スイッチャを
呼び出し、この優先権を有する制御コンテキストに処理
ノードを移動する、すなわちコンテキストが切り換えら
れる(ステップ54「コンテキスト・スイッチャを呼び
出す」)。
【0020】図5を参照して、実行制御コンテキストが
ブロックされてあるイベントを待機中であれば、関連す
る走行準備待ち行列が空か否かを問合せる(ステップ6
0「走行準備待ち行列は空か?」)。走行準備待ち行列
が空でなければ、コンテキスト・スイッチャを呼び出し
現在走行準備されている代替コンテキストの実行が好ま
しい(ステップ62「コンテキスト・スイッチャを呼び
出す」)。しかしながら、関連する走行準備待ち行列が
空であれば、処理ノードは待機し(ステップ66「スケ
ジューリング・アルゴリズムを待機」)、その後、関連
する走行準備待ち行列が空であるか否かを再び問合せる
(ステップ68「走行準備待ち行列は空か?」)。走行
準備待ち行列が空であれば、プロセッサは結合部64を
経て待機状態に戻り、再び所定期間だけ待つ(ステップ
66「スケジューリング・アルゴリズムを待機」)。そ
のうちに、制御コンテキストが、走行準備状態になる
と、走行準備待ち行列の先頭に配置される。これが生じ
ると、走行準備待ち行列の制御コンテキストは、ブロッ
クされた制御コンテキストと同じ制御コンテキストであ
ることになる(ステップ70「優先権を有するコンテキ
ストがブロックされたコンテキストと同じか?」)。も
し同じであれば、その制御コンテキストに対して即時戻
りを作成する(ステップ74「最後にブロックされたコ
ンテキストに戻る」)。さもなければ、コンテキスト・
スイッチャを呼び出し、走行の準備された制御コンテキ
ストに処理ノードを移動する(ステップ72「コンテキ
スト・スイッチャを呼び出す」)。
ブロックされてあるイベントを待機中であれば、関連す
る走行準備待ち行列が空か否かを問合せる(ステップ6
0「走行準備待ち行列は空か?」)。走行準備待ち行列
が空でなければ、コンテキスト・スイッチャを呼び出し
現在走行準備されている代替コンテキストの実行が好ま
しい(ステップ62「コンテキスト・スイッチャを呼び
出す」)。しかしながら、関連する走行準備待ち行列が
空であれば、処理ノードは待機し(ステップ66「スケ
ジューリング・アルゴリズムを待機」)、その後、関連
する走行準備待ち行列が空であるか否かを再び問合せる
(ステップ68「走行準備待ち行列は空か?」)。走行
準備待ち行列が空であれば、プロセッサは結合部64を
経て待機状態に戻り、再び所定期間だけ待つ(ステップ
66「スケジューリング・アルゴリズムを待機」)。そ
のうちに、制御コンテキストが、走行準備状態になる
と、走行準備待ち行列の先頭に配置される。これが生じ
ると、走行準備待ち行列の制御コンテキストは、ブロッ
クされた制御コンテキストと同じ制御コンテキストであ
ることになる(ステップ70「優先権を有するコンテキ
ストがブロックされたコンテキストと同じか?」)。も
し同じであれば、その制御コンテキストに対して即時戻
りを作成する(ステップ74「最後にブロックされたコ
ンテキストに戻る」)。さもなければ、コンテキスト・
スイッチャを呼び出し、走行の準備された制御コンテキ
ストに処理ノードを移動する(ステップ72「コンテキ
スト・スイッチャを呼び出す」)。
【0021】再び要約すれば、データ処理環境内の多重
制御コンテキスト間でプロセス・スケジューリングを管
理する新規な技術を提供する。この技術は、プロセス・
スケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるかど
うかを決定するために使用される。第2の機能は、コン
テキスト・スイッチが保証されれば、コンテキスト・ス
イッチャが呼び出され、ディスケジューリング制御コン
テキストの状態を保存し、優先制御コンテキストの状態
を復元する。この第2の機能は、ディスケジューリング
制御コンテキスト内で、または特権コンテキストとして
実行することができる。この管理技術は、単一のコンピ
ュータ・ノードがノンプリエンプティブ処理スケジュー
リングを提供する単一プログラムによって使用される状
況で最も有用である。このスケジューリング機構は、冗
長なコンテキスト・スイッチが呼び出されるどのような
状況でも有用であり、これによって性能オーバヘッドが
もたらされる。この概念は、プリエンプティブ処理スケ
ジューリングにも容易に拡張できる。
制御コンテキスト間でプロセス・スケジューリングを管
理する新規な技術を提供する。この技術は、プロセス・
スケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるかど
うかを決定するために使用される。第2の機能は、コン
テキスト・スイッチが保証されれば、コンテキスト・ス
イッチャが呼び出され、ディスケジューリング制御コン
テキストの状態を保存し、優先制御コンテキストの状態
を復元する。この第2の機能は、ディスケジューリング
制御コンテキスト内で、または特権コンテキストとして
実行することができる。この管理技術は、単一のコンピ
ュータ・ノードがノンプリエンプティブ処理スケジュー
リングを提供する単一プログラムによって使用される状
況で最も有用である。このスケジューリング機構は、冗
長なコンテキスト・スイッチが呼び出されるどのような
状況でも有用であり、これによって性能オーバヘッドが
もたらされる。この概念は、プリエンプティブ処理スケ
ジューリングにも容易に拡張できる。
【0022】
【発明の効果】以上説明したように、本発明によれば、
コンテキスト・スイッチングを行う際に、処理制御コン
テキスト内からこれが評価されるので、コンテキスト・
スイッチの荷重なオーバヘッドに影響を受けないという
効果が得られる。
コンテキスト・スイッチングを行う際に、処理制御コン
テキスト内からこれが評価されるので、コンテキスト・
スイッチの荷重なオーバヘッドに影響を受けないという
効果が得られる。
【0023】多重制御コンテキストの中の1つである所
定の制御コンテキストは、データ処理環境10内の処理
ノード12で実行される。この方法は、スケジューリン
グ・イベントを処理することを含んでおり、実行制御コ
ンテキスト内から処理スケジューリングを評価して多重
制御コンテキストの中の1つである再開制御コンテキス
トを決定し、かつ所定の制御コンテキストで起こってい
るプロセス・スケジューリングに応答して再開制御コン
テキストでデータの実行を再開する。コンテキスト・ス
イッチは、再開制御コンテキストが所定の制御コンテキ
スト以外のコンテキストであるのを処理スケジューリン
グが決定するときのみ用いられる。この技術はノンプリ
エンプティブな並列データ処理環境で特に有利である。
定の制御コンテキストは、データ処理環境10内の処理
ノード12で実行される。この方法は、スケジューリン
グ・イベントを処理することを含んでおり、実行制御コ
ンテキスト内から処理スケジューリングを評価して多重
制御コンテキストの中の1つである再開制御コンテキス
トを決定し、かつ所定の制御コンテキストで起こってい
るプロセス・スケジューリングに応答して再開制御コン
テキストでデータの実行を再開する。コンテキスト・ス
イッチは、再開制御コンテキストが所定の制御コンテキ
スト以外のコンテキストであるのを処理スケジューリン
グが決定するときのみ用いられる。この技術はノンプリ
エンプティブな並列データ処理環境で特に有利である。
【図1】本発明の並列データ処理環境の一実施例を示す
図である。
図である。
【図2】本発明の並列データ処理環境において、通信イ
ンターフェースを通して相互接続された幾つかの処理ノ
ードを示す図である。
ンターフェースを通して相互接続された幾つかの処理ノ
ードを示す図である。
【図3】図2の並列処理ノードのアドレス空間割り当て
の一実施例を示す図である。
の一実施例を示す図である。
【図4】本発明に準じたコンテキスト・スケジューリン
グを管理する方法の一実施例を示すフロー図である。
グを管理する方法の一実施例を示すフロー図である。
【図5】本発明に準じたコンテキスト・スケジューリン
グを管理する方法の一実施例を示すフロー図である。
グを管理する方法の一実施例を示すフロー図である。
10 データ処理環境 12 処理ノード 16 通信インターフェース 17 ハードウェア成分 18 ソフトウェア成分 19 カーネル/アプリケーション・プログラム・イン
ターフェース 22 アプリケーション・プログラム 24 制御システムまたはカーネル
ターフェース 22 アプリケーション・プログラム 24 制御システムまたはカーネル
フロントページの続き (72)発明者 マーク・エドウィン・ギアンパパ アメリカ合衆国10533−1240 ニューヨー ク州、アービントン、アパートメント・ジ ーティー−14、ノース・ブロードウェイ 140
Claims (16)
- 【請求項1】データ処理環境内の複数の制御コンテキス
ト間の処理ノードにおけるプロセス・スケジューリング
を管理する方法において、 (a)前記複数の制御コンテキストの中の1つである所
定の制御コンテキスト内でデータを実行するステップ
と、 (b)スケジューリング・イベントの処理に応答して、
前記ステップ(a)のデータ実行をもたらし、前記所定
の制御コンテキスト内からプロセス・スケジューリング
を評価するステップと、 (c)前記複数の制御コンテキストの中の1つであり、
前記プロセス・スケジューリング評価ステップ(b)に
準じた優先順位を有する再開制御コンテキスト内でデー
タの実行を再開するステップと、を含む、プロセス・ス
ケジューリング管理方法。 - 【請求項2】前記プロセス・スケジューリング管理方法
は、ノンプリエンプティブなデータ処理環境内で使用さ
れ、前記再開ステップ(c)は前記所定の制御コンテキ
スト内でデータの実行を再開することを含み、この場
合、前記所定の制御コンテキストが前記再開制御コンテ
キストとなる、請求項1記載の方法。 - 【請求項3】前記データ処理環境は、多重処理ノードを
有する並列データ処理環境から成り、該並列データ処理
環境にある多重処理ノードの各々でプロセス・スケジュ
ーリングを管理する前記方法を使用する、請求項1記載
の方法。 - 【請求項4】前記ステップ(b)の評価は、前記所定の
制御コンテキスト内から実行可能なスケジューリング・
コードを前記データ処理環境から呼び出すことを含む、
請求項1記載の方法。 - 【請求項5】前記プロセス・スケジューリング管理方法
は、前記評価ステップ(b)に続いて前記所定の制御コ
ンテキストから異なる制御コンテキストにコンテキスト
を切り換えるコンテキスト・スイッチ・ステップをさら
に含み、該異なる制御コンテキストは、前記再開ステッ
プ(c)の前記再開制御コンテキストであり、該異なる
制御コンテキストは前記複数の制御コンテキストの中の
1つである、請求項1記載の方法。 - 【請求項6】前記コンテキスト・スイッチ・ステップ
は、 前記所定の制御コンテキストをディスケジューリングす
るステップと、 前記評価ステップ(b)に準じた優先順位を有する前記
異なる制御コンテキストを復元するステップと、を含む
請求項5記載の方法。 - 【請求項7】前記プロセス・スケジューリング管理方法
は、複数のスケジューリング・イベントの各々に対して
前記ステップ(a)〜(c)を繰り返すステップをさら
に含む、請求項1記載の方法。 - 【請求項8】データ処理環境内の複数の制御コンテキス
ト間でプロセス・スケジューリングを管理し、所定の制
御コンテキストを処理ノードで実行し、該所定の制御コ
ンテキストは前記複数の制御コンテキストの中の1つで
あるプロセス・スケジューリングの管理方法において、 (a)スケジューリング・イベントを処理するステップ
と、 (b)前記複数の制御コンテキストの1つを含む再開制
御コンテキストを決定するために、前記所定の制御コン
テキスト内からプロセス・スケジューリングを評価する
ステップとを含み、 (c)前記プロセス・スケジューリング評価ステップ
(b)に応答して前記再開制御コンテキスト内でデータ
の実行を再開するステップ、を含む、プロセス・スケジ
ューリング管理方法。 - 【請求項9】前記プロセス・スケジューリング管理方法
は、ノンプリエンプティブなデータ処理環境内で使用さ
れ、前記再開制御コンテキストは、前記再開ステップ
(c)が前記プロセス・スケジューリング評価ステップ
(b)に応答して、前記所定の制御コンテキスト内でデ
ータの実行を再開することを含むように該所定の制御コ
ンテキストを有する、請求項8記載の方法。 - 【請求項10】前記データ処理環境は、多重処理ノード
を有する並列データ処理環境を構成し、該並列データ処
理環境にある処理ノードの各々で、プロセス・スケジュ
ーリングを管理する前記方法を使用する、請求項8記載
の方法。 - 【請求項11】前記プロセス・スケジューリング管理方
法は、前記評価ステップ(b)に続いて前記所定の制御
コンテキストから前記再開制御コンテキストにコンテキ
ストを切り換えるコンテキスト・スイッチ・ステップを
さらに含み、該再開制御コンテキストは、前記所定の制
御コンテキストとは異なる前記複数の制御コンテキスト
の中の1つであり、該再開制御コンテキストは前記評価
ステップ(b)によって定められ所定の制御コンテキス
トに勝る優先順位を有する、請求項8記載の方法。 - 【請求項12】前記コンテキスト・スイッチ・ステップ
は、 前記所定の制御コンテキストをディスケジューリングす
るステップと、 前記評価ステップ(b)に準じた優先順位を有する前記
異なる制御コンテキストを復元するステップと、を含む
請求項11記載のプロセス・スケジューリング管理方
法。 - 【請求項13】複数の制御コンテキスト間で処理ノード
におけるプロセス・スケジューリングを管理し、該複数
の制御コンテキストの中の1つを有する所定の制御コン
テキストを実行する、プロセス・スケジューリング管理
システムにおいて、 コンテキスト・スケジューリング
・イベントを処理する手段と、 前記コンテキスト・スケジューリング・イベントの処理
手段に応答して、再開制御コンテキストを識別するため
に前記所定の制御コンテキスト内から処理ノードにおけ
るプロセス・スケジューリングを評価する手段であっ
て、該再開制御コンテキストは前記複数の制御コンテキ
ストの中の1つであり、他のすべての前記複数の制御コ
ンテキストに勝るスケジューリング優先順位を有する評
価手段と、 再開制御コンテキストを識別する前記プロセス・スケジ
ューリング評価手段に応答して、前記再開制御コンテキ
スト内の前記処理ノードでデータの実行を再開する手段
と、を備える、プロセス・スケジューリング管理システ
ム。 - 【請求項14】前記処理ノードは、並列データ処理環境
の複数の処理ノードの中の1つであり、前記プロセス・
スケジューリング管理システムは、該並列データ処理環
境の前記処理ノードの各々でプロセス・スケジューリン
グを管理する手段を備える、請求項13記載のシステ
ム。 - 【請求項15】前記再開制御コンテキストは、前記所定
の制御コンテキストとは異なる前記複数の制御コンテキ
ストの中の1つであることを決定する前記評価手段の決
定に続いて、該所定の制御コンテキストから該再開制御
コンテキストに切り換えるコンテキスト・スイッチャを
備える、請求項13記載のシステム。 - 【請求項16】前記コンテキスト・スイッチャは、 前記所定の制御コンテキストをディスケジューリングす
る手段と、 前記処理ノードで前記再開制御コンテキストを復元する
手段と、を備える、請求項13記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2191893A | 1993-02-24 | 1993-02-24 | |
US021918 | 1993-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06250853A true JPH06250853A (ja) | 1994-09-09 |
JP2561801B2 JP2561801B2 (ja) | 1996-12-11 |
Family
ID=21806840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6011510A Expired - Lifetime JP2561801B2 (ja) | 1993-02-24 | 1994-02-03 | プロセス・スケジューリングの管理方法およびシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5526521A (ja) |
JP (1) | JP2561801B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH096633A (ja) * | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
US5799188A (en) * | 1995-12-15 | 1998-08-25 | International Business Machines Corporation | System and method for managing variable weight thread contexts in a multithreaded computer system |
US5825770A (en) * | 1996-06-06 | 1998-10-20 | Northern Telecom Limited | Multiple algorithm processing on a plurality of digital signal streams via context switching |
US6009484A (en) * | 1997-02-28 | 1999-12-28 | Ncr Corporation | Priority-based I/O task processing in computers |
US5995997A (en) * | 1997-05-02 | 1999-11-30 | Microsoft Corporation | Apparatus and methods for optimally allocating currently available computer resources to future task instances versus continued execution of current task instances |
US5784616A (en) * | 1997-05-02 | 1998-07-21 | Microsoft Corporation | Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation |
US6952827B1 (en) * | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US6425021B1 (en) * | 1998-11-16 | 2002-07-23 | Lsi Logic Corporation | System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts |
JP3601677B2 (ja) | 1999-06-09 | 2004-12-15 | 日本電気株式会社 | タスク処理システム |
US7996843B2 (en) * | 1999-08-25 | 2011-08-09 | Qnx Software Systems Gmbh & Co. Kg | Symmetric multi-processor system |
US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
US7099855B1 (en) | 2000-01-13 | 2006-08-29 | International Business Machines Corporation | System and method for electronic communication management |
US7661107B1 (en) * | 2000-01-18 | 2010-02-09 | Advanced Micro Devices, Inc. | Method and apparatus for dynamic allocation of processing resources |
US6757897B1 (en) * | 2000-02-29 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and methods for scheduling and performing tasks |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US6408277B1 (en) | 2000-06-21 | 2002-06-18 | Banter Limited | System and method for automatic task prioritization |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
US7389230B1 (en) | 2003-04-22 | 2008-06-17 | International Business Machines Corporation | System and method for classification of voice signals |
US8495002B2 (en) | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20050187913A1 (en) | 2003-05-06 | 2005-08-25 | Yoram Nelken | Web-based customer service interface |
US20060112388A1 (en) * | 2004-11-22 | 2006-05-25 | Masaaki Taniguchi | Method for dynamic scheduling in a distributed environment |
US9329899B2 (en) | 2013-06-24 | 2016-05-03 | Sap Se | Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads |
CN104021041B (zh) * | 2014-06-12 | 2017-02-22 | 山西江河海融科技有限公司 | 一种多任务操作环境状态的计算机调度方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4047161A (en) * | 1976-04-30 | 1977-09-06 | International Business Machines Corporation | Task management apparatus |
US4445173A (en) * | 1981-09-11 | 1984-04-24 | Data General Corporation | Improved system for saving and restoring state in call and return operations |
US4484274A (en) * | 1982-09-07 | 1984-11-20 | At&T Bell Laboratories | Computer system with improved process switch routine |
US4964040A (en) * | 1983-01-03 | 1990-10-16 | United States Of America As Represented By The Secretary Of The Navy | Computer hardware executive |
US4562538A (en) * | 1983-05-16 | 1985-12-31 | At&T Bell Laboratories | Microprocessor having decision pointer to process restore position |
US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
US4930065A (en) * | 1987-08-20 | 1990-05-29 | David Computer Corporation | Automatic data channels for a computer system |
US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
US5127098A (en) * | 1989-04-12 | 1992-06-30 | Sun Microsystems, Inc. | Method and apparatus for the context switching of devices |
US5016166A (en) * | 1989-04-12 | 1991-05-14 | Sun Microsystems, Inc. | Method and apparatus for the synchronization of devices |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5161226A (en) * | 1991-05-10 | 1992-11-03 | Jmi Software Consultants Inc. | Microprocessor inverse processor state usage |
US5245702A (en) * | 1991-07-05 | 1993-09-14 | Sun Microsystems, Inc. | Method and apparatus for providing shared off-screen memory |
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
-
1994
- 1994-02-03 JP JP6011510A patent/JP2561801B2/ja not_active Expired - Lifetime
-
1995
- 1995-01-25 US US08/378,067 patent/US5526521A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2561801B2 (ja) | 1996-12-11 |
US5526521A (en) | 1996-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
JP5678135B2 (ja) | オペレーティング・システム介入なしにos隔離シーケンサー上でスレッドをスケジューリングする機構 | |
US5339415A (en) | Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system | |
US10387191B2 (en) | Task processor | |
US7650601B2 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
US9753729B2 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
US5390329A (en) | Responding to service requests using minimal system-side context in a multiprocessor environment | |
US8996761B2 (en) | Virtual queue processing circuit and task processor | |
US5257372A (en) | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system | |
US7739685B2 (en) | Decoupling a central processing unit from its tasks | |
JP5809366B2 (ja) | ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム | |
US20050015768A1 (en) | System and method for providing hardware-assisted task scheduling | |
US8327379B2 (en) | Method for switching a selected task to be executed according with an output from task selecting circuit | |
US8321874B2 (en) | Intelligent context migration for user mode scheduling | |
EP2282265A1 (en) | A hardware task scheduler | |
EP0544822B1 (en) | Dual level scheduling of processes | |
JPH09160790A (ja) | タスクスケジュール装置及びタスクスケジュール方法 | |
Lo et al. | Architectural considerations in the design of real-time kernels | |
JP2553526B2 (ja) | マルチタスク処理装置 | |
JPH01316830A (ja) | タスク実行制御方式 | |
Forin et al. | Asymmetric Real Time Scheduling on a Multimedia Processor | |
Theaker et al. | Scheduling |