JPH10143382A - 共有メモリ型マルチプロセッサシステムの資源管理方法 - Google Patents
共有メモリ型マルチプロセッサシステムの資源管理方法Info
- Publication number
- JPH10143382A JPH10143382A JP29615496A JP29615496A JPH10143382A JP H10143382 A JPH10143382 A JP H10143382A JP 29615496 A JP29615496 A JP 29615496A JP 29615496 A JP29615496 A JP 29615496A JP H10143382 A JPH10143382 A JP H10143382A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- memory module
- selecting
- multiprocessor system
- 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
Abstract
(57)【要約】
【課題】プロセッサメモリモジュールを複数個接続する
共有メモリ型マルチプロセッサシステムにおいて,特定
のプロセッサメモリモジュール上でのプロセスの実行を
可能とし,ローカルのメモリを優先的に割り当てる。 【解決手段】各プロセッサメモリモジュールに搭載され
るメモリの実アドレスの下限値および上限値,システム
を構成するプロセッサメモリモジュール数を含むハード
ウェアの構成情報を,オペレーティングシステムが入手
する。そして,プロセス生成時に,当該プロセスを動作
させる,L2キャッシュを共有するプロセッサメモリモ
ジュールを選択し,メモリ割当て処理において,先に選
択されたプロセッサメモリモジュール上のメモリを割り
当てる。
共有メモリ型マルチプロセッサシステムにおいて,特定
のプロセッサメモリモジュール上でのプロセスの実行を
可能とし,ローカルのメモリを優先的に割り当てる。 【解決手段】各プロセッサメモリモジュールに搭載され
るメモリの実アドレスの下限値および上限値,システム
を構成するプロセッサメモリモジュール数を含むハード
ウェアの構成情報を,オペレーティングシステムが入手
する。そして,プロセス生成時に,当該プロセスを動作
させる,L2キャッシュを共有するプロセッサメモリモ
ジュールを選択し,メモリ割当て処理において,先に選
択されたプロセッサメモリモジュール上のメモリを割り
当てる。
Description
【0001】
【発明の属する技術分野】本発明は,共有メモリ型マル
チプロセッサシステムにおける,オペレーティングシス
テムでのプロセッサおよびメモリ等の計算機資源の管理
方法に関する。
チプロセッサシステムにおける,オペレーティングシス
テムでのプロセッサおよびメモリ等の計算機資源の管理
方法に関する。
【0002】
【従来の技術】最近の計算機システムでは,処理能力の
向上を図るために複数個のプロセッサ(CPU)を搭載
するマルチプロセッサ構成が一般的となっている。その
マルチプロセッサシステムの構成方式の1つに共有メモ
リ型マルチプロセッサがある。これは,システム中のす
べてのプロセッサがメモリを共有する構成であるが,こ
れには,集中メモリ型と分散共有メモリ型の2種類があ
る。
向上を図るために複数個のプロセッサ(CPU)を搭載
するマルチプロセッサ構成が一般的となっている。その
マルチプロセッサシステムの構成方式の1つに共有メモ
リ型マルチプロセッサがある。これは,システム中のす
べてのプロセッサがメモリを共有する構成であるが,こ
れには,集中メモリ型と分散共有メモリ型の2種類があ
る。
【0003】集中メモリ型は,システム中のすべてのメ
モリが1箇所にまとめられており,すべてのプロセッサ
からシステムコネクションを経由して同等にアクセスさ
れる。一方,分散共有メモリ型は,例えば,複数のプロ
セッサメモリモジュール(PMM)を用意し,このモジ
ュール上にプロセッサとメモリを搭載し,これらのプロ
セッサメモリモジュールをシステムコネクションで接続
する構成が考えられる。これは,結局,1台のマルチプ
ロセッサシステムを構成するメモリを物理的に分割し
て,全体としては1つのメモリのように見せる.即ち,
物理的には分散するメモリを,論理的には1つに見せる
のである。しかし,ローカルなメモリへのアクセスとリ
モートなメモリへのアクセスとでは,アクセス時間が異
なり,もちろんローカルなメモリへのアクセスの方が高
速である。
モリが1箇所にまとめられており,すべてのプロセッサ
からシステムコネクションを経由して同等にアクセスさ
れる。一方,分散共有メモリ型は,例えば,複数のプロ
セッサメモリモジュール(PMM)を用意し,このモジ
ュール上にプロセッサとメモリを搭載し,これらのプロ
セッサメモリモジュールをシステムコネクションで接続
する構成が考えられる。これは,結局,1台のマルチプ
ロセッサシステムを構成するメモリを物理的に分割し
て,全体としては1つのメモリのように見せる.即ち,
物理的には分散するメモリを,論理的には1つに見せる
のである。しかし,ローカルなメモリへのアクセスとリ
モートなメモリへのアクセスとでは,アクセス時間が異
なり,もちろんローカルなメモリへのアクセスの方が高
速である。
【0004】処理能力への要求の高まりとともに,マル
チプロセッサシステムを構成するプロセッサ数が増える
と,それにつれてプロセッサとメモリの間のトラフィッ
クが多くなり,システムコネクションがボトルネックと
なる。従って,共有メモリ型マルチプロセッサにおいて
プロセッサ数を増やすためのカギは,いかにしてシステ
ムコネクションのトラフィックを減らすかということに
なる。
チプロセッサシステムを構成するプロセッサ数が増える
と,それにつれてプロセッサとメモリの間のトラフィッ
クが多くなり,システムコネクションがボトルネックと
なる。従って,共有メモリ型マルチプロセッサにおいて
プロセッサ数を増やすためのカギは,いかにしてシステ
ムコネクションのトラフィックを減らすかということに
なる。
【0005】そこで,複数のプロセッサ間で共用するキ
ャッシュメモリ(L2キャッシュ)を装備することが考
えられる。このL2キャッシュは,分散共有メモリ型で
は,同一プロセッサメモリモジュール上のプロセッサ間
で共有される構成とする。このL2キャッシュを共有す
るプロセッサ群を以下ではプロセッサグループと呼ぶ。
L2キャッシュにヒットすればメモリアクセスは発生し
ないので,システムコネクションへのトラフィックは発
生しない。
ャッシュメモリ(L2キャッシュ)を装備することが考
えられる。このL2キャッシュは,分散共有メモリ型で
は,同一プロセッサメモリモジュール上のプロセッサ間
で共有される構成とする。このL2キャッシュを共有す
るプロセッサ群を以下ではプロセッサグループと呼ぶ。
L2キャッシュにヒットすればメモリアクセスは発生し
ないので,システムコネクションへのトラフィックは発
生しない。
【0006】一方,L2キャッシュミスが発生した場
合,分散共有メモリ型では,ローカルのメモリ(同一プ
ロセッサメモリモジュール上のメモリ)へアクセスする
ケースではシステムコネクションへのトラフィックは発
生しないが,リモートのメモリ(他のプロセッサメモリ
モジュール上のメモリ)へアクセスするケースではシス
テムコネクションへのトラフィックが発生する。よっ
て,システムコネクションのトラフィックを減らすに
は,L2キャッシュミスおよびリモートのメモリへのア
クセスを減らさねばならない。
合,分散共有メモリ型では,ローカルのメモリ(同一プ
ロセッサメモリモジュール上のメモリ)へアクセスする
ケースではシステムコネクションへのトラフィックは発
生しないが,リモートのメモリ(他のプロセッサメモリ
モジュール上のメモリ)へアクセスするケースではシス
テムコネクションへのトラフィックが発生する。よっ
て,システムコネクションのトラフィックを減らすに
は,L2キャッシュミスおよびリモートのメモリへのア
クセスを減らさねばならない。
【0007】
【発明が解決しようとする課題】以上の考察から,共有
メモリ型マルチプロセッサシステムにおいて,システム
コネクションのトラフィックを減らすには,L2キャッ
シュのヒット率を上げ,更に,分散共有メモリ型では,
リモートのメモリへのアクセスを減らさねばならないと
いうことが明らかとなった。そのためには,オペレーテ
ィングシステム(OS)の資源管理方式が重要となる。
従来のOSの考え方は,計算機資源の利用率を上げる
ことに主眼がおかれてきた。例えば,実行可能なプロセ
スを,アイドル状態になったCPUが早いもの勝ちで実
行する,といった例である.このような制御では,プロ
セスはどのプロセッサ(プロセッサメモリモジュール)
で実行されるかはわからないので,L2キャッシュには
様々なプロセスが使用するデータがキャッシングされ
る。結局,L2キャッシュのヒット率が低下し,システ
ムコネクションへのトラフィックが減らないという問題
がある。
メモリ型マルチプロセッサシステムにおいて,システム
コネクションのトラフィックを減らすには,L2キャッ
シュのヒット率を上げ,更に,分散共有メモリ型では,
リモートのメモリへのアクセスを減らさねばならないと
いうことが明らかとなった。そのためには,オペレーテ
ィングシステム(OS)の資源管理方式が重要となる。
従来のOSの考え方は,計算機資源の利用率を上げる
ことに主眼がおかれてきた。例えば,実行可能なプロセ
スを,アイドル状態になったCPUが早いもの勝ちで実
行する,といった例である.このような制御では,プロ
セスはどのプロセッサ(プロセッサメモリモジュール)
で実行されるかはわからないので,L2キャッシュには
様々なプロセスが使用するデータがキャッシングされ
る。結局,L2キャッシュのヒット率が低下し,システ
ムコネクションへのトラフィックが減らないという問題
がある。
【0008】そこで,従来の利用率重視の考え方を改め
る。即ち,プロセスが,常に特定のプロセッサメモリモ
ジュールで実行されるようにする。すると,L2キャッ
シュには特定プロセスが使用するデータがキャッシング
されるので,高いL2キャッシュヒット率が期待でき
る。L2キャッシュがヒットすればシステムコネクショ
ンへのトラフィックは発生しない。
る。即ち,プロセスが,常に特定のプロセッサメモリモ
ジュールで実行されるようにする。すると,L2キャッ
シュには特定プロセスが使用するデータがキャッシング
されるので,高いL2キャッシュヒット率が期待でき
る。L2キャッシュがヒットすればシステムコネクショ
ンへのトラフィックは発生しない。
【0009】そこで,本発明の第1の目的は,特定のプ
ロセッサメモリモジュール上でプロセスを実行する方法
を提供することにある。
ロセッサメモリモジュール上でプロセスを実行する方法
を提供することにある。
【0010】また,分散共有メモリ型の場合,メモリ割
当ての際にローカルの(同一プロセッサメモリモジュー
ルの)メモリを割り当てるようにすれば,システムコネ
クションへのトラフィックを減らすことができる。そし
て,ローカルのメモリへのアクセスは,システムコネク
ションを経由しないためリモートの(他プロセッサメモ
リモジュールの)メモリへのアクセスよりアクセス時間
が短い。
当ての際にローカルの(同一プロセッサメモリモジュー
ルの)メモリを割り当てるようにすれば,システムコネ
クションへのトラフィックを減らすことができる。そし
て,ローカルのメモリへのアクセスは,システムコネク
ションを経由しないためリモートの(他プロセッサメモ
リモジュールの)メモリへのアクセスよりアクセス時間
が短い。
【0011】ところが,従来のOSにおけるメモリ管理
では,ローカルのメモリおよびリモートのメモリを意識
するということがなく,すべてを同じに扱っているの
で,ローカルのメモリを意識して割り当てるという制御
ができないという問題点がある。
では,ローカルのメモリおよびリモートのメモリを意識
するということがなく,すべてを同じに扱っているの
で,ローカルのメモリを意識して割り当てるという制御
ができないという問題点がある。
【0012】そこで,本発明の第2の目的は,分散共有
メモリ型マルチプロセッサシステムにおいてローカルの
メモリを優先的に割り当てる方法を提供することにあ
る。
メモリ型マルチプロセッサシステムにおいてローカルの
メモリを優先的に割り当てる方法を提供することにあ
る。
【0013】
【課題を解決するための手段】本発明では,複数のプロ
セッサと,当該複数プロセッサが共有するキャッシュメ
モリ(L2キャッシュ)と,メモリとが搭載されるプロ
セッサメモリモジュールがあり,当該プロセッサメモリ
モジュールを複数個接続する共有メモリ型マルチプロセ
ッサシステムにおいて,OSが,各プロセッサメモリモ
ジュールに搭載されるメモリの実アドレスの下限値およ
び上限値,システムを構成するプロセッサメモリモジュ
ール数,および各プロセッサメモリモジュールに搭載さ
れるプロセッサ数を含むハードウェアの構成情報を入手
する。これにより,OSは,システムに存在するプロセ
ッサメモリモジュールを認識できるので,プロセッサメ
モリモジュールを意識した資源管理が可能となる。そし
て,各プロセッサメモリモジュールに搭載されるメモリ
の実アドレスの下限値および上限値の情報により,OS
のメモリ管理サブシステムは,実アドレスのどの範囲が
どのプロセッサメモリモジュールに属するのかを把握で
きるようになる。
セッサと,当該複数プロセッサが共有するキャッシュメ
モリ(L2キャッシュ)と,メモリとが搭載されるプロ
セッサメモリモジュールがあり,当該プロセッサメモリ
モジュールを複数個接続する共有メモリ型マルチプロセ
ッサシステムにおいて,OSが,各プロセッサメモリモ
ジュールに搭載されるメモリの実アドレスの下限値およ
び上限値,システムを構成するプロセッサメモリモジュ
ール数,および各プロセッサメモリモジュールに搭載さ
れるプロセッサ数を含むハードウェアの構成情報を入手
する。これにより,OSは,システムに存在するプロセ
ッサメモリモジュールを認識できるので,プロセッサメ
モリモジュールを意識した資源管理が可能となる。そし
て,各プロセッサメモリモジュールに搭載されるメモリ
の実アドレスの下限値および上限値の情報により,OS
のメモリ管理サブシステムは,実アドレスのどの範囲が
どのプロセッサメモリモジュールに属するのかを把握で
きるようになる。
【0014】そして,プロセス生成時に,当該プロセス
を動作させるプロセッサメモリモジュールを選択し,当
該プロセスの実行時には,前記の選択したプロセッサメ
モリモジュールに属するプロセッサで実行するようにス
ケジュールし,メモリ割当て処理において,先に選択し
プロセッサメモリモジュール上のメモリを割り当てる。
これにより,生成されたプロセスを動作させるプロセッ
サメモリモジュールが1つ決定され,このプロセスは,
常にこのプロセッサメモリモジュールに属するプロセッ
サ上で動作することになる。そして,このプロセスが発
するメモリ確保要求に対しては,このプロセスが実行さ
れるプロセッサメモリモジュールのローカルなメモリが
割り当てられることになる。
を動作させるプロセッサメモリモジュールを選択し,当
該プロセスの実行時には,前記の選択したプロセッサメ
モリモジュールに属するプロセッサで実行するようにス
ケジュールし,メモリ割当て処理において,先に選択し
プロセッサメモリモジュール上のメモリを割り当てる。
これにより,生成されたプロセスを動作させるプロセッ
サメモリモジュールが1つ決定され,このプロセスは,
常にこのプロセッサメモリモジュールに属するプロセッ
サ上で動作することになる。そして,このプロセスが発
するメモリ確保要求に対しては,このプロセスが実行さ
れるプロセッサメモリモジュールのローカルなメモリが
割り当てられることになる。
【0015】そして,前記のプロセスを動作させるプロ
セッサグループを選択する際には,メモリの空き容量が
最大であるようなプロセッサメモリモジュールを選択す
ることにより,メモリ割当ての際に実メモリの不足のた
めにページングが発生する可能性を小さくできる。
セッサグループを選択する際には,メモリの空き容量が
最大であるようなプロセッサメモリモジュールを選択す
ることにより,メモリ割当ての際に実メモリの不足のた
めにページングが発生する可能性を小さくできる。
【0016】そして,前記のプロセスを動作させるプロ
セッサグループを選択する際には,生成するプロセスの
親プロセスが割り当てられたプロセッサグループと同じ
プロセッサグループを選択する。親子関係にあるプロセ
スの間では,同じデータにアクセスする可能性が高いと
考えられるので,こうすることによりL2キャッシュの
ヒット率をより高くすることが期待できる。
セッサグループを選択する際には,生成するプロセスの
親プロセスが割り当てられたプロセッサグループと同じ
プロセッサグループを選択する。親子関係にあるプロセ
スの間では,同じデータにアクセスする可能性が高いと
考えられるので,こうすることによりL2キャッシュの
ヒット率をより高くすることが期待できる。
【0017】また,本発明では,複数のプロセッサと,
当該複数プロセッサが共有するキャッシュメモリ(L2
キャッシュ)があり,このプロセッサ群とL2キャッシ
ュの組合せ(プロセッサグループ)が複数存在する共有
メモリ型マルチプロセッサシステムにおいて,OSが,
プロセッサグループ数を含むハードウェアの構成情報を
入手する。これにより,OSは,システムに存在するプ
ロセッサグループを認識できるので,プロセッサグルー
プを意識した資源管理が可能となる。
当該複数プロセッサが共有するキャッシュメモリ(L2
キャッシュ)があり,このプロセッサ群とL2キャッシ
ュの組合せ(プロセッサグループ)が複数存在する共有
メモリ型マルチプロセッサシステムにおいて,OSが,
プロセッサグループ数を含むハードウェアの構成情報を
入手する。これにより,OSは,システムに存在するプ
ロセッサグループを認識できるので,プロセッサグルー
プを意識した資源管理が可能となる。
【0018】そして,プロセス生成時に,当該プロセス
を動作させるプロセッサグループを選択し,当該プロセ
スの実行時には,前記の決定されたプロセッサグループ
に属するプロセッサで実行するようにスケジュールす
る。これにより,生成されたプロセスを動作させるプロ
セッサグループが1つ決定され,このプロセスは,常に
このプロセッサグループに属するプロセッサ上で動作す
ることになる。
を動作させるプロセッサグループを選択し,当該プロセ
スの実行時には,前記の決定されたプロセッサグループ
に属するプロセッサで実行するようにスケジュールす
る。これにより,生成されたプロセスを動作させるプロ
セッサグループが1つ決定され,このプロセスは,常に
このプロセッサグループに属するプロセッサ上で動作す
ることになる。
【0019】そして,前記のプロセスを動作させるプロ
セッサグループを選択する際には,生成するプロセスの
親プロセスが割り当てられたプロセッサグループと同じ
プロセッサグループを選択する.親子関係にあるプロセ
スの間では,同じデータにアクセスする可能性が高いと
考えられるので,こうすることによりL2キャッシュの
ヒット率をより高くすることが期待できる。
セッサグループを選択する際には,生成するプロセスの
親プロセスが割り当てられたプロセッサグループと同じ
プロセッサグループを選択する.親子関係にあるプロセ
スの間では,同じデータにアクセスする可能性が高いと
考えられるので,こうすることによりL2キャッシュの
ヒット率をより高くすることが期待できる。
【0020】
【発明の実施の形態】以下,本発明の第1の実施例を,
図面により詳細に説明する。
図面により詳細に説明する。
【0021】図1は、本発明の第1の実施例を実施する
計算機システムである共有メモリ型マルチプロセッサシ
ステムの構成を示す図である。プロセッサメモリモジュ
ール1700は,プロセッサ(CPU)1000,バス
1100,プロセッサメモリコントローラ1200,メ
モリ1300,メモリ入出力インタフェース1400,
バス1500,およびL2キャッシュ1600から構成
される.複数台のプロセッサ1000は,バス1100
によりプロセッサメモリコントローラ1200と接続さ
れる。この例ではプロセッサ1000は4台が搭載され
ているが,これは何台でも構わない。メモリ1300
は,メモリ入出力インタフェース1400と接続され,
メモリ入出力インタフェース1400はバス1500に
よりプロセッサメモリコントローラ1200と接続され
る。メモリ入出力インタフェース1400にはI/O装
置が接続される。さらに,プロセッサメモリコントロー
ラ1200にはL2キャッシュ1600が接続される。
そして,プロセッサメモリコントローラ1200がシス
テムコネクション1800に接続されているシステムコ
ネクション1800は複数のプロセッサメモリモジュー
ル1700と接続されている。この例では2個のプロセ
ッサメモリモジュール1700がシステムコネクション
1800に接続されているが,これは何個でも構わな
い。この構成で,L2キャッシュ1600は,プロセッ
サ1000により共有される。そして,各プロセッサメ
モリモジュール1700上の各メモリ1300は,論理
的には1つに見える。更に,システムコネクション18
00には,サービスプロセッサ(SVP)1900が接
続される。このサービスプロセッサ1900は,この計
算機システム全体を管理する計算機であり,システム構
成情報等を管理する。システム構成情報については,図
2で後述する。そして,サービスプロセッサ1900に
接続されるディスク装置2000およびサービスプロセ
ッサ1900自身のメモリにシステム構成情報が格納さ
れる。
計算機システムである共有メモリ型マルチプロセッサシ
ステムの構成を示す図である。プロセッサメモリモジュ
ール1700は,プロセッサ(CPU)1000,バス
1100,プロセッサメモリコントローラ1200,メ
モリ1300,メモリ入出力インタフェース1400,
バス1500,およびL2キャッシュ1600から構成
される.複数台のプロセッサ1000は,バス1100
によりプロセッサメモリコントローラ1200と接続さ
れる。この例ではプロセッサ1000は4台が搭載され
ているが,これは何台でも構わない。メモリ1300
は,メモリ入出力インタフェース1400と接続され,
メモリ入出力インタフェース1400はバス1500に
よりプロセッサメモリコントローラ1200と接続され
る。メモリ入出力インタフェース1400にはI/O装
置が接続される。さらに,プロセッサメモリコントロー
ラ1200にはL2キャッシュ1600が接続される。
そして,プロセッサメモリコントローラ1200がシス
テムコネクション1800に接続されているシステムコ
ネクション1800は複数のプロセッサメモリモジュー
ル1700と接続されている。この例では2個のプロセ
ッサメモリモジュール1700がシステムコネクション
1800に接続されているが,これは何個でも構わな
い。この構成で,L2キャッシュ1600は,プロセッ
サ1000により共有される。そして,各プロセッサメ
モリモジュール1700上の各メモリ1300は,論理
的には1つに見える。更に,システムコネクション18
00には,サービスプロセッサ(SVP)1900が接
続される。このサービスプロセッサ1900は,この計
算機システム全体を管理する計算機であり,システム構
成情報等を管理する。システム構成情報については,図
2で後述する。そして,サービスプロセッサ1900に
接続されるディスク装置2000およびサービスプロセ
ッサ1900自身のメモリにシステム構成情報が格納さ
れる。
【0022】図2で,この共有メモリ型マルチプロセッ
サシステムのメモリ構成を説明する。図1に示したよう
に,この例では,プロセッサメモリモジュール1700
が2個あるとしており,それぞれにメモリ1300が搭
載されている。ここで,1つ目のプロセッサメモリモジ
ュール(プロセッサメモリモジュール1)のメモリの容
量をA1バイト,2つ目のプロセッサメモリモジュール
(プロセッサメモリモジュール2)のメモリの容量をA
2バイトとする。プロセッサメモリモジュール1のメモ
リの実アドレスとしては「0」から「A1−1」を割当
て,プロセッサメモリモジュール2のメモリの実アドレ
スとしては「A1」から「A1+A2−1」を割り当て
る。これにより,この共有メモリ型マルチプロセッサシ
ステムとしては,論理的には「A1+A2」バイトのメ
モリが存在することになる。
サシステムのメモリ構成を説明する。図1に示したよう
に,この例では,プロセッサメモリモジュール1700
が2個あるとしており,それぞれにメモリ1300が搭
載されている。ここで,1つ目のプロセッサメモリモジ
ュール(プロセッサメモリモジュール1)のメモリの容
量をA1バイト,2つ目のプロセッサメモリモジュール
(プロセッサメモリモジュール2)のメモリの容量をA
2バイトとする。プロセッサメモリモジュール1のメモ
リの実アドレスとしては「0」から「A1−1」を割当
て,プロセッサメモリモジュール2のメモリの実アドレ
スとしては「A1」から「A1+A2−1」を割り当て
る。これにより,この共有メモリ型マルチプロセッサシ
ステムとしては,論理的には「A1+A2」バイトのメ
モリが存在することになる。
【0023】図3に,サービスプロセッサ1900に接
続されるディスク装置2000およびサービスプロセッ
サ1900自身のメモリに格納されるシステム構成情報
2100を示す。システム構成情報2100は,ヘッダ
部2110とデータ部2150から成る。ヘッダ部21
10には,このシステムを構成するプロセッサメモリモ
ジュール(PMM)1700の数を格納するためのPM
M数領域2115がある。そして,データ部2150に
はPMM数領域2115に示されるだけの各プロセッサ
メモリモジュール(PMM)1700に関する情報が格
納される。プロセッサ数領域2155には当該プロセッ
サメモリモジュールに搭載されるプロセッサ数が,実ア
ドレスの下限領域2160には当該プロセッサメモリモ
ジュールのメモリに割り当てられた実アドレスの下限値
が,実アドレスの上限領域2165には当該プロセッサ
メモリモジュールのメモリに割り当てられた実アドレス
の上限値がそれぞれ格納される。以下,このような各プ
ロセッサメモリモジュールに関する情報が続けて格納さ
れる。先ほどの例だと,PMM数領域2115には
「2」が設定され,プロセッサメモリモジュール1のプ
ロセッサ数領域2155には「4」が,実アドレスの下
限領域2160には「0」が,実アドレスの上限領域2
165には「A1−1」が設定され,プロセッサメモリ
モジュール2のプロセッサ数領域2155には「4」
が,実アドレスの下限領域2160には「A1」が,実
アドレスの上限領域2165には「A1+A2−1」が
設定される.このシステム構成情報2100の内容は,
システムの電源投入時あるいはシステム構成変更時にハ
ードウェアによって設定される。OSは,専用の命令を
発行することによりシステム構成情報2100をOS自
身の領域に読み込む。これにより,OSは,各プロセッ
サメモリモジュール1700のメモリに割り当てられた
実アドレスを認識することが可能となる。
続されるディスク装置2000およびサービスプロセッ
サ1900自身のメモリに格納されるシステム構成情報
2100を示す。システム構成情報2100は,ヘッダ
部2110とデータ部2150から成る。ヘッダ部21
10には,このシステムを構成するプロセッサメモリモ
ジュール(PMM)1700の数を格納するためのPM
M数領域2115がある。そして,データ部2150に
はPMM数領域2115に示されるだけの各プロセッサ
メモリモジュール(PMM)1700に関する情報が格
納される。プロセッサ数領域2155には当該プロセッ
サメモリモジュールに搭載されるプロセッサ数が,実ア
ドレスの下限領域2160には当該プロセッサメモリモ
ジュールのメモリに割り当てられた実アドレスの下限値
が,実アドレスの上限領域2165には当該プロセッサ
メモリモジュールのメモリに割り当てられた実アドレス
の上限値がそれぞれ格納される。以下,このような各プ
ロセッサメモリモジュールに関する情報が続けて格納さ
れる。先ほどの例だと,PMM数領域2115には
「2」が設定され,プロセッサメモリモジュール1のプ
ロセッサ数領域2155には「4」が,実アドレスの下
限領域2160には「0」が,実アドレスの上限領域2
165には「A1−1」が設定され,プロセッサメモリ
モジュール2のプロセッサ数領域2155には「4」
が,実アドレスの下限領域2160には「A1」が,実
アドレスの上限領域2165には「A1+A2−1」が
設定される.このシステム構成情報2100の内容は,
システムの電源投入時あるいはシステム構成変更時にハ
ードウェアによって設定される。OSは,専用の命令を
発行することによりシステム構成情報2100をOS自
身の領域に読み込む。これにより,OSは,各プロセッ
サメモリモジュール1700のメモリに割り当てられた
実アドレスを認識することが可能となる。
【0024】図4には,OS内のプロセッサメモリモジ
ュール管理テーブル4000とプロセス管理テーブル4
500を示す.プロセッサメモリモジュール管理テーブ
ル4000は,プロセッサメモリモジュール管理テーブ
ルへのポインタ4005,プロセッサ数領域4010,
実アドレスの下限領域4020,実アドレスの上限領域
4030,プロセスリストヘッダ部4040,レディキ
ュー4050,メモリ割当て量カウンタ4060,およ
びメモリ容量4070から成る。プロセッサメモリモジ
ュール管理テーブルへのポインタ4005は,この他の
プロセッサメモリモジュール管理テーブルへのポインタ
であり,これをたどることによりすべてのプロセッサメ
モリモジュール管理テーブルをサーチできる。プロセッ
サ数領域4010,実アドレスの下限領域4020,お
よび実アドレスの上限領域4030の意味は,図3に示
したシステム構成情報2100の場合と同様であり,そ
の内容がそのまま格納される。そして,プロセスリスト
ヘッダ部4040は,当該プロセッサメモリモジュール
に割り当てられたプロセスのプロセス管理テーブル45
00のリストのヘッダ部である.このリストをたどるこ
とにより,当該プロセッサメモリモジュールに割り当て
られたプロセスのプロセス管理テーブル4500をサー
チできる。レディキュー4050は,当該プロセッサメ
モリモジュールが割り当てられたプロセスのうちで実行
可能プロセスが登録されるキューである。メモリ割当て
量カウンタ4060は,メモリの割当ておよび解放処理
において更新され,当該プロセッサメモリモジュール上
のメモリ1300のうちで実際に割り当てられて使用中
の量を示す。メモリ容量4070は,当該プロセッサメ
モリモジュール上のメモリ1300の容量を示す。
ュール管理テーブル4000とプロセス管理テーブル4
500を示す.プロセッサメモリモジュール管理テーブ
ル4000は,プロセッサメモリモジュール管理テーブ
ルへのポインタ4005,プロセッサ数領域4010,
実アドレスの下限領域4020,実アドレスの上限領域
4030,プロセスリストヘッダ部4040,レディキ
ュー4050,メモリ割当て量カウンタ4060,およ
びメモリ容量4070から成る。プロセッサメモリモジ
ュール管理テーブルへのポインタ4005は,この他の
プロセッサメモリモジュール管理テーブルへのポインタ
であり,これをたどることによりすべてのプロセッサメ
モリモジュール管理テーブルをサーチできる。プロセッ
サ数領域4010,実アドレスの下限領域4020,お
よび実アドレスの上限領域4030の意味は,図3に示
したシステム構成情報2100の場合と同様であり,そ
の内容がそのまま格納される。そして,プロセスリスト
ヘッダ部4040は,当該プロセッサメモリモジュール
に割り当てられたプロセスのプロセス管理テーブル45
00のリストのヘッダ部である.このリストをたどるこ
とにより,当該プロセッサメモリモジュールに割り当て
られたプロセスのプロセス管理テーブル4500をサー
チできる。レディキュー4050は,当該プロセッサメ
モリモジュールが割り当てられたプロセスのうちで実行
可能プロセスが登録されるキューである。メモリ割当て
量カウンタ4060は,メモリの割当ておよび解放処理
において更新され,当該プロセッサメモリモジュール上
のメモリ1300のうちで実際に割り当てられて使用中
の量を示す。メモリ容量4070は,当該プロセッサメ
モリモジュール上のメモリ1300の容量を示す。
【0025】プロセス管理テーブル4500は,プロセ
ッサメモリモジュール管理テーブルへのポインタ451
0,次のプロセス管理テーブルへのポインタ4520,
親プロセスへのポインタ4530およびその他のプロセ
ス管理情報領域4540から成る。プロセッサメモリモ
ジュール管理テーブルへのポインタ4510は,当該プ
ロセスが割り当てられたプロセッサメモリモジュールの
プロセッサメモリモジュール管理テーブルへのポインタ
である。次のプロセス管理テーブルへのポインタ452
0は,プロセッサメモリモジュール管理テーブル400
0のプロセスリストヘッダ部4040からのリストにお
ける次のプロセス管理テーブルへのポインタである.親
プロセスへのポインタ4530は,当該プロセスの親プ
ロセスのプロセス管理テーブルへのポインタである。
ッサメモリモジュール管理テーブルへのポインタ451
0,次のプロセス管理テーブルへのポインタ4520,
親プロセスへのポインタ4530およびその他のプロセ
ス管理情報領域4540から成る。プロセッサメモリモ
ジュール管理テーブルへのポインタ4510は,当該プ
ロセスが割り当てられたプロセッサメモリモジュールの
プロセッサメモリモジュール管理テーブルへのポインタ
である。次のプロセス管理テーブルへのポインタ452
0は,プロセッサメモリモジュール管理テーブル400
0のプロセスリストヘッダ部4040からのリストにお
ける次のプロセス管理テーブルへのポインタである.親
プロセスへのポインタ4530は,当該プロセスの親プ
ロセスのプロセス管理テーブルへのポインタである。
【0026】図5は,プロセス生成時のプロセッサメモ
リモジュール選択処理のフローチャートである。まず,
プロセス生成要求でのパラメータで指定されたプロセッ
サメモリモジュールを選択する方法を特定し,それに従
って,以下に示すステップ5010,ステップ501
2,およびステップ5014のうちのいずれかを選択し
て実行する(ステップ5005)。すべてのプロセッサ
メモリモジュール管理テーブル4000をサーチして,
メモリ割当て量カウンタ4060の値を調べ,これが最
も小さいプロセッサメモリモジュールを選択する(ステ
ップ5010)。生成するプロセスの親プロセス(この
プロセス生成要求を出したプロセス)のプロセス管理テ
ーブル4500におけるプロセッサメモリモジュール管
理テーブルへのポインタ4510により親プロセスに割
り当てられたプロセッサメモリモジュールがわかる。そ
こで,このプロセッサメモリモジュールを選択する(ス
テップ5012)。生成するプロセスの親プロセス(こ
のプロセス生成要求を出したプロセス)のプロセス管理
テーブル4500におけるプロセッサメモリモジュール
管理テーブルへのポインタ4510により親プロセスに
割り当てられたプロセッサメモリモジュールがわかる。
そこで,このプロセッサメモリモジュール以外のプロセ
ッサメモリモジュールを選択する(ステップ501
4)。プロセッサメモリモジュールの選択方法として
は,以上に示した方法の他にも,ランダムに選択する,
ラウンドロビンで順番に選択する,プロセッサメモリモ
ジュールを構成する各プロセッサの利用率をモニタして
利用率が最低のプロセッサメモリモジュールを選択す
る,プロセス生成要求を受け取ったプロセッサが属する
プロセッサメモリモジュールを無条件に選択する,とい
った方法が考えられる。次に,選択したプロセッサメモ
リモジュール上のメモリに,このプロセスのためのプロ
セス管理テーブル4500を確保し,通常のプロセス生
成処理を実行する(ステップ5015)。次に,当該プ
ロセスのプロセス管理テーブル4500のプロセッサメ
モリモジュール管理テーブルへのポインタ4510に,
選択したプロセッサメモリモジュールのプロセッサメモ
リモジュール管理テーブル4000のアドレスをセット
する(ステップ5020)。そして,選択したプロセッ
サメモリモジュールのプロセッサメモリモジュール管理
テーブル4000のプロセスリストヘッダ部4040か
らのリストに,当該プロセスのプロセス管理テーブル4
500を追加する(ステップ5030)。さらに,選択
したプロセッサメモリモジュールのレディキュー405
0に当該プロセスを登録する(ステップ5040)。
リモジュール選択処理のフローチャートである。まず,
プロセス生成要求でのパラメータで指定されたプロセッ
サメモリモジュールを選択する方法を特定し,それに従
って,以下に示すステップ5010,ステップ501
2,およびステップ5014のうちのいずれかを選択し
て実行する(ステップ5005)。すべてのプロセッサ
メモリモジュール管理テーブル4000をサーチして,
メモリ割当て量カウンタ4060の値を調べ,これが最
も小さいプロセッサメモリモジュールを選択する(ステ
ップ5010)。生成するプロセスの親プロセス(この
プロセス生成要求を出したプロセス)のプロセス管理テ
ーブル4500におけるプロセッサメモリモジュール管
理テーブルへのポインタ4510により親プロセスに割
り当てられたプロセッサメモリモジュールがわかる。そ
こで,このプロセッサメモリモジュールを選択する(ス
テップ5012)。生成するプロセスの親プロセス(こ
のプロセス生成要求を出したプロセス)のプロセス管理
テーブル4500におけるプロセッサメモリモジュール
管理テーブルへのポインタ4510により親プロセスに
割り当てられたプロセッサメモリモジュールがわかる。
そこで,このプロセッサメモリモジュール以外のプロセ
ッサメモリモジュールを選択する(ステップ501
4)。プロセッサメモリモジュールの選択方法として
は,以上に示した方法の他にも,ランダムに選択する,
ラウンドロビンで順番に選択する,プロセッサメモリモ
ジュールを構成する各プロセッサの利用率をモニタして
利用率が最低のプロセッサメモリモジュールを選択す
る,プロセス生成要求を受け取ったプロセッサが属する
プロセッサメモリモジュールを無条件に選択する,とい
った方法が考えられる。次に,選択したプロセッサメモ
リモジュール上のメモリに,このプロセスのためのプロ
セス管理テーブル4500を確保し,通常のプロセス生
成処理を実行する(ステップ5015)。次に,当該プ
ロセスのプロセス管理テーブル4500のプロセッサメ
モリモジュール管理テーブルへのポインタ4510に,
選択したプロセッサメモリモジュールのプロセッサメモ
リモジュール管理テーブル4000のアドレスをセット
する(ステップ5020)。そして,選択したプロセッ
サメモリモジュールのプロセッサメモリモジュール管理
テーブル4000のプロセスリストヘッダ部4040か
らのリストに,当該プロセスのプロセス管理テーブル4
500を追加する(ステップ5030)。さらに,選択
したプロセッサメモリモジュールのレディキュー405
0に当該プロセスを登録する(ステップ5040)。
【0027】図6は,メモり割当て処理のフローチャー
トである。まず,メモリ割当て要求でのパラメータにお
いて指定された,要求されたメモリを割り当てるプロセ
ッサメモリモジュールを選択する方法を特定し,それに
従って,以下に示すステップ6010,およびステップ
6012のうちのいずれかを選択して実行する(ステッ
プ6005)。メモリ割当てを要求したプロセスのプロ
セス管理テーブル4500のプロセッサメモリモジュー
ル管理テーブルへのポインタ4510により,当該プロ
セスに割り当てられたプロセッサメモリモジュールを選
択する(ステップ6010)。メモリ割当てを要求した
プロセスのプロセス管理テーブル4500のプロセッサ
メモリモジュール管理テーブルへのポインタ4510に
より,当該プロセスに割り当てられたのとは異なるプロ
セッサメモリモジュールを選択する(ステップ601
2)。選択したプロセッサメモリモジュール管理テーブ
ル4000のメモリ割当て量カウンタ4060およびメ
モリ容量4070から空きメモリ量を算出し,空きメモ
リ量と要求メモリ量の関係を調べる(ステップ601
8),空きメモリ量が要求メモリ量より大きいか等しい
場合には,このプロセッサメモリモジュールのメモリを
割り当て(ステップ6020),メモリ割当て量カウン
タ4060を,ここで割り当てたメモリ量に従って修正
する(ステップ6030)。一方,空きメモリ量が要求
メモリ量より小さい場合に,すべてのプロセッサメモリ
モジュールについて調べていれば(ただし,ステップ6
012の処理を行なった場合は,プロセスに割り当てら
れたのと同じプロセッサメモリモジュールは調べない)
(ステップ6040),ステップ6010あるいはステ
ップ6012で選択したプロセッサメモリモジュールの
メモリに関してページングを行ないメモリを割り当て
(ステップ6050),メモリ割当て量カウンタ406
0を,ここで割り当てたメモリ量に従って修正する(ス
テップ6030)。すべてのプロセッサメモリモジュー
ルについて調べていなければ(ステップ6040),次
のプロセッサメモリモジュールを選択して(ステップ6
060),ステップ6010の処理に戻る。
トである。まず,メモリ割当て要求でのパラメータにお
いて指定された,要求されたメモリを割り当てるプロセ
ッサメモリモジュールを選択する方法を特定し,それに
従って,以下に示すステップ6010,およびステップ
6012のうちのいずれかを選択して実行する(ステッ
プ6005)。メモリ割当てを要求したプロセスのプロ
セス管理テーブル4500のプロセッサメモリモジュー
ル管理テーブルへのポインタ4510により,当該プロ
セスに割り当てられたプロセッサメモリモジュールを選
択する(ステップ6010)。メモリ割当てを要求した
プロセスのプロセス管理テーブル4500のプロセッサ
メモリモジュール管理テーブルへのポインタ4510に
より,当該プロセスに割り当てられたのとは異なるプロ
セッサメモリモジュールを選択する(ステップ601
2)。選択したプロセッサメモリモジュール管理テーブ
ル4000のメモリ割当て量カウンタ4060およびメ
モリ容量4070から空きメモリ量を算出し,空きメモ
リ量と要求メモリ量の関係を調べる(ステップ601
8),空きメモリ量が要求メモリ量より大きいか等しい
場合には,このプロセッサメモリモジュールのメモリを
割り当て(ステップ6020),メモリ割当て量カウン
タ4060を,ここで割り当てたメモリ量に従って修正
する(ステップ6030)。一方,空きメモリ量が要求
メモリ量より小さい場合に,すべてのプロセッサメモリ
モジュールについて調べていれば(ただし,ステップ6
012の処理を行なった場合は,プロセスに割り当てら
れたのと同じプロセッサメモリモジュールは調べない)
(ステップ6040),ステップ6010あるいはステ
ップ6012で選択したプロセッサメモリモジュールの
メモリに関してページングを行ないメモリを割り当て
(ステップ6050),メモリ割当て量カウンタ406
0を,ここで割り当てたメモリ量に従って修正する(ス
テップ6030)。すべてのプロセッサメモリモジュー
ルについて調べていなければ(ステップ6040),次
のプロセッサメモリモジュールを選択して(ステップ6
060),ステップ6010の処理に戻る。
【0028】以下,本発明の第2の実施例を,図面によ
り詳細に説明する。
り詳細に説明する。
【0029】図7は、本発明の第2の実施例を実施する
計算機システムである共有メモリ型マルチプロセッサシ
ステムの構成を示す図である。プロセッサグループ77
00は,プロセッサ(CPU)7000,バス710
0,キャッシュコントローラ7200,およびL2キャ
ッシュ7600から構成される。複数台のプロセッサ7
000は,バス7100によりプロセッサメモリコント
ローラ7200と接続される。この例ではプロセッサ7
000は4台が搭載されているが,これは何台でも構わ
ない。さらに,キャッシュコントローラ7200にはL
2キャッシュ7600が接続される。そして,キャッシ
ュコントローラ7200がシステムコネクション780
0に接続されている。システムコネクション7800は
複数のプロセッサグループ7700が接続されている。
この例では2個のプロセッサグループ7700がシステ
ムコネクション7800に接続されているが,これは何
個でも構わない.そして,システムコネクション780
0にはメモリ7300も接続される。このメモリ730
0は,すべてのプロセッサ7000から共有される。こ
の構成で,L2キャッシュ7600は,プロセッサ70
00により共有される。更に,システムコネクション7
800には,サービスプロセッサ(SVP)7900が
接続される。このサービスプロセッサ7900は,この
計算機システム全体を管理する計算機であり,システム
構成情報等を管理する。システム構成情報については,
図8で後述する。そして,サービスプロセッサ7900
に接続されるディスク装置7950およびサービスプロ
セッサ7900自身のメモリにシステム構成情報が格納
される。
計算機システムである共有メモリ型マルチプロセッサシ
ステムの構成を示す図である。プロセッサグループ77
00は,プロセッサ(CPU)7000,バス710
0,キャッシュコントローラ7200,およびL2キャ
ッシュ7600から構成される。複数台のプロセッサ7
000は,バス7100によりプロセッサメモリコント
ローラ7200と接続される。この例ではプロセッサ7
000は4台が搭載されているが,これは何台でも構わ
ない。さらに,キャッシュコントローラ7200にはL
2キャッシュ7600が接続される。そして,キャッシ
ュコントローラ7200がシステムコネクション780
0に接続されている。システムコネクション7800は
複数のプロセッサグループ7700が接続されている。
この例では2個のプロセッサグループ7700がシステ
ムコネクション7800に接続されているが,これは何
個でも構わない.そして,システムコネクション780
0にはメモリ7300も接続される。このメモリ730
0は,すべてのプロセッサ7000から共有される。こ
の構成で,L2キャッシュ7600は,プロセッサ70
00により共有される。更に,システムコネクション7
800には,サービスプロセッサ(SVP)7900が
接続される。このサービスプロセッサ7900は,この
計算機システム全体を管理する計算機であり,システム
構成情報等を管理する。システム構成情報については,
図8で後述する。そして,サービスプロセッサ7900
に接続されるディスク装置7950およびサービスプロ
セッサ7900自身のメモリにシステム構成情報が格納
される。
【0030】図8に,サービスプロセッサ7900に接
続されるディスク装置7950およびサービスプロセッ
サ7900自身のメモリに格納されるシステム構成情報
8100を示す。システム構成情報8100は,ヘッダ
部8110とデータ部8150から成る。ヘッダ部81
10には,このシステムを構成するプロセッサグループ
7700の数を格納するためのプロセッサグループ数領
域8115がある。そして,データ部8150にはプロ
セッサグループ数領域8115に示されるだけの各プロ
セッサグループ8700に関する情報が格納される。プ
ロセッサ数領域8155には当該プロセッサグループに
搭載されるプロセッサ数が格納される。以下,このよう
な各プロセッサグループに関する情報が続けて格納され
る。先ほどの例だと,プロセッサグループ数領域811
5には「2」が設定され,プロセッサグループ1のプロ
セッサ数領域8155には「4」が,プロセッサグルー
プ2のプロセッサ数領域8160には「4」が設定され
る。このシステム構成情報8100の内容は,システム
の電源投入時あるいはシステム構成変更時にハードウェ
アによって設定される。Sは,専用の命令を発行するこ
とによりシステム構成情報8100をOS自身の領域に
読み込む。
続されるディスク装置7950およびサービスプロセッ
サ7900自身のメモリに格納されるシステム構成情報
8100を示す。システム構成情報8100は,ヘッダ
部8110とデータ部8150から成る。ヘッダ部81
10には,このシステムを構成するプロセッサグループ
7700の数を格納するためのプロセッサグループ数領
域8115がある。そして,データ部8150にはプロ
セッサグループ数領域8115に示されるだけの各プロ
セッサグループ8700に関する情報が格納される。プ
ロセッサ数領域8155には当該プロセッサグループに
搭載されるプロセッサ数が格納される。以下,このよう
な各プロセッサグループに関する情報が続けて格納され
る。先ほどの例だと,プロセッサグループ数領域811
5には「2」が設定され,プロセッサグループ1のプロ
セッサ数領域8155には「4」が,プロセッサグルー
プ2のプロセッサ数領域8160には「4」が設定され
る。このシステム構成情報8100の内容は,システム
の電源投入時あるいはシステム構成変更時にハードウェ
アによって設定される。Sは,専用の命令を発行するこ
とによりシステム構成情報8100をOS自身の領域に
読み込む。
【0031】図9には,OS内のプロセッサグループ管
理テーブル9000とプロセス管理テーブル9500を
示す。プロセッサグループ管理テーブル9000は,プ
ロセッサグループ管理テーブルへのポインタ9005,
プロセッサ数領域9010,プロセスリストヘッダ部9
040,およびレディキュー9050から成る。プロセ
ッサグループ管理テーブルへのポインタ9005は,こ
の他のプロセッサグループ管理テーブルへのポインタで
あり,これをたどることによりすべてのプロセッサグル
ープ管理テーブルをサーチできる。プロセッサ数領域9
010の意味は,図8に示したシステム構成情報810
0の場合と同様であり,その内容がそのまま格納され
る。そして,プロセスリストヘッダ部9040は,当該
プロセッサグループに割り当てられたプロセスのプロセ
ス管理テーブル9500のリストのヘッダ部である。こ
のリストをたどることにより,当該プロセッサグループ
に割り当てられたプロセスのプロセス管理テーブル95
00をサーチできる。レディキュー9050は,当該プ
ロセッサグループが割り当てられたプロセスのうちで実
行可能プロセスが登録されるキューである。
理テーブル9000とプロセス管理テーブル9500を
示す。プロセッサグループ管理テーブル9000は,プ
ロセッサグループ管理テーブルへのポインタ9005,
プロセッサ数領域9010,プロセスリストヘッダ部9
040,およびレディキュー9050から成る。プロセ
ッサグループ管理テーブルへのポインタ9005は,こ
の他のプロセッサグループ管理テーブルへのポインタで
あり,これをたどることによりすべてのプロセッサグル
ープ管理テーブルをサーチできる。プロセッサ数領域9
010の意味は,図8に示したシステム構成情報810
0の場合と同様であり,その内容がそのまま格納され
る。そして,プロセスリストヘッダ部9040は,当該
プロセッサグループに割り当てられたプロセスのプロセ
ス管理テーブル9500のリストのヘッダ部である。こ
のリストをたどることにより,当該プロセッサグループ
に割り当てられたプロセスのプロセス管理テーブル95
00をサーチできる。レディキュー9050は,当該プ
ロセッサグループが割り当てられたプロセスのうちで実
行可能プロセスが登録されるキューである。
【0032】プロセス管理テーブル9500は,プロセ
ッサグループ管理テーブルへのポインタ9510,次の
プロセス管理テーブルへのポインタ9520,親プロセ
スへのポインタ9530,およびその他のプロセス管理
情報領域9540から成る.プロセッサグループ管理テ
ーブルへのポインタ9510は,当該プロセスが割り当
てられたプロセッサグループのプロセッサグループ管理
テーブルへのポインタである。次のプロセス管理テーブ
ルへのポインタ9520は,プロセッサグループ管理テ
ーブル9000のプロセスリストヘッダ部9040から
のリストにおける次のプロセス管理テーブルへのポイン
タである。親プロセスへのポインタ9530は,当該プ
ロセスの親プロセスのプロセス管理テーブルへのポイン
タである。
ッサグループ管理テーブルへのポインタ9510,次の
プロセス管理テーブルへのポインタ9520,親プロセ
スへのポインタ9530,およびその他のプロセス管理
情報領域9540から成る.プロセッサグループ管理テ
ーブルへのポインタ9510は,当該プロセスが割り当
てられたプロセッサグループのプロセッサグループ管理
テーブルへのポインタである。次のプロセス管理テーブ
ルへのポインタ9520は,プロセッサグループ管理テ
ーブル9000のプロセスリストヘッダ部9040から
のリストにおける次のプロセス管理テーブルへのポイン
タである。親プロセスへのポインタ9530は,当該プ
ロセスの親プロセスのプロセス管理テーブルへのポイン
タである。
【0033】図10は,プロセス生成時のプロセッサグ
ループ選択処理のフローチャートである.生成するプロ
セスのためのプロセス管理テーブル9500を確保し,
通常のプロセス生成処理を実行する(ステップ981
0)。このステップにおいて親プロセスへのポインタ9
530には当該プロセスの親プロセスのプロセス管理テ
ーブルのアドレスがセットされる.次に,プロセス生成
要求でのパラメータで指定されたプロセッサメモリモジ
ュールを選択する方法を特定し,それに従って,以下に
示すステップ9814,およびステップ9816のうち
のいずれかを選択して実行する(ステップ9812)。
親プロセスへのポインタ9530をたどって,親プロセ
スのプロセス管理テーブル9500のプロセッサグルー
プ管理テーブルへのポインタ9510により親プロセス
に割り当てられたプロセッサグループがわかる。そこ
で,親プロセスのプロセス管理テーブル9500のプロ
セッサメモリモジュール管理テーブルへのポインタ95
10により,親プロセスに割り当てられたの同じプロセ
ッサメモリモジュールを選択する(ステップ981
4)。親プロセスのプロセス管理テーブル9500のプ
ロセッサメモリモジュール管理テーブルへのポインタ9
510により,親プロセスに割り当てられたのとは異な
るプロセッサメモリモジュールを選択する(ステップ9
816)。このプロセッサグループの選択方法として
は,この他にも,ランダムに選択する,ラウンドロビン
で順番に選択する,プロセッサグループを構成する各プ
ロセッサの利用率をモニタして利用率が最低のプロセッ
サグループを選択する,プロセス生成要求を受け取った
プロセッサが属するプロセッサグループを無条件に選択
する,といった方法が考えられる。次に,選択したプロ
セッサグループ管理テーブルのアドレスを,生成したプ
ロセスのプロセス管理テーブル9500のプロセッサグ
ループ管理テーブルへのポインタ9510に格納する
(ステップ9820)。そして,選択したプロセッサグ
ループのプロセッサグループ管理テーブル9000のプ
ロセスリストヘッダ部9040からのリストに,当該プ
ロセスのプロセス管理テーブル9500を追加する(ス
テップ9830)。さらに,選択したプロセッサグルー
プのレディキュー9050に当該プロセスを登録する
(ステップ9840)。
ループ選択処理のフローチャートである.生成するプロ
セスのためのプロセス管理テーブル9500を確保し,
通常のプロセス生成処理を実行する(ステップ981
0)。このステップにおいて親プロセスへのポインタ9
530には当該プロセスの親プロセスのプロセス管理テ
ーブルのアドレスがセットされる.次に,プロセス生成
要求でのパラメータで指定されたプロセッサメモリモジ
ュールを選択する方法を特定し,それに従って,以下に
示すステップ9814,およびステップ9816のうち
のいずれかを選択して実行する(ステップ9812)。
親プロセスへのポインタ9530をたどって,親プロセ
スのプロセス管理テーブル9500のプロセッサグルー
プ管理テーブルへのポインタ9510により親プロセス
に割り当てられたプロセッサグループがわかる。そこ
で,親プロセスのプロセス管理テーブル9500のプロ
セッサメモリモジュール管理テーブルへのポインタ95
10により,親プロセスに割り当てられたの同じプロセ
ッサメモリモジュールを選択する(ステップ981
4)。親プロセスのプロセス管理テーブル9500のプ
ロセッサメモリモジュール管理テーブルへのポインタ9
510により,親プロセスに割り当てられたのとは異な
るプロセッサメモリモジュールを選択する(ステップ9
816)。このプロセッサグループの選択方法として
は,この他にも,ランダムに選択する,ラウンドロビン
で順番に選択する,プロセッサグループを構成する各プ
ロセッサの利用率をモニタして利用率が最低のプロセッ
サグループを選択する,プロセス生成要求を受け取った
プロセッサが属するプロセッサグループを無条件に選択
する,といった方法が考えられる。次に,選択したプロ
セッサグループ管理テーブルのアドレスを,生成したプ
ロセスのプロセス管理テーブル9500のプロセッサグ
ループ管理テーブルへのポインタ9510に格納する
(ステップ9820)。そして,選択したプロセッサグ
ループのプロセッサグループ管理テーブル9000のプ
ロセスリストヘッダ部9040からのリストに,当該プ
ロセスのプロセス管理テーブル9500を追加する(ス
テップ9830)。さらに,選択したプロセッサグルー
プのレディキュー9050に当該プロセスを登録する
(ステップ9840)。
【0034】
【発明の効果】プロセッサメモリモジュールを複数個接
続する共有メモリ型マルチプロセッサシステムにおい
て,特定のプロセッサメモリモジュール上でのプロセス
の実行が可能となり,ローカルのメモリを優先的に割り
当てることができるようになる。これにより,L2キャ
ッシュのヒット率が向上し,システムコネクションのト
ラフィックを低減できる。
続する共有メモリ型マルチプロセッサシステムにおい
て,特定のプロセッサメモリモジュール上でのプロセス
の実行が可能となり,ローカルのメモリを優先的に割り
当てることができるようになる。これにより,L2キャ
ッシュのヒット率が向上し,システムコネクションのト
ラフィックを低減できる。
【0035】プロセス実行およびメモリ割当てを特定の
プロセッサメモリモジュール上で行なう。
プロセッサメモリモジュール上で行なう。
【図1】本発明の第1の実施例を実施する共有メモリ型
マルチプロセッサシステムの構成を示 す図
マルチプロセッサシステムの構成を示 す図
【図2】共有メモリ型マルチプロセッサシステムのメモ
リ構成を説明する図
リ構成を説明する図
【図3】システム構成情報2100を示す図
【図4】OS内のプロセッサメモリモジュール管理テー
ブル4000とプロセス管理テーブル 4500を示
す図
ブル4000とプロセス管理テーブル 4500を示
す図
【図5】プロセス生成時のプロセッサメモリモジュール
選択処理のフローチャート
選択処理のフローチャート
【図6】メモり割当て処理のフローチャート
【図7】本発明の第2の実施例を実施する共有メモリ型
マルチプロセッサシステムの構成を示 す図
マルチプロセッサシステムの構成を示 す図
【図8】システム構成情報8100を示す図
【図9】OS内のプロセッサグループ管理テーブル90
00とプロセス管理テーブル9500 を示す図
00とプロセス管理テーブル9500 を示す図
【図10】プロセス生成時のプロセッサグループ選択処
理のフローチャート
理のフローチャート
1000…プロセッサ(CPU)、1100…バス、1
200…プロセッサメモリコントローラ、1300…メ
モリ、1400…メモリ入出力インタフェース、150
0…バス、1600…L2キャッシュ、1700…プロ
セッサメモリモジュール、1800…システムコネクシ
ョン、1900…サービスプロセッサ、2000…ディ
スク装置、2100…システム構成情報、4000…プ
ロセッサメモリモジュール管理テーブル、4500…プ
ロセス管理テーブル、7000…プロセッサ(CP
U)、7100…バス、7200…キャッシュコントロ
ーラ、7300…メモリ、7600…L2キャッシュ、
7700…プロセッサグループ、7800…システムコ
ネクション、7900…サービスプロセッサ、7950
…ディスク装置、8100…システム構成情報、900
0…プロセッサグループ管理テーブル、9500…プロ
セス管理テーブル
200…プロセッサメモリコントローラ、1300…メ
モリ、1400…メモリ入出力インタフェース、150
0…バス、1600…L2キャッシュ、1700…プロ
セッサメモリモジュール、1800…システムコネクシ
ョン、1900…サービスプロセッサ、2000…ディ
スク装置、2100…システム構成情報、4000…プ
ロセッサメモリモジュール管理テーブル、4500…プ
ロセス管理テーブル、7000…プロセッサ(CP
U)、7100…バス、7200…キャッシュコントロ
ーラ、7300…メモリ、7600…L2キャッシュ、
7700…プロセッサグループ、7800…システムコ
ネクション、7900…サービスプロセッサ、7950
…ディスク装置、8100…システム構成情報、900
0…プロセッサグループ管理テーブル、9500…プロ
セス管理テーブル
Claims (9)
- 【請求項1】複数のプロセッサと,当該複数プロセッサ
が共有するキャッシュメモリ(L2キャッシュ)と,メ
モリとが搭載されるプロセッサメモリモジュールがあ
り,当該プロセッサメモリモジュールを複数個接続する
共有メモリ型マルチプロセッサシステムにおいて,各プ
ロセッサメモリモジュールに搭載されるメモリの実アド
レスの下限値および上限値,システムを構成するプロセ
ッサメモリモジュール数,および各プロセッサメモリモ
ジュールに搭載されるプロセッサ数を含むハードウェア
の構成情報を,オペレーティングシステムが入手するス
テップと,プロセス生成要求時に,該プロセスを動作さ
せるプロセッサメモリモジュールを選択する方法を指定
するステップと,前記の指定されたプロセッサメモリモ
ジュールを選択する方法に従って,当該プロセスを動作
させるプロセッサメモリモジュールを選択するステップ
と,当該プロセスの実行時には,前記の選択したプロセ
ッサメモリモジュールに属するプロセッサで実行するよ
うにスケジュールするステップと,メモリ割当て要求時
に,要求されたメモリを割り当てるプロセッサメモリモ
ジュールを選択する方法を指定するステップと,前記の
指定されたプロセッサメモリモジュールを選択する方法
に従って,メモリを割当るプロセッサメモリモジュール
を選択するステップと,を有することを特徴とする共有
メモリ型マルチプロセッサシステムの資源管理方法。 - 【請求項2】請求項1の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記のプロセスを動
作させるプロセッサメモリモジュールを選択する方法
は,メモリの空き容量が最大であるようなプロセッサメ
モリモジュールを選択することであることを特徴とする
共有メモリ型マルチプロセッサシステムの資源管理方
法。 - 【請求項3】請求項1の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記のプロセスを動
作させるプロセッサメモリモジュールを選択する方法
は,生成するプロセスの親プロセスが割り当てられたプ
ロセッサメモリモジュールと同じプロセッサメモリモジ
ュールを選択することであることを特徴とする共有メモ
リ型マルチプロセッサシステムの資源管理方法。 - 【請求項4】請求項1の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記のプロセスを動
作させるプロセッサメモリモジュールを選択する方法
は,生成するプロセスの親プロセスが割り当てられたプ
ロセッサメモリモジュールとは異なるプロセッサメモリ
モジュールを選択することであることを特徴とする共有
メモリ型マルチプロセッサシステムの資源管理方法。 - 【請求項5】請求項1の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記の要求されたメ
モリを割り当てるプロセッサメモリモジュールを選択す
る方法は,当該メモリ要求を出したプロセスのプロセス
生成時に選択されたのと同じプロセッサメモリモジュー
ルを選択することであることを特徴とする共有メモリ型
マルチプロセッサシステムの資源管理方法。 - 【請求項6】請求項1の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記の要求されたメ
モリを割り当てるプロセッサメモリモジュールを選択す
る方法は,当該メモリ要求を出したプロセスのプロセス
生成時に選択されたのとは異なるプロセッサメモリモジ
ュールを選択することであることを特徴とする共有メモ
リ型マルチプロセッサシステムの資源管理方法。 - 【請求項7】複数のプロセッサと,当該複数プロセッサ
が共有するキャッシュメモリ(L2キャッシュ)があ
り,このプロセッサ群とL2キャッシュの組合せ(プロ
セッサグループ)が複数存在する共有メモリ型マルチプ
ロセッサシステムにおいて,オペレーティングシステム
が,プロセッサグループ数と各プロセッサグループに属
するプロセッサ数を含むハードウェアの構成情報を入手
するステップと,プロセス生成要求時に,該プロセスを
動作させるプロセッサグループを選択する方法を指定す
るステップと,前記の指定されたプロセッサグループを
選択する方法に従って,当該プロセスを動作させるプロ
セッサグループを選択するステップと,当該プロセスの
実行時には,前記の選択したプロセッサグループに属す
るプロセッサで実行するようにスケジュールするステッ
プを有することを特徴とする共有メモリ型マルチプロセ
ッサシステムの資源管理方法。 - 【請求項8】請求項7の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記のプロセスを動
作させるプロセッサグループを選択する方法は,生成す
るプロセスの親プロセスが割り当てられたプロセッサグ
ループと同じプロセッサメモリモジュールを選択するこ
とであることを特徴とする共有メモリ型マルチプロセッ
サシステムの資源管理方法。 - 【請求項9】請求項7の共有メモリ型マルチプロセッサ
システムの資源管理方法において,前記のプロセスを動
作させるプロセッサグループを選択する方法は,生成す
るプロセスの親プロセスが割り当てられたプロセッサグ
ループとは異なるプロセッサグループを選択することで
あることを特徴とする共有メモリ型マルチプロセッサシ
ステムの資源管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29615496A JPH10143382A (ja) | 1996-11-08 | 1996-11-08 | 共有メモリ型マルチプロセッサシステムの資源管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29615496A JPH10143382A (ja) | 1996-11-08 | 1996-11-08 | 共有メモリ型マルチプロセッサシステムの資源管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10143382A true JPH10143382A (ja) | 1998-05-29 |
Family
ID=17829865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29615496A Pending JPH10143382A (ja) | 1996-11-08 | 1996-11-08 | 共有メモリ型マルチプロセッサシステムの資源管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10143382A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000029943A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Processing system scheduling |
US6662203B1 (en) | 1998-11-16 | 2003-12-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Batch-wise handling of signals in a processing system |
US6714961B1 (en) | 1998-11-16 | 2004-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Multiple job signals per processing unit in a multiprocessing system |
WO2007017932A1 (ja) | 2005-08-09 | 2007-02-15 | Fujitsu Limited | スケジュール制御プログラム及びスケジュール制御方法 |
JP2007086909A (ja) * | 2005-09-20 | 2007-04-05 | Nec Corp | コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム |
WO2011114496A1 (ja) * | 2010-03-18 | 2011-09-22 | 富士通株式会社 | マルチコアプロセッサシステム、調停回路制御方法、および調停回路制御プログラム |
WO2012093488A1 (ja) * | 2011-01-07 | 2012-07-12 | 富士通株式会社 | スケジューリング方法、およびマルチコアプロセッサシステム |
JP2014139851A (ja) * | 2014-05-08 | 2014-07-31 | Fujitsu Ltd | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
-
1996
- 1996-11-08 JP JP29615496A patent/JPH10143382A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662203B1 (en) | 1998-11-16 | 2003-12-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Batch-wise handling of signals in a processing system |
US6714961B1 (en) | 1998-11-16 | 2004-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Multiple job signals per processing unit in a multiprocessing system |
WO2000029943A1 (en) * | 1998-11-16 | 2000-05-25 | Telefonaktiebolaget Lm Ericsson | Processing system scheduling |
WO2007017932A1 (ja) | 2005-08-09 | 2007-02-15 | Fujitsu Limited | スケジュール制御プログラム及びスケジュール制御方法 |
US8479205B2 (en) | 2005-08-09 | 2013-07-02 | Fujitsu Limited | Schedule control program and schedule control method |
JP2007086909A (ja) * | 2005-09-20 | 2007-04-05 | Nec Corp | コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム |
US9110733B2 (en) | 2010-03-18 | 2015-08-18 | Fujitsu Limited | Multi-core processor system, arbiter circuit control method, and computer product |
WO2011114496A1 (ja) * | 2010-03-18 | 2011-09-22 | 富士通株式会社 | マルチコアプロセッサシステム、調停回路制御方法、および調停回路制御プログラム |
JP5541355B2 (ja) * | 2010-03-18 | 2014-07-09 | 富士通株式会社 | マルチコアプロセッサシステム、調停回路制御方法、制御方法、および調停回路制御プログラム |
WO2012093488A1 (ja) * | 2011-01-07 | 2012-07-12 | 富士通株式会社 | スケジューリング方法、およびマルチコアプロセッサシステム |
JP5780243B2 (ja) * | 2011-01-07 | 2015-09-16 | 富士通株式会社 | スケジューリング方法、およびマルチコアプロセッサシステム |
US9367459B2 (en) | 2011-01-07 | 2016-06-14 | Fujitsu Limited | Scheduling method and multi-core processor system |
JP2014139851A (ja) * | 2014-05-08 | 2014-07-31 | Fujitsu Ltd | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5784697A (en) | Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture | |
US7299468B2 (en) | Management of virtual machines to utilize shared resources | |
US7743222B2 (en) | Methods, systems, and media for managing dynamic storage | |
US6816947B1 (en) | System and method for memory arbitration | |
US8307053B1 (en) | Partitioned packet processing in a multiprocessor environment | |
US6505286B1 (en) | User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture | |
US20050071564A1 (en) | Reduction of cache miss rates using shared private caches | |
US9354989B1 (en) | Region based admission/eviction control in hybrid aggregates | |
US20070022416A1 (en) | Execution device and application program | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
JPH09237215A (ja) | 非一様メモリ・アクセス・マルチプロセッサ・システム用オペレーティング・システム | |
KR20130100689A (ko) | 확장가능한 맞춤형 균형 부하 물리 메모리 관리 구조 | |
JP2024513076A (ja) | メッセージパッシング回路構成及び方法 | |
US6735613B1 (en) | System for processing by sets of resources | |
JPH10143382A (ja) | 共有メモリ型マルチプロセッサシステムの資源管理方法 | |
US8578383B2 (en) | Intelligent pre-started job affinity for non-uniform memory access computer system | |
CN106537321B (zh) | 存取文件的方法、装置和存储系统 | |
US20060041882A1 (en) | Replication of firmware | |
US20240160487A1 (en) | Flexible gpu resource scheduling method in large-scale container operation environment | |
JPH0522261B2 (ja) | ||
JP2001142723A (ja) | 資源配分方法、計算機システム及び記録媒体 | |
JP2692647B2 (ja) | マルチタスク制御方法および制御システム | |
JPH1165912A (ja) | 並列処理データベースシステム | |
JPH05265844A (ja) | メモリ利用方式 | |
JPH0830512A (ja) | スレッド制御方式 |