(57)【特許請求の範囲】
【請求項１】
独立のメモリを備えた１つ以上の他の情報処理装置と通信回線を介して接続された情報処理装置であって、
他の情報処理装置の物理メモリの管理情報およびプロセス実行のスケジューリング情報を獲得する情報獲得手段と、
該情報獲得手段により獲得された情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定する割当てページ決定手段と、
該割当てページ決定手段により決定された物理ページを備える情報処理装置から、リモートページを確保するリモートページ確保手段と、
実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定するプロセッサ移動判定手段と、
該プロセッサ移動判定手段により、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てるプロセッサ移動割当て手段とを具備したことを特徴とする情報処理装置。
【請求項２】
前記割当ページ決定手段は、フリーなページの多い物理メモリを有する情報処理装置の物理メモリから確保するように決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記割当ページ決定手段は、プロセッサの負荷の小さい情報処理装置の物理メモリから確保するように決定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
独立のメモリを備えた１つ以上の他の情報処理装置と通信回線を介して接続された情報処理装置における情報処理方法であって、
他の情報処理装置の物理メモリの管理情報およびプロセス実行のスケジューリング情報を獲得する情報獲得工程と、
該情報獲得工程により獲得された情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定する割当てページ決定工程と、
該割当てページ決定工程により決定された物理ページを備える情報処理装置から、リモートページを確保するリモートページ確保工程と、
実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定するプロセッサ移動判定工程と、
該プロセッサ移動判定工程により、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てるプロセッサ移動割当て工程とを有することを特徴とする情報処理方法。
【請求項５】
前記割当ページ決定工程は、フリーなページの多い物理メモリを有する情報処理装置の物理メモリから確保するように決定することを特徴とする請求項４に記載の情報処理方法。
【請求項６】
前記割当ページ決定工程は、プロセッサの負荷の小さい情報処理装置の物理メモリから確保するように決定することを特徴とする請求項４に記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、主に複数台の計算機が高速な通信回線で結合され、各計算機に配置されたメモリ（またはその一部）が全体で単一のメモリ空間を構成し、システム全体でＮＵＭＡ（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）型のマルチプロセッサシステムのような形態（ある計算機から見て自計算機に配置されたメモリへのアクセスは高速で、他の計算機に配置されたメモリへのアクセスは速度が落ちるが、全体で単一のメモリ空間を成すためマルチプロセッサシステムとしても捉えることができる形態）で動作可能な情報処理システムに関する。
【０００２】
【従来の技術】
従来、ＬＡＮなどの低速な通信回線で複数台の計算機が結ばれた計算機システムにおいては、ユーザプログラムをプロセスとして生成、起動する際に、生成しようとした計算機上の物理メモリが不足していると、仮想記憶機構を持つＯＳは、使用率の低い物理ページの内容を自計算機に付随する２次記憶装置または他の計算機などにページアウトすることで、自計算機上に物理ページを確保していた。
【０００３】
その場合、たとえ通信回線で結ばれた他の計算機上の物理メモリが空いていても、それを間接的に利用することはできても直接利用することはできなかった。これは、通信回線が低速であったため、他の計算機の物理メモリを直接見せるようなハードウェア構成をとれなかったためである。
【０００４】
しかし、近年、光ケーブルなど信頼性もあり計算機の内部バスにある程度近い性能を持つ通信媒体の登場で、物理メモリを直接他の計算機に見せるような構成も可能となりつつあり、各計算機に配置されたメモリ（またはその一部）を全体で単一のメモリ空間として、どの計算機からでも直接アクセス可能にすることができるようなシステムが提案されてきている。このようなシステムの場合、上記のようなページアウトを行なわなくても、他の計算機上のメモリが空いていれば、それを確保して直接利用することが可能となる。
【０００５】
【発明が解決しようとしている課題】
しかしながら、プロセスを生成しようとした計算機上の物理メモリが不足していた時に、上記のように他の計算機のページを確保する際に、なんの規則性も持たずに複数台の計算機から闇雲に物理ページを確保していくと、プロセスの実行に必要となるメモリページが複数台の計算機に分散配置されてしまい、このような状態のままプロセスが実行し続けると、システムの処理効率が低下してしまうという問題点があった。
【０００６】
これは、プロセスが動作するプロセッサと使用する物理メモリとが同一計算機上の場合であれば、メモリアクセスが高速であるためプロセスの処理速度も速いが、通信回線で結ばれた別の計算機上のものである場合には、メモリアクセスが遅いためプロセスの処理速度も遅くなってしまうからである。
【０００７】
そこで、本出願人は、先に出願した特願平５−２７６３７０号において、上記の問題点を解消するため、プロセスが生成、起動されて物理ページを確保していく際、プロセスが動作している計算機上にページが確保できなくなると、他の計算機上から確保しようと試みるが、この時、複数台の計算機からばらばらに確保していくのではなく、できるだけひとつの計算機上から確保していくようにする。そして、そのプロセスを現在のままの計算機上で実行させ続けた方が効率がいいか、または他の計算機上で実行された方が効率がいいかを判断し、もし後者であると判断した場合には、その時点で、プロセスの実行に必要なコンテキスト情報を、元の計算機上のＯＳから効率の良いと判断された計算機上のＯＳに移動しながら、移動先の計算機上でプロセスを続行させることにより、プロセスの処理効率を向上させる計算機システムを提案した。
【０００８】
しかし、このように、コンテキスト情報を移動してプロセスを続行させるというプロセスマイグレーション手法の場合、一般には、プロセスを移動するとプロセスの親子関係が継続できず、また、移動後のプロセスは新たに子プロセスを生成できないなどの、通常のプロセスではなかった制限を受ける場合が多い。これは、ＯＳ内部のプロセス管理情報が、移動先ＯＳと移動元ＯＳとで、一貫性を保つのが非常に難しいためである。
【０００９】
また、メモリ内容（プログラム、データ、スタック）の転送が必要ないといっても、コンテキスト情報（プロセッサのレジスタ値および使用中のメモリページ配置情報等）の移動は必要で、その量によっては、通信回線への負荷、そして転送処理にかかるプロセッサの負荷も問題となる。
【００１０】
本発明は、上記のような様々な問題点を解消するためになされたもので、プロセッサの管理自体を移動するという手法を利用し、該プロセスを現在のままのプロセッサで実行させ続けた方が効率がいいか、または他の計算機のプロセッサの管理を移動してきて実行させた方が効率がいいかを判断し、もし後者であると判断した場合には、効率のよいと判断された計算機のプロセッサの管理を移動してきて該プロセスの実行に割り当てることで、プロセス処理効率を向上できる計算機システムを提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するため、本発明によれば、独立のメモリを備えた１つ以上の他の情報処理装置と通信回線を介して接続された情報処理装置に、他の情報処理装置の物理メモリの管理情報およびプロセス実行のスケジューリング情報を獲得する情報獲得手段と、該情報獲得手段により獲得された情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定する割当てページ決定手段と、該割当てページ決定手段により決定された物理ページを備える情報処理装置から、リモートページを確保するリモートページ確保手段と、実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定するプロセッサ移動判定手段と、該プロセッサ移動判定手段により、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てるプロセッサ移動割当て手段とを具える。
【００１２】
また、本発明の他の態様によれば、独立のメモリを備えた１つ以上の他の情報処理装置と通信回線を介して接続された情報処理装置における情報処理方法に、他の情報処理装置の物理メモリの管理情報およびプロセス実行のスケジューリング情報を獲得する情報獲得工程と、該情報獲得工程により獲得された情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定する割当てページ決定工程と、該割当てページ決定工程により決定された物理ページを備える情報処理装置から、リモートページを確保するリモートページ確保工程と、実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定するプロセッサ移動判定工程と、該プロセッサ移動判定工程により、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てるプロセッサ移動割当て工程とを具える。
【００１３】
【作用】
本発明においては、プロセスが生成、起動され、オンデマンドで物理ページを確保していく際、プロセスが動作している情報処理装置上にページが確保できなくなると、他の情報処理装置より獲得された、物理メモリの管理情報およびプロセス実行のスケジューリング情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定し、決定された物理ページを備える情報処理装置から、リモートページを確保する。そして、実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定し、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てる。
【００１４】
【実施例】
図１は本発明の一実施例を示す計算機システムの構成を説明するブロック図である。
【００１５】
図において、１０１は光ネットワークなどの高速な通信回線、２０１、３０１、４０１は通信回線１０１で結ばれた複数台の計算機である。２０２、３０２、３０３、４０２、４０３は、前記計算機２０１、３０１、４０１に各々１つ以上備えられたＭＭＵ内蔵プロセッサ（ＣＰＵ）、２１０、４１０は、前記計算機２０１、４０１に備えられたユーザインタフェースとしてのディスプレイ＆キーボード、２２０、３２０は、前記計算機２０１、３０１に備えられたハードディスク（ＨＤ）装置などの２次記憶装置である。
【００１６】
ディスプレイ＆キーボード２１０、４１０や２次記憶装置２２０、３２０は計算機に装備されていなくてもかまわない。例えばディスプレイ＆キーボードが装備されていない計算機３０１などは、サーバマシンまたはプロセッサプールとして利用されることになる。
【００１７】
１０２は、各計算機上で動作するＯＳ間での非同期な通信を行なうためのＣＰＵ間割込み機構である。
【００１８】
２３０、３３０、４３０は、全体でひとつの単一なメモリ空間を成す物理メモリ、２４０、３４０、４４０は、各計算機用のローカルメモリである。ローカルメモリは主にＯＳなどのために必要となるが、物理メモリ２３０、３３０、４３０の一部で代用可能であるため、あってもなくても本発明の適用の妨げとはならない。また、各プロセッサは物理メモリ２３０、３３０、４３０をアクセス可能に構成されている。ただし、メモリアクセスを行なうプロセッサと同一計算機内部の物理メモリへのアクセスよりも、他の計算機に属する物理メモリへのアクセスの方が、通信回線１０１が介在するため遅くなる。
【００１９】
なお、本実施例において、ＯＳ２５０、３５０、４５０は、複数プロセッサのスケジューリング、仮想記憶管理などを行ない、当然どの計算機上の物理メモリがどの物理アドレスになっているか、といったシステム情報を把握しているものとする。このようなＯＳは、ほぼ同様の機能を持ったものが各計算機上でそれぞれ動作し、互いに協調的に働くような構成をとる。これによって、各計算機の独立性が向上し、システム全体の柔軟性も向上する。
【００２０】
各ＯＳは各計算機上のローカルメモリ２４０、３４０、４４０上で動作しても、物理メモリ２３０、３３０、４３０上で動作しても構わない。
【００２１】
ただし、ＯＳのデータ領域の一部は、各ＯＳが管理するメモリ管理の情報やプロセスのスケジューリング情報を交換可能にするため、物理メモリ２３０、３３０、４３０上の情報交換領域２６０、３６０、４６０に配置しておく。
【００２２】
また、各ＯＳは、自計算機に付随する２次記憶装置からだけでなく、他の計算機に付随する２次記憶装置からも、通信回線１０１を介してユーザプログラムのローディングができるように構成されている。
【００２３】
図１に示すようなシステムにおいて、ユーザプログラムがプロセスとして起動され、例えば計算機２０１上のプロセッサ２０２でプロセスが動作を開始すると、ＯＳ２５０の仮想記憶管理機構により、オンデマンドで物理メモリがページとして割り当てられ、必要な内容（データやテキスト）が２次記憶装置などからローディングされる。
【００２４】
このときＯＳ２５０は、物理メモリ２３０（プロセッサ２０２にとってアクセスが速い）からページを割り当てようと試みるが、物理メモリ２３０にフリーなページが不足してくると、物理メモリ３３０、４３０から割り当てることになる（プロセスにとってこのようなページをリモートページと呼ぶことにする）。この際、ＯＳ２５０は、自計算機２０１以外の計算機より、メモリ・スケジューリング情報を獲得して、各計算機のフリーなページ数、プロセッサの負荷状態などを知る。このようなＯＳによるメモリ・スケジューリング情報の獲得は、各ＯＳが各自持っているそれらの情報を随時情報交換領域２６０、３６０、４６０の決められた場所に反映しておき、それぞれのＯＳが必要な時にそこを読み出すことで実現できる。
【００２５】
これらの情報に基づいて、ＯＳ２５０は、どの物理メモリからページを確保するかを決定する。この割当てページ決定では、理想的には、フリーなページが多く、そしてプロセッサの負荷の小さい計算機上の物理ページが対象となる。
【００２６】
しかし、例えば、計算機３０１はフリーなページは少ないがプロセッサの負荷はは小さい、そして計算機４０１はフリーなページは多いがプロセッサの負荷が大きい、といった状況の場合は、ページ数と負荷とを変数として経験的に定められた評価関数をもとに決定することとする。とりあえず、最初の段階で必要なのは物理ページなので、ここでは、プロセッサの負荷状態より、フリーなページ数を優先する制御を行なうこととし、計算機４０１の物理メモリ４３０からページを獲得する。
【００２７】
また、割当てページの決定により、例えば、物理メモリ４３０からページを確保することが決定すると、ＯＳ２５０は、物理メモリ４３０からリモートページを確保し、割り当てて、通常のページと同様に必要な内容（データやテキスト）を２次記憶装置などからローディングしてプロセスを続行する。
【００２８】
本実施例において、リモートページの確保は、この場合、ＯＳ２５０とＯＳ４５０の協調動作により実現できる。
【００２９】
この場合、まず、ＯＳ２５０は、物理メモリ４３０から物理ページが必要になったという情報をＯＳ４５０に伝えるため、情報交換領域２６０あるいは情報交換領域４６０へ情報を書き込み、ＣＰＵ間割込み機構１０２を用いてＯＳ４５０を非同期に呼び出し、結果がくるまで待機する。
【００３０】
この待機処理中に、他のプロセスにプロセッサを割り当てても構わない。
【００３１】
一方、呼び出されたＯＳ４５０は、ＯＳ２５０からの情報にしたがって物理ページを物理メモリ４３０から確保し、それがＯＳ２５０の管理下に入るように内部状態を設定する。そして、確保した物理ページに関する情報（物理アドレスなど）を情報交換領域２６０か情報交換領域４６０に書き込み、ＣＰＵ間割込み機構１０２を用いてＯＳ２５０を非同期に呼び出し、物理ページを譲渡する。
【００３２】
割込みを受けたＯＳ２５０は、待ち状態から解放され、確保したリモートページをプロセスの実行用に割り当てる。
【００３３】
このようにしてページを確保しながらプロセスが動作し続けると、図２の（ａ）〜（ｃ）に示すように物理メモリの物理ページ配置状態が遷移していく。
【００３４】
以下、図２を参照しながら、本実施例に係る計算機システムにおける物理メモリの物理ページ配置状態について説明する。
【００３５】
図２は本実施例に係る計算機システムにおける物理メモリの物理ページ配置状態を説明する図であり、図１と同一のものには同一の符号を付してある。
【００３６】
上述したようにして、ページを確保しながらプロセスが動作し続けると、物理メモリ２３０と物理メモリ４３０との物理ページ配置が、図２の（ａ）のような状況から、（ｂ）や（ｃ）のような状況に変化してくる場合がある。
【００３７】
特に、図２の（ｂ）に示すように、確保している物理ページの割合が物理メモリ２３０より物理メモリ４３０の方が多くなり、かつ計算機４０１のプロセッサ４０２、プロセッサ４０３の負荷が少なければ、プロセッサ２０２で実行し続けるよりも、プロセッサ４０２またはプロセッサ４０３の管理をＯＳ４５０からＯＳ２５０に移動し、そのプロセッサでプロセスを実行させた方が効率が良い。
【００３８】
また、図２の（ｃ）に示すように、物理ページの割合はほぼ同じでも、プロセッサ２０２の負荷が、プロセッサ４０２、プロセッサ４０３の負荷と比べてかなり高くなってきた状況の場合も同様である。
【００３９】
そこで、ＯＳ２５０は、上記のような状況判断を行なう。具体的には、獲得したメモリ・スケジューリング情報により、対象となるプロセスのページの配置情報、およびプロセッサの負荷情報に基づいて、図２の（ｂ）や（ｃ）のような状況、つまりプロセッサを移動すべき状況になったかどうかを判定する。このプロセッサの移動判定処理は、オンデマンドでのページ確保のタイミングで、そしてプロセススケジューリング時やプロセス生成／削除時などのプロセッサの負荷が変化（実行可能状態のプロセス数の変化）するタイミングで起動される。
【００４０】
プロセッサの移動判定処理により、プロセッサの移動および移動元の計算機が決定すると、プロセッサの移動割当てが行なわれる。例えば、計算機４０１が移動元計算機の場合だと、プロセッサ４０２またはプロセッサ４０３の管理が、ＯＳ４５０からＯＳ２５０に移動され、そのプロセッサがプロセスの実行のために割り当てられる。
【００４１】
プロセッサの移動、割当ては以下のように実行される。以下では、ＯＳ４５０からＯＳ２５０に移動されＯＳ２５０の管理下のプロセスに割り当てられるまでを例として説明する。
【００４２】
まず、ＯＳ２５０は、ＯＳ４５０に対してプロセッサの移動要求を発行する。これは、情報交換領域２６０、あるいは情報交換領域４６０に要求内容を書き込み、ＣＰＵ間割込み機構１０２を用いてＯＳ４５０を非同期に呼び出すことで実行する。
【００４３】
次に、プロセッサ移動要求を受けたＯＳ４５０は、移動するプロセッサを選ぶ。この時、シンメトリなシステムであればランダムに選んで構わないし、マスタースレーブ型であれば、スレーブプロセッサの中から負荷の軽いものを選べば良い。例えばプロセッサ４０３が選ばれたとすると、次に、プロセッサ４０３で動作中のプロセスそして動作予定だったプロセスをプロセッサ４０２に移管する。
【００４４】
すべてのプロセスの移管が終了し、プロセッサがアイドル状態になったら、仮想記憶モードから実記憶モードに切り替え、移動先のＯＳ２５０の管理するメモリ領域にジャンプできるようにする。最後に、プロセッサ４０２は、ＯＳ２５０があらかじめ用意したエントリにジャンプする。これによりプロセッサ４０２はＯＳ２５０の管理下に移動したことになる。
【００４５】
指定しておいたエントリにジャンプしてきたプロセッサ４０２は、まずページテーブルのベースレジスタに、ＯＳ２５０が管理するページテーブルの値を設定し、仮想記憶モードに切り替え、ＯＳ２５０の仮想記憶空間で動作可能にする。そして、例外ベクタテーブルのベースレジスタも、同様にＯＳ２５０が管理する例外ベクタテーブルの位置に設定する。ベースレジスタ設定により例外ベクタテーブルの再配置が不可能なプロセッサの場合には、テーブルのジャンプアドレスを書き換えることにより同様の処理が可能である。以上の処理により、プロセッサ４０２は、完全にＯＳ２５０の管理下に移動したことになる。
【００４６】
次に、指定したプロセスにプロセッサ４０２を割り当てる。まず、プロセッサ４０２で実行するプロセスを管理するためのＲＥＡＤＹキューを用意する。これは、ＯＳ２５０が起動時に予め作っておいて、プロセッサ４０２の移動時に割り当ててもいいし、プロセッサ４０２移動時に作成しても構わない。このＲＥＡＤＹキューに前記プロセスをつなぎ、プロセッサ４０２で実行されるようにする。
【００４７】
この処理に先立ち、前記プロセスがプロセッサ２０２で実行中だった場合には、実行状態（ＲＵＮＮＩＮＧ状態）を解除し、プロセッサ２０２での実行待ち状態だった場合には、プロセッサ２０２用のＲＥＡＤＹキューから前記プロセスを外す。最後に、プロセッサ４０２は、自分のＲＥＡＤＹキューにつながれたプロセスを実行状態にして実行していく。１つしかプロセスがなかった場合にはそのプロセスを、複数あった場合には、タイムスライス等の手法を用いて順に実行していく。
【００４８】
これにより、複数台の計算機２０１、３０１、４０１が高速な通信回線１０１で結合され、各計算機に配置された物理メモリ（または一部）２３０、３３０、４３０が全体で単一のメモリ空間を構成し、システム全体でＮＵＭＡ型のマルチプロセッサシステムのような形態（ある計算機から見て自計算機に配置されたメモリへのアクセスは高速で、他の計算機に配置されたメモリへのアクセスは速度が落ちるが、全体で単一のメモリ空間を成すためマルチプロセッサシステムとしてもとらえることができる形態）で動作可能な計算機システムが構築でき、プロセスが生成、起動されオンデマンドで物理ページを確保していく際に、プロセスが動作している計算機上にページが確保できなくなると、獲得したメモリ・スケジューリング情報に基づいて、どの計算機から物理ページを確保していくかを決定する。
【００４９】
そして、その後、プロセスがリモートページを確保しつつ動作し続けている間に、プロセッサの移動判定により、プロセスを現在のままのプロセッサで実行させ続けた方が効率がいいか、または他の計算機のプロセッサの管理を移動してきて実行された方が効率がいいかを判断し、もし後者であると判断した場合には、プロセッサの移動割当てにより、効率がよいと判断された計算機のプロセッサの管理を移動してきて、前記プロセスの実行に割り当てることで、プロセス実行上でなんら制限を受けることがなく、プロセス処理効率を上げることができる。
【００５０】
以下、図３に示すフローチャートを参照しながら、本実施例に係る計算機システムにおけるメモリ資源管理処理動作について説明する。
【００５１】
図３は、本実施例に係る計算機システムにおけるメモリ資源管理処理手順の一例を示すフローチャートである。ここでは、計算機２０１上でプロセスが起動された場合を例とする。
【００５２】
計算機２０１上でプロセスが起動されると、新しいページが必要となり（ステップＳ１）、物理メモリ２３０からページ割当てが可能かどうかを判定し（ステップＳ２）、割当て可能な場合には、物理メモリ２３０からページを割り当て（ステップＳ４）、ステップ１に戻る。
【００５３】
一方、ステップＳ２の判定でページ割当て不能と判定された場合には、メモリ・スケジューリング情報獲得手段により各計算機の情報を獲得する（ステップＳ３）。次いで、割当てページ決定手段によりページを確保する物理メモリを決定する（ステップＳ５）。次いで、リモートページ確保手段により、リモートページを確保して割り当てる（ステップＳ６）。次いで、プロセッサ移動判定手段により、他の計算機よりプロセッサを移動して割り当てるべきかどうかを判定し、また移動元計算機を決定する（ステップＳ７）。次いで、移動すべきかどうかを判定して（ステップＳ８）、ＮＯならばステップ１に戻り、ＹＥＳならばプロセッサ移動割当て手段により、移動元計算機からプロセッサを移動してきて該プロセスの実行のために割り当て（ステップＳ９）、ステップ１に戻る。
【００５４】
［他の実施例］
上記の実施例では、ＣＰＵ間割込み機構１０２を備えて、該ＣＰＵ間割込み機構１０２を利用して、リモートページの確保や、プロセッサの移動割当てを実現する場合について説明したが、ＣＰＵ間割込み機構１０２がなくてもフラグセンスのポーリング機構により上記処理を行なう構成としても同様の効果が期待できる。
【００５５】
例えば、リモートページの確保は、上記の実施例で述べたような状況の場合、ＯＳ２５０とＯＳ４５０の協調動作により実現でき、その際の非同期な通信にＣＰＵ間割込み機構１０２を利用していた。
【００５６】
本実施例では、次のような方式でそれを代行する。割込みを発生する立場にあったＯＳは、ＣＰＵ間割込みを発生する代わりに、情報交換領域２６０か４６０に設けたフラグ領域のフラグをＯＮとする。
【００５７】
一方、ＣＰＵ間割込みを受ける立場側に対応するＯＳは、該フラグがＯＮになったかどうかをセンスするルーチンを、デーモンプロセスのような形態で動作させておき、それがＯＮになったことを察知した場合には、ＣＰＵ間割込みを受けたときの処理と同じ処理を行なうようにする。
【００５８】
ただし、ＯＳ２５０やＯＳ４５０がいつもフラグセンスしているわけにはいかないので、フラグセンスを行なうルーチン（デーモンプロセス）はある間隔（例えば１０ｍｓｅｃ程度）で定期的にセンスするように構成する。
【００５９】
また、上記の実施例では、プロセッサの移動判定が、オンデマンドでのページ確保のタイミングで、そしてプロセッサの負荷が変化するタイミングで起動される例をあげていたが、以下のように構成して実現してもよい。
【００６０】
すなわち、プロセッサの移動判定およびプロセッサの移動割当てを、ＯＳ内部のデーモンプロセスのような形態で実現し、非同期的に判定、移動を行なう。ただし、このデーモンプロセスが他のプロセスの実行を妨げることを避けるため、優先順位を低めに設定しておく方が望ましい。
【００６１】
該デーモンプロセスは、各計算機上のＯＳでそれぞれ動作し、それぞれのＯＳが管理するプロセス全部を判定対象とする。また、自ＯＳ以外のＯＳが管理するプロセスについて判定するようにしてもよい。この方が次のような場合有効となる。
【００６２】
例えば、ある一つの計算機の負荷が大きくて、そのため優先順位が低いデーモンプロセス（プロセッサ移動判定手段）がなかなか動作できないような場合、他の計算機上で動作するデーモンプロセスが代行して判定を行なってくれるようにすることができる。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、プロセスが生成、起動され、物理ページを確保していく際に、プロセスが動作している情報処理装置上にページが確保できなくなると、他の情報処理装置より獲得された、物理メモリの管理情報およびプロセス実行のスケジューリング情報に基づいて、実行すべきプロセスに割り当てる物理ページを、いずれの情報処理装置の物理メモリから確保するかを決定し、決定された物理ページを備える情報処理装置から、リモートページを確保する。そして、実行中のプロセスを実行し続けるのに、他の情報処理装置のプロセッサを自装置の管理下に移動して、該プロセッサに割り当てて実行すべきか否かを判定し、移動して実行すべきと判定された場合に、移動元情報処理装置から前記プロセッサの管理を移動し、前記プロセスの実行のために割り当てるようにしたので、プロセス実行上でなんら制限を受けることがなく、プロセス処理効率を上げることができる。そして、いずれかの情報処理装置におけるプロセス実行中に、該プロセス処理を他の情報処理装置に委託しながら並行して実行でき、システム全体のプロセス実行効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の１実施例の情報処理システムの機能構成を示すブロック図である。
【図２】物理メモリの物理ページ配置状態を説明する図である。
【図３】メモリ資源管理の処理手順の一例を示すフローチャートである。
【符号の説明】
１０１  高速な通信回線
１０２  ＣＰＵ間割込み機構
２０１、３０１、４０１  通信回線１０１で結ばれた複数台の計算機
２０２、３０２、３０３、４０２  ＭＭＵ内蔵プロセッサ
２１０、４１０  ディスプレイ＆キーボード
２２０、３２０  ハードディスク装置などの２次記憶装置
２３０、３３０、４３０  全体で単一なメモリ空間をなす物理メモリ
２４０、３４０、４４０  各計算機上のローカルメモリ
２５０、３５０、４５０  各計算機上で動作するＯＳ
２６０、３６０、４６０  情報交換領域
【図１】
0003585956.tif 000002
【図２】
0003585956.tif 000003
【図３】
0003585956.tif 000004