JPH0830512A - スレッド制御方式 - Google Patents
スレッド制御方式Info
- Publication number
- JPH0830512A JPH0830512A JP6167989A JP16798994A JPH0830512A JP H0830512 A JPH0830512 A JP H0830512A JP 6167989 A JP6167989 A JP 6167989A JP 16798994 A JP16798994 A JP 16798994A JP H0830512 A JPH0830512 A JP H0830512A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- information processing
- user level
- distributed
- threads
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 分散仮想共有記憶のページの転送や無効化要
求のメッセージによってネットワークや情報処理装置に
負荷を掛けるページスラッシングの発生を低減するこ
と。 【構成】 分散タスク内のスレッドの分散仮想共有記憶
へのアクセス情報を収集するステップと、収集したアク
セス情報からその分散タスク内の利用者レベルスレッド
の関連度を計算するステップと、その関連度を用いて分
散タスク内のスレッドへ割り当てて実行するステップ
と、その関連度を用いて分散タスク内のスレドへ割り当
てて実行する利用者レベルスレッドを制御するステップ
により構成する。 【効果】 ネットワークシステムや情報処理装置のペー
ジスラッシングの発生を防止する。
求のメッセージによってネットワークや情報処理装置に
負荷を掛けるページスラッシングの発生を低減するこ
と。 【構成】 分散タスク内のスレッドの分散仮想共有記憶
へのアクセス情報を収集するステップと、収集したアク
セス情報からその分散タスク内の利用者レベルスレッド
の関連度を計算するステップと、その関連度を用いて分
散タスク内のスレッドへ割り当てて実行するステップ
と、その関連度を用いて分散タスク内のスレドへ割り当
てて実行する利用者レベルスレッドを制御するステップ
により構成する。 【効果】 ネットワークシステムや情報処理装置のペー
ジスラッシングの発生を防止する。
Description
【0001】
【産業上の利用分野】本発明は分散した複数の情報処理
装置の分散仮想共有記憶上でどうさする分散タスク/ス
レッドモデルのプログラムにおける利用者レベルスレッ
ドの制御方式に関するものである。
装置の分散仮想共有記憶上でどうさする分散タスク/ス
レッドモデルのプログラムにおける利用者レベルスレッ
ドの制御方式に関するものである。
【0002】
【従来の技術】複数のプロセッサを1台の情報処理装置
内にもつマルチプロセッサ情報処理装置上で、これら複
数のプロセッサを単一のプログラムによって有効に活用
可能なタスク/スレッドモデルと呼ばれるプログラム形
態が提案されている。これは1つのプログラムをスレッ
ドと呼ばれる複数の実行モジュールと、タスクと呼ばれ
る資源割り当ての単位に分割したモデルである。スレッ
ドはプロセッサ資源の割り当て単位となり、その他の記
憶空間資源などはタスクに割り当てられ、タスク内の全
てのスレッドに解放されている。このようなタスク/ス
レッドモデルは、マルチプロセッサの情報処理装置にお
いて、プロセッサ資源を効率よく使用するプログラムの
ためのモデルである。さらに、通常のタスク/スレッド
モデルのプログラム上で利用者空間内でコンテキスト切
り換えやスレッド生成等を行なうことが可能な利用者レ
ベルスレッドが提案されている。これは通常のタスク/
スレッドモデルのスレッドの生成やコンテキスト切り換
え等が、オペレーティングシステムカーネル(OS カーネ
ル) へのシステムコールを必要とし速度が低いという欠
点を改善するために考えられた物である。複数のコンテ
キストを持つことが可能で、かつ利用者空間内でスレッ
ド生成やコンテキスト切り換え等が高速に行なえること
が利点である。このような利用者レベルスレッドに対し
て、従来のOSカーネルに制御されるスレッドをカーネル
スレッドと呼ぶ。また、特殊な装置を持たずに従来の主
記憶管理装置と情報処理装置間のネットワークを制御し
データを転送することによって、複数の情報処理装置上
のタスク間で仮想共有記憶を実現する分散仮想共有記憶
方式( B.Nitzberg and V.Lo,"Distributed Shared Memo
ry:A Survey of Issues and Algorithms,Computer,Vol.
24,No.8,August 1991,PP.52-60 )を用いて、そのタスク
内の全仮想記憶空間を共有し、その中で複数のスレッド
を動作させる分散タスク/スレッドモデルが提案されて
いる。これは、複数の情報処理装置上の各タスク上の全
主記憶を分散仮想共有記憶とし、各タスクが1 個以上の
スレッドを持った1 つの分散したタスクと考えたもので
ある。上述のタス/スレッドモデルにおけるマルチプロ
セッサの情報処理装置を、複数の情報処理装置とネット
ワークによる接続に置き換え、これらの分散した資源を
効率よく使用するためのものが、分散タスク/スレッド
モデルである。また、分散仮共有記憶はネットワークを
固定長のページデータ転送で主に使用し、高速なネット
ワークを効率よく使用可能となる。
内にもつマルチプロセッサ情報処理装置上で、これら複
数のプロセッサを単一のプログラムによって有効に活用
可能なタスク/スレッドモデルと呼ばれるプログラム形
態が提案されている。これは1つのプログラムをスレッ
ドと呼ばれる複数の実行モジュールと、タスクと呼ばれ
る資源割り当ての単位に分割したモデルである。スレッ
ドはプロセッサ資源の割り当て単位となり、その他の記
憶空間資源などはタスクに割り当てられ、タスク内の全
てのスレッドに解放されている。このようなタスク/ス
レッドモデルは、マルチプロセッサの情報処理装置にお
いて、プロセッサ資源を効率よく使用するプログラムの
ためのモデルである。さらに、通常のタスク/スレッド
モデルのプログラム上で利用者空間内でコンテキスト切
り換えやスレッド生成等を行なうことが可能な利用者レ
ベルスレッドが提案されている。これは通常のタスク/
スレッドモデルのスレッドの生成やコンテキスト切り換
え等が、オペレーティングシステムカーネル(OS カーネ
ル) へのシステムコールを必要とし速度が低いという欠
点を改善するために考えられた物である。複数のコンテ
キストを持つことが可能で、かつ利用者空間内でスレッ
ド生成やコンテキスト切り換え等が高速に行なえること
が利点である。このような利用者レベルスレッドに対し
て、従来のOSカーネルに制御されるスレッドをカーネル
スレッドと呼ぶ。また、特殊な装置を持たずに従来の主
記憶管理装置と情報処理装置間のネットワークを制御し
データを転送することによって、複数の情報処理装置上
のタスク間で仮想共有記憶を実現する分散仮想共有記憶
方式( B.Nitzberg and V.Lo,"Distributed Shared Memo
ry:A Survey of Issues and Algorithms,Computer,Vol.
24,No.8,August 1991,PP.52-60 )を用いて、そのタスク
内の全仮想記憶空間を共有し、その中で複数のスレッド
を動作させる分散タスク/スレッドモデルが提案されて
いる。これは、複数の情報処理装置上の各タスク上の全
主記憶を分散仮想共有記憶とし、各タスクが1 個以上の
スレッドを持った1 つの分散したタスクと考えたもので
ある。上述のタス/スレッドモデルにおけるマルチプロ
セッサの情報処理装置を、複数の情報処理装置とネット
ワークによる接続に置き換え、これらの分散した資源を
効率よく使用するためのものが、分散タスク/スレッド
モデルである。また、分散仮共有記憶はネットワークを
固定長のページデータ転送で主に使用し、高速なネット
ワークを効率よく使用可能となる。
【0003】
【発明が解決しようとしている課題】上述の分散仮想共
有記憶では、各情報処理装置上の主記憶はその情報処理
装置以外からはアクセス出来ないので、主記憶を一種の
キャッシュとみなしてマルチプロセッサシステムのキャ
ッシュの一貫性保持動作と同様な操作をして、各情報処
理装置上の主記憶間の一貫性を保持する。この操作を行
なうことによって、各情報処理装置が自装置内の主記憶
をアクセスしているのに、分散仮想共有記憶にアクセス
した時に複数の情報処理装置上の一貫性が保証される。
この各情報処理装置の主記憶の一貫性保持のための操作
として、一般的にWrite-Invalidate方式を用いる。この
Write-Invalidate方式で代表的なものとしてMESI型方式
がある。このようなWrite-Invalidate方式によって一貫
性を保持する分散仮想共有記憶では、同じ分散仮想共有
記憶のページを複数の情報処理装置内のプロセッサが同
時にアクセスすると、ページスラッシングと呼ばれる頻
繁なページの移動が発生し処理能力を低下させるという
問題点がある。このページスラッシングは以下のキャッ
シュメモリの無効化とデータ転送の繰返しと同様に、複
数の情報処理装置が同時に連続的に同じページにアクセ
スし、かつ一つ以上の情報処理装置がそのページに書き
込みアクセスを行なう場合に発生する。
有記憶では、各情報処理装置上の主記憶はその情報処理
装置以外からはアクセス出来ないので、主記憶を一種の
キャッシュとみなしてマルチプロセッサシステムのキャ
ッシュの一貫性保持動作と同様な操作をして、各情報処
理装置上の主記憶間の一貫性を保持する。この操作を行
なうことによって、各情報処理装置が自装置内の主記憶
をアクセスしているのに、分散仮想共有記憶にアクセス
した時に複数の情報処理装置上の一貫性が保証される。
この各情報処理装置の主記憶の一貫性保持のための操作
として、一般的にWrite-Invalidate方式を用いる。この
Write-Invalidate方式で代表的なものとしてMESI型方式
がある。このようなWrite-Invalidate方式によって一貫
性を保持する分散仮想共有記憶では、同じ分散仮想共有
記憶のページを複数の情報処理装置内のプロセッサが同
時にアクセスすると、ページスラッシングと呼ばれる頻
繁なページの移動が発生し処理能力を低下させるという
問題点がある。このページスラッシングは以下のキャッ
シュメモリの無効化とデータ転送の繰返しと同様に、複
数の情報処理装置が同時に連続的に同じページにアクセ
スし、かつ一つ以上の情報処理装置がそのページに書き
込みアクセスを行なう場合に発生する。
【0004】Write-Invalidate方式のキャッシュの一貫
性保持機構は、ある情報処理装置があるアドレスの記憶
装置に書き込む場合に、他の全ての情報処理装置上のそ
のアドレスのデータのキャッシュは無効化し、元の情報
処理装置上だけにそのアドレスのデータをキャッシュす
る。こうすることによって、元の情報処理装置はキャッ
シュに書き込みが可能となる。他の情報処理装置がその
アドレスのデータにアクセスする場合には、自分の持つ
キャッシュにアクセスしようとするデータがないので、
先ほど書き込みを行なった情報処理装置上のキャッシュ
から最新のデータを転送してくる。このようにして各情
報処理装置上にキャッシングされたデータは、ある情報
処理装置が書き込みを行なうことで再び無効化される。
以上のような手続きを繰り返して、各キャッシュの一貫
性を保持する。分散仮想共有記憶の各情報処理装置の主
記憶に対して、このようなWrite-Invalidate方式の一貫
性保持を行なう場合に、各情報処理装置が同時に同じペ
ージにアクセスしてしまうと、上で述べたようなキャッ
シュの無効化要求やデータ転送が、主記憶のページの無
効化要求やページデータの転送になり、ネットワークに
大きな負荷を掛ける大量のメッセージ転送が発生する。
分散仮想共有記憶では、各情報処理装置間はネットワー
クで接続され、マルチプロセッサシステムの各プロセッ
サがバスで接続しているのと比較して、転送の帯域がか
なり低い。さらに分散仮想共有記憶ではデータの転送が
ページ単位で行なわれ、マルチプロセッサシステムのキ
ャッシュのブロックサイズよりも大きなサイズのデータ
転送を行なわなければならない。従って、このページス
ラッシングが発生するとネットワークの輻輳をおこし、
情報処理装置の負荷も重くなり、処理能力が極端に低下
するという問題があった。
性保持機構は、ある情報処理装置があるアドレスの記憶
装置に書き込む場合に、他の全ての情報処理装置上のそ
のアドレスのデータのキャッシュは無効化し、元の情報
処理装置上だけにそのアドレスのデータをキャッシュす
る。こうすることによって、元の情報処理装置はキャッ
シュに書き込みが可能となる。他の情報処理装置がその
アドレスのデータにアクセスする場合には、自分の持つ
キャッシュにアクセスしようとするデータがないので、
先ほど書き込みを行なった情報処理装置上のキャッシュ
から最新のデータを転送してくる。このようにして各情
報処理装置上にキャッシングされたデータは、ある情報
処理装置が書き込みを行なうことで再び無効化される。
以上のような手続きを繰り返して、各キャッシュの一貫
性を保持する。分散仮想共有記憶の各情報処理装置の主
記憶に対して、このようなWrite-Invalidate方式の一貫
性保持を行なう場合に、各情報処理装置が同時に同じペ
ージにアクセスしてしまうと、上で述べたようなキャッ
シュの無効化要求やデータ転送が、主記憶のページの無
効化要求やページデータの転送になり、ネットワークに
大きな負荷を掛ける大量のメッセージ転送が発生する。
分散仮想共有記憶では、各情報処理装置間はネットワー
クで接続され、マルチプロセッサシステムの各プロセッ
サがバスで接続しているのと比較して、転送の帯域がか
なり低い。さらに分散仮想共有記憶ではデータの転送が
ページ単位で行なわれ、マルチプロセッサシステムのキ
ャッシュのブロックサイズよりも大きなサイズのデータ
転送を行なわなければならない。従って、このページス
ラッシングが発生するとネットワークの輻輳をおこし、
情報処理装置の負荷も重くなり、処理能力が極端に低下
するという問題があった。
【0005】
【課題を解決するための手段(及び作用)】本発明によ
れば、複数の情報処理装置をネットワークで接続した分
散情報処理装置で、分散した情報処理装置上に存在する
タスクの主記憶を分散仮想共有記憶によって共有する分
散タスク内に各情報処理装置上にスレッドを分散して実
行させる機構をもつオペレーティングシステム上の、利
用者レベルのスレッドを分散タスク内のカーネルスレッ
ドに実行させるスレッド制御機構において、分散タスク
内のスレッドの分散仮想共有記憶へのアクセス情報を収
集するステップと、収集したアクセス情報からその分散
タスク内の利用者レベルスレッドの関連度を計算するス
テップと、その関連度を用いて分散タスク内のスレッド
へ割り当てて実行する利用者レベルスレッドを制御する
ステップ、を有することで同じページにアクセスするス
レッドを一つの情報処理装置上で動作させることによっ
て、分散仮想共有記憶のページの転送や無効化要求のメ
ッセージによってネットワークや情報処理装置に負荷を
掛けるページスラッシングの発生を低減することで処理
能力の低下を防ぐことが可能となる。
れば、複数の情報処理装置をネットワークで接続した分
散情報処理装置で、分散した情報処理装置上に存在する
タスクの主記憶を分散仮想共有記憶によって共有する分
散タスク内に各情報処理装置上にスレッドを分散して実
行させる機構をもつオペレーティングシステム上の、利
用者レベルのスレッドを分散タスク内のカーネルスレッ
ドに実行させるスレッド制御機構において、分散タスク
内のスレッドの分散仮想共有記憶へのアクセス情報を収
集するステップと、収集したアクセス情報からその分散
タスク内の利用者レベルスレッドの関連度を計算するス
テップと、その関連度を用いて分散タスク内のスレッド
へ割り当てて実行する利用者レベルスレッドを制御する
ステップ、を有することで同じページにアクセスするス
レッドを一つの情報処理装置上で動作させることによっ
て、分散仮想共有記憶のページの転送や無効化要求のメ
ッセージによってネットワークや情報処理装置に負荷を
掛けるページスラッシングの発生を低減することで処理
能力の低下を防ぐことが可能となる。
【0006】
(実施例1)以下、図面を参照して本発明の実施例を詳
細に説明する。図1は本発明の分散した情報処理装置を
示す図である。各情報処理装置は単独で一般的な情報処
理装置として動作することが可能であり、ネットワーク
によって接続され相互に通信可能である。但し、各情報
処理装置が全ての入出力装置を備えている必要はない。
細に説明する。図1は本発明の分散した情報処理装置を
示す図である。各情報処理装置は単独で一般的な情報処
理装置として動作することが可能であり、ネットワーク
によって接続され相互に通信可能である。但し、各情報
処理装置が全ての入出力装置を備えている必要はない。
【0007】図2に本発明のスレッド制御方式の概念図
を示す。201 が各情報処理装置(以下ノードと呼ぶ)で
相互にネットワークによって接続されている。202 がオ
ペレーティングシステムのマイクロカーネルであり、タ
スクの制御、そのノード内の主記憶の制御、カーネルレ
ベルのスレッド制御などを行なう。203 が複数のノード
にまたがる分散タスクである。204 が分散タスク内で動
作するスレッドである。205 が本スレッド制御方式の利
用者レベルスレッドの制御を行なうスレッドライブラリ
であり利用者プログラムにリンクされ利用者レベルで動
作する。このスレッドライブラリによって、カーネルス
レッド上で実行する利用者レベルスレッドの選択が行な
われる。さらに、利用者レベルスレッドの生成、中断、
再開などの制御や、ノード間の移動などが行なわれる。
206 がユーザプログラムによって生成された利用者レベ
ルスレッドである。207 が分散タスクの分散仮想共有記
憶を実現する分散仮想共有記憶サーバであり、ここで各
スレッドのアクセス情報が収集される。
を示す。201 が各情報処理装置(以下ノードと呼ぶ)で
相互にネットワークによって接続されている。202 がオ
ペレーティングシステムのマイクロカーネルであり、タ
スクの制御、そのノード内の主記憶の制御、カーネルレ
ベルのスレッド制御などを行なう。203 が複数のノード
にまたがる分散タスクである。204 が分散タスク内で動
作するスレッドである。205 が本スレッド制御方式の利
用者レベルスレッドの制御を行なうスレッドライブラリ
であり利用者プログラムにリンクされ利用者レベルで動
作する。このスレッドライブラリによって、カーネルス
レッド上で実行する利用者レベルスレッドの選択が行な
われる。さらに、利用者レベルスレッドの生成、中断、
再開などの制御や、ノード間の移動などが行なわれる。
206 がユーザプログラムによって生成された利用者レベ
ルスレッドである。207 が分散タスクの分散仮想共有記
憶を実現する分散仮想共有記憶サーバであり、ここで各
スレッドのアクセス情報が収集される。
【0008】図3に本発明のスレッド制御方式の流れ図
を示す。この図のように、各ノード上の分散仮想共有記
憶サーバは、そのノード上の分散タスクに分散仮想共有
記憶領域を提供する。この分散仮想共有記憶の各ノード
上での一貫性保持のために、前記のWrite-Invalidate方
式を用いるが、スレッドがあるページにアクセスしたか
どうかの判別はマイクロカーネルから通知されるページ
フォールトを利用して行なわれる。そのため、分散仮想
共有記憶サーバは、分散タスク上のスレッドの分散仮想
共有記憶へのアクセスの情報をページフォールトとして
ある程度得ることが可能となる。それらの情報は分散仮
想共有記憶サーバに蓄えられ、スレッド制御機構を含ん
でいるスレッドライブラリから要求があった場合に提供
を行ない、スレッド制御の情報として用いられる。スレ
ッドライブラリは、ある利用者レベルスレッドがブロッ
クして、コンテキストを切替える時に、次にどの利用者
レベルスレッドを実行するかを決定する。利用者レベル
スレッドがブロックするのは、プログラム中で明示的に
ブロックする場合や、排他制御で既にロックされている
ロック変数をロックしようとした場合、条件同期を行な
う場合などがある。このコンテキストの切り換え時に、
分散仮想共有記憶サーバから提供されたスレッドのアク
セス情報を用いて切り換えるスレッドを選択する。分散
仮想共有記憶サーバは利用者レベルスレッドとカーネル
スレッド対応情報を知らないために、カーネルスレッド
毎のアクセス情報が提供される。スレッドライブラリで
は、カーネルスレッドと利用者レベルスレッドの対応を
付けられるので、このアクセス情報を利用者レベルスレ
ッド毎のアクセス情報に変換する。この利用者レベルス
レッド毎のアクセス情報を用いて、各利用者レベルスレ
ッドの関連度を計算する。
を示す。この図のように、各ノード上の分散仮想共有記
憶サーバは、そのノード上の分散タスクに分散仮想共有
記憶領域を提供する。この分散仮想共有記憶の各ノード
上での一貫性保持のために、前記のWrite-Invalidate方
式を用いるが、スレッドがあるページにアクセスしたか
どうかの判別はマイクロカーネルから通知されるページ
フォールトを利用して行なわれる。そのため、分散仮想
共有記憶サーバは、分散タスク上のスレッドの分散仮想
共有記憶へのアクセスの情報をページフォールトとして
ある程度得ることが可能となる。それらの情報は分散仮
想共有記憶サーバに蓄えられ、スレッド制御機構を含ん
でいるスレッドライブラリから要求があった場合に提供
を行ない、スレッド制御の情報として用いられる。スレ
ッドライブラリは、ある利用者レベルスレッドがブロッ
クして、コンテキストを切替える時に、次にどの利用者
レベルスレッドを実行するかを決定する。利用者レベル
スレッドがブロックするのは、プログラム中で明示的に
ブロックする場合や、排他制御で既にロックされている
ロック変数をロックしようとした場合、条件同期を行な
う場合などがある。このコンテキストの切り換え時に、
分散仮想共有記憶サーバから提供されたスレッドのアク
セス情報を用いて切り換えるスレッドを選択する。分散
仮想共有記憶サーバは利用者レベルスレッドとカーネル
スレッド対応情報を知らないために、カーネルスレッド
毎のアクセス情報が提供される。スレッドライブラリで
は、カーネルスレッドと利用者レベルスレッドの対応を
付けられるので、このアクセス情報を利用者レベルスレ
ッド毎のアクセス情報に変換する。この利用者レベルス
レッド毎のアクセス情報を用いて、各利用者レベルスレ
ッドの関連度を計算する。
【0009】図4に本実施例のアクセス情報の収集方法
の流れ図を示す。この図の様に、ページフォールトを起
こしたスレッドと、そのページを所有していたスレッド
の関連度を増加させる。関連度は2 次元の配列で保持さ
れ、スレッドの数によって大きさが決まる。この関連度
は、時間的に古いものは最近の物に比較して影響度を小
さくしたほうがよいため、一定期間毎に関連度を一定数
(1未満) を乗ずることを行なう。また、ページスラッシ
ングを低減するために、ページスラッシングが発生して
いる可能性が高い場合、たとえば極短時間中にページフ
ォールトが集中して発生しているような場合は、関連度
の増加を他の場合より大きくする。
の流れ図を示す。この図の様に、ページフォールトを起
こしたスレッドと、そのページを所有していたスレッド
の関連度を増加させる。関連度は2 次元の配列で保持さ
れ、スレッドの数によって大きさが決まる。この関連度
は、時間的に古いものは最近の物に比較して影響度を小
さくしたほうがよいため、一定期間毎に関連度を一定数
(1未満) を乗ずることを行なう。また、ページスラッシ
ングを低減するために、ページスラッシングが発生して
いる可能性が高い場合、たとえば極短時間中にページフ
ォールトが集中して発生しているような場合は、関連度
の増加を他の場合より大きくする。
【0010】(実施例2)図5は第2の実施例のスレッ
ド制御方式の流れ図を示した物である。この場合には、
第1 の実施例とは逆に、自ノード以外のノード上で動作
している全スレッドと、現在動作可能なスレッドとの関
連度の総和を求め、そのうち最小の物に切り換える方法
である。
ド制御方式の流れ図を示した物である。この場合には、
第1 の実施例とは逆に、自ノード以外のノード上で動作
している全スレッドと、現在動作可能なスレッドとの関
連度の総和を求め、そのうち最小の物に切り換える方法
である。
【0011】(実施例3)図6は第3の実施例のスレッ
ド制御方式の流れ図を示した物である。本実施例の場合
には、スレッドを選択する場合にある閾値を設けてそれ
より関連度が大きくなければ、実行のために切り換える
スレッドをキューからランダムに選択する。関連度は動
作しているスレッド分の関連度の総和になっているの
で、スレッド数で割った物を閾値と比較する。また、関
連度自体を正規化しておく必要もあるので、それは分散
仮想共有記憶サーバにて行なう。また、実行のために切
り換えるスレッドをキューからランダムに選択するので
はなく、キューの先頭にいる( 長くキューにとどまって
いる) スレッドを選択する方法もある。
ド制御方式の流れ図を示した物である。本実施例の場合
には、スレッドを選択する場合にある閾値を設けてそれ
より関連度が大きくなければ、実行のために切り換える
スレッドをキューからランダムに選択する。関連度は動
作しているスレッド分の関連度の総和になっているの
で、スレッド数で割った物を閾値と比較する。また、関
連度自体を正規化しておく必要もあるので、それは分散
仮想共有記憶サーバにて行なう。また、実行のために切
り換えるスレッドをキューからランダムに選択するので
はなく、キューの先頭にいる( 長くキューにとどまって
いる) スレッドを選択する方法もある。
【0012】(実施例4)本実施例では、利用者レベル
スレッドの過去のアクセス情報を用いた制御を行なうだ
けでなく、利用者レベルスレッドがこれから扱うであろ
うデータ構造の存在するノードで動作するような制御を
行なう。利用者レベルスレッドがこれから扱うデータ構
造は、通常のプログラムではスレッド制御機構にとって
は分からない。ただし、排他制御などを行なう場合にス
レッドがロック変数のロックを行なう場合などは、これ
からそのロック変数を含むデータ構造をアクセスするこ
とが分かる。その様な場合にそのロック変数を含むデー
タ構造が存在するページのあるノード上で動作させこと
によってページスラッシングを低減することが可能とな
る。本実施例の流れ図を図7に示す。この図の様に、各
ロック変数にはそのロック変数のロックを得ようとして
待っているスレッドを入れておくキューがあり、そのロ
ック変数を含むページが存在するノードとアクセスの頻
度を分散仮想共有記憶サーバから知ることが可能であ
る。アクセス頻度がある閾値以下のロック変数は本実施
例のスレッド制御を行なわないという最適化も可能であ
る。さらに、システム全体に動作可能なスレッドを入れ
ておくキューと各ノード上で動作可能なスレッドを入れ
ておくキューが、図8に示されるように存在する。利用
者レベルスレッドを切り換える時に、次に実行する利用
者レベルスレッドを選択する時に、本実施例ではまず各
ノードに存在するローカルな動作可能スレッドキューか
らスレッドを取り出す。もしそのローカルなキューが空
だった場合には、分散タスクにグローバルに存在する動
作可能スレッドキューから利用者レベルスレッドを取り
出す。このようなローカルな動作可能スレッドキューを
用意すれば、ロック変数のロック時に待ちキューに入っ
たスレッドをそのロック変数の存在するノードの動作可
能キューに入れることで、そのスレッドはロック変数を
含むデータ構造の存在するノード上で動作する。
スレッドの過去のアクセス情報を用いた制御を行なうだ
けでなく、利用者レベルスレッドがこれから扱うであろ
うデータ構造の存在するノードで動作するような制御を
行なう。利用者レベルスレッドがこれから扱うデータ構
造は、通常のプログラムではスレッド制御機構にとって
は分からない。ただし、排他制御などを行なう場合にス
レッドがロック変数のロックを行なう場合などは、これ
からそのロック変数を含むデータ構造をアクセスするこ
とが分かる。その様な場合にそのロック変数を含むデー
タ構造が存在するページのあるノード上で動作させこと
によってページスラッシングを低減することが可能とな
る。本実施例の流れ図を図7に示す。この図の様に、各
ロック変数にはそのロック変数のロックを得ようとして
待っているスレッドを入れておくキューがあり、そのロ
ック変数を含むページが存在するノードとアクセスの頻
度を分散仮想共有記憶サーバから知ることが可能であ
る。アクセス頻度がある閾値以下のロック変数は本実施
例のスレッド制御を行なわないという最適化も可能であ
る。さらに、システム全体に動作可能なスレッドを入れ
ておくキューと各ノード上で動作可能なスレッドを入れ
ておくキューが、図8に示されるように存在する。利用
者レベルスレッドを切り換える時に、次に実行する利用
者レベルスレッドを選択する時に、本実施例ではまず各
ノードに存在するローカルな動作可能スレッドキューか
らスレッドを取り出す。もしそのローカルなキューが空
だった場合には、分散タスクにグローバルに存在する動
作可能スレッドキューから利用者レベルスレッドを取り
出す。このようなローカルな動作可能スレッドキューを
用意すれば、ロック変数のロック時に待ちキューに入っ
たスレッドをそのロック変数の存在するノードの動作可
能キューに入れることで、そのスレッドはロック変数を
含むデータ構造の存在するノード上で動作する。
【0013】
【発明の効果】以上説明したように、分散した複数の情
報処理装置をネットワークで接続した分散情報処理装置
で、分散した情報処理装置上に存在するタスクの主記憶
を分散仮想共有記憶によって共有する分散タスク内で、
各情報処理装置上にスレッドを分散して実行させる機構
をもつオペレーティングシステム上の、利用者レベルの
スレッドを分散タスク内のスレッドに実行させるスレッ
ド制御機構において、分散タスク内のスレッドの分散仮
想共有記憶へのアクセス情報を収集すし、収集したアク
セス情報からその分散タスク内の利用者レベルスレッド
の関連度を計算して、その関連度を用いて分散タスク内
のスレッドへ割り当てて実行する利用者レベルスレッド
を制御することで、分散仮想共有記憶のページスラッシ
ングを低減し、処理能力の低下を防止することが可能と
なる。
報処理装置をネットワークで接続した分散情報処理装置
で、分散した情報処理装置上に存在するタスクの主記憶
を分散仮想共有記憶によって共有する分散タスク内で、
各情報処理装置上にスレッドを分散して実行させる機構
をもつオペレーティングシステム上の、利用者レベルの
スレッドを分散タスク内のスレッドに実行させるスレッ
ド制御機構において、分散タスク内のスレッドの分散仮
想共有記憶へのアクセス情報を収集すし、収集したアク
セス情報からその分散タスク内の利用者レベルスレッド
の関連度を計算して、その関連度を用いて分散タスク内
のスレッドへ割り当てて実行する利用者レベルスレッド
を制御することで、分散仮想共有記憶のページスラッシ
ングを低減し、処理能力の低下を防止することが可能と
なる。
【図1】本発明の負荷分散方式を用いる分散した情報処
理装置の構成図である。
理装置の構成図である。
【図2】本発明のスレッド制御方式の概念図である。
【図3】本発明のスレッド制御方式の流れ図である。
【図4】アクセス情報の収集方法の流れ図である。
【図5】第2 の実施例のスレッド制御方式の流れ図であ
る。
る。
【図6】第3 のスレッド制御方式の流れ図である。
【図7】これから参照するデータの存在するノード上で
スレッドを動作させるスレッド制御方式の実施例の排他
制御の流れ図である。
スレッドを動作させるスレッド制御方式の実施例の排他
制御の流れ図である。
【図8】第4 の実施例に用いられる動作可能スレッドキ
ューを示す図である。
ューを示す図である。
101 情報処理装置 102 ネットワーク 201 情報処理装置 202 マイクロカーネル 203 分散タスク 204 カーネルスレッド 205 スレッド制御ライブラリ 206 利用者レベルスレッド 207 分散仮想共有記憶サーバ
Claims (7)
- 【請求項1】 複数の情報処理装置をネットワークで接
続した分散情報処理装置で、分散した情報処理装置上に
存在するタスクの主記憶を分散仮想共有記憶によって共
有する分散タスク内に各情報処理装置上にスレッドを分
散して実行させる機構をもつオペレーティングシステム
上の、利用者レベルのスレッドを分散タスク内のカーネ
ルスレッドに実行させるスレッド制御機構において、分
散タスク内のスレッドの分散仮想共有記憶へのアクセス
情報を収集するステップと、収集したアクセス情報から
その分散タスク内の利用者レベルスレッドの関連度を計
算するステップと、その関連度を用いて分散タスク内の
スレッドへ割り当てて実行する利用者レベルスレッドを
制御するステップ、を有することを特徴としたスレッド
制御方式。 - 【請求項2】 過去一定時間に分散仮想共有記憶の同じ
ページをアクセスした頻度が大きいほど、それらの利用
者レベルスレッド間の関連度を高くすることを特徴とし
た請求項1に記載のスレッド制御方式。 - 【請求項3】 ある情報処理装置上のカーネルスレッド
に利用者レベルスレッドを割り当てる場合に、現在動作
可能な利用者レベルスレッドのうちで、該情報処理装置
上の他のカーネルスレッドで実行されている利用者レベ
ルスレッドとの関連度の総和が最も大きい利用者レベル
スレッドを割り当てること、を特徴とした請求項1に記
載のスレッド制御方式。 - 【請求項4】 ある情報処理装置上のカーネルスレッド
に利用者レベルスレッドを割り当てる場合に、現在動作
可能な利用者レベルスレッドのうちで、その分散タスク
内の該情報処理装置以外の情報処理装置上のカーネルス
レッドで実行されている利用者レベルスレッドとの関連
度の総和が最も小さく利用者レベルスレッドを割り当て
ること、を特徴とした請求項1に記載のスレッド制御方
式。 - 【請求項5】 ある情報処理装置上のカーネルスレッド
に利用者レベルスレッドを割り当てる場合に、現在動作
可能な利用者レベルスレッドのうちで、該情報処理装置
上の他のカーネルスレッドで実行されている利用者レベ
ルスレッドとの関連度の総和がある閾値を越えているう
ちで最大の利用者レベルスレッドを割り当てることと、
関連度の総和が閾値を越えた利用者レベルスレッドがな
ければ動作可能な利用者レベルスレッドからランダムに
選択して実行させること、を特徴とした請求項1に記載
のスレッド制御方式。 - 【請求項6】 ある情報処理装置上のカーネルスレッド
に利用者レベルスレッドを割り当てる場合に、現在動作
可能な利用者レベルスレッドのうちで、該情報処理装置
上の他のカーネルスレッドで実行されている利用者レベ
ルスレッドとの関連度の総和がある閾値を越えているう
ちで最大の利用者レベルスレッドを割り当てることと、
現在動作可能な利用者レベルスレッドのうちで上記関連
度の総和が閾値を越えた利用者レベルスレッドがなけれ
ば、その分散タスク内の他の情報処理装置以外の情報処
理装置上のカーネルスレッドで実行されている利用者レ
ベルスレッドと関連度の総和が最もさく利用者レベルス
レッドを割り当てること、を特徴とした請求項1に記載
のスレッド制御方式。 - 【請求項7】 複数の情報処理装置をネットワークで接
続した分散情報処理装置で、分散した情報処理装置上に
存在するタスクの主記憶を分散仮想共有記憶によって共
有する分散タスク内で各情報処理装置上にスレッドを分
散して実行させる機構をもつオペレーティングシステム
上の、利用者レベルスレッドを分散タスク内のカーネル
スレッドに実行させるスレッド制御機構において、分散
タスク内のカーネルスレッドへの利用者レベルスレッド
の割り当て時に、その利用者レベルスレッドが以後扱う
データ構造の存在する情報処理装置上のカーネルスレッ
ドに割り当てるステップを有することを特徴としたスレ
ッド制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6167989A JPH0830512A (ja) | 1994-07-20 | 1994-07-20 | スレッド制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6167989A JPH0830512A (ja) | 1994-07-20 | 1994-07-20 | スレッド制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0830512A true JPH0830512A (ja) | 1996-02-02 |
Family
ID=15859743
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6167989A Pending JPH0830512A (ja) | 1994-07-20 | 1994-07-20 | スレッド制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0830512A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7596668B2 (en) | 2007-02-20 | 2009-09-29 | International Business Machines Corporation | Method, system and program product for associating threads within non-related processes based on memory paging behaviors |
| US7633643B2 (en) | 1998-03-27 | 2009-12-15 | Canon Kabushiki Kaisha | Image processing apparatus, control method thereof, and storage medium storing control program, with interpreter for program objects represented in byte codes, and with application programming interface function programs used commonly by program objects |
| WO2023241307A1 (zh) * | 2022-06-17 | 2023-12-21 | 北京奥星贝斯科技有限公司 | 管理线程的方法及装置 |
-
1994
- 1994-07-20 JP JP6167989A patent/JPH0830512A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7633643B2 (en) | 1998-03-27 | 2009-12-15 | Canon Kabushiki Kaisha | Image processing apparatus, control method thereof, and storage medium storing control program, with interpreter for program objects represented in byte codes, and with application programming interface function programs used commonly by program objects |
| US7973963B2 (en) | 1998-03-27 | 2011-07-05 | Canon Kabushiki Kaisha | Image forming apparatus, method of controlling image forming apparatus, and memory medium for storing computer program for executing method, with function program providing API |
| US8300253B2 (en) | 1998-03-27 | 2012-10-30 | Canon Kabushika Kaisha | Image forming apparatus, method of controlling image forming apparatus, and memory medium for storing computer program for executing method, with interpreter for control programs that are provided for execution on OS-independent platform |
| US7596668B2 (en) | 2007-02-20 | 2009-09-29 | International Business Machines Corporation | Method, system and program product for associating threads within non-related processes based on memory paging behaviors |
| WO2023241307A1 (zh) * | 2022-06-17 | 2023-12-21 | 北京奥星贝斯科技有限公司 | 管理线程的方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Feeley et al. | Implementing global memory management in a workstation cluster | |
| CN113674133B (zh) | Gpu集群共享显存系统、方法、装置及设备 | |
| US8122451B2 (en) | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system | |
| US6272612B1 (en) | Process for allocating memory in a multiprocessor data processing system | |
| EP0539012B1 (en) | Improved digital processor with distributed memory system | |
| US6785888B1 (en) | Memory allocator for a multiprocessor computer system | |
| US6591355B2 (en) | Distributed shared memory system with variable granularity | |
| US5784697A (en) | Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture | |
| US5237673A (en) | Memory management method for coupled memory multiprocessor systems | |
| US8904154B2 (en) | Execution migration | |
| US5537635A (en) | Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size | |
| US5884077A (en) | Information processing system and method in which computer with high load borrows processor of computer with low load to execute process | |
| JP2662603B2 (ja) | 無効要求を選別する方法及び装置 | |
| US6167490A (en) | Using global memory information to manage memory in a computer network | |
| US6205528B1 (en) | User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture | |
| US10169087B2 (en) | Technique for preserving memory affinity in a non-uniform memory access data processing system | |
| US20060206635A1 (en) | DMA engine for protocol processing | |
| WO2020024591A1 (en) | Cost-effective deployments of a pmem-based dmo system | |
| US20200042184A1 (en) | Cost-Effective Deployments of a PMEM-Based DMO System | |
| US6332185B1 (en) | Method and apparatus for paging data and attributes including an atomic attribute for digital data processor | |
| CN118796485B (zh) | 一种基于mesi协议的计算任务并行处理方法 | |
| CN120371550A (zh) | 异构内存页面的迁移设备、方法以及可读存储介质 | |
| JPH0830512A (ja) | スレッド制御方式 | |
| US8078818B2 (en) | Method and system for migrating memory segments | |
| Hwang et al. | CAVA: Exploring memory locality for big data analytics in virtualized clusters |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050216 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050405 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060207 |