JP3862293B2 - 情報処理方法とその装置 - Google Patents

情報処理方法とその装置 Download PDF

Info

Publication number
JP3862293B2
JP3862293B2 JP20720594A JP20720594A JP3862293B2 JP 3862293 B2 JP3862293 B2 JP 3862293B2 JP 20720594 A JP20720594 A JP 20720594A JP 20720594 A JP20720594 A JP 20720594A JP 3862293 B2 JP3862293 B2 JP 3862293B2
Authority
JP
Japan
Prior art keywords
cpu
computer
information processing
processing apparatus
lending
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
JP20720594A
Other languages
English (en)
Other versions
JPH0877026A (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.)
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 JP20720594A priority Critical patent/JP3862293B2/ja
Priority to US08/520,586 priority patent/US5884077A/en
Publication of JPH0877026A publication Critical patent/JPH0877026A/ja
Application granted granted Critical
Publication of JP3862293B2 publication Critical patent/JP3862293B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【産業上の利用分野】
本発明は、情報処理方法とその装置、特に、複数台の計算機が高速な通信回線で結合され、各計算機に配置されたメモリ(またはその一部)が全体で単一のメモリ空間を構成し、例えば、システム全体でNUMA(Non Uniform Memory Access)型のマルチプロセッサシステムのような形態で動作可能な情報処理方法とその装置に関する。
【0002】
【従来の技術】
従来、LANなどの低速な通信回線で結ばれた計算機システムの場合、自計算機上でプログラムがプロセスとして大量に実行され、プロセッサが混んでくると、プロセスマイグレーション機能を持つOSの場合は、実行中のプロセスを通信回線で結ばれた他の計算機上に移動することにより、他の計算機上のプロセッサを有効利用することができる。
【0003】
【発明が解決しようとする課題】
しかしながら、プロセスマイグレーションの場合、プロセスの移動、再実行のためには、プロセスの実行に必要なメモリ内容(テキストやデータやスタック)そしてOS内部のプロセス管理テーブルなどを、移動先の計算機上のメモリに転送しなければならず、大きなオーバヘッドとなる。
【0004】
また、プロセスの移動とそのプロセス再実行のためには、以下に示すいくつかの制限を受ける場合がある。即ち、
1 プロセス生成時にしかその移動できない。
2 移動後のプロセスとはプロセスの親子関係が切れる。
3 移動後のプロセスは、新たに子プロセスを生成できない。
【0005】
などの制限を受ける。これは、OS内部のプロセス管理情報が、移動先OSと移動元OSで一貫性を保つのが非常に難しいためである。
本発明は上記従来例に鑑みてなされたもので、最小限のオーバヘッドで、またプロセスの生成、実行、管理において、不自由な制限を受けることなく、通信回線に結ばれた他の計算機上のプロセッサの資源を有効利用できる情報処理方法と装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記目的を達成するため、本発明の情報処理装置は以下の構成を備える。即ち、
1つ以上のCPUを有する情報処理装置であって、
前記1つ以上のCPU処理負荷状態を検知するCPU負荷状態検知手段と、
他の情報処理装置のCPUの処理負荷状態当該他の情報処理装置から獲得する他CPU負荷状態獲得手段と、
前記CPU負荷状態検知手段によって検知された処理負荷状態第1のしきい値より高ければ、前記他CPU負荷状態獲得手段によって獲得された他の情報処理装置のCPUの処理負荷状態に基づいて、他の情報処理装置を選択する情報処理装置選択手段と、
前記情報処理装置選択手段によって選択された情報処理装置にCPUの貸出しを要求するCPU貸出し要求手段と、
前記CPU貸出し要求手段のCPU貸出し要求に基づいて貸し出されたCPUが、
i)自装置が現在実行中のプロセスをReadyキューに入れ、
ii)実記憶モードに切り替えることで自装置のOSが管理するメモリ領域をアクセス可能とし、
iii)自装置のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、
iv)自装置のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替える
ことで、前記他の情報処理装置のCPUを自装置のOSの直接管理のもとで動作させつつ、所定のプロセスの実行を許可して実行させるようにする外部CPU実行許可手段と、
前記CPU負荷状態検知手段によって検知された処理負荷状態第2のしきい値より低く、かつ他の情報処理装置より貸し出されたCPUがあれば、該CPUで実行予定のプロセスを他のCPUに移管し、当該移管後の前記貸し出されたCPUを当該他の情報処理装置のOSの管理下に戻す返還手段とを備える。
【0007】
【作用】
以上の構成において、1つ以上のCPUを有する情報処理装置であって、CPU負荷状態検知手段が、前記1つ以上のCPU処理負荷状態を検知し、他CPU負荷状態獲得手段が、他の情報処理装置のCPUの処理負荷状態当該他の情報処理装置から獲得し、情報処理装置選択手段が、前記CPU負荷状態検知手段によって検知された処理負荷状態第1のしきい値より高ければ、前記他CPU負荷状態獲得手段によって獲得された他の情報処理装置のCPUの処理負荷状態に基づいて、他の情報処理装置を選択し、CPU貸出し要求手段が、前記情報処理装置選択手段によって選択された情報処理装置にCPUの貸出しを要求し、外部CPU実行許可手段が、前記CPU貸出し要求手段のCPU貸出し要求に基づいて貸し出されたCPUが、i)自装置が現在実行中のプロセスをReadyキューに入れ、ii)実記憶モードに切り替えることで自装置のOSが管理するメモリ領域をアクセス可能とし、iii)自装置のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、iv)自装置のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替えることで、前記他の情報処理装置のCPUを自装置のOSの直接管理のもとで動作させつつ、所定のプロセスの実行を許可して実行させるようにし、返還手段が、前記CPU負荷状態検知手段によって検知された処理負荷状態第2のしきい値より低く、かつ他の情報処理装置より貸し出されたCPUがあれば、該CPUで実行予定のプロセスを他のCPUに移管し、当該移管後の前記貸し出されたCPUを当該他の情報処理装置のOSの管理下に戻す。
【0008】
【実施例】
本発明の実施例に関連する技術的背景を、以下に簡単に述べる。近年、光ケーブルなど、信頼性もあり高速で、計算機の内部バスにある程度近い性能を持つ通信媒体の登場で、物理メモリを直接他の計算機から使用するような構成も可能となりつつある。これにより、各計算機に配置されたメモリを(またはその一部を)全体で単一のメモリ空間として、どの計算機からでも直接アクセス可能にすることができるようなシステムが提案されてきている。
【0009】
このようなシステムの場合、上記のようなプロセスマイグレーションのように、プロセスを移動することによって、他の計算機上のプロセッサを利用するのではなく、他の計算機上のプロセッサを直接自計算機上のOSの管理下に移動することで、自計算機上のプロセッサと同様の形態で、つまり自計算機のプロセッサが増えたと同じ環境で利用できる可能性が出てきた。
【0010】
このような状況を鑑み、本発明に係る実施例の情報処理装置は、以下のような構成を備える。即ち、計算機の管理下にあるプロセッサの負荷状態を検知するプロセッサ負荷検知部と、通信回線で結ばれた他の計算機の負荷情報を収集する他計算機情報収集部と、プロセッサの貸出し元となる計算機を選定する貸出し元計算機選定部と、貸出し元計算機選定部により選定された計算機に対して、貸出し元計算機選定部により決定された数のプロセッサの貸出しを要求するプロセッサ貸出し要求部と、その要求に従った数のプロセッサを貸し出すプロセッサ貸出し部と、貸し出されたプロセッサを受け取り、計算機の管理下におくプロセッサ受け取り部と、借りていたプロセッサを貸出し元計算機に返還するプロセッサ返還部を備える。
【0011】
以下、添付図面にしたがって本発明に係る実施例を詳細に説明する。
【0012】
図1は、本発明の情報処理システム構成の概略を示すものであり、101は光ネットワークなどの高速な通信回線、201,301,401は通信回線101で結ばれた計算機である。202,302,303,402は計算機201,301,401に各々備えられたMMU(Memory Management Unit)内蔵プロセッサ、210,410は計算機201,401に備えられたユーザインターフェイスとしてのディスプレイ&キーボード、220,320は計算機201,301に備えられたハードディスク装置などの2次記憶装置である。
【0013】
尚、ディスプレイ&キーボードや2次記憶装置は、計算機に装備されていてもされていなくてもよい。例えば、ディスプレイ&キーボードが装備されていない計算機301は、サーバマシンまたはプロセッサプールとして利用できる。
【0014】
230,330,430は、全体でひとつの単一なメモリ空間を構成する物理メモリ、240,340,440は各計算機用のローカルメモリである。
【0015】
尚、このローカルメモリは、主にOSなどの処理のために必要となるが、物理メモリ230,330,430の一部でも代用可能であるため、なくてもよい。
【0016】
各プロセッサ202、302、303、402は、物理メモリ230,330,430をアクセス可能である。
【0017】
250,350,450は、計算機201,301,401上で動作するそれぞれのOSである。これらのOS(オペレーテイングシステム)は、ほぼ同等の機能を持ち、各計算機201、301、401上でそれぞれ動作し、互いに協調的に働くような構成をとる。これにより、各計算機の独立性を保つことができ、システム全体の柔軟性も上がる。
【0018】
図5は、本実施例での主要な各OS(例えば、OS250)の要素処理部の概要を示したものであり、プロセッサ負荷検知部、他計算機情報収集部、貸し出し元計算機選定部、プロセッサ貸し出し要求部等を備える。
【0019】
尚、各OSは各計算機上のローカルメモリ240,340,440上で動作しても、物理メモリ230,330,430上で動作してもよい。ただし、OSのデータ領域の一部は、各OSが管理するプロセッサの負荷情報などを交換可能にするため、物理メモリ230,330,430上に配置しておく。260,360,460がこれら情報交換領域である。また、102、302、402は、各計算機上で動作するOS間での非同期な通信を行なうための計算機間割込み処理線である。
【0020】
図2,3,4に本発明に係る一実施例の処理の流れを示す。図2は、プロセッサの貸出しを要求する計算機上のプロセッサの処理の流れを示し、図3は、貸出しを要求された計算機上のプロセッサで、かつ貸し出される対象となったプロセッサの貸し出し処理の流れを示し、図4は、図3の処理を終え貸し出されたプロセッサが返還されるときの処理の流れを示す。
【0021】
尚、このフローチャートに対応する実行プログラムは、予め、各OS250,350,450に組み込まれており、各計算機のCPUで実行される。
【0022】
以下、これらの流れにそって、計算機201上のプロセッサ202が計算機301に貸出しを要求し、計算機301上のプロセッサ303が貸し出された場合を例に説明する。
【0023】
図1のようなシステムにおいて、プロセッサ202が実行するOS250は、立ち上げ時には、自計算機のプロセッサ(プロセッサ202)のみを管理し、タイムスライスなどのスケジューリング方法を用いて、実行可能状態のプロセスにプロセッサを割り当て実行させる(ステップS1)。
【0024】
次に、ステップS2で、OS250内のプロセッサ負荷検知部(図5)により、自計算機管理下のプロセッサの負荷状態を検知して、ステップS11で、負荷が高い状態か低い状態か、または普通の状態であるかを判定する。負荷状態は、そのとき実行可能状態(Ready 状態と呼ばれる)にあるプロセス数と、プロセッサ数との割合で調べることができる。この割合があるしきい値を越えたら、例えば実行可能プロセス数がプロセッサ数の4倍を越えたら、高負荷状態にあると判定し、またもう一つのしきい値より小さかったら、例えば実行可能プロセス数がプロセッサ数の同値以下になったら、低負荷状態にあると判定でき、その2つのしきい値の間だったらどちらでもないと判定できる。実行可能状態のプロセスが増え、プロセッサの利用率が上がり、高負荷状態と判定されると、ステップS3に進む。また、どちらでもない状態と判定されると、ステップS2に戻る。低負荷状態と判定された場合については後で述べる。
【0025】
このプロセッサの負荷検知処理は、例えば10mSecに1回といったように経験的に決められた間隔で、定期的に実行されるようにする。
【0026】
ステップS3では、OS250の他計算機情報収集部(図5)により、通信回線で結ばれた他の計算機のプロセッサ負荷情報を収集する。この情報収集は、情報交換領域260,360,460と計算機間割込みライン102、103、104とを利用したOS間のデータ交換により実現できる。尚、この時、通信回線で結ばれたすべての計算機の情報を収集しても、またいくつか選んで収集しても構わない。また、一台の計算機から情報収集するのにかかる時間を考慮して収集台数を制限してもよい。さらに、このときの収集対象となる計算機は、ランダムに、あるいはラウンドロビン的に自動的に計算機が選んでも、ユーザがあらかじめ設定しておいても構わない。
【0027】
ステップS4では、OS250の貸出し元計算機選定部(図5)により、プロセッサを借りる計算機を選定する。この選定方法としては、自計算機よりも負荷が軽く、かつ最も負荷の軽い計算機を選ぶ。また、例えば、少なくとも自計算機より2倍以上負荷が軽いものを選択するといった選定方法でもよい。また、このステップでは、借りるプロセッサの数を決定する。この決定方法は例えば、上記の選択方法で選ばれた計算機の負荷が自計算機の負荷を越えない最大のプロセッサ数を借りるプロセッサ数として決定する。例えば、選ばれた計算機の負荷値が2(例えば、プロセス数8/プロセッサ数4)で、自計算機の負荷値が8(例えば、プロセス数16/プロセッサ数2)だったとすると、借りるプロセッサ数は2となる。
【0028】
上記の例では、一つの計算機を選んでそれから複数のプロセッサを借りる例を挙げたが、複数の計算機を選んで、それらからそれぞれプロセッサを借りるようにしてもよい。
【0029】
もし、貸出し元計算機が選ばれなかったら、つまり自計算機より負荷の軽い計算機がなかったような場合には、OS250のプロセッサ負荷検知部の高負荷判定用のしきい値を以前の値より高めに設定し直して(ステップS7)、ステップS2に戻る。
【0030】
尚、このように高めに設定し直したが、再びステップS03に進んだ時に、他の計算機の負荷が前に調べた時より軽くなっているかどうかチェックして、そのしきい値を元の値に戻すようにしてもよい。このような場合は、他計算機情報収集部に、前に収集した各計算機の負荷情報を保持しておく機構を持たせることで容易に実現できる。
【0031】
次に、ステップS4で、計算機301が貸出し元計算機として選ばれ、1つのプロセッサを借りることが決定した場合を例として説明を進める。
【0032】
ステップS5では、OS250のプロセッサ貸出し要求部(図5)により、貸出し元計算機選定部で選ばれた計算機(例えば、計算機301)に対して、決定したプロセッサ数(例えば、1つ)の貸出しを要求する。これは、自計算機上のOS250から貸出し元計算機上のOS(例えば、OS350)への要求となるわけだが、これも情報交換領域260,360,460と計算機間割込みライン102、103、104とを利用したOS間の通信により実現できる。
【0033】
一方、貸し出し要求を受けた貸出し元計算機の処理を、図2のフローチャートを参照して以下説明する。
【0034】
図3を参照して、要求を受けた貸出し元計算機上のOS(この場合、OS350)を実行するプロセッサ(ここでは、プロセッサ302またはプロセッサ303のどちらでも構わないが、プロセッサ303だった場合を一例とする)は、ステップS101で、プロセッサ貸出し部により要求された数だけのプロセッサを貸し出す処理を開始する。この貸出しは以下のように行う。
【0035】
まず、ステップS102で、要求を受けたOS350を実行するプロセッサ303は、貸し出すプロセッサを選ぶ。例えば、マルチプロセッサシステムの構成方法が、シンメトリな方式で、かつスケジューリング方式も全プロセッサの負荷を均等に割り振るような方式であれば、どのプロセッサを選択しても同じなのでランダムに選んで構わない。ここで、シンメトリとは、保有するプロセッサの構成が同一であるという意味である。
【0036】
尚、ここで、マルチプロセッサシステムの構成方法がマスタースレーブ方式であったとすると、マスタープロセッサを貸し出すわけにはいかないのでスレーブプロセッサの中から選択することになる。
【0037】
以下、例えば、プロセッサ303が貸し出すプロセッサとして選ばれた場合を一例として以下説明を進める。
【0038】
次に、ステップS103では、プロセッサ303で動作中のプロセスと、動作予定だったプロセスを他のプロセッサに移管する。この例の場合、現在この処理を行なっているプロセッサ自体が貸出し対象のプロセッサであるため、プロセッサ303は、現在OS350を実行しており、プロセスが動作中ということはない。しかし、もしプロセッサ302が貸出しプロセッサとして選ばれたとすると、、そのときプロセッサ302がプロセスを実行中の可能性がある。そこで、動作中のプロセスと、動作予定だったプロセスを他のプロセッサに移管する方法を以下説明する。
【0039】
通常、実行可能状態(Ready 状態)にあり、実行のためにプロセッサ割り当てを待っているプロセスは、Ready キューと呼ばれるキューにつながれて管理される。現行のシステムの場合、このReady キューは、プロセスの実行優先順位ごとに複数のキューを用意する方式(UNIXなど)や、プロセスの実行優先順位の高い順にソートして1つのReady キューにキューイングする方式などがある。そして、スケジューリング方式がタイムスライス方式の場合には、現在プロセッサが割り当てられ実行中のプロセス(Running 状態と呼ばれる)のタイムクォンタムが切れたり、またイベント待ち状態(Suspend 状態と呼ばれる)に入ると、プロセッサは実行プロセスの切り替えを行なう。今まで実行中だったプロセスをReady キューに戻したり(タイムクォンタムが切れた場合など)、イベント待ち状態にするためSuspend キューに入れ、代りにReady キューの中から1つプロセスを取り出し、そのプロセスをRunning 状態にして実行させる。Ready キューの中からの選択は、優先順位の高いものから順に選んでいくのが一般的である。
【0040】
マルチプロセッサシステムの場合、このReady キューの使い方にいくつかの方式がある。各プロセッサごとにそれぞれ固有のReady キューを持ち、各プロセッサは自分のReady キューからのみ実行プロセッサを選択していく方法、また、複数あるプロセッサが共有して使用するReady キューを1つ用意し(優先順位ごとにキューを持つ方式の場合には優先順位の数だけ用意)、各プロセッサは共有しているReady キューから実行プロセスを選択していく方式などが考えられる。
【0041】
プロセッサごとに固有のReady キューを持つ方式の場合のプロセスの移管は、まず、移管元プロセッサで実行中のプロセスの実行を中断して移管先プロセッサのReady キューに入れ、そして移管元プロセッサのReady キューにキューイングされているすべてのプロセスをキューからはずし、移管先プロセッサのReady キューにつなぎかえることで実現できる。Ready キューを共有する方式の場合は、移管元プロセッサで実行中のプロセスの実行を中断して共有のReady キューに入れることでプロセスの移管を実現できる。
【0042】
すべてのプロセスの移管が終了し、プロセッサ303がアイドル状態になったら、プロセッサ303をOS350の管理下からOS250の管理下に、管理元の移動処理を行なう。
【0043】
まず、プロセッサ303は、OS250のプログラムコードを実行できるようにするために、ステップS104で、OS250の管理する物理メモリ領域をアクセス可能とさせる。これを実現するために、プロセッサ303は、自分の実行モードを仮想記憶モードから実記憶モードに切り替える。これにより、移動先のOS250の管理するメモリ領域をアクセスできるようになる。
【0044】
そして、ステップS105で、OS250がプロセッサの貸し出し処理用にあらかじめ用意したエントリにジャンプする。
【0045】
ジャンプ処理を終えて、OS250のプログラムコードを実行し始めたプロセッサ303は、次にステップS106で、不図示のページテーブルのベースレジスタに、OS250が管理するページテーブルの値を設定し、仮想記憶モードに切り替え、OS250の仮想記憶空間で動作可能にする。
【0046】
次に、ステップS107では、不図示の例外ベクタテーブルのベースレジスタも、同様にOS250が管理する不図示の例外ベクタテーブルの位置に設定する。ベースレジスタ設定により例外ベクタテーブルの再配置が不可能なプロセッサの場合には、テーブルのジャンプアドレスを書き換えることにより、同様の処理が可能である。
【0047】
以上の処理により、プロセッサ303はOS250の管理下に移動したことになり、ステップS108で、プロセッサ303が計算機301から借りたプロセッサであることをOS250内部に記録する。そして、ステップS109で、通常のOS250の管理下のプロセッサ202とまったく同様に、OS250上の実行可能状態のプロセスを割り当て、そのプロセスを実行していく。以上で、プロセッサの貸し出し処理が終了となる。
【0048】
このようにして、プロセッサを他の計算機から借りることにより負荷を軽くして動作を続けるが、そのうち、いくつかの動作中のプロセスが終了し、負荷がより軽くなる場合がある。つまり,ステップS2で、プロセッサ負荷検知部により、負荷があるしきい値よりも低くなったことが検知され、低負荷状態になったことが判定されると、ステップS6に進む。この判定は、負荷値が1(プロセッサ数と実行可能状態のプロセッサ数が同じ)より小さくなったかどうかで判定する。
【0049】
また、本例のように、プロセッサ303を借りた後は、図2の処理は、プロセッサ202が実行しても、プロセッサ303が実行してもかまわない。本例の場合は、プロセッサ202が実行した場合を例としているが、もし、プロセッサ303が図2の処理を実行してステップS1,S2,S6と進んだ場合には、そのまま図4のステップS201にすすみプロセッサの返還処理を開始する。本例の場合は、プロセッサ202がステップS1,S2,S6とすすみ、プロセッサ303に要求を行い、プロセッサ303に返還処理(ステップS201)を開始させる。この要求は、割り込みのような手段であってもいいし、プロセッサ303のプロセス切り替えのタイミングなどを利用したポーリングによって行ってもよい。
【0050】
ステップS201に進むと、プロセッサ返還部により、自プロセッサ(プロセッサ303)を元の計算機に返還する。プロセッサ返還処理は、プロセッサ貸し出し処理と同様の処理で実現できる。まず、ステップS202で、プロセッサ303で実行予定だったプロセスを全て他のプロセッサに移管する。全てのプロセスの移管が終了して、プロセッサ303がアイドル状態になると、次に、プロセッサ303をOS250の管理下からOS350の管理下に管理元の移動処理を行うため、ステップS203で、実行モードを仮想記憶モードから実記憶モードに切り替え、ステップS204で、OS350がプロセッサ返還処理用にあらかじめ用意したエントリにジャンプする。ジャンプ処理を終えて、OS350のプログラムコードを実行し始めたプロセッサ303は、次にステップS205でページテーブルのベースレジスタに、OS350が管理するページテーブルの値を設定し、仮想記憶モードに切り替え、OS350の仮想記憶空間で動作可能にする。次にステップS206で、例外ベクタテーブルのペースレジスタも、同様にOS350が管理する例外ベクタテーブルの位置に設定する。
【0051】
以上の処理により、プロセッサ303は、OS350の管理下に戻ったことになり、ステップS207で、貸し出す前と同様に、OS350上の実行可能状態のプロセスを割り当て、そのプロセスを実行していく。以上で、プロセッサの返還処理が終了となる。
【0052】
尚、本発明は、複数の機器から構成されるシステムに適用しても1つの機器から成る装置に適用しても良い。また、本発明は、システム或は装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。
【0053】
以上説明したように、本実施例によれば、自計算機の管理するプロセッサの負荷状態を検知し、もし高負荷状態であることがわかると、通信回線で結ばれた他の計算機の負荷状態を調べ、低負荷状態の計算機を選び借りるプロセッサ数を決定し、その数だけプロセッサを貸出し元計算機の管理下から貸出し先計算機の管理下に移動することを可能とする。
【0054】
これにより、最小限のオーバヘッドで、またプロセスの生成、実行、管理において、まったく余計な制限を受けることなく、通信回線に結ばれた他の計算機上のプロセッサの有効利用を可能とする情報処理装置を得ることができる。
【0055】
【発明の効果】
以上説明したように本発明によれば、最小限のオーバヘッドで、またプロセスの生成、実行、管理において、不自由な制限を受けることなく、通信回線で結ばれた複数の計算機において、各計算機上のプロセッサの資源を有効利用することができる。
【図面の簡単な説明】
【図1】本実施例の情報処理装置の構成図である。
【図2】プロセッサの貸し出しを要求する情報処理装置上のプロセッサの処理の流れ図である。
【図3】プロセッサを貸し出しする情報処理装置上のピロセッサの処理の流れ図である。
【図4】貸し出されたプロセッサの返還処理の流れ図である。
【図5】本実施例での主要な各OSの要素処理部の概要を示す図である。
【符号の説明】
101 高速な通信回線
102、103、104 CPU間割込みライン
201,301,401 通信回線101で結ばれた複数台の計算機
202,302,303,402 各計算機に1つ以上備えられたMMU内蔵プロセッサ
210,410 ディスプレイ&キーボード
220,320 ハードディスク装置などの2次記憶装置
230,330,430 全体で単一なメモリ空間をなす物理メモリ
240,340,440 各計算機上のローカルメモリ
250,350,450 各計算機上で動作するOS
260,360 460 情報交換領域

Claims (9)

  1. 1つ以上のCPUを有する情報処理装置であって、
    前記1つ以上のCPU処理負荷状態を検知するCPU負荷状態検知手段と、
    他の情報処理装置のCPUの処理負荷状態当該他の情報処理装置から獲得する他CPU負荷状態獲得手段と、
    前記CPU負荷状態検知手段によって検知された処理負荷状態第1のしきい値より高ければ、前記他CPU負荷状態獲得手段によって獲得された他の情報処理装置のCPUの処理負荷状態に基づいて、他の情報処理装置を選択する情報処理装置選択手段と、
    前記情報処理装置選択手段によって選択された情報処理装置にCPUの貸出しを要求するCPU貸出し要求手段と、
    前記CPU貸出し要求手段のCPU貸出し要求に基づいて貸し出されたCPUが、
    i)自装置が現在実行中のプロセスをReadyキューに入れ、
    ii)実記憶モードに切り替えることで自装置のOSが管理するメモリ領域をアクセス可能とし、
    iii)自装置のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、
    iv)自装置のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替える
    ことで、前記他の情報処理装置のCPUを自装置のOSの直接管理のもとで動作させつつ、所定のプロセスの実行を許可して実行させるようにする外部CPU実行許可手段と、
    前記CPU負荷状態検知手段によって検知された処理負荷状態第2のしきい値より低く、かつ他の情報処理装置より貸し出されたCPUがあれば、該CPUで実行予定のプロセスを他のCPUに移管し、当該移管後の前記貸し出されたCPUを当該他の情報処理装置のOSの管理下に戻す返還手段と
    を備えることを特徴とする情報処理装置。
  2. 前記情報処理装置の有するCPUと、前記他の情報処理装置の有するCPUとは、同じプログラムコードを解釈し、実行できることを特徴とする請求項1に記載の情報処理装置。
  3. 複数のCPUを有する情報処理装置であって、
    他の情報処理装置からのCPU貸出し要求に基づき、前記複数のCPUから貸し出し可能なCPUを選択する選択手段と、
    前記選択手段で選択された貸し出し可能なCPUで現在実行中のプロセス、または実行が予定されているプロセスを、前記複数のCPUの中の他のCPUに移管するプロセス移管手段と、
    前記プロセス移管手段による移管後の前記選択された貸し出し可能なCPUが、
    i)前記他の情報処理装置が現在実行中のプロセスをReadyキューに入れ、
    ii)実記憶モードに切り替えることで前記他の情報処理装置のOSが管理するメモリ領域をアクセス可能とし、
    iii)前記他の情報処理装置のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、
    iv)前記他の情報処理装置のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替える
    ことで、該CPUを前記他の情報処理装置のOSの直接の管理下に移管させ、当該他の情報処理装置の実行可能状態のプロセスを実行させる他プロセス実行手段と
    を備えることを特徴とする情報処理装置。
  4. 前記他プロセス実行手段は、前記選択手段で選択された貸し出し可能なCPUでのプロセス実行を、前記他の情報処理装置の所定のCPUでの所定のプロセスの実行とパラレルに行うことを特徴とする請求項3に記載の情報処理装置。
  5. それぞれが1つ以上のCPUを有する複数の計算機を用いたシステムにおける各計算機で実行される情報処理方法であって、
    計算機のCPUの処理負荷状態を検知するCPU負荷状態検知工程と、
    前記複数の計算機において前記計算機以外の他の計算機のCPUの処理負荷状態当該他の計算機から獲得する他計算機CPU負荷状態獲得工程と、
    前記CPU負荷状態検知工程によって検知された処理負荷状態第1のしきい値より高ければ、前記他計算機CPU負荷状態獲得工程によって獲得された処理負荷状態最も低い他の計算機を選択する計算機選択工程と、
    前記計算機選択工程によって選択された他の計算機CPUの貸出しを要求するCPU貸出し要求工程と、
    前記CPU貸出し要求工程のCPUの貸出し要求に基づき、前記他の計算機の有するCPUから貸し出すCPUを選択する貸し出しCPU選択工程と、
    前記貸し出しCPU選択工程で選択されたCPUが、
    i)自計算機が現在実行中のプロセスをReadyキューに入れ、
    ii)実記憶モードに切り替えることで自計算機のOSが管理するメモリ領域をアクセス可能とし、
    iii)自計算機のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、
    iv)自計算機のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替える
    ことで、該CPUを自計算機のOSの管理のもとで動作させつつ、該CPU所定のプロセスを実行させることを許可する外部CPU実行許可工程と、
    前記外部CPU実行許可工程で前記所定のプロセスの実行を許可されたCPUに、前記計算機の実行可能状態のプロセスを実行させる他プロセス実行工程と、
    前記CPU負荷状態検知工程によって検知された処理負荷状態第2のしきい値より低く、かつ他の計算機より貸し出されたCPUがあれば、該CPUで実行予定のプロセスを他のCPUに移管し、当該移管後の前記貸し出されたCPUを当該他の計算機のOSの管理下に戻す返還工程と
    を備えることを特徴とする情報処理方法。
  6. 前記各計算機のCPU、同じプログラムコードを解釈し、実行することを特徴とする請求項5に記載の情報処理方法。
  7. 前記貸し出しCPU選択工程はさらに、前記CPU貸出し要求工程のCPUの貸出し要求に基づいて、貸し出すCPUを選択した際、選択されたCPUが現在実行中のプロセス、または実行が予定されているプロセスを持つ場合、他のCPUに当該プロセスを移管するプロセス移管工程を備えることを特徴とする請求項5に記載の情報処理方法。
  8. 複数のCPUを有する計算機における情報処理方法であって、
    他の計算機からのCPU貸出し要求に基づき、前記複数のCPUから貸し出し可能なCPUを選択する選択工程と、
    前記選択工程で選択された貸し出し可能なCPUで現在実行中のプロセス、または実行が予定されているプロセスを、前記複数のCPUの中の他のCPUに移管するプロセス移管工程と、
    前記プロセス移管工程による移管後の前記選択された貸し出し可能なCPUが、
    i)前記他の計算機が現在実行中のプロセスをReadyキューに入れ、
    ii)実記憶モードに切り替えることで前記他の計算機のOSが管理するメモリ領域をアクセス可能とし、
    iii)前記他の計算機のOSが貸し出し処理用に用意したエントリにジャンプすることで処理を開始し、
    iv)前記他の計算機のOSが管理するページテーブルの値を設定し、仮想記憶モードに切り替える
    ことで、該CPUを前記他の計算機のOSの直接の管理下に移管させ、当該他の計算機の所定の実行可能状態のプロセスを実行させる他プロセス実行工程と
    を備えることを特徴とする記載の情報処理方法。
  9. 前記他プロセス実行工程は、前記選択工程で選択された貸し出し可能なCPUでのプロセス実行を、前記他の計算機の所定のCPUでの所定のプロセスの実行とパラレルに行うことを特徴とする請求項8に記載の情報処理方法。
JP20720594A 1994-08-31 1994-08-31 情報処理方法とその装置 Expired - Fee Related JP3862293B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP20720594A JP3862293B2 (ja) 1994-08-31 1994-08-31 情報処理方法とその装置
US08/520,586 US5884077A (en) 1994-08-31 1995-08-30 Information processing system and method in which computer with high load borrows processor of computer with low load to execute process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20720594A JP3862293B2 (ja) 1994-08-31 1994-08-31 情報処理方法とその装置

Publications (2)

Publication Number Publication Date
JPH0877026A JPH0877026A (ja) 1996-03-22
JP3862293B2 true JP3862293B2 (ja) 2006-12-27

Family

ID=16535981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20720594A Expired - Fee Related JP3862293B2 (ja) 1994-08-31 1994-08-31 情報処理方法とその装置

Country Status (1)

Country Link
JP (1) JP3862293B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1131082A (ja) * 1997-07-11 1999-02-02 Teijin Seiki Co Ltd オペレーティングシステムおよびオペレーティングシステムを記録した媒体
JP3554558B2 (ja) * 2002-04-19 2004-08-18 株式会社メイクソフトウェア 画像撮影編集方法,画像撮影編集装置
JP4570016B2 (ja) * 2002-04-19 2010-10-27 株式会社メイクソフトウェア 画像撮影編集装置,画像撮影編集方法および画像撮影編集プログラム
JP4586526B2 (ja) * 2004-02-27 2010-11-24 ソニー株式会社 情報処理装置、情報処理方法、情報処理システムおよび情報処理用プログラム
JP5527425B2 (ja) 2010-11-16 2014-06-18 富士通株式会社 通信装置、負荷分散方法、および記録媒体
WO2016174717A1 (ja) * 2015-04-27 2016-11-03 三菱電機株式会社 情報処理装置及びリソース割り当て方法及びリソース割り当てプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291599A (en) * 1991-08-08 1994-03-01 International Business Machines Corporation Dispatcher switch for a partitioner
JPH05257654A (ja) * 1992-03-12 1993-10-08 Hitachi Ltd 計算機の自動立ち上げ方法
JP2682770B2 (ja) * 1992-05-15 1997-11-26 富士通株式会社 仮想計算機システムのcpu制御方式
JPH05324357A (ja) * 1992-05-27 1993-12-07 Toshiba Corp 階層的アドレス管理方式
JPH07129518A (ja) * 1993-11-05 1995-05-19 Canon Inc 計算機システム
JPH07311749A (ja) * 1994-05-19 1995-11-28 Toshiba Corp マルチプロセッサシステム及びカーネル置換方法
JP3696901B2 (ja) * 1994-07-19 2005-09-21 キヤノン株式会社 負荷分散方法

Also Published As

Publication number Publication date
JPH0877026A (ja) 1996-03-22

Similar Documents

Publication Publication Date Title
US5884077A (en) Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
US7979617B2 (en) Quad aware locking primitive
Bhide An Analysis of Three Transaction Processing Architectures.
JP3678414B2 (ja) 多重プロセッサ・システム
US6353844B1 (en) Guaranteeing completion times for batch jobs without static partitioning
US9454389B2 (en) Abstracting a multithreaded processor core to a single threaded processor core
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
US8572626B2 (en) Symmetric multi-processor system
JPH03144847A (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
JPH0795317B2 (ja) マルチプロセッサ・システムのジョブの割当方法
WO2003040912A1 (en) Method and apparatus for dispatching tasks in a non-uniform memory access (numa) computer system
US7103631B1 (en) Symmetric multi-processor system
CN111459622B (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
JPS616741A (ja) 階層型多重計算機システム
JP3862293B2 (ja) 情報処理方法とその装置
JP3546694B2 (ja) マルチスレッド計算機システム及びマルチスレッド実行制御方法
JP3746826B2 (ja) 資源ロック制御機構
JPH07129518A (ja) 計算機システム
Walters et al. Enabling interactive jobs in virtualized data centers
Wang et al. Amcilk: A framework for multiprogrammed parallel workloads
JP5847313B2 (ja) 情報処理装置
Hou et al. Transparent load sharing in distributed systems: Decentralized design alternatives based on the condor package
Steiner Extending multiprogramming to a DMPP
JP3585956B2 (ja) 情報処理装置及びその方法
KR101480954B1 (ko) Numa 시스템의 스케줄링 장치 및 그 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060308

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060926

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131006

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees