JP2561801B2 - プロセス・スケジューリングの管理方法およびシステム - Google Patents

プロセス・スケジューリングの管理方法およびシステム

Info

Publication number
JP2561801B2
JP2561801B2 JP6011510A JP1151094A JP2561801B2 JP 2561801 B2 JP2561801 B2 JP 2561801B2 JP 6011510 A JP6011510 A JP 6011510A JP 1151094 A JP1151094 A JP 1151094A JP 2561801 B2 JP2561801 B2 JP 2561801B2
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.)
Expired - Lifetime
Application number
JP6011510A
Other languages
English (en)
Other versions
JPH06250853A (ja
Inventor
ブレーク・ゴードン・フィッチ
マーク・エドウィン・ギアンパパ
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 JPH06250853A publication Critical patent/JPH06250853A/ja
Application granted granted Critical
Publication of JP2561801B2 publication Critical patent/JP2561801B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • 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

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にデータ処理環
境、より詳細にはコンテキスト・スイッチ(context sw
itching:プロセッサの処理対象を1つのタスクから別
のタスクに切り換えること)を使用して、アプリケーシ
ョン・プログラムの多重スレッド処理を容易にするよう
なデータ処理環境のプロセス・スケジューリング管理方
法およびシステムに関する。
【0002】
【従来の技術】標準のプロセッサ・アレイを並列に用い
て実行するように記述されたプログラムが増加してい
る。アプリケーション・プログラマが、これらのプロセ
ッサを利用することができ、且つ各処理ユニットの効率
的な共用を調整することができるようにソフトウェア・
スーパバイザ・システムを記述することによって、全体
的なプログラム処理の目標を達成することができる。こ
のようなソフトウェア・スーパバイザは、従来技術では
並列「マイクロカーネル(microkernel)」と呼ばれて
いる。総合的には、これらのマイクロカーネルは、任意
の単一カーネルまたはオペレーティング・システムによ
って生成されたアプリケーション・プログラム環境と同
様の環境を生成する。
【0003】並列マイクロカーネルは、周辺マシン環境
の資源を管理するという点で、単一カーネルと類似して
いるが、両者の間には著しい相違点が存在する。具体的
にいうと、単一カーネルは、競合するタスク・コンテキ
スト間で、マシン環境を時間的に公平に分割しようとす
る。一方、並列マイクロカーネルは、一般的に、単一の
最終目的のため、すなわち並列アプリケーション・プロ
グラムの個々のカーネル部を効率的に完了するために、
各マシン環境の能力を効果的に引き出すように記述され
ている。並列マイクロカーネル内で、構成タスクは実際
には決して競合しない。なぜならば、それらはこの単一
の最終目的に向かって1つのアプリケーション・プログ
ラム内で動作しているからである。
【0004】制御コンテキストのスケジューリングおよ
びディスケジューリング(descheduling)は、すべての
カーネルの義務の中心である。制御コンテキストは、コ
ンテキストの特性およびカーネルの命名規則により、
「スレッド」、「プロセス」、または「タスク」といっ
た異なった名称が与えられる。コンテキストは、生成さ
れるまで、ブロックされて待機中になるまで、または割
り込まれるまで、マシン環境の制御下におかれる。スケ
ジューリング・アルゴリズムが、コンテキスト実行の優
先順位をこれらの時に評価するのでこれらの事象は、デ
ィスケジューリング・イベントと呼ばれる。ノンプリエ
ンプティブ(nonpreemptive:すなわち処理が開始され
たジョブが完了まで中断することなく処理されること)
・スケジューリングにおいて、ユーザ・コンテキスト
は、割り込みの結果として決してスイッチされることは
ない。結局、すべてのプロセッサの割り込みは、割り込
みの時にコンテキスト処理に戻る。
【0005】ノンプリエンプティブ並列マイクロカーネ
ルにおいて、アプリケーション・プログラマはコンテキ
スト・スケジューリングを制御する。これは、単一スレ
ッド・モデルでプログラミングすることによって直接的
に、または多重コンテキスト間で生成することによって
間接的に行われる。前者の場合、マシン環境当たり単一
の応用コンテキストのみが存在し、したがってプログラ
マの見地から、走行可能時にいつもスケジュールがされ
ているはずである。後者の場合、プログラマは特別にブ
ロッキング・カーネル呼び出しを生成または作成し、参
加するユーザ・コンテキストのスケジューリングを制御
する。いずれの場合も、マイクロカーネル・サービスに
対する呼び出しが、走行しているコンテキストをブロッ
クし、スケジューリング・アルゴリズムの評価をもたら
す。いずれにせよ、コンテキスト・スイッチはしばしば
冗長である。これは、マイクロカーネルが、スケジュー
リング・アルゴリズムの評価の後に、優先コンテキスト
が、まさに生成したコンテキストであるかブロックした
コンテキストであるかをしばしば決定するからである。
【0006】
【発明が解決しようとする課題】しかしながら、ここに
問題が存在する。標準的なカーネル・コンテキストのス
ケジューリングにおいて、完全なコンテキスト・スイッ
チは、スケジューリング・アルゴリズムを再評価する機
会があればいつでも実行される。優先権が与えられた次
のコンテキストが、生成しまたはブロックしたコンテキ
スト以外のコンテキストであるという可能性が高いこと
を想定する。並列マイクロカーネル環境において、これ
は厳しい想定である。実際に、あるコンテキストが、自
身が継続的に再スケジューリングされて実行されること
を認識すると、冗長なコンテキスト・スイッチが生じる
可能性が高い。したがって、スケジューリング・アルゴ
リズムの評価によってコンテキスト・スイッチが冗長性
であることがわかると、データ処理技術において、コン
テキスト・スイッチの荷重なオーバヘッドに影響されな
いスケジューリング方法が必要とされることとなる。
【0007】
【課題を解決するための手段】簡単に要約すれば、本発
明の一側面として、データ処理環境の処理ノードで少な
くとも2つの制御コンテキスト間のプロセス・スケジュ
ーリングを管理する方法を有する。この方法は、少なく
とも2つの制御コンテキストの中の1つである所定の制
御コンテキスト内でデータを実行するステップと、スケ
ジューリング・イベントの処理に応答してデータの実行
をもたらし、所定の制御コンテキスト内からプロセス・
スケジューリングを評価するステップと、少なくとも2
つの制御コンテキストの中の1つである再開制御コンテ
キスト内でデータの実行を再開するステップとを含む。
拡張された実施例において、データ処理システムはノン
プリエンプティブ(nonpreemptive)な並列データ処理
システムを形成する。
【0008】他の側面として、処理ノードにおける複数
の制御コンテキスト間でプロセス・スケジューリングを
管理するシステムを提供する。所定の制御コンテキスト
が、当該複数の制御コンテキストの中の1つであり処理
ノードで実行されるものと想定される。この管理システ
ムは、コンテキスト・スケジューリング・イベントを識
別する処理手段を含む。コンテキスト・スケジューリン
グ・イベントが識別されると、コンテキスト・スケジュ
ーラは、この所定の制御コンテキスト内から評価され、
当該処理ノードに対して再開制御コンテキストを識別す
る。この再開制御コンテキストは、複数の制御コンテキ
ストの中の1つであり、複数の走行可能な制御コンテキ
ストのいずれにも勝るスケジューリングの優先順位を有
する。実行再開手段は、スケジュール評価手段によって
識別された再開制御コンテキスト内の処理ノードでデー
タの実行を再開するのにも提供される。
【0009】要約すれば、データ処理環境内の多重制御
コンテキスト間でプロセス・スケジューリングを管理す
る新規な技術が提供される。この技術は、プロセス・ス
ケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるか否
かを決定するために使用される。第2に、コンテキスト
・スイッチが保証されれば、コンテキスト・スイッチャ
が呼び出され、ディスケジューリング制御コンテキスト
の状態を保存し、優先制御コンテキストの状態を復元す
る。この第2の機能は、ディスケジューリング・コンテ
キスト内で、または特権コンテキストとして実行され
る。この管理技術は、単一のコンピュータ・ノードがノ
ンプリエンプティブ処理スケジューリングを提供する単
一プログラムによって使用される状況で最も有用であ
る。スケジューリング機構は、冗長なコンテキスト・ス
イッチが呼び出されるどのような状況でも有用であり、
これによって性能オーバヘッドをもたらす。この概念
は、プリエンプティブ処理スケジューリングにも容易に
拡張できる。
【0010】
【実施例】図1は、並列データ処理環境10の簡略化し
た実施例であり、処理ノード12のアレイを有してい
る。各処理ノード12は、ハードウェア、ソフトウェア
とハードウェアの組み合わせ、または主にソフトウェア
(例えば仮想処理ノード)で実現される。総合すれば、
処理ノード12は、どのデータ処理機能が実行されるマ
シン環境を提供する。ある標準的な実施例において、各
処理ノード12は、CPU、通信インターフェース、メ
モリおよびクロック機構を有する。
【0011】処理ノードのアレイ内において、通常、ノ
ードは高い優先順位のメッセージと低い優先順位のメッ
セージによって通信を行う。一例として、図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)を通してそのデータでアドレスされたオブジェクト
のアドレス空間に同等の効果を生成することができる。
以下に示すコンテキスト・スケジューリングの方法/シ
ステムは、並列データ処理環境の単一アドレス空間内で
処理性能を高めることを追及している(本発明は、アプ
リケーション・プログラムの多重スレッドを処理するた
めに割り当てられた単一プロセッサの性能を向上させる
ようにも拡張できる)。
【0013】オペレーティング・システムは、異なる制
御コンテキスト(すなわち異なるプロセスおよび/また
はスレッド)間で、あるオペレーティング・システムに
よって管理されるマシン環境を時間的に分割する。スケ
ジューリング・イベントに到達すると、従来の方法では
以下の3つのステップを順番に実行していた。すなわ
ち、(1)現コンテキストのパラメータを保存すること
によって現在走行しているコンテキストをディスケジュ
ーリング(descheduling)する、(2)オペレーティン
グ・システム内のスケジューリング・コードを用いて、
次に走行するコンテキスト(オペレーティング・システ
ムのコンテキストのロードが通常必要とされる)を決定
する、(3)新しいコンテキストを(処理ノードで新し
いコンテキストのパラメータをロードすることによっ
て)スケジューリングすることの3つである。
【0014】この方法とは対象的に、本発明によれば、
スケジューリング・コードはまず現コンテキスト内から
評価され、コンテキスト・スイッチが発生するような決
定が(スケジューリング・コードを走行することによっ
て)なされるときのみ、この現コンテキストがディスケ
ジューリングされる。本質的に本発明は、スケジューリ
ング機能を、現制御コンテキスト内から再び行われる評
価段、および条件付きのコンテキスト・スイッチング段
に分割することである。本発明の一実施例において、ス
ケジューリング・コードは、どのような制御コンテキス
トによっても読み出し可能なサブルーチン・ライブラリ
のコード(すなわち、どのコンテキストが優先権を有す
るかを決定するために走行させなければならないプログ
ラム・ルーチン)を提供することによって、現在走行中
のコンテキスト内から実行可能であり、どのような再ス
ケジューリング地点においても、たとえばサブルーチン
・コールによってまたは割り込みによって、現在走行し
ているコンテキスト内から実行可能である(少数のパラ
メータはサブルーチン・コールまたは割込み時に必ず保
存される一方で、大多数のパラメータはプロセスまたは
スレッド・コンテキストがスイッチされるときはいつで
も保存されなければならない)。
【0015】コンテキスト・スイッチは、従来の「コン
テキスト・スイッチャ」機能によって行われる。この機
能には、通常、ディスケジューリングされたコンテキス
トの全状態を保存し、カーネルのスケジューリング構造
を更新し、その後、到来する制御コンテキストの全状態
を回復することが含まれる。コンテキスト・スイッチャ
は、たとえば実行するディスケジューリング・コンテキ
ストを用いることにより、自身の制御コンテキストをも
たなくてもよいし、またはスーパーバイザ・コールによ
って入力された特権コンテキストから実行されるように
してもよい。
【0016】図4および図5に、本発明によるコンテキ
スト・スケジューリングを管理する方法/システムの一
実施例を示し、ノンプリエンプティブ・スケジューリン
グ環境と関連して以下に示す。しかしながら本発明は、
スケジューリング・コードで用いられたデータの構造
が、スケジューリングされているコンテキスト内からア
クセス(すなわち読み出し)される限り、プリエンプテ
ィブ・スケジューリングへ拡張するよう容易に一般化さ
れる。
【0017】処理ノードにおいて、多数の制御コンテキ
ストの中の1つを実行することによって処理を開始する
(ステップ40「所与のコンテキスト内で実行」)。ス
ケジューリング・イベントを処理し(ステップ42「ス
ケジューリング・イベントを処理する」)、その後、実
行コンテキストを随時(voluntarily)生成するか否か
を初期問合せする(ステップ44「実行コンテキストを
随時生成するか?」)。Noならば、その後、走行中の
制御コンテキストをブロックして待機させ、結合部
「A」46を経て処理を図5の制御シーケンスに渡す。
【0018】引き続き図4において、実行制御コンテキ
ストを随時生成する場合、次に、関連する走行準備(re
ady to run)待ち行列が空か否かを問合わせる(ステッ
プ48「走行準備待ち行列が空であるか?」)。実行制
御コンテキストを随時生成しているときはいつでも、そ
の優先順位が他の走行準備待ち行列よりも高いと確認さ
れればすぐに実際に実行が継続される。したがって、走
行準備待ち行列が空であれば、結合部56から命令58
へ処理を受け渡し(ステップ58「生成コンテキストに
戻る」)、それによって、生成中のコンテキストに即時
戻りを作成する。
【0019】走行準備待ち行列が1つ以上の制御コンテ
キストを含んでいると、その後、スケジューリング・ア
ルゴリズムを適用し、関連する走行準備待ち行列の先頭
にある制御コンテキストとその生成中の生成制御コンテ
キストとの間で優先順位を決定する(ステップ50「ス
ケジューリング・アルゴリズムを使用」)。再び、たと
えばサブルーチン・コールによって生成制御コンテキス
ト内からスケジューリング・アルゴリズムが適用され
る。生成制御コンテキストが依然として優先権を有する
ならば(ステップ52「生成されたコンテキストが優先
権を有するか?」)、結合部56を経て命令58で生成
制御コンテキストに戻る(ステップ58「生成コンテキ
ストに戻る」)。これとは反対に、新しい制御コンテキ
ストが優先権を有すれば、コンテキスト・スイッチャを
呼び出し、この優先権を有する制御コンテキストに処理
ノードを移動する、すなわちコンテキストが切り換えら
れる(ステップ54「コンテキスト・スイッチャを呼び
出す」)。
【0020】図5を参照して、実行制御コンテキストが
ブロックされてあるイベントを待機中であれば、関連す
る走行準備待ち行列が空か否かを問合せる(ステップ6
0「走行準備待ち行列は空か?」)。走行準備待ち行列
が空でなければ、コンテキスト・スイッチャを呼び出し
現在走行準備されている代替コンテキストの実行が好ま
しい(ステップ62「コンテキスト・スイッチャを呼び
出す」)。しかしながら、関連する走行準備待ち行列が
空であれば、処理ノードは待機し(ステップ66「スケ
ジューリング・アルゴリズムを待機」)、その後、関連
する走行準備待ち行列が空であるか否かを再び問合せる
(ステップ68「走行準備待ち行列は空か?」)。走行
準備待ち行列が空であれば、プロセッサは結合部64を
経て待機状態に戻り、再び所定期間だけ待つ(ステップ
66「スケジューリング・アルゴリズムを待機」)。そ
のうちに、制御コンテキストが、走行準備状態になる
と、走行準備待ち行列の先頭に配置される。これが生じ
ると、走行準備待ち行列の制御コンテキストは、ブロッ
クされた制御コンテキストと同じ制御コンテキストであ
ることになる(ステップ70「優先権を有するコンテキ
ストがブロックされたコンテキストと同じか?」)。も
し同じであれば、その制御コンテキストに対して即時戻
りを作成する(ステップ74「最後にブロックされたコ
ンテキストに戻る」)。さもなければ、コンテキスト・
スイッチャを呼び出し、走行の準備された制御コンテキ
ストに処理ノードを移動する(ステップ72「コンテキ
スト・スイッチャを呼び出す」)。
【0021】再び要約すれば、データ処理環境内の多重
制御コンテキスト間でプロセス・スケジューリングを管
理する新規な技術を提供する。この技術は、プロセス・
スケジューリング機能を個別の部分に分割することを含
む。第1の機能は、処理制御コンテキスト内からの評価
機能であり、コンテキスト・スイッチが保証されるかど
うかを決定するために使用される。第2の機能は、コン
テキスト・スイッチが保証されれば、コンテキスト・ス
イッチャが呼び出され、ディスケジューリング制御コン
テキストの状態を保存し、優先制御コンテキストの状態
を復元する。この第2の機能は、ディスケジューリング
制御コンテキスト内で、または特権コンテキストとして
実行することができる。この管理技術は、単一のコンピ
ュータ・ノードがノンプリエンプティブ処理スケジュー
リングを提供する単一プログラムによって使用される状
況で最も有用である。このスケジューリング機構は、冗
長なコンテキスト・スイッチが呼び出されるどのような
状況でも有用であり、これによって性能オーバヘッドが
もたらされる。この概念は、プリエンプティブ処理スケ
ジューリングにも容易に拡張できる。
【0022】
【発明の効果】以上説明したように、本発明によれば、
コンテキスト・スイッチングを行う際に、処理制御コン
テキスト内からこれが評価されるので、コンテキスト・
スイッチの荷重なオーバヘッドに影響を受けないという
効果が得られる。
【0023】多重制御コンテキストの中の1つである所
定の制御コンテキストは、データ処理環境10内の処理
ノード12で実行される。この方法は、スケジューリン
グ・イベントを処理することを含んでおり、実行制御コ
ンテキスト内から処理スケジューリングを評価して多重
制御コンテキストの中の1つである再開制御コンテキス
トを決定し、かつ所定の制御コンテキストで起こってい
るプロセス・スケジューリングに応答して再開制御コン
テキストでデータの実行を再開する。コンテキスト・ス
イッチは、再開制御コンテキストが所定の制御コンテキ
スト以外のコンテキストであるのを処理スケジューリン
グが決定するときのみ用いられる。この技術はノンプリ
エンプティブな並列データ処理環境で特に有利である。
【図面の簡単な説明】
【図1】本発明の並列データ処理環境の一実施例を示す
図である。
【図2】本発明の並列データ処理環境において、通信イ
ンターフェースを通して相互接続された幾つかの処理ノ
ードを示す図である。
【図3】図2の並列処理ノードのアドレス空間割り当て
の一実施例を示す図である。
【図4】本発明に準じたコンテキスト・スケジューリン
グを管理する方法の一実施例を示すフロー図である。
【図5】本発明に準じたコンテキスト・スケジューリン
グを管理する方法の一実施例を示すフロー図である。
【符号の説明】
10 データ処理環境 12 処理ノード 16 通信インターフェース 17 ハードウェア成分 18 ソフトウェア成分 19 カーネル/アプリケーション・プログラム・イン
ターフェース 22 アプリケーション・プログラム 24 制御システムまたはカーネル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マーク・エドウィン・ギアンパパ アメリカ合衆国10533−1240 ニューヨ ーク州、アービントン、アパートメン ト・ジーティー−14、ノース・ブロード ウェイ 140

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理環境内の複数の制御コンテキス
    ト間の処理ノードにおけるプロセス・スケジューリング
    を管理する方法において、 (a)前記複数の制御コンテキストの中の1つである所
    定の制御コンテキスト内でデータを実行するステップ
    と、 (b)スケジューリング・イベントの処理に応答して、
    前記ステップ(a)のデータ実行をもたらし、前記所定
    の制御コンテキスト内からプロセス・スケジューリング
    を評価するステップと、 (c)前記複数の制御コンテキストの中の1つであり、
    前記プロセス・スケジューリング評価ステップ(b)に
    準じた優先順位を有する再開制御コンテキスト内でデー
    タの実行を再開するステップと、を含む、プロセス・ス
    ケジューリング管理方法。
  2. 【請求項2】前記プロセス・スケジューリング管理方法
    は、ノンプリエンプティブなデータ処理環境内で使用さ
    れ、前記再開ステップ(c)は前記所定の制御コンテキ
    スト内でデータの実行を再開することを含み、この場
    合、前記所定の制御コンテキストが前記再開制御コンテ
    キストとなる、請求項1記載の方法。
  3. 【請求項3】前記データ処理環境は、多重処理ノードを
    有する並列データ処理環境から成り、該並列データ処理
    環境にある多重処理ノードの各々でプロセス・スケジュ
    ーリングを管理する前記方法を使用する、請求項1記載
    の方法。
  4. 【請求項4】前記ステップ(b)の評価は、前記所定の
    制御コンテキスト内から実行可能なスケジューリング・
    コードを前記データ処理環境から呼び出すことを含む、
    請求項1記載の方法。
  5. 【請求項5】前記プロセス・スケジューリング管理方法
    は、前記評価ステップ(b)に続いて前記所定の制御コ
    ンテキストから異なる制御コンテキストにコンテキスト
    を切り換えるコンテキスト・スイッチ・ステップをさら
    に含み、該異なる制御コンテキストは、前記再開ステッ
    プ(c)の前記再開制御コンテキストであり、該異なる
    制御コンテキストは前記複数の制御コンテキストの中の
    1つである、請求項1記載の方法。
  6. 【請求項6】前記コンテキスト・スイッチ・ステップ
    は、 前記所定の制御コンテキストをディスケジューリングす
    るステップと、 前記評価ステップ(b)に準じた優先順位を有する前記
    異なる制御コンテキストを復元するステップと、を含む
    請求項5記載の方法。
  7. 【請求項7】前記プロセス・スケジューリング管理方法
    は、複数のスケジューリング・イベントの各々に対して
    前記ステップ(a)〜(c)を繰り返すステップをさら
    に含む、請求項1記載の方法。
  8. 【請求項8】データ処理環境内の複数の制御コンテキス
    ト間でプロセス・スケジューリングを管理し、所定の制
    御コンテキストを処理ノードで実行し、該所定の制御コ
    ンテキストは前記複数の制御コンテキストの中の1つで
    あるプロセス・スケジューリングの管理方法において、 (a)スケジューリング・イベントを処理するステップ
    と、 (b)前記複数の制御コンテキストの1つを含む再開制
    御コンテキストを決定するために、前記所定の制御コン
    テキスト内からプロセス・スケジューリングを評価する
    ステップとを含み、 (c)前記プロセス・スケジューリング評価ステップ
    (b)に応答して前記再開制御コンテキスト内でデータ
    の実行を再開するステップ、を含む、プロセス・スケジ
    ューリング管理方法。
  9. 【請求項9】前記プロセス・スケジューリング管理方法
    は、ノンプリエンプティブなデータ処理環境内で使用さ
    れ、前記再開制御コンテキストは、前記再開ステップ
    (c)が前記プロセス・スケジューリング評価ステップ
    (b)に応答して、前記所定の制御コンテキスト内でデ
    ータの実行を再開することを含むように該所定の制御コ
    ンテキストを有する、請求項8記載の方法。
  10. 【請求項10】前記データ処理環境は、多重処理ノード
    を有する並列データ処理環境を構成し、該並列データ処
    理環境にある処理ノードの各々で、プロセス・スケジュ
    ーリングを管理する前記方法を使用する、請求項8記載
    の方法。
  11. 【請求項11】前記プロセス・スケジューリング管理方
    法は、前記評価ステップ(b)に続いて前記所定の制御
    コンテキストから前記再開制御コンテキストにコンテキ
    ストを切り換えるコンテキスト・スイッチ・ステップを
    さらに含み、該再開制御コンテキストは、前記所定の制
    御コンテキストとは異なる前記複数の制御コンテキスト
    の中の1つであり、該再開制御コンテキストは前記評価
    ステップ(b)によって定められ所定の制御コンテキス
    トに勝る優先順位を有する、請求項8記載の方法。
  12. 【請求項12】前記コンテキスト・スイッチ・ステップ
    は、 前記所定の制御コンテキストをディスケジューリングす
    るステップと、 前記評価ステップ(b)に準じた優先順位を有する前記
    異なる制御コンテキストを復元するステップと、を含む
    請求項11記載のプロセス・スケジューリング管理方
    法。
  13. 【請求項13】複数の制御コンテキスト間で処理ノード
    におけるプロセス・スケジューリングを管理し、該複数
    の制御コンテキストの中の1つを有する所定の制御コン
    テキストを実行する、プロセス・スケジューリング管理
    システムにおいて、 コンテキスト・スケジューリング
    ・イベントを処理する手段と、 前記コンテキスト・スケジューリング・イベントの処理
    手段に応答して、再開制御コンテキストを識別するため
    に前記所定の制御コンテキスト内から処理ノードにおけ
    るプロセス・スケジューリングを評価する手段であっ
    て、該再開制御コンテキストは前記複数の制御コンテキ
    ストの中の1つであり、他のすべての前記複数の制御コ
    ンテキストに勝るスケジューリング優先順位を有する評
    価手段と、 再開制御コンテキストを識別する前記プロセス・スケジ
    ューリング評価手段に応答して、前記再開制御コンテキ
    スト内の前記処理ノードでデータの実行を再開する手段
    と、を備える、プロセス・スケジューリング管理システ
    ム。
  14. 【請求項14】前記処理ノードは、並列データ処理環境
    の複数の処理ノードの中の1つであり、前記プロセス・
    スケジューリング管理システムは、該並列データ処理環
    境の前記処理ノードの各々でプロセス・スケジューリン
    グを管理する手段を備える、請求項13記載のシステ
    ム。
  15. 【請求項15】前記再開制御コンテキストは、前記所定
    の制御コンテキストとは異なる前記複数の制御コンテキ
    ストの中の1つであることを決定する前記評価手段の決
    定に続いて、該所定の制御コンテキストから該再開制御
    コンテキストに切り換えるコンテキスト・スイッチャを
    備える、請求項13記載のシステム。
  16. 【請求項16】前記コンテキスト・スイッチャは、 前記所定の制御コンテキストをディスケジューリングす
    る手段と、 前記処理ノードで前記再開制御コンテキストを復元する
    手段と、を備える、請求項13記載のシステム。
JP6011510A 1993-02-24 1994-02-03 プロセス・スケジューリングの管理方法およびシステム Expired - Lifetime JP2561801B2 (ja)

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 JPH06250853A (ja) 1994-09-09
JP2561801B2 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234142B1 (en) 1999-06-09 2007-06-19 Nec Corporation Task processing system

Families Citing this family (23)

* Cited by examiner, † Cited by third party
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
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
US6408277B1 (en) * 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
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)

* Cited by examiner, † Cited by third party
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
US5016166A (en) * 1989-04-12 1991-05-14 Sun Microsystems, Inc. Method and apparatus for the synchronization of devices
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching 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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234142B1 (en) 1999-06-09 2007-06-19 Nec Corporation Task processing system

Also Published As

Publication number Publication date
JPH06250853A (ja) 1994-09-09
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
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US9779042B2 (en) Resource management in a multicore architecture
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
US8776079B2 (en) Task processor
US20170329629A1 (en) System for selecting a task to be executed according to an output from a task control circuit
US7739685B2 (en) Decoupling a central processing unit from its tasks
JPH05189251A (ja) 多重タスク処理オペレーティング・システム及びそのコンピュータの動作方法
US8321874B2 (en) Intelligent context migration for user mode scheduling
US8327379B2 (en) Method for switching a selected task to be executed according with an output from task selecting circuit
JP2015513735A (ja) ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム
EP2282265A1 (en) A hardware task scheduler
Roy et al. Condor and preemptive resume scheduling
EP1770517A2 (en) Improvements relating to reduced-overhead context-saving in static priority scheduled operating systems
EP0544822B1 (en) Dual level scheduling of processes
Aridor et al. Open job management architecture for the Blue Gene/L supercomputer
JPH09160790A (ja) タスクスケジュール装置及びタスクスケジュール方法
Lo et al. Architectural considerations in the design of real-time kernels
JP2553526B2 (ja) マルチタスク処理装置
JPH01316830A (ja) タスク実行制御方式
CN112540840A (zh) 一种高效的基于Java多线程和反射的任务执行方法
Kim et al. Multiprocessors and Asynchronous Event Handling in the Real-Time Specification for Java