JPH07200314A - 並列ジョブの協調スケジューリング方式 - Google Patents

並列ジョブの協調スケジューリング方式

Info

Publication number
JPH07200314A
JPH07200314A JP5337972A JP33797293A JPH07200314A JP H07200314 A JPH07200314 A JP H07200314A JP 5337972 A JP5337972 A JP 5337972A JP 33797293 A JP33797293 A JP 33797293A JP H07200314 A JPH07200314 A JP H07200314A
Authority
JP
Japan
Prior art keywords
thread
state
threads
operating system
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
Application number
JP5337972A
Other languages
English (en)
Other versions
JP2836468B2 (ja
Inventor
Yuichi Aiba
雄一 相場
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP5337972A priority Critical patent/JP2836468B2/ja
Publication of JPH07200314A publication Critical patent/JPH07200314A/ja
Application granted granted Critical
Publication of JP2836468B2 publication Critical patent/JP2836468B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 オペレーティングシステムとタスクスケジュ
ーラ間で必要な情報を共有し、指定したプロセッサ数を
常に確保したスケジューリングと、並列ジョブの実行時
間の短縮を実現する。 【構成】 並列オペレーティングシステムとライブラリ
層の二階層で実現されるスケジューリング方式におい
て、生成スレッド数を物理プロセッサ数に限定せず、多
めに生成して待機状態とする手段、待機状態のスレッド
を実行可能状態とする手段、実行可能状態のスレッド数
をライブラリ層で確認する手段、実行可能状態のスレッ
ドを待機状態にする手段、および待機状態のスレッドを
終了させる手段から構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列ジョブの協調スケ
ジューリング方式に関して、例えば、IOなどを多発す
る並列プログラムの処理において、IO待ちによるプロ
セッサの遊びをなくしプロセッサ使用効果を高める効果
を持つ並列ジョブの協調スケジューリング方式に関す
る。
【0002】
【従来の技術】従来のジョブスケジューリング方式につ
いて説明する。ここで、ジョブとは利用者が投入したプ
ログラムやコマンドとする。
【0003】従来のオペレーティングシステムのスケジ
ューリングの考え方は単一のプロセッサを備えるマシン
上から発展してきた。プロセッサへのジョブの割り当て
のためにプロセスという管理単位が用意される。1つの
物理プロセッサを時間分割で使用し、複数のプロセスを
交互に処理することによって、ジョブを多重処理してい
るように見せる。
【0004】一方、マルチスレッド機構を採用する並列
オペレーティングシステムにおいても基本的な考え方は
同様で、プロセッサ割り当て単位としてスレッドと呼ば
れる管理単位を設定する。1つのプロセスに複数のスレ
ッドを用意し、独立に物理プロセッサにスケジュールす
ることによって1つのプロセスを並列処理することが出
来る。
【0005】さらに、利用者が並列処理を利用するイン
ターフェースが並列ライブラリで実現されている。この
並列ライブラリをタスクスケジューラと呼ぶことにす
る。利用者は、プログラム内に並列処理の指示を挿入す
ることにより、プログラムを並列処理の処理単位である
タスクに分割し、個々のタスクの同期や排他などのスケ
ジューリングを指示することが出来る。
【0006】従来の並列ジョブのスケジューリング方式
を図2を使用して説明する。
【0007】利用者プログラム203の中には、そのプ
ログラムで使用するスレッド数205やタスク204の
スケジューリングに関する指示が書かれてある。タスク
スケジューラ201は利用者の指示したスケジューリン
グにしたがって、タスクを選択し動かす。指示したスレ
ッド数205と比較して生成したスレッド206の数が
少なければ、オペレーティングシステム202に生成を
要求するが、指示したスレッド数205に等しくなった
時点でそれ以上の生成要求をしない。物理プロセッサ2
07へスレッド206を割り当てることはオペレーティ
ングシステム202が行なうので、オペレーティングシ
ステム202とタスクスケジューラ201の二階層での
スケジューリングという構成になる。従来の二階層スケ
ジューリングでは、タスクスケジューラ201からオペ
レーティングシステム202でのスケジューリングは意
識しない構造になっている。
【0008】
【発明が解決しようとする課題】従来の並列ジョブのス
ケジューリング方式では、利用者が並列処理を利用する
ための機構はタスクスケジューラで実現されてはいるも
のの、物理プロセッサへの仕事の割り当てはすべてオペ
レーティングシステムのスケジューリング次第で決ま
る。利用者は、スレッドを物理プロセッサとみなしてス
タクのスケジューリングを指示するが、実際にはそのス
レッドがどの物理プロセッサ上でいつ処理されているか
タスクスケジューラは認知しない。タスクスケジューラ
とオペレーティングシステムでの二階層のスケジューリ
ングで、情報交換をほとんどせず協調性がないために以
下のような問題がある。
【0009】1.通常、利用者が指示するスレッド数は
固定的で、利用者はスレッド=物理プロセッサと考えて
タスクの動作を指示する。この時、動作中のタスクの1
つがIOを発行すると、オペレーティングシステム中
で、そのスレッドが休眠状態となってIO完了を待つ。
すると、使用できるスレッド数が1つ減り、実行可能な
タクが他にある場合でも処理することができない。
【0010】2.指示するスレッド数を大きくした場
合、スレッドの1つがIOで休眠状態に入っても、オペ
レーティングシステムが余ったスレッドを動かすことが
できる。このため、1.の問題はある程度回避できる。
しかし、スレッドのスケジューリングはオペレーティン
グシステムが行なうため、タスクの動作するタイミング
が利用者の意図したタイミングと異なる場合が生じ、利
用者の意図したスケジューリングができないことがある
という問題がある。
【0011】本発明の目的は、従来の並列ジョブのスケ
ジューリング方式において、オペレーティングシステム
で管理されるスレッドの情報をタスクスケジューラに認
識させる協調スケジューリング方式を提案することによ
って、協調性を持った二階層スケジューリングを可能と
し、利用者の意図したスケジューリングを可能とし、さ
らに実行時間の短縮を実現することにある。
【0012】
【課題を解決するための手段】上述の問題点を解決する
ために、本発明の並列ジョブの協調スケジューリング方
式は、マルチスレッド機構を整えるオペレーティングシ
ステム、および並列ジョブの各タスクをスレッド上にス
ケジューリングするタスクスケジューラの二階層で実現
されるスケジューリング方式において、以下の手段から
構成される。
【0013】1.オペレーティングシステム中で、スレ
ッドをスケジューリング対象とならない待機状態で生成
する手段、2.待機状態のスレッドをスケジューリング
対象となる実行可能状態とする手段、3.実行可能状態
のスレッドを待機状態にする手段、4.オペレーティン
グシステム中で管理される実行可能状態スレッド数をラ
イブラリ層で確認する手段、5.待機状態のスレッドを
終了させる手段。
【0014】
【作用】図1に示す本発明の全体構成を使って説明す
る。
【0015】タスクスケジューラ101中では、タスク
分割に応じてオペレーティングシステム102にスレッ
ド生成を要求し、最適スレッド数106を越えた時点で
スレッドを待機状態で生成要求する手段110に切替え
る。さらに、スレッドがIO待ちなどの休眠状態に入る
時に、待機状態のスレッド103を実行可能状態104
とする手段112を使うことにより、実行可能なスレッ
ド104の数を最適スレッド数106を下回らないよう
にできる。
【0016】IO待ちなどのスレッドが休眠状態から実
行可能状態104に復帰することで、実行可能状態のス
レッド数105が最適スレッド数106よりも多くなる
ことがある。この場合、タスクのスイッチ時に、タスク
スケジューラ101で実行可能スレッド数105と最適
スレッド数106を比較し、スレッド待機化手段111
を使うことによって、実行可能スレッド数105をでき
る限り最適スレッド数106を上回らないようにする。
これにより実行可能なスレッド104の数が増え過ぎな
いよう制御でき、オペレーティングシステム102の余
計なスケジューリングを最小限にとどめ、利用者が意図
したスケジューリングをタスクスケジューラ101が行
なうことが可能となる。
【0017】プロセスの終了時に、待機状態のスレッド
103を実行状態として終了処理を行なわせることによ
り、プロセスの完全な終了処理を保証する。
【0018】
【実施例】図3のようなフローで動く簡単なプログラム
を例として考え、本発明の動作および効果について順を
追って説明する。図3のプログラムでは、ルートタスク
301からIOを含むタスク1(302)、計算処理の
みを含むタスク2(303)を分割し、最後に同期をと
って終了する。
【0019】本発明を構成するそれぞれの手段につい
て、図4〜8の例を使って動きを説明する。
【0020】図4に、タスク分割に応じてスレッドを待
機状態で生成した状態の一例を示す。タスク401は3
つに分割しているが、プロセッサ403の数は2つなの
で、従来の方法ならスレッドは2つしか生成できなかっ
た。本発明では3つ目のスレッドを生成する代わりにオ
ペレーティングシステムのスケジューリング対象となら
ない待機状態404として生成する。
【0021】図5に、待機状態のスレッドを実行可能状
態とする場合の一例を示す。実行中だったタスク501
の1つがIO待ちなどで休眠状態505に入ると、スレ
ッドはタスクと対になったまま停止する。この時、待機
状態504のスレッドを実行可能状態502とすること
により、プロセッサ503の個数分の実行可能スレッド
502の数を確保でき、タスク501を処理できる。
【0022】図6に、実行可能スレッド数をタスクスケ
ジューラから確認する手段を示す。プログラムの開始時
に実行可能スレッド数が収まる領域604のアドレスを
オペレーティングシステム602に要求する。システム
空間中には利用者空間から見える領域603があり、オ
ペレーティングシステムはこの領域に実行可能スレッド
数を収める領域604を作り、そのアドレスをタスクス
ケジューラに返す。タスクスケジューラ601からこの
アドレスをたどることにより、自由に実行可能スレッド
数を確認することができる。
【0023】図7に、実行可能状態のスレッドを待機状
態とする場合の一例を示す。IO待ちで休眠状態となっ
ていたスレッド705が、IO完了により実行可能状態
に復帰すると、実行可能スレッド702が1ツ余分にな
るという状態が一時的に発生する。この状態で、タスク
701の1つが利用者空間中でスイッチを行なった場
合、実行可能スレッド数を見て余分になっていることを
確認したら、そのタスクのスレッドを待機状態704に
するようオペレーティングシステムに要求する。
【0024】図8に、待機状態のスレッドを終了させる
一例を示す。プロセス終了時に待機状態のスレッド80
4をそのまま残さず、一旦、実行可能状態802にして
おいてからKILLシグナル805を送ってスレッドを
終了させる。
【0025】
【発明の効果】以上説明したように、本発明によれば、
最適スレッド数のスレッドを常に確保してタスクをスケ
ジューリングできる。これによって、利用者の意図した
スケジューリングが可能となり、実行時間の短縮を実現
できる。
【図面の簡単な説明】
【図1】本発明の全体構成
【図2】従来のスケジューリング手法
【図3】本発明の実施例プログラムフロー
【図4】タスク分割に応じてスレッドを待機状態で生成
した状態の一例
【図5】待機状態のスレッドを実行可能状態とする場合
の一例
【図6】実行可能スレッド数を利用者空間で確認する手
【図7】実行可能状態のスレッドを待機状態とする場合
の一例
【図8】待機状態のスレッドを終了させる場合の一例
【符号の説明】
101 タスクスケジューラ 102 オペレーティングシステム 103 待機状態スレッド 104 実行可能状態スレッド 105 実行可能状態スレッド数 106 プロセッサ数 107 プロセッサ 201 タスクスケジューラ 202 オペレーティングシステム 203 利用者プログラム 204 タスク 205 プロセッサ数 206 スレッド 207 プロセッサ 301 ルートタスク 302 IOを含む子タスク 303 計算処理のみを含む子タスク 401 実行可能スレッド 402 タスク 403 プロセッサ 404 待機状態スレッド 501 タスク 502 実行可能スレッド 503 プロセッサ 504 待機状態スレッド 505 休眠状態スレッド 601 タスクスケジューラ 602 オペレーティングシステム 603 利用者空間から見えるシステム空間中の領域 604 実行可能スレッド数を収める領域 701 タスク 702 実行可能スレッド 703 プロセッサ 704 待機状態スレッド 705 休眠状態スレッド 801 タスク 802 実行可能スレッド 803 プロセッサ 804 待機状態スレッド 805 KILLシグナル

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 マルチスレッド機構を備えるオペレーテ
    ィングシステム、および並列ジョブをスレッド上にスケ
    ジューリングする並列ライブラリの二階層で実現される
    スケジューリング方式において、 オペレーティングシステム中で、スレッドをスケジュー
    リング対象とならない待機状態で生成する手段と、 待機状態のスレッドをスケジューリング対象となる実行
    可能状態とする手段と、 実行可能状態のスレッドを待機状態にする手段と、 オペレーティングシステム中で管理される実行可能状態
    スレッド数をライブラリ層で確認する手段と、 待機状態のスレッドを終了させる手段とから構成される
    ことを特徴とする並列ジョブ協調スケジューリング方
    式。
JP5337972A 1993-12-28 1993-12-28 並列ジョブの協調スケジューリング方式 Expired - Fee Related JP2836468B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5337972A JP2836468B2 (ja) 1993-12-28 1993-12-28 並列ジョブの協調スケジューリング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5337972A JP2836468B2 (ja) 1993-12-28 1993-12-28 並列ジョブの協調スケジューリング方式

Publications (2)

Publication Number Publication Date
JPH07200314A true JPH07200314A (ja) 1995-08-04
JP2836468B2 JP2836468B2 (ja) 1998-12-14

Family

ID=18313733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5337972A Expired - Fee Related JP2836468B2 (ja) 1993-12-28 1993-12-28 並列ジョブの協調スケジューリング方式

Country Status (1)

Country Link
JP (1) JP2836468B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000511321A (ja) * 1997-05-02 2000-08-29 ライブピクチャー,インコーポレイテッド サーバー−クライアントネットワークを介するオンライン対話性を改善する方法及びシステム
JP2004062542A (ja) * 2002-07-29 2004-02-26 Ntt Comware Corp プロセス生成管理装置、及びプロセス生成管理方法、並びにプロセス生成管理プログラム
JP2011523142A (ja) * 2008-06-02 2011-08-04 マイクロソフト コーポレーション プロセス内のスケジューラインスタンス

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340034A (ja) * 1989-07-06 1991-02-20 Fujitsu Ltd プロセスの実行多重度制御処理装置
JPH05204875A (ja) * 1992-01-27 1993-08-13 Mitsubishi Electric Corp スレッドのスケジュール方式
JPH05313922A (ja) * 1992-05-11 1993-11-26 Toshiba Corp プログラム実行制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340034A (ja) * 1989-07-06 1991-02-20 Fujitsu Ltd プロセスの実行多重度制御処理装置
JPH05204875A (ja) * 1992-01-27 1993-08-13 Mitsubishi Electric Corp スレッドのスケジュール方式
JPH05313922A (ja) * 1992-05-11 1993-11-26 Toshiba Corp プログラム実行制御方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000511321A (ja) * 1997-05-02 2000-08-29 ライブピクチャー,インコーポレイテッド サーバー−クライアントネットワークを介するオンライン対話性を改善する方法及びシステム
JP2004062542A (ja) * 2002-07-29 2004-02-26 Ntt Comware Corp プロセス生成管理装置、及びプロセス生成管理方法、並びにプロセス生成管理プログラム
JP2011523142A (ja) * 2008-06-02 2011-08-04 マイクロソフト コーポレーション プロセス内のスケジューラインスタンス

Also Published As

Publication number Publication date
JP2836468B2 (ja) 1998-12-14

Similar Documents

Publication Publication Date Title
JP5324934B2 (ja) 情報処理装置および情報処理方法
CN100578459C (zh) 线程调度方法及其装置
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
JPH06250853A (ja) プロセス・スケジューリングの管理方法およびシステム
JPH07200314A (ja) 並列ジョブの協調スケジューリング方式
WO2015146104A1 (ja) 仮想マシンシステムおよびその制御方法およびその制御プログラム記録媒体
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
JP3429582B2 (ja) マルチプロセッサシステム
CN118689599A (zh) 中断处理的方法、装置和电子设备
Walters et al. Enabling interactive jobs in virtualized data centers
JPH0644234B2 (ja) タスク管理装置
JPH05134960A (ja) ローカルプロセツシング方式
JPS63636A (ja) タスク制御方式
JPS60181934A (ja) タスク優先度制御方式
JP3278457B2 (ja) プログラム実行制御装置及びプログラム実行制御方法
JPH04296963A (ja) マルチプロセッサシステム
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPH0877029A (ja) 負荷率に基づいた処理要求実行順序制御方式
JP2000155694A (ja) タスクマネージャ
JPH0784916A (ja) 通信制御装置
JPH0296833A (ja) 異機種ジョブ制御方式
JPS6143369A (ja) マルチプロセツサシステム
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
JPS62140145A (ja) 仮想計算機システム
JPH04312132A (ja) タスクスケジューリング方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071009

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081009

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091009

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees