JPH0934848A - スレッド制御方法及び情報処理システム - Google Patents

スレッド制御方法及び情報処理システム

Info

Publication number
JPH0934848A
JPH0934848A JP7185733A JP18573395A JPH0934848A JP H0934848 A JPH0934848 A JP H0934848A JP 7185733 A JP7185733 A JP 7185733A JP 18573395 A JP18573395 A JP 18573395A JP H0934848 A JPH0934848 A JP H0934848A
Authority
JP
Japan
Prior art keywords
thread
information processing
threads
distributed
page
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.)
Withdrawn
Application number
JP7185733A
Other languages
English (en)
Inventor
Yoshiaki Sudo
義明 数藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP7185733A priority Critical patent/JPH0934848A/ja
Publication of JPH0934848A publication Critical patent/JPH0934848A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 短時間に同じページにアクセスするスレッド
の関連度を高くするような関連度計測が行え、その関連
度を記録する記録領域が小さくできるスレッド関連度計
測方法、スレッド制御方法及び情報処理システムを提供
する。 【解決手段】 複数の情報処理装置をネットワークで接
続し、分散した情報処理装置上に存在するタスクの主記
憶を分散仮想共有記憶方式によって共有する分散タスク
内で、各情報処理装置上にスレッドを分散して実行させ
る情報処理システムにおいて、各スレッド51に対して
他の所定数のスレッドとの関連度を記憶する記憶領域
(52,53)を用意し、分散タスク内のスレッドから
分散仮想共有記憶へのページアクセスがあった場合に、
ページ管理情報に含まれる該ページを現在所有している
スレッドの情報に基づいて、前記記憶領域50を更新
し、スレッドの切換え要求があった場合に、前記関連度
に基づいて、同じ情報処理装置上で動作させるスレッド
を選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散した複数の情報
処理装置の分散仮想共有記憶上で動作する分散タスク/
スレッドモデルのプログラムにおいてスレッドを制御す
るスレッド制御方法及びその方法を実行する情報処理シ
ステムに関し、特にスレッド制御において各スレッド間
の関連度を計測する関連度計測方法に関するものであ
る。尚、ここで関連度計測方法とは、スレッド間の関連
度の制御,算出及び比較を含むものである
【0002】
【従来の技術】複数のプロセッサを1台の情報処理装置
内にもつマルチプロセッサ情報処理装置上で、これら複
数のプロセッサを単一のプログラムによって有効に活用
可能な、タスク/スレッドモデルと呼ばれるプログラム
形態が提案されている。これは、1つのプログラムをス
レッドと呼ばれる複数の実行モジュールと、タスクと呼
ばれる資源割り当ての単位に分割したモデルである。ス
レッドはプロセッサ資源の割り当て単位となり、その他
の記憶空間資源などはタスクに割り当てられてタスク内
の全てのスレッドに開放されている。このようなタスク
/スレッドモデルは、マルチプロセッサの情報処理装置
において、プロセッサ資源を効率よく使用するプログラ
ムのためのモデルである。
【0003】さらに、通常のタスク/スレッドモデルの
プログラム上で、利用者空間内でのコンテキスト切り換
えやスレッド生成等を行なうことが可能な、利用者レベ
ルスレッドが提案されている。これは、通常のタスク/
スレッドモデルのスレッドの生成やコンテキスト切り換
え等が、オペレーティングシステム・カーネル(OSカ
ーネル)へのシステムコールを必要とするので、速度が
遅いという欠点を改善するために考えられたものであ
る。すなわち、複数のコンテキストを持つことが可能
で、かつ利用者空間内でのスレッド生成やコンテキスト
切り換え等が高速に行なえることが利点である。このよ
うな利用者レベルスレッドに対して、従来のOSカーネ
ルに制御されるスレッドをカーネルスレッドと呼ぶ。
【0004】また、特殊な装置を持たずに、従来の主記
憶管理装置と情報処理装置間のネットワークを制御して
データを転送することによって、複数の情報処理装置上
のタスク間で仮想共有記憶を実現する分散仮想共有記憶
方式を用いて、そのタスク内の全仮想記憶空間を共有
し、その中で複数のスレッドを動作させる分散タスク/
スレッドモデルが提案されている(B.Nitzberg and V.L
o,“Distributed SharedMemory: A Survey of Issues a
nd Algorithms, ”Computer,Vol.24,No.8,August 1991,
pp.52-60.)。これは、複数の情報処理装置上の各タス
ク上の全主記憶を分散仮想共有記憶とし、各タスクが1
個以上のスレッドを持った1つの分散したタスクと考え
たものである。上述のタスク/スレッドモデルにおける
マルチプロセッサの情報処理装置を、複数の情報処理装
置とネットワークによる接続に置き代え、これらの分散
した資源を効率よく使用するためのものが、分散タスク
/スレッドモデルである。また、分散仮想共有記憶はネ
ットワークを主に固定長のページデータ転送で使用し、
高速なネットワークを効率よく使用可能となる。
【0005】
【発明が解決しようとする課題】本発明者は、このよう
な分散仮想共有記憶で共有された主記憶上でタスク/ス
レッドモデルのタスクを動作させ、そのタスク内で利用
者レベルスレッドを動作させるタスク/スレッド制御方
式を提案した(特願平6−166824)。これは、分
散仮想共有記憶によって分散した情報処理装置のどこか
らでもタスクの主記憶の空間がアクセスできることか
ら、そのような主記憶上の利用者空間にコンテキストの
保存を行なう利用者レベルスレッドは、分散したどの情
報処理装置にも移動して動作可能となることを特徴とし
ている。
【0006】上述の分散仮想共有記憶では、各情報処理
装置上の主記憶はその情報処理装置以外からはアクセス
できないので、主記憶を一種のキャッシュとみなして、
マルチプロセッサシステムのキャッシュの一貫性保持動
作と同様な操作をして、各情報処理装置上の主記憶間の
一貫性を保持する。この操作を行なうことによって、各
情報処理装置が分散仮想共有記憶にアクセスした時の複
数の情報処理装置の主記憶上のデータの一貫性が保証さ
れる。このような各情報処理装置の主記憶の一貫性保持
のための操作として、一般的にWrite-Invalidate方式を
用いる。このWrite-Invalidate方式で代表的なものとし
てMESI(Modified,Exclusive,Shared,Invalid) 型方
式がある。
【0007】このようなWrite-Invalidate方式によって
一貫性を保持する分散仮想共有記憶では、同じ分散仮想
共有記憶のページを複数の情報処理装置内のプロセッサ
が同時にアクセスすると、ページスラッシングと呼ばれ
る頻繁なページの移動が発生し、ネットワークの輻輳を
起したり情報処理装置の負荷が大きくなり、処理能力が
極端に低下するという問題がある。
【0008】そこで、更に本発明者は、分散タスク内の
スレッド制御によって、同じ分散仮想共有記憶のページ
に同時期にアクセスするようなスレッドを同一のタスク
で実行することによって、ページスラッシングを低減す
る方式を提案した(特願平6−166822)。これ
は、スレッドの分散仮想共有記憶へのアクセス情報によ
ってスレッド間の関連度を計測し、関連度の高いスレッ
ドは同一の情報処理装置上で動作させるような制御をす
ることでなされる。静的に各スレッド間の関連度が決定
できるものでは、スレッド生成時に関連度の高いスレッ
ドを同じ情報処理装置で動作させることでページスラッ
シングを低減する。動的に制御するものでは、スレッド
の動作時のアクセス情報によってスレッド間の関連度を
計測し、それに従ってスレッドの情報処理装置間での移
送を行い、関連度の高いスレッドを同じ情報処理装置上
で動作させることでページスラッシングを低減する。ま
た、利用者レベルスレッドを利用する場合には、カーネ
ルスレッドの移送をせずに、利用者レベルスレッドのス
ケジューリングによって関連度の高い利用者レベルスレ
ッドを同じ情報処理装置上のカーネルスレッド上で動作
させることが可能となり、ページスラッシングを低減す
ることができる。
【0009】上述の動的なスレッド間の関連度の計測で
は、分散仮想共有記憶の管理装置に対して、各スレッド
が分散仮想共有記憶にアクセスした時にカーネルから通
知されるページフォルトを用いて行なう。すなわち、分
散仮想共有記憶の各ページを所有しているスレッドの情
報を用いて、そのページでフォルトを起したスレッドと
そのページを所有しているスレッドとの関連度を増加さ
せるという操作を行なう。これによって、同じページに
アクセスする頻度の高いスレッド間の関連度が上がり、
ページスラッシングを低減するようなスレッド制御を行
なうことが可能となる。
【0010】しかしながら、このような分散タスク内の
スレッド間の関連度の計測を行なうためには、分散仮想
共有記憶の管理装置(管理サーバ)かまたはスレッド管
理ライブラリなどの記憶空間中に、各スレッド毎に他の
スレッドとの関連度を保存しておく領域が必要となる。
各スレッド毎に他の全てのスレッドに対する関連度を記
憶しておく領域を用意すると、例えばスレッド数がNで
あるとするとN×(N−1)/2の領域が必要となり、
スレッド数が多くなるに従ってその領域が膨大になり、
システム全体の記憶領域(この場合、分散仮想共有記憶
管理サーバやスレッド管理ライブラリ内の記憶領域)を
圧迫するという問題があった。
【0011】本発明は、短時間に同じページにアクセス
するスレッドの関連度を高くするような関連度計測が行
え、その関連度を記録する記録領域が小さくできるスレ
ッド関連度計測方法を提供する。又、本発明は、上記ス
レッド関連度計測方法を適用してスレッドを制御するス
レッド制御方法及び情報処理システムを提供する。
【0012】
【課題を解決するための手段】本発明によると、複数の
情報処理装置をネットワークで接続した分散情報処理装
置で、分散した情報処理装置上に存在するタスクの主記
憶を分散仮想共有記憶によって共有する分散タスク内で
各情報処理装置上にスレッドを分散して実行させる機構
をもち、その中で同じ情報処理装置上で動作させるスレ
ッドをスレッド間の関連度に応じて制御するシステムに
おいて、分散仮想共有記憶の各ページに対して現在その
ページを所有しているスレッドを記憶するステップと、
分散タスク内のスレッドの分散仮想共有記憶へのページ
フォルト情報と、そのページを現在所有しているスレッ
ドの情報とから、フォルトを発声したスレッドとそのペ
ージを所有しているスレッドの関連度を決定するステッ
プと、各スレッドに対して他のスレッドの関連度を記録
する領域をいくつか用意しそれに記録するステップと、
を有することで短時間に同じページにアクセスするスレ
ッドの関連度を高くするような関連度計測が行え、その
関連度を記録する記録領域が小さくできる。
【0013】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳細に説明する。 <情報処理システムの構成例>図1は本実施の形態の分
散した情報処理装置から成る情報処理システムを示す図
である。
【0014】各情報処理装置101は、単独で一般的な
情報処理装置として動作することが可能であり、ネット
ワーク102によって接続され相互に通信可能である。
但し、各情報処理装置が全ての入出力装置を備えている
必要はない。尚、以下の実施の形態では、利用者レベル
スレッドを利用者レベルの制御機構によってカーネルス
レッドへ割り当てる制御を行っているが、利用者レベル
スレッドを持ちいない場合は、カーネルレベルのスレッ
ド移動を行なうスレッド制御機構によって、本実施の形
態と同様な効果を得ることができる。
【0015】図2に本実施の形態のスレッド関連度を用
いるスレッド制御機構の概念図を示す。201が、各情
報処理装置(以下ノードと呼ぶ)で、相互にネットワー
クによって接続されている。202が、オペレーティン
グシステムのカーネルであり、タスクの制御,そのノー
ド内の主記憶の制御,カーネルレベルのスレッド制御な
どを行なう。203が、複数のノードにまたがる分散タ
スクである。204が、分散タスク内で動作するカーネ
ルスレッドである。205が、本スレッド制御方法で利
用者レベルスレッドの制御を行なうスレッド管理ライブ
ラリであり、利用者プロセッサにリンクされて利用者レ
ベルで動作する。このスレッド管理ライブラリ205に
よって、カーネルスレッド上で実行する利用者レベルス
レッドの選択が行われる。さらに、利用者レベルスレッ
ドの生成,中断,再開などの制御や、ノード間の移動な
どが行われる。206が、ユーザプログラムによって生
成された利用者レベルスレッドである。207が、分散
タスクの分散仮想共有記憶を実現する分散仮想共有記憶
管理サーバであり、ここで各スレッドのアクセス情報が
収集される。
【0016】尚、本実施の形態においては、以下に説明
するスレッド制御手順はスレッド管理ライブラリ205
に、スレッド関連度情報及びその制御手順は分散仮想共
有記憶管理サーバ207にそれぞれ実装されている。こ
れらスレッド管理ライブラリ205や分散仮想共有記憶
管理サーバ207は、各ノードに分散されて配置されて
いても、特定のノードに集中して配置されていてもよ
い。また、固定的に配置されても、ネットワーク102
を介して相互に移動あるいは転送(複写)されてもよ
い。更に、これら制御手順やデータは、各ノードでオペ
レーティングシステム等と共にフロッピーディスク等の
記憶媒体からロードされるように構成してもよいし、ネ
ットワーク102を介してダウンロードされるように構
成されてもよい。 <情報処理システムの動作例> (実施の形態1)図3に、本実施の形態において用いら
れるスレッド制御手順の流れ図を示す。
【0017】尚、本流れ図の利用者レベルスレッド20
6の切り換えは、プログラム中で自スレッドを明示的に
ブロックするライブラリ関数を呼び出した場合や、排他
制御用のライブラリ関数を呼んだ時にそのロック変数が
既にロックされていた場合や、ある条件が成り立つまで
待機する条件同期を行なう場合などに、利用者レベルス
レッド206が自分自身をブロックすることで開始され
る。以下、流れ図に従って説明する。
【0018】利用者レベルスレッド206の切り換えを
行なおうとする時、まず分散仮想共有記憶サーバ204
に対して利用者レベルスレッドの関連度情報を要求し、
メッセージ転送もしくは共有メモリを用いる等によって
スレッド管理ライブラリ205内に取り入れる(S3
0)。この利用者レベルスレッド間の関連度情報につい
ては後で説明する。さらに、スレッド管理ライブラリ2
05内に存在する動作可能な利用者レベルスレッドのキ
ュー(図示せず)にスレッドが挿入されているかどうか
調べる(S31)。もし動作可能な利用者レベルスレッ
ドのキューが空で、現在動作可能な利用者レベルスレッ
ドがないならば、現在実行中の利用者レベルスレッドの
コンテキスト情報をその利用者レベルスレッドのコンテ
キスト格納域に保存する。このコンテキスト格納域は、
利用者レベルスレッドのデータ構造内もしくは利用者レ
ベルスレッドのスタック等に置かれる。コンテキスト情
報を保存した後は、動作可能な利用者レベルスレッドが
現れるまで待機状態に入る(S32)。
【0019】逆に動作可能な利用者レベルスレッドのキ
ューにスレッドが挿入されており、現在動作可能な利用
者レベルスレッドがあるならば、それらを1個づつ取り
出して(S33)、その利用者レベルスレッドと現在そ
のノード(情報処理装置)上で動作している全利用者レ
ベルスレッドとの関連度の総和を計算する(S35)。
その関連度の総和を動作可能な利用者レベルスレッドの
キューに入っている全ての利用者レベルスレッドに関し
て計算する。
【0020】キューに入っている全ての利用者レベルス
レッドに対して計算がおわったら(S34)、そのうち
で最も関連度の総和が大きい利用者レベルスレッドを選
びだし、動作可能な利用者レベルスレッドのキューから
外す(S36)。そして、現在動作している利用者レベ
ルスレッドのコンテキストを保存し、選びだした利用者
レベルスレッドのコンテキストを読み出して、上記ノー
ドのプロセッサ内のレジスタ等にロードすることで(S
37)、その利用者レベルスレッドを実行する。
【0021】図4は、分散仮想共有記憶サーバ207内
で、各利用者レベルスレッド間の関連度情報を制御する
の流れ図である。利用者レベルスレッドが分散仮想共有
記憶にアクセスを行なった結果ページフォルトが発生
し、分散仮想共有記憶サーバ207に通知される。この
ページフォルトのアドレス等の情報から、分散仮想共有
記憶の詳細な状態を保持しているページ管理用のページ
管理構造体を得る(S40)。ページ管理構造体は、例
えば図7でページ所有者(owner threads) が1つの場合
の構造を有している。ページ管理構造体には、そのペー
ジの分散仮想共有記憶の詳細が記憶されており、それに
基づいて、分散仮想共有記憶の一貫性が保証される(S
41)。尚、分散仮想共有記憶の一貫性が保証について
は様々な既知の方法があり、ここでは詳細には説明しな
い。
【0022】本実施の形態ではさらに、図3のステップ
S35において利用者レベルスレッドの関連度情報を得
るために、以下の操作を行なう。まず、そのページの使
用は今回が最初であるか否かを調べる(S42)。も
し、そのページを最初に使用するのであれば、関連度は
変化させずに、ページ管理構造体内にフォールトを発生
した利用者レベルスレッド(以下フォールトスレッドと
する)を記録して(S45)、これ以降の関連度情報の
収集に用いる。もし、そのページが既に他の利用者レベ
ルスレッドにて使用中の場合には、ページ管理構造体に
現在そのページを所有している利用者レベルスレッド
(以下所有スレッドと呼ぶ)が記録されている。その所
有スレッドの情報を得て(S43)、フォールトスレッ
ドと所有スレッドとの関連度を増加させる(S44)。
【0023】利用者レベルスレッド間の関連度情報50
は、分散仮想共有記憶サーバ205内に図5に示される
ような配列として存在している。本実施の形態では、各
利用者レベルスレッドに対して、関連度情報を保持する
利用者レベルスレッドの個数を定めておく。そして、そ
の個数分の関連度情報を保持できるだけの配列を用意す
る。例えば、図5では、各利用者レベルスレッド51に
対して、関連度が高い方から4つの利用者レベルスレッ
ド52とその関連度53とが保持されている。
【0024】そこで、分散仮想共有記憶のページに対し
てフォールトが発生した場合に、フォールトスレッドと
所有スレッドとの両方のスレッドに対して、図6の流れ
図に示される関連度の更新を行なう。まず、フォールト
スレッドをスレッドA、所有スレッドをスレッドBとし
て、図6の流れ図の操作を行い、続いて逆にフォールト
スレッドをスレッドB、所有スレッドをスレッドAとし
て、図6の流れ図の操作を行なう。以下、図6の流れ図
に従って説明する。
【0025】図5に示した関連度情報50内のスレッド
Aに対する関連情報を取り出す(S60)。その中に、
スレッドBが含まれているかどうかを調べる(S6
1)。スレッドBが含まれる場合には、その関連度にa
(予め決定しておいた値)を加える(S62)。取り出
した関連度情報にスレッドBが含まれていなければ、関
連度情報の配列に空きがあるかどうかを調べ(S6
3)、空きがあればそこにスレッドBを関連度をaにし
て記録する(S64)。図5の例では、関連スレッドが
3つまでなら空きがあることになる。
【0026】空きがなければ、記録されているうちで関
連度が最小のものを捜す(S65)。図5のように関連
度の大きい順に関連度情報の配列に記憶しておけば、配
列の最後に記録されている物が関連度が最小のスレッド
となる。その最小の関連度がa以下であれば(S6
6)、そのスレッドを削除してスレッドBと入れ換える
(S67)。スレッドBの関連度はaとする。このとき
関連度の大きい順にするためには、スレッドBの挿入位
置を適当に調節して、関連度の順を崩さないようにすれ
ば良い。
【0027】また、スレッドAに対して記録されている
関連度が全てaよりも大きい場合には、エージングのた
めにスレッドAに対する全ての関連度からb(あらかじ
め決定しておいた値で、b<a)を減ずる(S68)。
この処理は、この場で行なう方法以外に、全ての関連度
情報に対して定期的に定数を減ずる方法等もあり、上記
a,bの値と共にシステムの構成や処理内容等とも関連
して、適切なものが選ばれればよい。
【0028】(実施の形態2)上記実施の形態1に於い
ては、分散仮想共有記憶の各ページ管理構造体に所有ス
レッドとして記録されている利用者レベルスレッドと、
そのページに対してフォールトを発生したフォールトス
レッド間との関連度を増加させて、関連度の制御を行っ
ていた。本実施の形態では、各ページ管理構造体に現在
の所有スレッドだけでなく、過去の所有スレッドをも記
憶しておき、それらとフォールトスレッド間の関連度も
増加させる。
【0029】図7に本実施の形態で使用されるページ管
理構造体70の例を示す。またこのページ管理構造体7
0に所有スレッドを記録する操作の流れ図を図8に示
す。図7のように、ページ管理構造体70に所有スレッ
ドを記録するためのFIFO領域71〜74を用意す
る。FIFOの領域は、所有スレッドが増えた時に動的
に確保することも出来る。
【0030】FIFO領域がある場合は(S80,S8
1)、FIFO領域に所有スレッドを記録していき(S
82,S83)、FIFO領域を最初に確保する場合に
は空きがなくなった場合、動的にFIFO領域を確保す
る場合にはFIFOがある閾値以上の長さになった場合
には、FIFOの先頭から最も古くそのページを所有し
ていた利用者レベルスレッドを削除して(S84)、最
後尾に新たな利用者レベルスレッドを登録する(S8
5)。このような操作を行なって、ページ管理構造体に
過去の所有スレッドも記録する。
【0031】この場合には、時間的に前の所有スレッド
と最近の所有スレッドとの差別化のために、関連度を増
加させる操作(図6参照)に於いて、実施の形態1で述
べたaに時間の新旧に対応してある係数を掛けて重み付
けを行ない、その利用者レベルスレッドがどれくらい前
にそのページの所有者であったかを反映することも可能
である。例えば、所有スレッドがFIFOに後に挿入さ
れた順で線形に重み付けを行うためには、所有スレッド
が先頭からX番目であったときに、関連度を増加させる
値をa×X/L( Lは所有スレッドを記録するFIFO
の長さ)とすることで重み付けを行う方法が考えられ
る。
【0032】尚、本実施の形態では、利用者レベルスレ
ッドにおける関連度について説明したが、本発明のスレ
ッド関連度の制御はカーネルスレッドに対しても適応が
できる。又、本発明は、複数の機器から構成されるシス
テムに適用しても、1つの機器から成る装置に適用して
も良い。また、本発明はシステム或は装置にプログラム
を供給することによって達成される場合にも適用できる
ことはいうまでもない。この場合、本発明に係るプログ
ラムを格納した上記の記憶媒体が本発明を構成すること
になる。そして、該記憶媒体からそのプログラムをシス
テム或は装置に読み出すことによって、そのシステム或
は装置が、予め定められた仕方で動作する。
【0033】
【発明の効果】本発明により、短時間に同じページにア
クセスするスレッドの関連度を高くするような関連度計
測が行え、その関連度を記録する記録領域が小さくでき
るスレッド関連度計測方法を提供できる。又、上記スレ
ッド関連度計測方法を適用してスレッドを制御するスレ
ッド制御方法及び情報処理システムを提供できる。
【0034】すなわち、分散した複数の情報処理装置を
ネットワークで接続した分散情報処理装置上に存在する
タスクの主記憶を分散仮想共有記憶によって共有する分
散タスク内で、各情報処理装置上にスレッドを分散して
実行させる機構をもつオペレーティングシステム上の、
利用者レベルのスレッドを分散タスク内のスレッドに実
行させるスレッド制御機構において、分散タスク内のス
レッドの分散仮想共有記憶へのアクセス情報を収集し、
収集したアクセス情報からその分散タスク内のスレッド
間の相互の関連度を計測し、その関連度を用いて分散タ
スク内のスレッドを制御することで、分散仮想共有記憶
のページスラッシングを低減し、処理能力の低下を防止
するようなシステムにおいて、スレッド間の関連度を各
スレッド間の2次元の配列に保持しておくのではなく、
各スレッドに対して記憶領域を用意し、そこに関連度情
報を保持することで、スレッド数が大きくなった場合に
関連度情報が膨大になることを防止して記憶領域を効率
的に使用することが可能となる。
【0035】さらに、分散仮想共有記憶の各ページに対
して現在そのページを所有しているスレッドを記録して
おくだけでなく、過去にそのページを所有していたスレ
ッドを記録しておき、それらのスレッドとそのページに
対してフォールトを起したスレッドとの関連度を増加さ
せることによって、より正確にスレッド間の関連度を計
測することが可能となる。
【図面の簡単な説明】
【図1】本実施の形態の負荷分散方式を用いる分散した
情報処理システムの構成図である。
【図2】本実施の形態のスレッド制御方法におけるプロ
セスの関係を示す概念図である。
【図3】本実施の形態のスレッド制御方法の手順を示す
流れ図である。
【図4】本実施の形態のアクセス情報の収集方法の手順
を示す流れ図である。
【図5】本実施の形態のスレッド間の関連度情報を記憶
する配列を示す図である。
【図6】本実施の形態のフォールトが発生した場合に関
連度の操作を行う手順を示す流れ図である。
【図7】実施の形態2で使用されるページ管理構造体の
例を示す図である。
【図8】実施の形態2のスレッドの登録方法の手順を示
す流れ図である。
【符号の説明】 101 情報処理装置 102 ネットワーク 201 情報処理装置 202 OSカーネル 203 分散タスク 204 カーネルスレッド 205 スレッド管理ライブラリ 206 利用者レベルスレッド 207 分散仮想共有記憶サーバ

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の情報処理装置をネットワークで接
    続し、分散した情報処理装置上に存在するタスクの主記
    憶を分散仮想共有記憶方式によって共有する分散タスク
    内で、各情報処理装置上にスレッドを分散して実行させ
    る情報処理システムにおいてスレッドを制御するスレッ
    ド制御方法であって、 各スレッドに対して他の所定数のスレッドとの関連度を
    記憶する記憶領域を用意し、 分散タスク内のスレッドから分散仮想共有記憶へのペー
    ジアクセスがあった場合に、ページ管理情報に含まれる
    該ページを現在所有しているスレッドの情報に基づい
    て、前記記憶領域を更新し、 スレッドの切換え要求があった場合に、前記関連度に基
    づいて、同じ情報処理装置上で動作させるスレッドを選
    択することを特徴とするスレッド制御方法。
  2. 【請求項2】 前記記録領域には、各スレッドに対して
    関連度の高い所定数のスレッドを選択して記録すること
    を特徴とする請求項1記載のスレッド制御方法。
  3. 【請求項3】 前記ページ管理情報に該ページをアクセ
    スした複数のスレッドの履歴情報を更新可能に記憶し、
    前記記憶領域の更新は該複数のスレッドの履歴情報に基
    づいて行われることを特徴とする請求項1記載のスレッ
    ド制御方法。
  4. 【請求項4】 前記記憶領域の更新はスレッドの更新と
    関連度の更新とを含むことを特徴とする請求項1乃至3
    のいずれか1つに記載のスレッド制御方法。
  5. 【請求項5】 複数の情報処理装置をネットワークで接
    続し、分散した情報処理装置上に存在するタスクの主記
    憶を分散仮想共有記憶方式によって共有する分散タスク
    内で、各情報処理装置上にスレッドを分散して実行させ
    る情報処理システムにおいて、 各スレッドに対して他の所定数のスレッドとの関連度を
    記憶する記憶手段と、 分散タスク内のスレッドから分散仮想共有記憶へのペー
    ジアクセスがあった場合に、ページ管理情報に含まれる
    該ページを現在所有しているスレッドの情報に基づい
    て、前記記憶手段の内容を更新する更新手段と、 スレッドの切換え要求があった場合に、前記関連度に基
    づいて、同じ情報処理装置上で動作させるスレッドを選
    択するスレッド選択手段とを備えることを特徴とする情
    報処理システム。
  6. 【請求項6】 前記記録手段には、各スレッドに対して
    関連度の高い所定数のスレッドを選択して記録すること
    を特徴とする請求項5記載の情報処理システム。
  7. 【請求項7】 前記ページ管理情報に該ページをアクセ
    スした複数のスレッドの履歴情報を更新可能に記憶し、
    前記更新手段は該複数のスレッドの履歴情報に基づいて
    前記記憶手段の内容を更新することを特徴とする請求項
    5記載の情報処理システム。
  8. 【請求項8】 前記更新手段はスレッドの更新と関連度
    の更新とを行うことを特徴とする請求項5乃至7のいず
    れか1つに記載の情報処理システム。
  9. 【請求項9】 複数の情報処理装置をネットワークで接
    続し、分散した情報処理装置上に存在するタスクの主記
    憶を分散仮想共有記憶方式によって共有する分散タスク
    内で、各情報処理装置上にスレッドを分散して実行させ
    る情報処理システムにおけるスレッド間の関連度を計測
    するスレッド関連度計測方法であって、 各スレッドに対して他の所定数のスレッドとの関連度を
    記憶する記憶領域を用意し、 分散タスク内のスレッドから分散仮想共有記憶へのペー
    ジアクセスがあった場合に、ページ管理情報に含まれる
    該ページを現在所有しているスレッドの情報に基づい
    て、前記記憶領域を更新し、 スレッドの切換え要求があった場合に、前記関連度に基
    づいて、スレッド間の関連度を算出して比較することを
    特徴とするスレッド関連度計測方法。
  10. 【請求項10】 前記記録領域には、各スレッドに対し
    て関連度の高い所定数のスレッドを選択して記録するこ
    とを特徴とする請求項9記載のスレッド関連度計測方
    法。
  11. 【請求項11】 前記ページ管理情報に該ページをアク
    セスした複数のスレッドの履歴情報を更新可能に記憶
    し、前記記憶領域の更新は該複数のスレッドの履歴情報
    に基づいて行われることを特徴とする請求項9記載のス
    レッド関連度計測方法。
  12. 【請求項12】 前記記憶領域の更新はスレッドの更新
    と関連度の更新とを含むことを特徴とする請求項9乃至
    11のいずれか1つに記載のスレッド関連度計測方法。
JP7185733A 1995-07-21 1995-07-21 スレッド制御方法及び情報処理システム Withdrawn JPH0934848A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7185733A JPH0934848A (ja) 1995-07-21 1995-07-21 スレッド制御方法及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7185733A JPH0934848A (ja) 1995-07-21 1995-07-21 スレッド制御方法及び情報処理システム

Publications (1)

Publication Number Publication Date
JPH0934848A true JPH0934848A (ja) 1997-02-07

Family

ID=16175915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7185733A Withdrawn JPH0934848A (ja) 1995-07-21 1995-07-21 スレッド制御方法及び情報処理システム

Country Status (1)

Country Link
JP (1) JPH0934848A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055966A (ja) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055966A (ja) * 2000-08-04 2002-02-20 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システム、マルチプロセッサ・システムに用いるプロセッサ・モジュール及びマルチプロセッシングでのタスクの割り当て方法
US7171666B2 (en) 2000-08-04 2007-01-30 International Business Machines Corporation Processor module for a multiprocessor system and task allocation method thereof

Similar Documents

Publication Publication Date Title
Feeley et al. Implementing global memory management in a workstation cluster
US6389513B1 (en) Disk block cache management for a distributed shared memory computer system
US6167490A (en) Using global memory information to manage memory in a computer network
US7689789B2 (en) Read-copy update grace period detection without atomic instructions that gracefully handles large numbers of processors
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US5349656A (en) Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information
US6088758A (en) Method and apparatus for distributing data in a digital data processor with distributed memory
US6816947B1 (en) System and method for memory arbitration
US6574720B1 (en) System for maintaining a buffer pool
US5884077A (en) Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
EP1316019B1 (en) Managing replacement of data in a cache on a node based on caches of other nodes
Yu et al. On coupling multi-systems through data sharing
WO2019085769A1 (zh) 一种数据分层存储、分层查询方法及装置
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
JPH03217963A (ja) マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
Canim et al. Buffered Bloom Filters on Solid State Storage.
JP2005339236A (ja) データベース管理方法及びデータベースシステム
US6332185B1 (en) Method and apparatus for paging data and attributes including an atomic attribute for digital data processor
US8078818B2 (en) Method and system for migrating memory segments
CN113311994A (zh) 一种基于高并发的数据缓存方法
JP3489157B2 (ja) 分散共有メモリシステムおよび計算機
JPH07244642A (ja) 並列処理計算機
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
JPH0934848A (ja) スレッド制御方法及び情報処理システム
JP4117621B2 (ja) データ一括転送装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021001