JPH06337850A - プログラム作成方法 - Google Patents

プログラム作成方法

Info

Publication number
JPH06337850A
JPH06337850A JP12760393A JP12760393A JPH06337850A JP H06337850 A JPH06337850 A JP H06337850A JP 12760393 A JP12760393 A JP 12760393A JP 12760393 A JP12760393 A JP 12760393A JP H06337850 A JPH06337850 A JP H06337850A
Authority
JP
Japan
Prior art keywords
program
function
resource manager
evaluator
processing
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
Application number
JP12760393A
Other languages
English (en)
Inventor
Shinji Hayashi
伸二 林
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP12760393A priority Critical patent/JPH06337850A/ja
Publication of JPH06337850A publication Critical patent/JPH06337850A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】複数の計算機から構成される計算機システムに
おいて、通信処理の負荷を減らし、計算機間の負荷分散
を図ることができる情報処理方法およびその装置を提供
することを目的とする。 【構成】計算機システム1は、機能および構成の異なる
2種類の計算機が記憶装置5を共有し、これらが協働し
て情報処理を行う。エバリュエータ2は、例えば本来の
データ処理そのものを行い、記憶管理等の処理が必要に
なった場合にはリソースマネージャ4に処理を要求し、
リソースマネージャ4がこれらの処理を行うという機能
分担になっている。まず、エバリュエータ2はリソース
マネージャ4で実行可能な関数を実行する文を抽出す
る。さらに、この該関数をリソースマネージャ4に送出
する。リソースマネージャ4においては該関数を実行可
能なプログラム言語Cに変換し、関数の登録を行う。エ
バリュエータ2はリソースマネージャ4に対して必要に
応じてこの関数の機能の実行を要求する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の計算機が協働して
情報処理を行う計算機システムにおいて、自動的に各計
算機に適合した機能分担をさせるプログラム作成方法に
関する。
【0002】
【従来の技術】複数の計算機が接続され、これらが協働
して所定の情報処理を行う計算機システムにおいては、
従来以下に述べるように機能が実現されていた。通信回
線により接続され、相互にデータの送受信を行う2台の
計算機から構成される計算機システムにおいて、第一の
プロセッサに所定の機能を実現するためのプログラムA
が用意されており、このプログラムAを第二の計算機か
ら起動し、その結果を得る場合を例に述べる。
【0003】プログラムAを起動する第二の計算機上の
プログラムBは、予め第一の計算機にプログラムAが存
在することを前提に開発される。プログラムBは、プロ
グラムAを起動して処理を行わせるために、例えば、 (1)プログラムAを起動するコマンドの生成。 (2)プログラムAに入力するパラメーターの作成。 (3)上記コマンドおよび上記パラメーターを第一の計
算機に送出する。 (4)第一の計算機からプログラムAの処理結果を受け
取る。 (5)所定の時間内に上記処理結果を受け取れなかった
場合の例外処理を行う。 等の一連の処理を行う必要がある。
【0004】つまり第二の計算機は、第一の計算機のプ
ログラムAの機能を使用するために、プログラムBの処
理だけではなく、第一の計算機に対する上記コマンドお
よび上記パラメーターの送信処理、および、プログラム
Aの処理結果の受信処理等を行う必要がある。また逆
に、第二の計算機はプログラムAの処理の他に上記コマ
ンドおよびパラメーターの受信処理、および、プログラ
ムAの送信処理等を行う必要がある。
【0005】
【発明が解決しようとする課題】複数の計算機が協働し
て情報処理を行う計算機システムにおいては、同一の計
算機内の機能を使用する場合に比べて、計算機間の通信
処理が必要となり、この処理の負荷が無視できないとい
う問題がある。また、これらの計算機間を接続する通信
回線等が輻輳した場合、コマンドおよび処理結果等の送
受信に時間がかかり、それぞれの計算機の能率が下がっ
てしまうという問題がある。
【0006】また、一度構築が完了した複数の計算機か
ら構成される計算機システムに対して、そのユーザーが
新たな機能を追加することは、単一の計算機に対して同
様なことを行う場合に比べて難しいという問題がある。
さらに、それぞれ異なった機能を有する計算機を使用し
た場合、各計算機にその機能上の特徴を活かした処理を
割り当て、各計算機の負荷の分散を図ることが望まれて
いる。
【0007】本発明は以上述べた従来技術の問題点に鑑
みてなされたものであり、複数の計算機から構成される
計算機システムにおいて、通信処理の負荷を減らすこと
が可能であり、また新たな機能追加が容易であり、さら
に計算機間の負荷分散を図ることが可能なプログラム作
成方法を提供することを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に本発明のプログラム作成方法は、それぞれがハードウ
ェア資源を有する複数のプロセッサを有し、あるプロセ
ッサが他のプロセッサに属するハードウェア資源にアク
セスする場合、当該他のプロセッサを介してそのアクセ
スを行うコンピュータシステムにおける前記複数のプロ
セッサで動作させる複数のプログラムを作成する方法で
あって、前記複数のプログラムそれぞれの処理内容と、
プロセッサに属するハードウェア資源とを参照し、使用
するハードウェア資源を有するプロセッサにおいて、そ
のプログラムを動作させるように複数のプロセッサに対
する複数のプログラムの動作割り付けを行うことを特徴
とする。
【0009】また、前記動作割り付けに従って、それぞ
れのプロセッサに割り付けられたプログラムを該当する
プロセッサにおいて動作可能にコンパイルすることを特
徴とする。
【0010】また、前記プログラム割り付けは、そのプ
ログラムの処理において最も頻度が高くハードウェア資
源にアクセスを行うハードウェア資源を有するプロセッ
サにおいてそのプログラムを割り付けることを特徴とす
る。
【0011】また、前記プログラムは、プロセッサ間デ
ータ通信頻度が低くなるように行うことを特徴とする。
【0012】また、前記複数のプログラムは、予め複数
のプロセッサのいずれかにおいて動作することが設定さ
れており、前記動作割り付けによって、プログラムが動
作するプロセッサを変更することを特徴とする。
【0013】
【作用】複数の計算機が接続され、これらが協働して情
報処理を行う計算機システムの一の計算機上に所定の機
能を実現する関数等が存在し、他の計算機上のプログラ
ムにこの関数等を呼び出す部分がある場合に、この関数
等を呼び出す部分を前記他の計算機上の関数等を呼び出
す記述に変更し、さらに、前記一の計算機の前記関数等
を前記他の計算機上で実行可能な形式に変換して前記他
の計算機に転送する。
【0014】つまり、前記一の計算機上にあった所定の
機能を前記他の計算機に実行可能な形式で記憶させ、さ
らに、前記プログラムの、前記一の計算機に対する前記
関数等の呼び出し部分を前記他の計算機内部で閉じた関
数呼び出しを行うように変更する。これにより、前記他
の計算機における閉じた処理で前記関数等と同じ機能を
実現可能とする。
【0015】また、このように他の計算機で閉じた処理
で前記関数等を実行可能とすることにより、計算機間の
通信負荷を削減する。さらに、この計算機システムにお
いて、特定の計算機に追加された機能がその他の計算機
においても実行可能とする。また、計算機間で使用言語
が異なる場合には、この言語間で翻訳を行うことによ
り、異なった言語を使用する計算機間においても以上の
関数等の転送を可能としている。
【0016】
【実施例】以下、本発明のプログラム作成方法の実施例
を説明する。図1は、本発明の情報処理方法を実現する
計算機システム(PE)1の構成を示す図である。計算
機システム1は、機能および構成の異なる2種類の計算
機が記憶装置(STRG)5のメインメモリ(MM)5
1を共有し、エバリュエータ2およびリソースマネージ
ャ4が共有して両者がアクセスし、二次記憶装置52を
リソースマネージャ4が管理し、これらが協働して情報
処理を行う。つまり、エバリュエータ2は本来のデータ
処理そのものを行い、記憶管理、デバイス管理、プロセ
ス管理、ファイル管理、入出力処理、および他の計算機
システムとの通信処理等の処理が必要になった場合には
リソースマネージャ4に処理を要求し、リソースマネー
ジャ4がこれらの処理を行うという機能分担になってい
る。
【0017】図1において、エバリュエータ(EU)2
は、人工知能的な処理に好適なプログラム言語LISP
で記述されたプログラムを高速に実行する専用計算機で
ある。エバリュエータ2は、特に人工知能的な処理等を
行うために好適なソフトウェア構成およびハードウェア
構成を有しており、データを処理するためのプログラム
本体の実行を主に行う。
【0018】リソースマネージャ(RM)4は、計算機
システム1とユーザー間のヒューマン・マシンインター
フェース、および、計算機システム1と周辺機器等間の
外部機器インターフェースに重点を置いた処理を行い、
これらに好適なソフトウェア構成およびハードウェア構
成を有している。
【0019】記憶装置(STRG)5は、エバリュエー
タ2およびリソースマネージャ4に共有され、これらの
計算機の処理に使用される各種データを記憶する。エバ
リュエータ2およびリソースマネージャ4は、記憶装置
5を介して計算機間通信を行い、それぞれの特徴に応じ
た処理を分担している。
【0020】エバリュエータ2とリソースマネージャ4
の間はリソースマネージャインターフェース31、エバ
リュエータインターフェース42を介してプロセッサ間
通信が可能となっており、また、記憶装置5を介した情
報の受渡しが可能である。なお、計算機システム1を複
数LANにより相互接続し、さらに大きな計算機システ
ムを構成することが可能である。
【0021】図2は、エバリュエータ2、リソースマネ
ージャ4、および記憶装置5の構成を示す図である。図
2において、エバリュエータ2は、データ幅32ビット
のVLIW(Very Long Instructi
on Word)制御の計算機である。
【0022】ALU21、シフトレジスタ(SFT)2
2、およびマスカレジスタ(MSK)23は協働して一
般的な計算機における該当部分と同様な四則演算、論理
演算、およびレジスタに記憶されるデータシフト等の機
能、および、LISPの関数およびメソッド等の処理を
高速に実行するためのデータフィールドの値による多方
向分岐機能を実現する。
【0023】ローカルメモリ(LM)33は、エバリュ
エータ2の制御に使用されるデータを記憶する64KW
の高速メモリであり、内部にレジスタファイル24およ
びユーザスタック25の情報を記憶する。レジスタファ
イル24、ユーザスタック25に記憶されたデータはA
LU21等における処理に使用される。
【0024】インストラクションキャッシュ(IC)2
6は、エバリュエータ2での処理を高速にするために設
けられた64ビット×64キロワード(KW)構成のメ
モリであり、高級言語(LISP等)で記述されたユー
ザー関数等をコンパイルすることにより生成され、AL
U21等で直接実行可能な命令コードを記憶する。
【0025】システムコントローラ27は、エバリュエ
ータ2の動作を制御する。コントロールメモリ(CM)
30に記憶されるディスパッチテーブル(DP)29、
およびシステムスタック(SS)28は、エバリュエー
タ2のオペレーションシステム(OS)の動作に必要な
データ等を記憶する。
【0026】リソースマネージャインターフェース(R
M−I/F)31は、エバリュエータ2とリソースマネ
ージャ4間のデータの送受信を行う。メインメモリイン
ターフェース(MM−I/F)32は、エバリュエータ
2と記憶装置5間のデータの送受信を行う。エバリュエ
ータ2においては、以上の各部分が図中に示すようにバ
ス等により接続されている。
【0027】リソースマネージャ4は、OSとして例え
ばUNIXを搭載したワークステーション(WS)45
に、通信インターフェース(C−I/F)46等が付加
された構成となっている。通信インターフェース46
は、他の計算機システムとの通信制御を行う。エバリュ
エータインターフェース(EU−I/F)42は、エバ
リュエータ2とリソースマネージャ4間のデータの送受
信を行う。
【0028】診断用インターフェース(D−I/F)4
3は、計算機システム1の動作チェックの設定データお
よび診断結果情報の送受信を行う。ポインタマニュピレ
ータ(PM)44は、記憶装置5を制御し、記憶装置5
のメインメモリ51に記憶される記号処理等のデータに
ついての高速アクセスを可能とする。端末装置41は、
例えば通信機能を備えたパーソナルコンピュータであ
り、計算機システム1の各種データの入出力を行う。
【0029】記憶装置5は、エバリュエータ2およびリ
ソースマネージャ4が共用する記憶装置であり、メイン
メモリ(MM)51とハードディスク等の二次記憶装置
52から構成されている。記憶装置5のメインメモリ5
1は、これらの計算機が使用するデータを記憶するとと
もに、計算機相互の制御情報等の受渡し等を行ためにも
使用される。
【0030】メインメモリ51は、エバリュエータ2お
よびリソースマネージャ4の両方からアクセス可能なデ
ュアルポート構成の半導体記憶装置であり、記号処理の
性能を向上させるためデータ本体の他にデータの属性、
例えば該データが排他的アクセスが行われるデータであ
るか否か、該データに対する参照回数、あるいは、デー
タの参照先および参照元等を示す2ワードのポインタを
記憶する。
【0031】従って、メインメモリ51の1ワードは8
0ビットで構成され、その容量は54KWである。な
お、二次記憶装置52は、独立に設けられるかワークス
テーション45に内蔵されるか等を問わない。
【0032】図3は、計算機システム1におけるソフト
ウェア構成を示す図である。図3において、GUI機能
群6は、エバリュエータ2上で動作し、そのソースプロ
グラムがLISPで記述されたGUI(Graphic
User Interface)機能を実現する複数
の関数である。
【0033】GUI機能群7は、リソースマネージャ4
上で動作し、そのソースプログラムがプログラム言語C
で記述されたGUI機能を実現する複数の関数である。
ウィンドウシステム8は、UNIXワークステーション
で使用される、例えばX−WINDOWのような操作プ
ログラムである。
【0034】ウィンドウシステム8により、ユーザーは
リソースマネージャ4のワークステーション45を操作
して複数のウィンドウを任意に表示装置の画面上に表示
させることができ、それぞれのウィンドウでワークステ
ーションに対して別個の処理の操作が可能となる。な
お、図3においては、ウィンドウシステム8と端末装置
41間の通信ソフトウェア等、本発明の動作に直接関係
ない部分は省略してある。
【0035】以下、エバリュエータ2がGUI機能群6
を用いて、リソースマネージャ4のウィンドウシステム
8に図形を描かせる際の動作を例として計算機システム
1の動作を説明する。ここで当初、エバリュエータ2の
GUI機能群6には、画面上に長方形を描く関数dra
w_rectangleが存在し、リソースマネージャ
4にはこの関数draw_rectangleに対応す
る関数は用意されていない。
【0036】このエバリュエータ2の関数draw_r
ectangleは、LISPで記述すると例えば以下
のようになる。
【表1】 (defun draw_rectangle (x1 y1 x2 y2) (gui::draw_line x1 y1 x1 y2) (gui::draw_line x1 y2 x2 y2) (gui::draw_line x2 y2 x2 y1) (gui::draw_line x2 y1 x1 y1) ) ・・・プログラム1
【0037】図4は、プログラム1の処理を示すフロー
チャートである。ステップ01(S01)において、エ
バリュエータ2は関数定義を行う。ステップ02(S0
2)において、端末装置41の座標(x1,y1)と座
標(x1,y2)の間に線を引く。ステップ03(S0
3)において、端末装置41の座標(x1,y2)と座
標(x2,y2)の間に線を引く。
【0038】ステップ04(S04)において、端末装
置41の座標(x2,y1)と座標(x2,y2)の間
に線を引く。ステップ05(S05)において、端末装
置41の座標(x2,y1)と座標(x1,y1)の間
に線を引く。プログラム1は上記処理を行う内容のプロ
グラムである。
【0039】プログラム1は、端末装置41に図形を表
示する命令なので、リソースマネージャ4に実行させる
のが最適である。つまり、端末装置41はリソースマネ
ージャ4に接続されており、エバリュエータ2で実行し
てリソースマネージャ4を介して端末装置41に表示す
るよりも、パラメータのみをエバリュエータ2から受け
てリソースマネージャ4で処理を行う方がエバリュエー
タ2とリソースマネージャ4間の通信量が減少し、か
つ、システム全体としての処理効率もよくなる。
【0040】このように、各プログラム、あるいは関数
の種類によってエバリュエータ2またはリソースマネー
ジャ4のいずれで動作させることが計算機システム1全
体の処理効率が向上するかは、ほとんど事前に判断可能
である。例えば、リソースマネージャ4で記号処理に関
する関数等があった場合には、この関数をエバリュエー
タ2に移して実行させる方がよく、反対に、例えばエバ
リュエータ2に二次記憶装置52にデータを記憶させる
プログラムがあった場合には、この関数をリソースマネ
ージャ4に移して実行させる方がよい。
【0041】したがって、エバリュエータ2またはリソ
ースマネージャ4にあるプログラムを移すか否かは、そ
のプログラムのアクセスするハードウェア資源を各コン
ピュータが有するか否かを参照し、該ハードウェアを有
する方のコンピュータに移せばよい。この選択は、例え
ば各コンピュータ間でハードウェア資源の参照を行う、
あるいは、各コンピュータが他のコンピュータのハード
ウェア資源のテーブルを持つ、あるいは、LISP、C
等の各命令対応に、リソースマネージャ4またはエバリ
ュエータ2のいずれで処理するかのテーブルを作成し、
このテーブルに従って処理を行う等により実行可能であ
る。
【0042】また通常、該プログラムが使用するハード
ウェア資源を有するコンピュータに機能を移すことによ
り、エバリュエータ2とリソースマネージャ4間の通信
量は少なくなるが、この対応が必ずしも成立しない場合
には、例えば上述したものと同様に、通信量の観点から
リソースマネージャ4またはエバリュエータ2のいずれ
で処理するかのテーブルを作成し、このテーブルに従っ
て処理を行う等により通信量を減らすことができる。
【0043】ここで、引数(x1 y1)(x2 y
2)は、それぞれ関数draw_rectangleが
描こうとする長方形の左上、右下の座標である。また、
行先頭の(gui::)は、プログラム言語LISPに
おけるパッケージと呼ばれるプログラムの単位を表し、
この単位でプログラムを分類して管理することが可能で
ある。
【0044】ここでは、パッケージguiは、エバリュ
エータ2からリソースマネージャ4を呼ぶためのインタ
ーフェース関数となっている。エバリュエータ2におい
てこの関数draw_rectangleを呼び出すプ
ログラムmain_functionは、例えば以下の
ように記述される。なお、以上に述べたプログラム1、
2、および後述のプログラム3は、図6に示すように同
一のファイルFILE_LISPに記述される。
【0045】
【表2】 (defun main_function () ・ ・ ・ (draw_rectangle (x1 y1 x2 y2) ・ ・ ・ ) ・・・プログラム2
【0046】図5は、プログラム2の処理を示すフロー
チャートである。ステップ10(S10)において、エ
バリュエータ2は関数draw_rectangleを
実行する。プログラム2は、省略部分を除いて以上の処
理を行うプログラムである。
【0047】ここで、本発明の計算機システム1におけ
る、機能発掘(マイグレーション)について説明する。
まず、エバリュエータ2はファイルFILE_LISP
を解析し、リソースマネージャ4で実行可能な関数(こ
こでは関数draw_rectangle)を実行する
文を抽出する。
【0048】抽出の方法としては、予めエバリュエータ
2におけるリソースマネージャ4で実行可能な関数を指
定し、その関数を文字列検索で自動的に抽出する等、プ
ログラムを工夫することにより対応可能である。なお、
人手によりこの抽出を行う等、抽出の方法は問わない。
ここで抽出されたファイルFILE_LISP内のプロ
グラム2の関数draw_rectangleを実行す
る部分を以下のように変換し、リソースマネージャ4の
関数を呼び出す文とする。
【0049】
【表3】 (defun main_function () ・ ・ ・ (call rm_function draw_rectangle x1 y1 x2 y2) ・ ・ ・ ) ・・・プログラム2’
【0050】つまり、エバリュエータ2でdraw_r
ectangleを実行していた部分(draw_re
ctangle)を、エバリュエータ2の関数を呼び出
す文に変換して(call rm_function
draw_rectangle)とする。
【0051】さらに、エバリュエータ2はプログラム1
をリソースマネージャ4に送る。プログラム1は、リソ
ースマネージャ4においてプログラム言語Cに変換さ
れ、以下のように記述される。
【表4】 draw_rectangle (x1 y1 x2 y2) { draw_line (x1 y1 x1 y2) draw_line (x1 y2 x2 y2) draw_line (x2 y2 x2 y1) draw_line (x2 y1 x1 y1) } ・・・プログラム1’ プログラム1’の処理は、実行する計算機がエバリュエ
ータ2からリソースマネージャ4になる他はプログラム
1に同じである。
【0052】これらのプログラムはエバリュエータ2お
よびリソースマネージャ4において、図6に示すように
記憶される。図6において(A)に示すように、プログ
ラム2はエバリュエータ2の関数draw_recta
ngleを実行する部分が、リソースマネージャ4の関
数draw_rectangleを呼び出す文に変換さ
れてプログラム2’となり、ファイルFILE LIS
Pに記憶される。
【0053】一方、図6(B)に示すように、プログラ
ム1はエバリュエータ2からリソースマネージャ4に送
られてエバリュエータ2で使用されるプログラム言語L
ISPからプログラム言語Cに変換されて記憶される。
【0054】リソースマネージャ4において、さらにプ
ログラム1’がコンパイルされ、リソースマネージャ4
が実行可能な形式のオブジェクトプログラムとなる。な
お、計算機システム1が複数の同一の種類の計算機で構
成され、同一のプログラム言語をコンパイルして実行可
能である場合、以上に説明したプログラム言語間の変換
は不要である。また、長方形を描く関数に限らず、エバ
リュエータ2においてリソースマネージャ4で実行可能
な複数の関数について上記と同様な処理を行い、システ
ム全体の最適化を図る。
【0055】リソースマネージャ4のプログラム1’
は、エバリュエータ2においてプログラム2’の(ca
ll rm_function draw_recta
ngle x1 y1 x2 y2)が実行されるたび
に呼び出され、実行される。ここで、計算機システム1
のようにメインメモリ51を共有するシステムにおいて
は、エバリュエータ2からのリソースマネージャ4に対
する関数の呼び出しは図7(A)に示すようにプロセッ
サ間通信により行われ、また、エバリュエータ2とリソ
ースマネージャ4間の引数(x1 y1 x2 y2)
の受渡しは、図7(B)に示すようにメインメモリ51
を介して行われる。
【0056】また、計算機システム1と異なり、共有す
るメモリがない計算機システムにおいては、関数の呼び
出しと引数の受渡しの両方をプロセッサ間通信により行
うことにより同様の処理が可能となる。以上の処理によ
り、リソースマネージャ4には用意されていなかった長
方形を描画する機能をエバリュエータ2からマイグレー
ションし、リソースマネージャ4において実行すること
ができる。
【0057】図8は、エバリュエータ2における上記処
理を示すフローチャートである。ステップ20(S2
0)において、エバリュエータ2は処理のために、例え
ば二次記憶装置52からファイルFILE_LISPを
ロードする。ステップ21(S21)において、エバリ
ュエータ2はその時点でロードしているファイルFIL
E_LISPの部分がファイルの終わりか否かを判断
し、終わりである場合は処理を終了し、終わりでない場
合、S22の処理に進む。
【0058】ステップ22(S22)において、エバリ
ュエータ2は関数の読み込みを行う。ステップ23(S
23)において、エバリュエータ2は該関数がリソース
マネージャ4で実行可能か否かを判断する。実行可能で
ある場合、S24の処理に進み、実行可能でない場合、
S26の処理に進む。
【0059】ステップ24(S24)において、エバリ
ュエータ2はリソースマネージャ4に該関数(本実施例
においてはプログラム2)を送出する。ここで、メイン
メモリ51を介してリソースマネージャ4に該関数を送
出するか、あるいはプロセッサ間通信を介して行うか等
は問わない。
【0060】ステップ25(S25)において、他のプ
ログラム(本実施例においてはプログラム1)の該関数
を実行する部分を抽出し、リソースマネージャ4の関数
を呼び出す文に変換する(本実施例においてはプログラ
ム1’を生成する)。ステップ26(S26)におい
て、該関数をリソースマネージャ4に命令として登録す
る。
【0061】図9は、リソースマネージャ4における上
記処理を示すフローチャートである。ステップ30(S
30)において、リソースマネージャ4はエバリュエー
タ2からの関数を受信する。ステップ31(S31)に
おいて、リソースマネージャ4は該関数のプログラム言
語(本実施例においてはLISP)をリソースマネージ
ャ4で実行可能なプログラム言語(本実施例においては
C)に変換する(プログラム1’を生成する)。
【0062】ステップ32(S32)において、リソー
スマネージャ4はプログラム1’をコンパイルし、実行
可能なオブジェクトプログラムに変換する。ステップ3
3(S33)において、リソースマネージャ4はプログ
ラム1’のオブジェクトプログラムを機能オブジェクト
として登録する。
【0063】なお、本実施例においては、LISPとC
の間の変換について述べたが、プログラム言語はこの2
つに限らず、例えばPROLOGとPASCALといっ
た他の言語間の変換を行うように構成してもよい。例え
ば、エバリュエータ4とリソースマネージャ4で同一の
言語、例えばCを共通に用いている場合にも本発明のプ
ログラム作成方法を適用することができるのは言うまで
もない。つまり、一方の計算機から変換なしに、あるい
は、両者で使用されるCの仕様の差異を補う程度の変換
により他の計算機にプログラムを移植することが可能と
なる。また、本実施例においては、エバリュエータ2か
らリソースマネージャ4に対して関数を送出して実行さ
せる場合について述べたが、この関係は逆でもよい。
【0064】また、計算機システムの計算機は2台に限
らず、さらに多くの計算機を接続し、相互に関数を交換
して処理を行ってもよい。また、交換するソフトウェア
は関数に限らず、さらに大規模なソフトウェアを交換し
てもよい。以上述べた他、例えば上記各変形例に示すよ
うに、本発明のプログラム作成方法は種々の構成をとる
ことができる。
【0065】
【発明の効果】以上述べたように本発明によれば、複数
の計算機を接続した計算機システムにおいて、一つの計
算機に備えられた関数を他の計算機でも利用することが
可能となる。また、該関数を他の計算機においても実行
可能とすることにより、計算機間の負荷分散を図ること
が可能となる。また、該関数の呼び出しと引数の受渡し
のみを行うのみで他の計算機に処理を任せることが可能
となり、処理結果の受渡しが不要になるので、計算機間
の通信負荷を減らすことが可能となる。
【図面の簡単な説明】
【図1】本発明の情報処理方法を実現する計算機システ
ム(PE)の構成を示す図である。
【図2】計算機システムのエバリュエータ、リソースマ
ネージャ、および記憶装置の構成を示す図である。
【図3】計算機システムにおけるソフトウェア構成を示
す図である。
【図4】プログラム1の処理を示すフローチャートであ
る。
【図5】プログラム2の処理を示すフローチャートであ
る。
【図6】プログラム1、2、およびこれらを変換した後
のプログラム1’、2’のエバリュエータおよびリソー
スマネージャにおける記憶位置を示す図である。
【図7】エバリュエータとリソースマネージャ間の関数
呼び出しと引数の受渡しを説明する図である。
【図8】エバリュエータにおける本発明に係る処理を示
すフローチャートである。
【図9】リソースマネージャにおける本発明に係る処理
を示すフローチャートである。
【符号の説明】 1・・・計算機システム 2・・・エバリュエータ 21・・・ALU 22・・・シフトレジスタ 23・・・マスクレジスタ 24・・・レジスタファイル 25・・・ユーザスタック 26・・・インストラクションキャッシュ 27・・・システムコントローラ 28・・・システムスタック 29・・・ディスパッチテーブル 30・・・コントロールメモリ 31・・・メインメモリインターフェース 32・・・メインメモリインターフェース 33・・・ローカルメモリ 4・・・リソースマネージャ 41・・・端末装置 42・・・エバリュエータインターフェース 43・・・診断用インターフェース 44・・・リソースマネージャ 45・・・ワークステーション 46・・・通信インターフェース 5・・・記憶装置 51・・・メインメモリ 52・・・二次記憶装置 6、7・・・GUI機能群 8・・・ウィンドウシステム

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】それぞれがハードウェア資源を有する複数
    のプロセッサを有し、あるプロセッサが他のプロセッサ
    に属するハードウェア資源にアクセスする場合、当該他
    のプロセッサを介してそのアクセスを行うコンピュータ
    システムにおける前記複数のプロセッサで動作させるプ
    ログラムを作成する方法であって、 前記プログラムそれぞれの処理内容と、プロセッサに属
    するハードウェア資源とを参照し、 使用するハードウェア資源を有するプロセッサにおい
    て、そのプログラムを動作させるように複数のプロセッ
    サに対する複数のプログラムの動作割り付けを行うこと
    を特徴とするプログラム作成方法。
  2. 【請求項2】前記動作割り付けに従って、それぞれのプ
    ロセッサに割り付けられたプログラムを該当するプロセ
    ッサにおいて動作可能にコンパイルすることを特徴とす
    る請求項1に記載のプログラム作成方法。
  3. 【請求項3】前記プログラム割り付けは、そのプログラ
    ムの処理において最も頻度が高くハードウェア資源にア
    クセスを行うハードウェア資源を有するプロセッサにお
    いてそのプログラムを割り付けることを特徴とする請求
    項1または2に記載のプログラム作成方法。
  4. 【請求項4】前記プログラムは、プロセッサ間データ通
    信頻度が低くなるように行うことを特徴とする請求項1
    または2に記載のプログラム作成方法。
  5. 【請求項5】前記複数のプログラムは、予め複数のプロ
    セッサのいずれかにおいて動作することが設定されてお
    り、前記動作割り付けによって、プログラムが動作する
    プロセッサを変更することを特徴とする請求項1〜4の
    いずれかに記載のプログラム作成方法。
JP12760393A 1993-05-28 1993-05-28 プログラム作成方法 Pending JPH06337850A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12760393A JPH06337850A (ja) 1993-05-28 1993-05-28 プログラム作成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12760393A JPH06337850A (ja) 1993-05-28 1993-05-28 プログラム作成方法

Publications (1)

Publication Number Publication Date
JPH06337850A true JPH06337850A (ja) 1994-12-06

Family

ID=14964177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12760393A Pending JPH06337850A (ja) 1993-05-28 1993-05-28 プログラム作成方法

Country Status (1)

Country Link
JP (1) JPH06337850A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0945606A2 (en) 1998-03-27 1999-09-29 Isuzu Ceramics Research Institute Co., Ltd. Turbocharged gas-combustion engine equipped with motor generator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0945606A2 (en) 1998-03-27 1999-09-29 Isuzu Ceramics Research Institute Co., Ltd. Turbocharged gas-combustion engine equipped with motor generator

Similar Documents

Publication Publication Date Title
US7490330B2 (en) Using a virtual machine instance as the basic unit of user execution in a server environment
US5659701A (en) Apparatus and method for distributed program stack
JP3617852B2 (ja) 多重処理パイプラインデータ処理エミュレート方法
JP3251800B2 (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
US4916608A (en) Provision of virtual storage resources to an operating system control program
US6253226B1 (en) Duration-based memory management of complex objects
US9098297B2 (en) Hardware accelerator for an object-oriented programming language
US9052957B2 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
CN106687919B (zh) 用于控制多个组件的执行的方法、系统和计算机可读介质
JPH08502612A (ja) データ処理システムおよびオペレーティング・システム
WO1993016437A1 (en) A programming model for a coprocessor on a computer system
JPH0869435A (ja) ネットワークを介してリモート・プロシージャ・コール及びレスポンスを転送するための方法及びシステム
CN106605209B (zh) 控制数据处理任务
JPH0283627A (ja) インタプリタ
KR20010034542A (ko) 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture
US6353859B1 (en) Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment
US6327606B1 (en) Memory management of complex objects returned from procedure calls
US20090037450A1 (en) Data gather scatter - redistribution machine
JP2001236234A (ja) コンピュータ、並びに、コンピュータ読み取り可能な記録媒体
JP2991242B2 (ja) マルチプロセッサコンピュータシステム使用方法
JPH06337850A (ja) プログラム作成方法
CN112363804B (zh) 区块链jvm应用方法、设备和存储介质
EP2972837B1 (en) Dynamic memory management for a virtual supercomputer
EP0509946A2 (en) Apparatus and method for implementing a distributed program stack

Legal Events

Date Code Title Description
A912 Removal of reconsideration by examiner before appeal (zenchi)

Effective date: 20040521

Free format text: JAPANESE INTERMEDIATE CODE: A912