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

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

Info

Publication number
JP2836468B2
JP2836468B2 JP5337972A JP33797293A JP2836468B2 JP 2836468 B2 JP2836468 B2 JP 2836468B2 JP 5337972 A JP5337972 A JP 5337972A JP 33797293 A JP33797293 A JP 33797293A JP 2836468 B2 JP2836468 B2 JP 2836468B2
Authority
JP
Japan
Prior art keywords
thread
threads
operating system
executable
parallel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP5337972A
Other languages
English (en)
Other versions
JPH07200314A (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.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
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

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.並列ライブラリにおいて確認した前記実行可能スレ
ッド数が前記最適スレッド数より大きい場合に、前記実
行可能スレッドを待機状態にするように並列ライブラリ
からオペレーティングシステムに指示する手段と、 6.前記待機状態のスレッドを終了する手段。
【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シグナル
フロントページの続き (56)参考文献 特開 平5−204875(JP,A) 特開 平3−40034(JP,A) 特開 平5−313922(JP,A) 特開 平2−211545(JP,A) RAY DUNCAN・著,佐藤和 彦・監修、福崎敏博・訳、「プログラミ ングOS/2I カーネル・プログラミ ング編」、株式会社アスキー・発行 (1990年4月11日,初版),p.233〜 271 乾,管原.共著、「分散OS Mac hがわる本」、日刊工業新聞社・発行 (1992年10月30日、初版)、p.70〜77 中村明・著「ワークステーションシリ ーズ オペレーティングシステム構築法 −UNIX詳説−構造編−」、丸善株式 会社・発行(昭和61年7月25日、初 版)、p58−59 (58)調査した分野(Int.Cl.6,DB名) G06F 9/46,15/16

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】スレッドを物理プロセッサへ割り当てるマ
    ルチスレッド機構を備えるオペレーティングシステム及
    び並列ジョブの各ユーザタスクをスレッド上にスケジュ
    ーリングする並列ライブラリの2階層を含んで実現され
    るスケジューリング方式において、 オペレーティングシステム中で物理プロセッサへの割当
    てが可能な実行可能スレッドの数を、並列ライブラリか
    ら確認し、予め定められた最適スレッド数と比較する手
    段と、 オペレーティングシステム中で物理プロセッサへの割当
    て対象とならない待機状態のスレッドを生成するように
    並列ライブラリからオペレーティングシステムに指示す
    る手段と、 並列ライブラリにおいて確認した前記実行可能スレッド
    数が前記最適スレッド数より小さい場合に、以前に生成
    された前記待機状態のスレッドを実行可能状態にするよ
    うに並列ライブラリからオペレーティングシステムに指
    示する手段と、 以前に生成された前記待機状態のスレッドを実行可能に
    する手段と、 並列ライブラリにおいて確認した前記実行可能スレッド
    数が前記最適スレッド数より大きい場合に、前記実行可
    能スレッドを待機状態にするように並列ライブラリから
    オペレーティングシステムに指示する手段と、 前記待機状態のスレッドを終了する手段とを備えたこと
    を特徴とする並列ジョブ協調スケジューリング方式。
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 JPH07200314A (ja) 1995-08-04
JP2836468B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
JP2004062542A (ja) * 2002-07-29 2004-02-26 Ntt Comware Corp プロセス生成管理装置、及びプロセス生成管理方法、並びにプロセス生成管理プログラム
US8650570B2 (en) * 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2967999B2 (ja) * 1989-07-06 1999-10-25 富士通株式会社 プロセスの実行多重度制御処理装置
JPH05204875A (ja) * 1992-01-27 1993-08-13 Mitsubishi Electric Corp スレッドのスケジュール方式
JP3278457B2 (ja) * 1992-05-11 2002-04-30 株式会社東芝 プログラム実行制御装置及びプログラム実行制御方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RAY DUNCAN・著,佐藤和彦・監修、福崎敏博・訳、「プログラミングOS/2I カーネル・プログラミング編」、株式会社アスキー・発行(1990年4月11日,初版),p.233〜271
中村明・著「ワークステーションシリーズ オペレーティングシステム構築法−UNIX詳説−構造編−」、丸善株式会社・発行(昭和61年7月25日、初版)、p58−59
乾,管原.共著、「分散OS Machがわる本」、日刊工業新聞社・発行(1992年10月30日、初版)、p.70〜77

Also Published As

Publication number Publication date
JPH07200314A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
EP1365328B1 (en) Method for executing parallel process, and multi-processor computer
JP2561801B2 (ja) プロセス・スケジューリングの管理方法およびシステム
JPS6275739A (ja) タスク割当て方法
JP2005505030A (ja) 複数のハードウェア構成を有する再構成可能なハードウェア・アーキテクチャにおけるスケジューリング方法
EP0637802A2 (en) Interrupt vector method and apparatus
JP2836468B2 (ja) 並列ジョブの協調スケジューリング方式
KR100590764B1 (ko) 멀티프로세서 시스템에서 스케줄러를 이용한 대규모데이터 처리 방법
JP2902746B2 (ja) 仮想計算機制御方式
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
JPH0877039A (ja) テスト方法
JPS594743B2 (ja) マルチプロセツサシステムノセイギヨホウシキ
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPH05204875A (ja) スレッドのスケジュール方式
JP3278457B2 (ja) プログラム実行制御装置及びプログラム実行制御方法
JPS63636A (ja) タスク制御方式
JP2001184326A (ja) マルチプロセッサスケジューリング方法およびマルチプロセッサスケジューリングを行う計算機システム
JP2000194573A (ja) スレッド制御システムおよびスレッド制御方法
JP4122212B2 (ja) マルチプロセッサシステム
JPH03257634A (ja) プログラム並列実行方法とその装置
JPH02113363A (ja) マルチプロセッサシステムにおけるタイムスライス制御方式
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
JP2571260B2 (ja) 論理時計による動作環境選択処理方式
JPH0344742A (ja) マルチプロセッサにおけるタスク割り当て制御方法
JPH02244371A (ja) マルチプロセツサシステムの排他制御方法
JPH0922363A (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