JP3342659B2 - Distributed processing method, network system and node device - Google Patents

Distributed processing method, network system and node device

Info

Publication number
JP3342659B2
JP3342659B2 JP04412798A JP4412798A JP3342659B2 JP 3342659 B2 JP3342659 B2 JP 3342659B2 JP 04412798 A JP04412798 A JP 04412798A JP 4412798 A JP4412798 A JP 4412798A JP 3342659 B2 JP3342659 B2 JP 3342659B2
Authority
JP
Japan
Prior art keywords
information
priority
thread
task
network 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.)
Expired - Lifetime
Application number
JP04412798A
Other languages
Japanese (ja)
Other versions
JPH11242658A (en
Inventor
博俊 前川
Original Assignee
株式会社ディジタル・ビジョン・ラボラトリーズ
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 株式会社ディジタル・ビジョン・ラボラトリーズ filed Critical 株式会社ディジタル・ビジョン・ラボラトリーズ
Priority to JP04412798A priority Critical patent/JP3342659B2/en
Publication of JPH11242658A publication Critical patent/JPH11242658A/en
Application granted granted Critical
Publication of JP3342659B2 publication Critical patent/JP3342659B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、分散システム上で
負荷の割り当てを所望の状態に制御することができ、ひ
いては実時間処理を適切に行うことのできる分散処理方
法、そのような負荷の分散などを適切に行い所望の実時
間処理を適切に行うことのできるネットワークシステ
ム、および、そのような分散システム上のノードに適用
して好適なノード装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed processing method capable of controlling load allocation to a desired state on a distributed system, and appropriately performing real-time processing. The present invention relates to a network system capable of appropriately performing desired real-time processing by appropriately performing such operations, and a node device suitable for being applied to a node on such a distributed system.

【0002】[0002]

【従来の技術】通信技術の発達や情報処理需要の高まり
を背景としてネットワーク上の計算は、分散マルチメデ
ィア処理や分散高性能計算など多様な分野でその重要性
を増している。そこで、様々な計算リソースをネットワ
ークワイドな多様な局面で柔軟に利用できるようなシス
テムの普及が期待されている。そのようなシステムをよ
り容易に構築するためには、広域環境での分散された処
理を統合的な枠組みで扱うための方式やそこでの効率の
よい大域的な並行計算の実現が求められる。
2. Description of the Related Art With the development of communication technology and an increase in demand for information processing, the computation on a network is becoming increasingly important in various fields such as distributed multimedia processing and distributed high-performance computation. Therefore, the spread of a system that can flexibly use various computing resources in various network-wide situations is expected. In order to construct such a system more easily, a method for handling distributed processing in a wide-area environment with an integrated framework and an efficient global parallel computation therefor are required.

【0003】そのような広域環境上での計算を実現する
手法としては、種々の方法が提案されているが、広域の
計算を統合的に扱える機能や,大域空間とそのリソース
の管理の機能への対応が十分ではないなどの問題があ
り、充分要求が満たされるものではなかった。たとえ
ば、CORBA(The Common Object Request Broker: A
rchitecture and Specification, Wiley, New York (19
91))は、均一空間上でオブジェクトの所在を特定するパ
ラダイムを持ったプラットフォームであるが、広域のネ
ットワーク計算には不向きであり、分散処理の特質を隠
蔽していることによる計算効率の低下をともなうという
問題がある。また、オブジェクト機能の呼出インターフ
ェースを規定しなければならず、プログラミング上の柔
軟性に欠けるという問題もある。
[0003] Various methods have been proposed as methods for realizing calculations in such a wide-area environment. However, there have been proposed functions for handling global-area calculations in an integrated manner and functions for managing a global space and its resources. However, there was a problem that the response was not sufficient, and the requirements were not sufficiently satisfied. For example, CORBA (The Common Object Request Broker: A
rchitecture and Specification, Wiley, New York (19
91)) is a platform with a paradigm that specifies the location of objects in a uniform space, but is not suitable for wide-area network calculations, and reduces the computational efficiency due to hiding the characteristics of distributed processing. There is a problem with that. In addition, there is a problem that the calling interface of the object function must be defined, and the programming flexibility is lacking.

【0004】WWW(World Wide Web)(Berners-Lee, T.
et. al.: The World-Wide Web, Comm.ACM, Vol. 37, N
o. 8, pp. 76-81 (1994)) や、Javaプラットフォー
ム(Kramer, D.: The Java Platform: A White Paper, S
un Microsystems, MountainView (1995))で提供され
る、リソース記述子の指定に基づいてネットワーク上の
データやプログラムをダウンロードし計算を進める方式
では、実現される対話性やシステムの持つ機能の発展性
に限界があるという問題がある。
[0004] WWW (World Wide Web) (Berners-Lee, T.
et.al .: The World-Wide Web, Comm.ACM, Vol. 37, N
o. 8, pp. 76-81 (1994)) and the Java platform (Kramer, D .: The Java Platform: A White Paper, S
un Microsystems, MountainView (1995)), which downloads data and programs on the network based on the specification of resource descriptors and proceeds with the calculation, realizes the interactivity and the development of the functions of the system. There is a problem that there is a limit.

【0005】「A Distributed Object Model for the J
ava System」(Wollrath, A., Riggs, R., and Waldo,
J., 2nd Conf. Object-Oriented Technologies and Sys
temsProc., pp. 219-231, USENIX, Berkeley (1996))
や、「分散Java実行のためのポータブルなORB の構成
法」 (平野聡, 塚本享治:情報処理学会研究報告OS73-1
0,pp. 55-60 (1996))に開示されている方法においても
広域の分散処理は実現するが、特定の言語に限定されて
おり、また、計算実行のための空間の管理も行われない
という問題がある。「A Users' Guide to PVM (Paralle
l Virtual Machine)」(Beguelin, A. et.al.: ORNL/TM-
11826, Oak Ridge National Laboratory, Oak Ridge (1
991))や、「MPI:The Complete Reference」(Snir, M. e
t. al.:MIT Press, Cambridge (1996))で示されている
PVMやMPIという分散システム構築機能は、より密
に結合されたシステム用にデザインされたものであり、
より広域で粗い結合のシステムには適切ではない。
[0005] "A Distributed Object Model for the J
ava System '' (Wollrath, A., Riggs, R., and Waldo,
J., 2nd Conf.Object-Oriented Technologies and Sys
temsProc., pp. 219-231, USENIX, Berkeley (1996))
And "A Portable ORB Construction Method for Distributed Java Execution" (Satoshi Hirano, Koji Tsukamoto: Information Processing Society of Japan Research Report OS73-1)
0, pp. 55-60 (1996)), a wide-area distributed processing is realized, but it is limited to a specific language, and the space for calculation execution is also managed. There is no problem. `` A Users' Guide to PVM (Paralle
l Virtual Machine) ”(Beguelin, A. et.al .: ORNL / TM-
11826, Oak Ridge National Laboratory, Oak Ridge (1
991)) and `` MPI: The Complete Reference '' (Snir, Mee
t. al .: MIT Press, Cambridge (1996)), the distributed system construction functions such as PVM and MPI are designed for more tightly coupled systems.
It is not suitable for wider, loosely coupled systems.

【0006】「Ninfによる広域分散並列計算」(中田秀
基ほか:並列処理シンポジウムJSPP'97 論文集, pp. 28
1-288,情報処理学会 (1997) )では、広域分散環境上で
の効率のよいリソース活用を実現しているが、大域的な
並行計算を支援するものではない。「Distributed Coor
dination Models for Client/Server Computing 」(Adl
er, R. M.: IEEE Computer, Vol. 28, No. 4, pp. 14-2
2 (1995)) に示されているようなクライアント・サーバ
方式は、動的に機能や接続形態を変更したり複数のモジ
ュールが相互対話的に動作する用途よりも、機能や仕様
が確定した計算に向いている。
"Widely Distributed Parallel Computing by Ninf" (Hideki Nakada et al .: Parallel Processing Symposium JSPP'97 Transactions, pp. 28
1-288, Information Processing Society of Japan (1997)) realizes efficient resource utilization in a wide-area distributed environment, but does not support global parallel computing. "Distributed Coor
dination Models for Client / Server Computing '' (Adl
er, RM: IEEE Computer, Vol. 28, No. 4, pp. 14-2
2 (1995)), the client-server method is a computational method in which the functions and specifications are fixed rather than the purpose of dynamically changing the function or connection form or the use of multiple modules interacting with each other. Suitable for

【0007】そこで、本願発明者らは、本願出願人に係
わる特願平9−49033号、特願平8−278364
号などに示すような、様々な計算リソースをネットワー
クワイドな多様な局面で柔軟に利用し、ネットワークを
ひとつの統合的な計算環境として捉えてその上で並行計
算を行えるネットワークシステム、並列分散処理システ
ムを既に提案している。
Therefore, the inventors of the present application have filed Japanese Patent Application Nos. 9-49033 and 8-278364, which are related to the present applicant.
Network systems and parallel distributed processing systems that can utilize various computational resources flexibly in various aspects of network wide, and treat the network as one integrated computing environment and perform parallel computation on it as shown in Has already been proposed.

【0008】[0008]

【発明が解決しようとする課題】ところで、そのような
システムを、たとえばVOD(Video On Demand) やビデ
オショッピングなどの対話的広域マルチメディア処理、
あるいは、レーダ網におけるサイト間協調トラッキング
などの知的分散信号解析などといった問題領域に適用し
ようとすると、広域分散環境における実時間処理を確実
かつ適切に行う必要があり、これが実現すべき重要な技
術要素となる。
By the way, such a system is used for interactive wide-area multimedia processing such as VOD (Video On Demand) and video shopping.
Or, when trying to apply to problem areas such as intelligent distributed signal analysis such as inter-site cooperative tracking in radar networks, real-time processing in a wide-area distributed environment must be performed reliably and appropriately. Element.

【0009】しかしながら、前述したような適用領域で
は、ネットワーク応答や時間共有の特性、あるいは問題
自体の動特性に起因した不確定要素が多く、決定論的な
予測に基づくスケジューリングは難しいという問題があ
る。また、分散環境における実時間処理の方法として、
タスクの大域管理やメッセージ連鎖の解析的制御、また
階層的なタスク配置管理などを用いる方法が提案されて
いるが、それらは広域環境での計算や非決定的処理を包
括しているものではなくより適切な方法が要望されてい
る。一方で、実時間性の実現において考慮すべき負荷分
散の方式や、実時間制御機能を備えた並行オブジェクト
言語系などが提案されているが、それらの方式について
は、さらに大域的なスケジューリングの枠組みの中で活
用したいという要望がある。
However, in the above-mentioned application area, there are many uncertainties due to the characteristics of network response and time sharing, or the dynamic characteristics of the problem itself, and there is a problem that scheduling based on deterministic prediction is difficult. . Also, as a method of real-time processing in a distributed environment,
Methods using global management of tasks, analytical control of message chains, and hierarchical task allocation management have been proposed, but they do not cover computation and nondeterministic processing in a global environment. There is a need for an appropriate method. On the other hand, load balancing methods to be considered in real-time realization and concurrent object language systems with real-time control functions have been proposed. There is a request to use it in

【0010】したがって本発明の目的は、広域な分散シ
ステム上で実時間処理を適切に行うことのできる分散処
理方法を提供することにある。また本発明の他の目的
は、大域的な並行計算により実時間処理を適切に行うこ
とのできるネットワークシステムを提供することにあ
る。さらに本発明の他の目的は、そのような広域分散シ
ステムのノードに適用して好適で、協調してその分散シ
ステム上で実時間処理を適切に行うことのできるノード
装置を提供することにある。
Accordingly, an object of the present invention is to provide a distributed processing method capable of appropriately performing real-time processing on a wide-area distributed system. It is another object of the present invention to provide a network system capable of appropriately performing real-time processing by global parallel computation. Still another object of the present invention is to provide a node device which is suitable for being applied to a node of such a wide area distributed system and which can appropriately perform real-time processing on the distributed system in a coordinated manner. .

【0011】[0011]

【課題を解決するための手段】前記課題を解決するため
に、本願発明者は、オープンネットワークにおいて、各
ノードにおいてオブジェクト間メッセージの評価の実行
を制御する局所的制御を行い、この局所情報を広域連携
させることにより、分散システム上での実時間処理を行
い併せて大域的な実時間制を実現するようにした。
In order to solve the above-mentioned problems, the present inventor performs local control for controlling execution of evaluation of an inter-object message in each node in an open network, and transmits the local information to a wide area. By linking, real-time processing on a distributed system is performed, and a global real-time system is realized.

【0012】第1の発明の分散処理方法は、実時間処理
に係わるオブジェクトを有する複数のプロセスが、ネッ
トワークシステムに係わる適宜更新される第1の情報に
基づいて複数のノード上に配置される当該ネットワーク
システムにおいて、当該複数のオブジェクトにおける複
数のタスクにより前記実時間処理を行う方法であって、
前記各プロセスにおいて、入力されたタスクに対して、
当該入力されたタスクに係わるメッセージが有する優先
度属性を示す情報に基づいて、第1のスケジューリング
方針に基づく第1の優先順位を検出し、前記入力された
タスクを、前記検出された第1の優先順位に応じてタス
ク保持手段に登録して保持し、前記タスク保持手段に登
録され保持されているタスクのうちで前記第1の優先順
位の高いタスクを選択し、前記選択されたタスクに対し
て、前記第1の優先順位に基づいて、第2のスケジュー
リング方針に基づく第2の優先順位を検出し、前記選択
されたタスクを、実行スレッドとして、前記検出された
第2の優先順位に応じてスレッド保持手段に登録して保
持し、前記スレッド保持手段に登録され保持されている
実行スレッドのうちで前記第2の優先順位の高い実行ス
レッドを選択し、当該選択された実行スレッドを実行す
る。
[0012] In the distributed processing method according to the first invention, a plurality of processes having objects related to real-time processing are arranged on a plurality of nodes based on appropriately updated first information related to a network system. in a network system, a method for performing pre-you-time processing by a plurality of tasks in the plurality of objects,
In each of the above processes, for the input task,
A first priority based on a first scheduling policy is detected based on information indicating a priority attribute of a message related to the input task, and the input task is identified by the detected first priority. The task is registered and held in the task holding unit according to the priority, and the task having the first higher priority is selected from the tasks registered and held in the task holding unit, and the selected task is Detecting, based on the first priority, a second priority based on a second scheduling policy, and using the selected task as an execution thread in accordance with the detected second priority. Registering and holding the thread in the thread holding means, and selecting the execution thread having the second highest priority among the execution threads registered and held in the thread holding means, Executing the selected execution thread.

【0013】第2の発明のネットワークシステムは、実
時間処理に係わるオブジェクトを有する複数のプロセス
が、ネットワークシステムに係わる適宜更新される第1
の情報に基づいて複数のノード上に配置され、当該複数
のオブジェクトにおける複数のタスクにより前記実時間
処理を行うネットワークシステムであって、前記各プロ
セスは、入力されたタスクに対して、当該入力されたタ
スクに係わるメッセージが有する優先度属性を示す情報
に基づいて、第1のスケジューリング方針に基づく第1
の優先順位を検出し、前記入力されたタスクをタスク保
持手段に登録するタスク登録手段と、前記登録されたタ
スクを、前記検出された第1の優先順位に応じて保持す
るタスク保持手段と、前記タスク保持手段に登録され保
持されているタスクのうちで前記第1の優先順位の高い
タスクを選択するタスク選択手段と、前記選択されたタ
スクに対して、前記第1の優先順位に基づいて、第2の
スケジューリング方針に基づく第2の優先順位を検出
し、実行スレッドとしてスレッド保持手段に登録するス
レッド登録手段と、前記登録された実行スレッドを、前
記検出された第2の優先順位に応じて保持するスレッド
保持手段と、前記スレッド保持手段に登録され保持され
ている実行スレッドのうちで前記第2の優先順位の高い
実行スレッドを選択するスレッド選択手段と、当該選択
された実行スレッドを実行するスレッド実行手段とを有
する。
In a network system according to a second aspect of the present invention, a plurality of processes having objects related to real-time processing are appropriately updated according to a first system related to the network system.
A network system that is arranged on a plurality of nodes based on the information and performs the real-time processing by a plurality of tasks on the plurality of objects. A first scheduling policy based on information indicating a priority attribute of a message related to the task
Task registration means for detecting the priority of the input task and registering the input task in a task holding means; and task holding means for holding the registered task in accordance with the detected first priority. A task selecting unit that selects the task having the first higher priority among the tasks registered and held in the task holding unit; and a task selecting unit that selects, based on the first priority, the selected task. Detecting a second priority based on a second scheduling policy, and registering the second execution priority in the thread holding unit as an execution thread, according to the detected second priority. A thread holding unit for holding the thread, and an execution thread having the second higher priority among the execution threads registered and held in the thread holding unit. With that a thread selection device, and a thread execution means for executing the selected execution thread.

【0014】第3の発明のノード装置は、複数のノード
が接続されたネットワークシステムに接続され、当該ネ
ットワークシステムにおいて行われる実時間処理に係わ
るオブジェクトを有するプロセスが配置され、当該オブ
ジェクトにおいて前記処理に係わるタスクを実行するノ
ード装置であって、前記各プロセスは、入力されたタス
クに対して、当該タスクに係わるメッセージが有する所
定の優先度属性を示す情報に基づいて、第1のスケジュ
ーリング方針に基づく第1の優先順位を検出し、当該タ
スクをタスク保持手段に登録するタスク登録手段と、前
記登録されたタスクを、前記検出された第1の優先順位
に応じて保持するタスク保持手段と、前記タスク保持手
段に登録され保持されているタスクのうちで前記第1の
優先順位の高いタスクを選択するタスク選択手段と、前
記選択されたタスクに対して、前記第1の優先順位に基
づいて、第2のスケジューリング方針に基づく第2の優
先順位を検出し、実行スレッドとしてスレッド保持手段
に登録するスレッド登録手段と、前記登録された実行ス
レッドを、前記検出された第2の優先順位に応じて保持
するスレッド保持手段と、前記スレッド保持手段に登録
され保持されている実行スレッドのうちで前記第2の優
先順位の高い実行スレッドを選択するスレッド選択手段
と、当該選択された実行スレッドを実行するスレッド実
行手段とを有する。
[0014] node device of the third invention is connected to a network system in which a plurality of nodes are connected, the process comprising an object according to the performed Ru real-time processing in the network system is arranged, the processing in the object A node device that executes a task related to the first scheduling policy based on information indicating a predetermined priority attribute of a message related to the input task with respect to an input task. A task registration unit for detecting a first priority based on the first priority and registering the task in a task holding unit; a task storage unit for storing the registered task according to the detected first priority; Among the tasks registered and held in the task holding means, the task with the first highest priority Task selecting means for selecting a task; detecting a second priority based on a second scheduling policy for the selected task based on the first priority; A thread registration unit that registers the registered execution thread in accordance with the detected second priority, and a thread registration unit that registers the execution thread in the thread storage unit. And thread selecting means for selecting the second higher-priority execution thread, and thread executing means for executing the selected execution thread.

【0015】[0015]

【0016】[0016]

【0017】[0017]

【0018】[0018]

【0019】[0019]

【0020】[0020]

【0021】[0021]

【0022】[0022]

【0023】[0023]

【0024】[0024]

【0025】[0025]

【発明の実施の形態】本発明の一実施の形態について図
1〜図15を参照して説明する。本実施の形態において
は、分散したリソースが結合されたネットワークに対し
て、これをひとつの統合的な計算環境として、そのネッ
トワーク上で大域的な実時間処理を行う場合について説
明をする。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described with reference to FIGS. In the present embodiment, a description will be given of a case where global real-time processing is performed on a network in which distributed resources are combined as one integrated computing environment on the network.

【0026】大域並行計算の方式 まず、本実施の形態で行う大域並行計算について説明す
る。図1は、本実施の形態における大域計算の概念構成
を示す図である。大域計算(Global Computation)は、広
域(Wide Area) のネットワーク上の計算であって、そこ
での分散リソースを論理的に一体のものとして捉え、そ
してその上で実行される計算である。ここで、広域のネ
ットワークとは、インターネットや、CATV網、衛星
通信など多様な通信メディアが混在しているものであ
り、分散リソースとは、計算機ノードなどのハードウェ
アに加えて、データベースや高性能計算サーバ、WWW
ページ等の情報ソースなど、計算ポテンシャルを提供す
るものである。また、計算とは、広い範囲の種々の処理
の実行を含む。
The method of global concurrent computations will be described first global concurrent computations performed in this embodiment. FIG. 1 is a diagram showing a conceptual configuration of global calculation according to the present embodiment. Global Computation is computation on a wide area network, in which distributed resources are logically integrated and executed on it. Here, a wide area network is a mixture of various communication media such as the Internet, a CATV network, and satellite communication. Distributed resources include a database and a high-performance network in addition to hardware such as computer nodes. Calculation server, WWW
It provides a calculation potential such as an information source such as a page. The calculation includes execution of various processes in a wide range.

【0027】並行計算の基本パラダイム このような大域計算の基本方式は、分散モジュールが非
同期のメッセージ交換によって並行計算を実行し、大域
的にはそのメッセージの連鎖によって計算を進行させる
ものである。なお、広域の分散・協調計算への適合性を
考慮すれば、同期性の少ない計算の枠組みの提供が望ま
しい。
Basic Paradigm of Parallel Computation In such a basic scheme of global computation, a distributed module executes parallel computation by asynchronous message exchange, and progresses computation globally by chaining the messages. In consideration of suitability for wide-area distributed / cooperative calculation, it is desirable to provide a calculation framework with less synchronization.

【0028】この大域計算を実行する分散モジュール
を、並行オブジェクトと呼ぶ。この並行オブジェクト
は、ある大域計算空間上で表される大域参照で管理す
る。したがって、大域計算空間は、並行オブジェクトの
集合と、大域参照を用いて示されるオブジェクト間関係
との組である。並行オブジェクトは、計算空間上の計算
実体であり、リモート呼出可能な分散オブジェクト、分
散関数、あるいは、大域共有変数である。そして、これ
らにより、分散オブジェクト指向計算、分散手続き(関
数)呼び出し、および、大域共有変数というパラダイム
を持った並行計算を行う。
The distributed module that executes the global calculation is called a concurrent object. This concurrent object is managed by a global reference represented on a certain global computation space. Therefore, the global computation space is a set of a set of concurrent objects and a relation between objects indicated by using a global reference. A concurrent object is a computational entity in a computation space, and is a distributed object, a distributed function, or a global shared variable that can be remotely called. With these, distributed object-oriented computation, distributed procedure (function) call, and parallel computation having a paradigm of global shared variables are performed.

【0029】このような計算を行うための、分散オブジ
ェクトメソッドや分散関数の呼出や大域共有変数へのア
クセスという並行オブジェクト間の通信は、非同期メ
ッセージ送信(返値なしの一方向の通信)、遅延評価
型同期呼び出し(返値にアクセスしたときブロックす
る)、完全同期呼出(返値到着まで呼出側がブロック
する)という3種類の方法により行う。これらの通信を
総称してメッセージと呼ぶ。
Communication between concurrent objects, such as calling a distributed object method or a distributed function and accessing a global shared variable, for performing such a calculation is performed by asynchronous message transmission (one-way communication with no return value), delay. It is performed by three types of methods: an evaluation-type synchronous call (block when a return value is accessed) and a fully synchronous call (the caller blocks until a return value arrives). These communications are collectively called messages.

【0030】メッセージ上では並行オブジェクト間で、
任意のデータ構造体を送ることができる。並行オブジェ
クト間のメッセージでデータ構造体を扱うには、データ
構造を論理形式で処理しなければならない。従って、メ
ッセージ通信では、送信する引数のデータ構造をトレー
スし、その構造体要素を論理形式にフォーマットする機
能と、論理形式から元のデータと同じ構造体を生成する
機能を有し、これによりデータ構造体の送受信を実現す
る。部分構造を共有している場合は、受信側でその共有
箇所が複製される。
On the message, between concurrent objects,
Any data structure can be sent. To handle data structures in messages between concurrent object must process a data structure in the logical format. Therefore, the message communication has a function of tracing the data structure of an argument to be transmitted and formatting the structure element in a logical form, and a function of generating the same structure as the original data from the logical form. Realizes transmission and reception of structures. If the partial structure is shared, the shared part is duplicated on the receiving side.

【0031】メッセージに基づく処理の実行(以降、こ
れを評価と言う場合もある。)のうち、分散オブジェク
トメソッドの計算と大域共有変数のアクセスは、そのオ
ブジェクトにおいて排他的かつアトミック(不可分)に
実行する。したがって、同一のオブジェクト上で複数の
メッセージを並行して評価したい場合や、メソッド内で
遅延処理をしたい場合は、それらを非同期メッセージに
分割した形で記述し処理する。また、実際に稼働させる
プログラミング言語によって、メソッドがオブジェクト
に属するのであれば、その実行はそのオブジェクトで行
う。メソッドが汎関数から派生するものであれば、実行
はそのメソッドの所在で行う。なお、計算の演算対象の
スコープは、並行オブジェクトの内部であり、リモート
オブジェクトのオペランドを直接見ることはできない。
In execution of a process based on a message (hereinafter, this may be referred to as evaluation), the computation of a distributed object method and the access of a global shared variable are executed exclusively and atomically (indivisibly) on the object. I do. Therefore, when it is desired to evaluate a plurality of messages in parallel on the same object or to perform a delay process in a method, they are described in the form of being divided into asynchronous messages and processed. If a method belongs to an object depending on the programming language actually operated, the execution is performed on the object. If the method is derived from a functional, the execution is performed at the location of the method. It should be noted that the scope of the calculation target is inside the concurrent object, and the operand of the remote object cannot be directly viewed.

【0032】オブジェクト管理とメッセージパッシング
機能 大域計算空間に配置する並行オブジェクトは、ネットワ
ークノードにプロセスを生成して管理する。計算空間
は、同一のネットワーク環境上に複数のものをそれぞれ
個別に形成し管理することができる。プロセスは、並行
オブジェクトのための計算環境である。図2(a)に並
行オブジェクトとプロセスとの関係を、図2(b)に並
行オブジェクトの内部状態構成を示す。
Object management and message passing
Concurrent objects placed in the functional global computing space generate and manage processes in network nodes. A plurality of computing spaces can be individually formed and managed on the same network environment. A process is a computing environment for concurrent objects. FIG. 2A shows the relationship between the concurrent object and the process, and FIG. 2B shows the internal state configuration of the concurrent object.

【0033】プロセスは、大域参照とその管理の機能
と、並行オブジェクト間のメッセージパッシングの機構
を提供する。メッセージパッシング機構は、アプリケー
ション言語インタフェース(API) と、OSやハード
ウェアに対するシステムインターフェースを備える。ま
た、オブジェクトとプロセスは、計算空間上をダイナミ
ックに移動することが可能である。なお、これらAPI
およびオブジェクトとプロセスの移動については、後に
詳述する。これらの機能は、プログラミング言語やO
S、ハードウェア、ネットワークといった実行環境の違
いに適応して稼働できる。メッセージは、異なる言語間
でも送信可能であり、また、前述したように、任意のデ
ータ構造体を引数として扱える。プロセスの集合として
得られる実行環境は、大域空間上で共通の仮想的計算環
境として機能する。
The process provides the function of global reference and its management, and the mechanism of message passing between concurrent objects. The message passing mechanism includes an application language interface (API) and a system interface to the OS and hardware. Objects and processes can move dynamically in the computation space. Note that these APIs
The movement of objects and processes will be described later in detail. These features are available in programming languages and O
It can operate according to the difference of the execution environment such as S, hardware and network. The message can be transmitted between different languages, and as described above, an arbitrary data structure can be handled as an argument. An execution environment obtained as a set of processes functions as a common virtual computing environment in the global space.

【0034】メッセージパッシングアーキテクチャ 前述したメッセージパッシングについてより詳細に説明
する。本実施の形態の大域計算を実現するメッセージパ
ッシングの機構を、図3に示す。この機構は、プロセス
における並行オブジェクトの実行機能を提供する。メッ
セージの送受信は、プロセス300のメッセージ通信部
(Message Passing Operator)310で機能する。送受信
に伴う計算実体は、参照表321と参照解決機能320
によって特定する。受信したメッセージは、スケジュー
ラ400でその実行を制御する。アプリケーションプロ
グラミング機能330では、メッセージ送信に関連した
API (Application Programming Interface)を提供す
る。以下、これらの機能について詳細に説明する。
Message Passing Architecture The message passing described above will be described in more detail. FIG. 3 shows a message passing mechanism for realizing global calculation according to the present embodiment. This mechanism provides the ability to execute concurrent objects in a process. The message transmission / reception is performed by the message communication unit of the process 300.
(Message Passing Operator) 310. The calculation entity involved in the transmission / reception is the reference table 321 and the reference resolution function 320
Identify by. The execution of the received message is controlled by the scheduler 400. The application programming function 330 provides an API (Application Programming Interface) related to message transmission. Hereinafter, these functions will be described in detail.

【0035】大域参照の管理と解決 大域参照は、プロセス内のリモート参照表とローカル参
照表で管理する。リモート参照表はメッセージ送信時
に、大域参照からネットワークノード、プロセス、リモ
ート識別子を得るための管理表である。ローカル参照表
は、リモート識別子とローカル識別子の対応表で、プロ
セス内で計算実体を特定するためのものである。異なる
通信メディアに亘る大域参照は、それらを共有する中継
プロセスにおいて、リモート識別子からさらに別の大域
参照に対応させる。メッセージ送信時のオブジェクト参
照のスキームを例として、参照表でのそれらの対応を図
4に示す。
Management and Resolution of Global References Global references are managed by a remote reference table and a local reference table in a process. The remote reference table is a management table for obtaining a network node, a process, and a remote identifier from a global reference when transmitting a message. The local reference table is a correspondence table between a remote identifier and a local identifier, and is used to specify a calculation entity in a process. Global references across different communication media are made to correspond to yet another global reference from the remote identifier in a relay process sharing them. FIG. 4 shows an example of a scheme of object reference at the time of message transmission and their correspondence in a reference table.

【0036】参照表はプロセスの生成時に、プログラム
モジュール間の参照関係に基づいて初期設定する。ま
た、分散オブジェクトが生成されたときや新たなプログ
ラムモジュールが配置されたとき、新たな参照を登録す
る。大域参照からその参照対象の情報への変換を、参照
解決と呼ぶ。その変換は、大域参照あるいはそれを表わ
す名前から、オブジェクトやドメイン、外部システムへ
の情報を得るものである。参照の解決は、オブジェクト
の識別情報を特定できるまで再帰的に動作させる。参照
解決の方式と機能の構成を図5に示す。
The reference table is initialized when a process is generated, based on the reference relationship between program modules. Further, when a distributed object is generated or when a new program module is arranged, a new reference is registered. Conversion from a global reference to the information to be referred to is referred to as reference resolution. The conversion obtains information to an object, domain, or external system from a global reference or its descriptive name. Reference resolution works recursively until the identity of the object can be identified. FIG. 5 shows the structure of the reference solution and the function.

【0037】メッセージの送信 メッセージ送信機能の詳細を、図6に示す。メッセージ
送信では、API上のメッセージ送信関数の呼び出しに
よって、後述するように、引数の構造体を認識して送信
可能な論理形式に変換し、送信先オブジェクトの参照解
決を行ない、送信の処理をする。送信先の所在によっ
て、通信メディアインタフェースを介したノード間RP
C、ノード内IPC、あるいは、プロセス内通信を選択
して送信する。ノード間でRPCを用いるのは、メッセ
ージの到達を把握するためである。送信先がドメインや
オブジェクトクラスタになっていれば、プロセス毎のマ
ルチキャストを行なう。通信メディアインタフェース
は、対応するメディア毎に用意し、データの種類と制御
の内容に応じて使用するものを指定することができる。
Message Transmission The message transmission function is shown in detail in FIG. In the message transmission, by calling a message transmission function on the API, as described later, the structure of the argument is recognized and converted into a logical form that can be transmitted, the reference of the destination object is resolved, and the transmission processing is performed. . RP between nodes via communication media interface depending on the location of destination
C, the intra-node IPC, or the in-process communication is selected and transmitted. The reason for using RPC between nodes is to grasp the arrival of a message. If the transmission destination is a domain or an object cluster, multicast is performed for each process. The communication media interface is prepared for each corresponding medium, and can specify the type to be used according to the type of data and the content of control.

【0038】メッセージの受信と評価の起動 メッセージ受信機能の詳細を図7に示す。メッセージを
受信すると、メッセージディスパッチャは、受け取った
リモート識別子から受信オブジェクトを特定し、その処
理を行なうための関数記述子を生成する。メッセージ引
数は、論理形式からデータ構造体に展開する。関数記述
子は、オブジェクトメソッドと分散関数の呼び出し、あ
るいは共有変数のアクセスを起動するための情報と、メ
ッセージの時間属性と優先度、および、メッセージ送信
元オブジェクトの呼出情報を保持したものである。この
関数記述子が、後述するスケジューラに渡され処理され
る。メッセージ送信が同期呼出による場合は、スケジュ
ーラによる実行で得た評価値を同様に論理形式に変換し
て、同じメッセージ送信機能により呼び出し側に送信す
る。参照が中継されている場合は、リモート識別子から
新たな大域参照が得られるので、メッセージディスパッ
チャはそのままメッセージ送信機能を呼び出す。
FIG. 7 shows the details of the message receiving and evaluation activation message receiving function. Upon receiving the message, the message dispatcher identifies the receiving object from the received remote identifier, and generates a function descriptor for performing the processing. Message arguments are expanded from a logical format into a data structure. The function descriptor holds information for invoking an object method and a distributed function or access to a shared variable, a time attribute and a priority of a message, and information for calling a message transmission source object. This function descriptor is passed to a scheduler described later and processed. When the message transmission is performed by synchronous calling, the evaluation value obtained by the execution by the scheduler is similarly converted into a logical form and transmitted to the calling side by the same message transmission function. If the reference is being relayed, a new global reference is obtained from the remote identifier, and the message dispatcher calls the message transmission function as it is.

【0039】メッセージ評価スケジューリング 前述したように、計算は、オブジェクト間のメッセージ
の連鎖によって実行される。したがって、その計算のス
ケジューリングは、並行オブジェクト間で送信されるメ
ッセージの評価の実行を、その時間制約を示す属性と優
先度に基づいて制御することによって行う。
Message Evaluation Scheduling As described above, computations are performed by chaining messages between objects. Therefore, the scheduling of the calculation is performed by controlling the execution of the evaluation of the message transmitted between the parallel objects based on the attribute indicating the time constraint and the priority.

【0040】このメッセージ評価スケジューリング方式
の機能構成について図8に示す。スケジューリングは、
長期スケジューリングと短期スケジューリングと呼ぶ2
つの処理に分けて実現する。長期スケジューリングは、
時間的長期性と空間的広域性の尺度から、メッセージ評
価の順序を、OSなどのシステム機能と独立して制御す
る。短期スケジューリングは、順序付けられたメッセー
ジ評価を、短期的時間尺度によって局所的に、システム
機能を有効に活かしながら実行する。以下、メッセージ
評価スケジューリングの方式と機能について説明する。
FIG. 8 shows a functional configuration of the message evaluation scheduling method. Scheduling is
Calling long-term scheduling and short-term scheduling 2
It is realized in two processes. Long-term scheduling is
The order of message evaluation is controlled independently from system functions such as the OS from the measures of temporal long-term and spatial wideness. Short-term scheduling performs ordered message evaluation locally on a short-term time scale, while taking advantage of system capabilities. Hereinafter, the method and function of the message evaluation scheduling will be described.

【0041】大域的スケジューリングの方式 実時間処理を扱うスケジューリングは、「時間」に基づ
いた計算の規範を与えるものである。しかし、メッセー
ジの連鎖によって生起される計算の場合、「時間」はそ
の連鎖の中で整合していればよい。すなわち、スケジュ
ーリングを行う局所的な場のそれぞれが、大域的に一貫
した時間を共有している必要はない。したがって、メッ
セージには必要に応じて、その評価における時間制約が
属性として記述される。
Global Scheduling Scheme Scheduling that deals with real-time processing provides a norm for "time" based calculations. However, in the case of computations caused by a chain of messages, "time" only needs to be consistent in the chain. That is, each of the local fields that perform scheduling need not share a globally consistent time. Therefore, a time constraint in the evaluation is described as an attribute in the message as needed.

【0042】スケジューリングの対象となるタスクの単
位は、オブジェクト間で送信されるメッセージの評価で
ある。スケジューリングの処理は、プロセス毎に局所的
に行う。プロセス間では、大域的な負荷分散を支援する
メタ機能を提供する。タスクの実行は、前述したよう
に、長期スケジューリングと短期スケジューリングによ
って行う。長期スケジューリングでは、メッセージに付
帯した時間属性と優先度に基づいて、評価すべきメッセ
ージを選択して実行可能状態とする。大域的な時間制約
は、長期スケジューリングで解決する。短期スケジュー
リングでは、可動状態にある複数のメッセージ評価を並
行して処理するための制御を行う。
The task unit to be scheduled is the evaluation of messages transmitted between objects. The scheduling process is performed locally for each process. A meta function that supports global load distribution is provided between processes. The task is executed by long-term scheduling and short-term scheduling as described above. In the long-term scheduling, a message to be evaluated is selected based on a time attribute and a priority attached to the message and is made executable. Global time constraints are resolved with long-term scheduling. In the short-term scheduling, control for processing a plurality of message evaluations in a movable state in parallel is performed.

【0043】メッセージが属性として持つのは、時間属
性と優先度である。時間属性は、スケジューリングポリ
シと、データタイムやメッセージ送信タイム、評価の許
容時間(デッドライン)、メッセージの周期性、実時間
性の厳密度、計算の非精密性の許容度といったものを含
む。ここで、データタイムとは、生起時間や外界時間な
ど、処理対象のデータに局所的に与えられた時間を大域
的に扱うものである。
The message has attributes as time attributes and priorities. The time attribute includes a scheduling policy, a data time, a message transmission time, a permissible evaluation time (deadline), a periodicity of a message, a strictness of real time, and a permissible inaccuracy of calculation. Here, the data time refers to globally treating a time locally given to data to be processed, such as an occurrence time or an external time.

【0044】実時間処理を行うためには、プロセス間あ
るいはノード間での負荷の均一性が、系の実時間性を高
める上で重要である。長期スケジューリングではノード
間での負荷均衡を、短期スケジューリングでは、処理リ
ソースが割り当てられた空間内での負荷共有を、スケジ
ューリング方式の中に採り入れる。負荷分散の処理のう
、負荷を動的に把握した上での処理はシステム機能と
して実現するのではなく、アプリケーションの実行にお
いて負荷分散の実現を支援するメタ機能として提供す
る。
In order to perform real-time processing, uniformity of load between processes or between nodes is important for improving the real-time performance of the system. In the long-term scheduling, load balancing among nodes is adopted, and in the short-term scheduling, load sharing in a space to which processing resources are allocated is adopted in the scheduling method. Processing of load balancing
That is, the processing after dynamically grasping the load is not realized as a system function, but is provided as a meta function that supports realization of load distribution in execution of an application.

【0045】メッセージ評価としてのタスクの実行は、
OSのスレッド機能によって行う。分散オブジェクト計
算系の多くでは、個々のオブジェクトがメソッド実行の
スレッドを有しているが、我々の方式では、スレッドは
メッセージ評価タスクに対して動的に割り付ける。これ
により、スレッド資源を有効に活用することができる。
Executing a task as a message evaluation
This is performed by the thread function of the OS. In many distributed object computing systems, each object has a thread for executing a method. In our method, a thread is dynamically allocated to a message evaluation task. Thereby, thread resources can be effectively used.

【0046】スケジューラの構成 このようなスケジューリングを行うスケジューラの構成
および動作について、図9を参照して具体的に説明す
る。図9は、メッセージパッシング機構におけるメッセ
ージ受信機能の一部とスケジューラの構成を示す図であ
る。
Configuration of Scheduler The configuration and operation of a scheduler that performs such scheduling will be specifically described with reference to FIG. FIG. 9 is a diagram showing a part of the message receiving function in the message passing mechanism and the configuration of the scheduler.

【0047】前述したように、メッセージディスパッチ
ャ311は、受信したメッセージから、その評価の実行
情報と属性を有する関数記述子を生成する。メッセージ
ディスパッチャ311で生成された、関数記述子で示さ
れる関数あるいはメソッド呼び出し関数のスケジューラ
400への登録は、アプリケーションプログラミング機
能(Application Prog. Features)330のプレインヴォ
ーク(Pre-Invoke)331が行う。
As described above, the message dispatcher 311 generates, from the received message, a function descriptor having execution information and attributes of the evaluation. The registration of the function or the method calling function indicated by the function descriptor generated by the message dispatcher 311 in the scheduler 400 is performed by a pre-invoke 331 of the application programming function (Application Prog. Features) 330.

【0048】プレインヴォーク331は、関数の実行を
スケジューラ400の管理対象とするとともに、スケジ
ューラ400に対して動作タイミングを与えるファンク
ションである。プレインヴォーク331は、指定された
オブジェクトのメソッドまたは関数をスケジューラ40
0に登録するために、(1)に示すような構造のファン
クション記述子(FunctionDescriptor)を生成し、これを
プロセスキューに載せる。そして長期スケジューラ41
0の登録ファンクション(RegistFunction)411に受け
渡す。
The plain voice 331 is a function that makes the execution of a function a management target of the scheduler 400 and gives an operation timing to the scheduler 400. The plain voice 331 executes the method or function of the specified object on the scheduler 40.
A function descriptor (FunctionDescriptor) having a structure as shown in (1) is generated and registered in the process queue in order to register it in 0. And the long-term scheduler 41
0 is passed to the registration function (RegistFunction) 411.

【0049】[0049]

【数1】 FunctionDescriptor* prevTimeQ 優先度スロットキューまたはプールのた めのフォワードポインタ。 FunctionDescriptor* nextTimeQ 優先度スロットキューまたはプールのた めのバックワードポインタ。 ThreadID threadID メソッド実行あるいは関数実行のスレッ ド long priority 優先度 TimeVal* timeVal 送信時間 TimeVal* arrival_timeVal 受信時間 TimeVal* queue_timeVal キュー投入時間 TimeVal* pool _timeVal プール投入時間 TimeVal* method _start _timeVal ユーザメソッド開始時間 TimeVal* method _end _timeVal ユーザメソッド終了時間 void* param 論理形式引数格納領域へのポインタ unsigned long id1 メソッドが属するオブジェクトへの参照 unsigned long id2 メソッド、または関数の識別子 int call_mode 送信モード recvInfo* recv_info CMIrecv からのデータ領域 char* instName オブジェクトのインスタンス名 (メソッドの呼び出し時のみ有効) Args* args 実行形式引数格納領域へのポインタ int argc 実行形式引数の数 void* obj オブジェクトのthisポインタ (メソッドの呼び出し時のみ有効) MessageAttributes* ma メッセージ属性(スケジューリングスト ラテジおよびそのパラメータ)格納領域 …(1)## EQU1 ## FunctionDescriptor * prevTimeQ Forward pointer for priority slot queue or pool. FunctionDescriptor * nextTimeQ Backward pointer for priority slot queue or pool. ThreadID threadID Thread for method or function execution long priority Priority TimeVal * timeVal Transmission time TimeVal * arrival_timeVal Receiving time TimeVal * queue_timeVal Queue entry time TimeVal * pool _timeVal Pool entry time TimeVal * method _start _timeVal User method start time TimeVal * method _end _TimeVal User method end time void * param Logical pointer to the argument storage area unsigned long id1 Reference to the object to which the method belongs unsigned long id2 Method or function identifier int call_mode Transmission mode recvInfo * recv_info Data area from CMIrecv char * instName Object instance name (valid only when calling the method) Args * args Pointer to the execution format argument storage area int argc Number of execution format arguments void * obj this pointer of the object (valid only when calling the method) MessageAttributes * ma Message attribute (scheduling strategy and its parameters) storage area ... (1)

【0050】また、スケジューラ400において関数あ
るいはメソッドの呼び出し関数の処理が終了した時点
で、ポストインヴォーク(Post-Invoke) 332が起動さ
れる。ポストインヴォーク332は、関数をスケジュー
ラ400の管理対象外とし、スケジューラ400に動作
タイミングを与える。さらに、値を返す必要がある場
合は、その処理を行う。具体的には、ポストインヴォー
ク332は、プロセスキューから処理の終了した関数を
除き、短期スケジューラ420の消去ファンクション(D
eleteFunction)422に対して、プール(Functions Poo
l)424からのファンクション記述子(FunctionDescrip
tor)の抹消を求める。
When the function of the function or the method of calling the function is completed in the scheduler 400, a Post-Invoke 332 is started. The post-invoking 332 excludes the function from the management target of the scheduler 400 and gives the scheduler 400 an operation timing. Moreover, if you need to return a return value, it performs the processing. Specifically, the post-invoking 332 removes the function that has finished processing from the process queue, and deletes the function (D
eleteFunction) 422, Pool (Functions Poo
l) Function descriptor from 424 (FunctionDescrip)
tor).

【0051】スケジューラ(Message Evaluation Schedu
ler)400は、長期スケジューリング(Long-Term Sched
uling)を行う長期スケジューラ(Long-Term Scheduler)
410と、短期スケジューリング(Short-Term Scheduli
ng) を行う短期スケジューラ(Short-Term Scheduler)4
20とを有し、ファンクション記述子(FunctionDescrip
tor)をタスクとして受け取り、その実行を制御する。
Scheduler (Message Evaluation Schedu)
ler) 400 is a long-term scheduling (Long-Term Sched
uling) (Long-Term Scheduler)
410 and Short-Term Scheduli
ng) Short-Term Scheduler 4
20 and a function descriptor (FunctionDescrip).
tor) as a task and control its execution.

【0052】長期スケジューリング 長期スケジューラ410は、ファンクション記述子(Fun
ctionDescriptor)をその優先度に従って管理し、最高優
先度のものを適宜短期スケジューラ420に送る。登録
ファンクション411は、ファンクション記述子(Funct
ionDescriptor)に記述されている優先度属性からスケジ
ューリングストラテジーに基づいて換算優先度を算出
し、その換算優先度に従って、該当する優先順位のスロ
ットにファンクション記述子(FunctionDescriptor)を載
せる。該当する優先順位スロットがなかった場合は、生
成する。また登録ファンクション411は、スケジュー
ルファンクション(ScheduleFunctions) 413を呼び出
す。
The long- term scheduler 410 has a function descriptor (Fun
ctionDescriptor) is managed according to its priority, and the highest priority is sent to the short-term scheduler 420 as appropriate. The registration function 411 has a function descriptor (Funct
The conversion priority is calculated based on the scheduling strategy from the priority attribute described in (ionDescriptor), and a function descriptor (FunctionDescriptor) is placed in the slot of the corresponding priority according to the conversion priority. If there is no corresponding priority slot, the slot is generated. The registration function 411 calls a schedule function (ScheduleFunctions) 413.

【0053】消去ファンクション(DeleteFunction)41
2は、関数あるいはメソッドをスケジューラの管理対象
からはずす。また消去ファンクション412は、短期ス
ケジューラ420の消去ファンクション422およびス
ケジュールファンクション413を呼び出す。スケジュ
ールファンクション413は、実行可能な関数あるいは
メソッドの選択と実行を行う。すなわち、選択ファンク
ション(SelectFunction)415を呼び出し、スケジュー
リングストラテジーに従って関数とメソッドのファンク
ション記述子(FunctionDescriptor)を選択し、それらの
スレッドを実行可能状態にする。
[0053] Delete function (DeleteFunction) 41
2 removes the function or method from the management target of the scheduler. The deletion function 412 calls the deletion function 422 and the schedule function 413 of the short-term scheduler 420. The schedule function 413 selects and executes an executable function or method. That is, a selection function (SelectFunction) 415 is called, a function descriptor (FunctionDescriptor) of a function and a method is selected according to a scheduling strategy, and those threads are made executable.

【0054】キュー(Functions Queue) 414は、
(2)に示すようなクラスTimeSlotのインスタンスの集
合として構成され、実行待ちの関数またはメソッドの管
理を行う。具体的には、ファンクション記述子(Functio
nDescriptor)を、メッセージの優先度属性からスケジュ
ーリングストラテジーに基づいて算出した換算優先度に
よって類別した優先度スロットごとに保持する。
The functions queue 414 is
It is configured as a set of instances of the class TimeSlot as shown in (2), and manages functions or methods waiting to be executed. Specifically, the function descriptor (Functio
nDescriptor) is held for each priority slot classified by the conversion priority calculated based on the priority attribute of the message based on the scheduling strategy.

【0055】[0055]

【数2】 TimeVal* tvStart カレント優先度スロットの優先度 TimeVal* tvEnd カレント優先度スロットの次の優先度 TimeSlot* prev カレント優先度スロットの前の優先度ス ロット TimeSlot* next カレント優先度スロットの次の優先度ス ロット FunctionDescriptor* fd カレント優先度スロットのリスト (優先度スロットはFunctionDescriptorの リスト) …(2)[Equation 2] TimeVal * tvStart Priority of current priority slot TimeVal * tvEnd Priority next to current priority slot TimeSlot * prev Priority slot before current priority slot TimeSlot * next Next to current priority slot Priority slot FunctionDescriptor * fd List of current priority slots (priority slots are FunctionDescriptor lists)… (2)

【0056】この、キュー(Functions Queue) 414の
構造を図10に示す。図10に示すように、(2)に示
すようなクラスTimeSlotにより生成されたインタンスが
各優先度スロットを構成する。図10に示すように、優
先度スロットの2番目は、カレントスロット(curr
ent)として使用する。カレントのひとつ手前のスロ
ットは優先スロット(prior)として使用する。優
先スロットは、たとえばメッセージ通信が非同期で行わ
れるがために発生するメッセージの追い越しなどによっ
て、カレント優先度より時間的に古いものなど、カレン
トより高い換算優先度を持つものを管理する。各優先度
スロットに保持されているファンクション記述子(Funct
ionDescriptor)がなくなると、その優先度スロットは消
去されてその参照が順次更新される。また、時間的に新
しいファンクション記述子(FunctionDescriptor)が登録
されると、新しい優先度スロット(new)を追加す
る。
FIG. 10 shows the structure of the functions queue 414. As shown in FIG. 10, the instances generated by the class TimeSlot as shown in (2) constitute each priority slot. As shown in FIG. 10, the second priority slot is the current slot (curr
ent). The slot immediately before the current is used as a priority slot (prior). The priority slot manages a slot having a higher conversion priority than the current one, such as a slot that is temporally older than the current priority due to, for example, passing of a message that occurs because message communication is performed asynchronously. The function descriptor (Funct) held in each priority slot
When ionDescriptor is exhausted, the priority slot is deleted and its reference is sequentially updated. When a new function descriptor (FunctionDescriptor) is registered in time, a new priority slot (new) is added.

【0057】選択ファンクション415は、換算優先度
の高い関数またはメソッドの選択を行う。選択ファンク
ション415は、キュー(Functions Queue) 414のオ
ールド優先度スロットが空でなければオールド優先度ス
ロットから、空であればカレント優先度スロットから実
行可能なファンクション記述子(FunctionDescriptor)を
選択する。実行可能なファンクション記述子(FunctionD
escriptor)は、関数またはそのオブジェクトに他に
実行中のものがない場合のメソッドである。そのオブジ
ェクトが実行中であるか否かの状態は、そのオブジェク
トの「実行中」スロットで管理する。
The selection function 415 selects a function or a method having a high conversion priority. The selection function 415 selects an executable function descriptor (FunctionDescriptor) from the old priority slot if the old priority slot of the functions queue 414 is not empty, and from the current priority slot if the old priority slot is empty. Executable function descriptor (FunctionD
Escriptor) is a function, or a method in the absence of those running in the other on the object. The state of whether or not the object is being executed is managed by the “in-execution” slot of the object.

【0058】選択したファンクション記述子(FunctionD
escriptor)は、キュー(Functions Queue) 414から除
き、短期スケジューラ420の登録ファンクション(Reg
istFunction)421を呼び出して、プール(Functions P
ool)424に載せる。キュー(Functions Queue) 414
のカレント優先度スロットが空になった場合は、カレン
ト優先度スロットとオールド優先度スロットをひとつ進
める。古いオールドスロットは捨てる。
The selected function descriptor (FunctionD
escriptor), except for the Functions Queue 414, the registration function (Reg
istFunction) 421 and calls the pool (Functions P
ool) 424. Functions Queue 414
When the current priority slot becomes empty, the current priority slot and the old priority slot are advanced by one. Discard old old slots.

【0059】このように、長期スケジューラ410は、
受け取ったタスク(ファンクション記述子)をキュー(F
unctions Queue) 414に格納し、評価を起動すべきタ
スクをそのメッセージ属性に基づいて選択し、選択した
タスクはキューから取り出し、短期スケジューラ42
送る。
As described above, the long-term scheduler 410
The received task (function descriptor) is queued (F
stored in the unctions Queue) 414, selected based tasks should be activated evaluate the message attribute, the selected task is removed from the queue, short scheduler 42 0
Send to.

【0060】このような動作において、長期スケジュー
ラ410では大域的尺度で対象タスクの評価順序が制御
される。評価順序は、メッセージの優先度と時間属性お
よびプロセスでの現在時間から、スケジューリングポリ
シーに基づいて算出するタスク優先度で表されるが、長
期スケジューリングでは、時間順のポリシをより重視す
る。またキュー(Functions Queue) 414においては、
算出時のプロセス時間を反映した優先度によりタスクが
管理され、その順序は、時間の経過とともに動的に変化
するが、特に長期スケジューリングではこの優先度を、
時間属性のデータタイムなどの大域的時間要素から得る
ことにより、大域性を優先した管理が行われる。
In this operation, the long-term scheduler 410 controls the evaluation order of the target tasks on a global scale. The evaluation order is represented by a task priority calculated based on the scheduling policy based on the message priority, the time attribute, and the current time in the process. In the long-term scheduling, the chronological policy is more important. Also, in Functions Queue 414,
Tasks are managed according to the priority that reflects the process time at the time of calculation, and the order dynamically changes over time. Especially in long-term scheduling, this priority is
By obtaining from a global time element such as the data time of the time attribute, management with priority on globality is performed.

【0061】なお、優先度の算出が局所時間からのみに
よる場合、その順序の確度は、確率的にノード間での局
所時間の相対差のオーダであり、ノード間での局所時間
の差は、メッセージ送信の最小時間のオーダで認識する
ことが可能である。また、長期スケジューリングにおい
て、同一の分散オブジェクトでのメッセージ評価は排他
的に行う。そのため、分散オブジェクトはメッセージ実
行状態を保持し、その状態に基づいて関数記述子の選択
を行う。
When the priority is calculated only from the local time, the accuracy of the order is stochastically the order of the relative difference of the local time between the nodes, and the difference of the local time between the nodes is It is possible to recognize in the order of the minimum time of message transmission. Also, in long-term scheduling, message evaluation on the same distributed object is performed exclusively. Therefore, the distributed object holds a message execution state and selects a function descriptor based on the state.

【0062】短期スケジューリング 短期スケジューラ420は、ファンクション記述子(Fun
ctionDescriptor)の実行優先度に従って、そのスレッド
(thread)の優先度を管理し、OSによるその実行を制御
する。登録ファンクション421は、長期スケジューラ
410の選択ファンクション415 より入力される関
数あるいはメソッドの実行を、短期スケジューラ420
の管理対象とする。この時、登録ファンクション421
は、ファンクション記述子(FunctionDescriptor)の換算
優先度を、プール(Functions Pool)424のカレント優
先度との相対値に基づいてOSのスレッド優先度に変換
する。
The short- term scheduler 420 has a function descriptor (Fun
ctionDescriptor)
It manages the priority of (thread) and controls its execution by the OS. The registration function 421 executes the execution of the function or method input from the selection function 415 of the long-term scheduler 410 by the short-term scheduler 420.
To be managed. At this time, the registration function 421
Converts the conversion priority of the function descriptor (FunctionDescriptor) into the thread priority of the OS based on a relative value to the current priority of the pool (Functions Pool) 424.

【0063】消去ファンクション422は、関数あるい
はメソッドを短期スケジューラ420の管理対象からは
ずす。この時、スケジュールファンクション(ScheduleF
unctions) 423を呼び出す。スケジュールファンクシ
ョン423は、新たな関数あるいはメソッドの長期スケ
ジューラ410からの受け取り、または、実行している
関数あるいはメソッドの終了に基づいて、マニピュレー
トファンクションプライオリティーズ(MFP:Manipu
lateFunctionPriorities)425を呼び出し、プール(F
unctions Pool)424に登録されている関数およびスレ
ッド優先度を更新させる。プール(Functions Pool)42
4も、キュー(Functions Queue) 414と同様に、
(2)に示すようなクラスTimeSlotのインスタンスの集
合として構成され、実行中の関数またはメソッドの管理
を行う。その具体的な構造および動作は、キュー(Funct
ions Queue) 414と同様である。
The delete function 422 removes a function or a method from the management target of the short-term scheduler 420. At this time, the schedule function (ScheduleF
unctions) 423. The schedule function 423 receives a new function or method from the long-term scheduler 410 or, based on the end of the function or method being executed, based on the manipulation function priorities (MFP).
lateFunctionPriorities) 425 is called and the pool (F
The function and thread priority registered in the unctions pool 424 are updated. Pool (Functions Pool) 42
4 is the same as the Functions Queue 414,
It is configured as a set of instances of the class TimeSlot as shown in (2), and manages the function or method being executed. The specific structure and operation of the
ion Queue) The same as 414.

【0064】MFP425は、プール(Functions Pool)
424に登録されているメソッドあるいは関数のスレッ
ド優先度の操作を行う。すなわち、換算優先度を、OS
のスレッド優先度に変換し管理する。スレッド優先度
は、デッドラインの充足予測率、リソースロックにとも
なう優先度継承や上限の処理によって、適宜変更する。
なお、ここでは、スレッドの優先度の計算は、全てのス
レッドを考慮に入れて計算し、設定する。
The MFP 425 has a function pool.
The thread priority of the method or function registered in 424 is operated. That is, the conversion priority is set to OS
Convert to thread priority and manage. The thread priority is appropriately changed according to the deadline satisfaction prediction rate, priority inheritance due to resource lock, and upper limit processing.
Here, the priority of the thread is calculated and set in consideration of all the threads.

【0065】このように、短期スケジューラ420にお
いては、長期スケジューラから送られたタスクを、実行
スレッドを割り付けてプール(Functions Pool)424で
保持する。実行スレッドは、その関数記述子の情報をも
とに実際の関数やメソッドを呼び出して処理するプロセ
スである。そして、プール上で可動状態となっている関
数記述子の評価を、OSのスレッド機能を用いて実行制
御する。スレッド優先度は、メッセージの時間属性と優
先度から再度、短期的尺度に基づいて算出する。すなわ
ち、短期スケジューラは、デッドラインまでの余裕度に
従った優先度の動的変更といった処理をする。
As described above, in the short-term scheduler 420, the tasks sent from the long-term scheduler are allocated to the execution threads and held in the pool (Functions Pool) 424. The execution thread is a process that calls and processes an actual function or method based on the information of the function descriptor. Then, the execution of the evaluation of the function descriptor in the movable state on the pool is controlled using the thread function of the OS. The thread priority is calculated based on the short-term scale again from the time attribute and the priority of the message. That is, the short-term scheduler performs processing such as dynamically changing the priority according to the margin up to the deadline.

【0066】スレッドの実行をOS機能によって行うの
は、たとえば、連続メディア処理を局所制御するプロセ
ス内のドメインタスクなどの、メッセージ評価以外のタ
スクの実時間処理や、実行環境への適応性の観点から有
効である。OSによってリソースロックなどに伴う優先
度継承などの処理が行われた場合、そのスレッド優先度
の操作は一時的であって、短期スケジューラによる優先
度の操作は、それとは非干渉で行える。ノード上に複数
のPE (processing element) がある場合、プロセスや
オブジェクト配置に基づくPE空間の分割や、スレッド
のPEへの割付などは、短期スケジューラによってチュ
ーニングする。
The execution of the thread by the OS function is performed, for example, in real-time processing of tasks other than message evaluation, such as a domain task in a process for locally controlling continuous media processing, and in view of adaptability to an execution environment. Valid from. When the OS performs processing such as priority inheritance due to resource locking or the like, the operation of the thread priority is temporary, and the operation of the priority by the short-term scheduler can be performed without interference. If there are multiple PE (Processing element) on the node, splitting or PE space based on the process and object placement, like assignment to threads PE is Ju <br/> Ningu I by the short-term scheduler.

【0067】負荷分散 このようなスケジューリングにおける負荷分散について
説明する。負荷分散には大別して、負荷均衡化と負荷共
有化の手法があり、さらに、それらの拡散型とタスク充
填型がある。拡散型は、たとえば図11(a)に示すよ
うに、各ノードの負荷が均一になるように各ノードに負
荷を分散させる方法である。タスク充填型は、図11
(b)に示すように、負荷を、各ノードの処理能力に近
い範囲内にパッキングして、各ノードに順に負担させる
方法である。所定の負荷を短時間で終了させるためには
拡散型が有効であるが、たとえば負荷lが新たに印加さ
れた場合などにはタスク充填型であれば直ちに処理する
ことができるなど、各方法に各々特徴がある。
Load distribution Load distribution in such scheduling will be described. Load distribution is roughly classified into load balancing and load sharing methods, and furthermore, there are a spread type and a task filling type. The diffusion type is a method of distributing the load to each node so that the load on each node becomes uniform, as shown in FIG. 11A, for example. The task filling type is shown in FIG.
As shown in (b), this method packs the load within a range close to the processing capacity of each node and sequentially loads each node. The diffusion type is effective for terminating a predetermined load in a short time. However, for example, when a load 1 is newly applied, if the task filling type can be used, processing can be performed immediately. Each has its own characteristics.

【0068】本実施の形態においては、このような負荷
分散の手法を、その特性に基づいてそれぞれ、長期と短
期のスケジューリングに採り入れている。長期スケジュ
ーリングでは、プロセス間およびノード間で負荷を均衡
させることにより、非同期性の発生を抑制するとともに
系全体の応答性を高めることが必要である。そして、広
域分散環境上での負荷均衡化を行うためには、負荷拡散
型の制御により行うのが好適で、本実施の形態の大域並
行計算システムにおいてもこれを採用している。すなわ
ち、拡散型の負荷均衡化により、アプリケーションに対
して、複製オブジェクト間でのメッセージ分配や、新た
なオブジェクトとプロセスを生成する際の配置決定の支
援機能を提供している。なお、アプリケーションでは同
時に、そのドメイン知識によって、オブジェクトとプロ
セスのマイグレーションの処理も可能であり、これによ
り負荷均衡化が促進されるようになっている。
In this embodiment, such a method of load distribution is adopted for long-term and short-term scheduling, respectively, based on its characteristics. In long-term scheduling, it is necessary to suppress the occurrence of asynchrony and increase the responsiveness of the entire system by balancing the load between processes and between nodes. In order to perform load balancing in a wide-area distributed environment, it is preferable to perform load-balancing control, and this is also employed in the global parallel computing system of the present embodiment. That is, the diffusion-type load balancing provides an application with a function of distributing messages among replicated objects and a function of determining an arrangement when generating a new object and a process. At the same time, the application can also perform the migration processing of the object and the process by the domain knowledge, thereby promoting the load balancing.

【0069】短期スケジューリングでは、生起したメッ
セージ評価タスクを遅滞なく実行しなければならず、実
時間処理における負荷共有化では、非周期的なタスク入
力に対応するため、タスク充填型の処理を行う。なお、
この処理は、負荷モニタのコストの観点から、ひとつの
プロセスが複数のPEに共有されているときにのみ行う
ものとする。
In the short-term scheduling, the generated message evaluation task must be executed without delay. In the load sharing in the real-time processing, a task filling type process is performed to cope with an aperiodic task input. In addition,
This processing is performed only when one process is shared by a plurality of PEs from the viewpoint of the load monitoring cost.

【0070】API(アプリケーションプログラミング
インタフェース) 本実施の形態に示す大域計算環境において、プログラミ
ングインタフェースとして提供するのは、前述したよう
な、並行オブジェクトの基本定義と生成の機能とメッセ
ージ送信関数である。メッセージ送信関数は、前述した
メッセージ方式に対応して、Send、Call、SyncCallの3
種類である。オブジェクトメソッドと関数は、プログラ
ム中に大域パブリックの宣言をすることによってメッセ
ージによる呼出が可能である。特別に呼出インタフェー
スを規定する必要はない。大域参照による送信先の特定
と引数の論理形式による処理により、異なる言語の間で
もメッセージ送信が可能である。C++APIでのメッ
セージ処理を(3)に例示する。
API (Application Programming)
Interface) In the global computing environment described in this embodiment, what is provided as a programming interface are the basic definition and generation functions of concurrent objects and the message transmission function as described above. The message sending function supports Send, Call, and SyncCall in accordance with the message method described above.
Kind. Object methods and functions can be called by messages by making global public declarations in the program. No special call interface need be specified. By specifying the destination by global reference and processing by the logical form of the argument, it is possible to transmit a message between different languages. Message processing in the C ++ API is illustrated in (3).

【0071】[0071]

【数3】 RemoteClass rc("fee:foo"); RemoteMethod rm("fee:foo::bar"); RemoteInstance ri = CreateObject(rc, 7, "A", "process"); Bee bee; … Send(ri, rm, 1, "abc", bee); … ------ PACKAGE fee class foo : DistributedObject { public: foo(int i, char* s); PUBLIC int bar(int i, char* s, Bee bee); } …(3) RemoteClass rc ("fee: foo"); RemoteMethod rm ("fee: foo :: bar"); RemoteInstance ri = CreateObject (rc, 7, "A", "process"); Bee bee;… Send (ri, rm, 1, "abc", bee);… ------ PACKAGE fee class foo: DistributedObject {public: foo (int i, char * s); PUBLIC int bar (int i, char * s , Bee bee);}… (3)

【0072】(3)においては、前半部でクラス参照r
cの生成、メソッド参照rmの生成、クラスfooのイ
ンスタンスオブジェクトriの生成、beeというロー
カルオブジェクトの生成(引数となる)、リモートイン
スタンスriに対するメッセージ通信によるriのメソ
ッドrm(bar)の呼び出しを行っている。また、後
半でクラスfooの定義と、fooでのメソッドbar
の定義を行っている。"process" は、配置情報で示され
るプロセスであり、PACKAGE は、プログラムモジュール
を構成するプログラムの単位である。そして、大域参照
は、配置情報とPACKAGE の関係から必要なものを自動生
成する。この時に、rc,rm,riは、その大域参照
への指標となる。
In (3), the class reference r
By generating c, generating a method reference rm, generating an instance object ri of class foo, generating a local object called bee (as an argument), and calling a method rm (bar) of ri by message communication with the remote instance ri. I have. In the latter half, the definition of class foo and the method bar in foo
Is defined. "process" is a process indicated by the arrangement information, and PACKAGE is a unit of a program constituting a program module. Then, for global reference, necessary items are automatically generated from the relationship between the arrangement information and PACKAGE. At this time, rc, rm, and ri are indices to the global reference.

【0073】オブジェクトの動的管理 前述したように、並行オブジェクトとプロセスは、計算
空間上を移動することが可能である。その場合、そのオ
ブジェクトが持つ大域参照はそのまま保持する。また、
そのオブジェクトへの参照は、移動元のプロセスに間接
参照を暫時存在させ、元の参照へのアクセスがあった時
はそれを新たな参照に切り替える。並行オブジェクト
は、大域ガーベジコレクションの対象である。大域ガー
ベジコレクションは、並行オブジェクトに対する大域参
照の有無を判定することにより行なう。大域参照と並行
オブジェクトにはそれぞれ重みとカウンタをシステムタ
グとして付加し、重み付参照カウント法を基本とした即
時型コレクションを行なう。実行環境に依存したプロセ
ス内のリソースは、ローカルコレクションあるいはアプ
リケーションプログラマによる処理の対象とする。
Dynamic Management of Objects As described above, concurrent objects and processes can move in a computation space. In that case, the global reference of the object is kept as it is. Also,
The reference to the object causes an indirect reference to exist for a while in the source process, and switches to a new reference when the original reference is accessed. Concurrent objects are the subject of global garbage collection. Global garbage collection is performed by determining the presence or absence of a global reference to a concurrent object. Weights and counters are added as system tags to the global reference and the parallel object, respectively, and an immediate collection based on the weighted reference counting method is performed. Resources in the process that depend on the execution environment are subject to local collection or processing by the application programmer.

【0074】実時間特性の評価 このような構成の大域並行計算システムの具体例であっ
て、Solaris 2.4/SparcStationとWindowsNT 4.0/IBM PC
/AT 互換機、10Base-T Ethernet / 156Mbps ATM の環境
上で、C++、JavaをAPI言語として稼働してい
るシステム上において、システムの実時間特性評価の予
備検証として評価したメッセージ伝播の時間応答性に関
する基本的性能を示す。この検証は、次の問題におい
て、その処理能力上限値付近での応答性を、ノード数と
スケジューリングポリシを変えて観測した。なお、実際
の実験は、C++/Solaris/SpacStation (HyperSarc/12
5MHz)/10BaseT Ethernet上で行った。
Evaluation of Real-Time Characteristics A specific example of a global parallel computing system having such a configuration is shown in FIG.
/ AT compatible machine, 10Base-T Ethernet / 156Mbps ATM In the environment where C ++ and Java are operating as API language, time response of message propagation evaluated as preliminary verification of system real-time characteristic evaluation The basic performance is shown. In this verification, in the following problem, the responsiveness near the processing capacity upper limit value was observed by changing the number of nodes and the scheduling policy. The actual experiment was conducted in C ++ / Solaris / SpacStation (HyperSarc / 12
5MHz) / 10BaseT Performed on Ethernet.

【0075】実験問題は、64分散オブジェクトの系に
一定頻度で8メッセージを並行入力し、入力に伴ってオ
ブジェクト間でメッセージをそれぞれ32段伝播させ、
その応答性を観測するものである。メッセージは全て非
同期で、その評価の計算粒度は均一とした。複数ノード
の場合はメッセージの送信先を、発信元とは別のノード
を中心にガウス分散させた。デッドラインは、処理能力
上限での系全体の応答時間を32等分した時間を、各メ
ッセージに均等に与えた。スケジューリングポリシは系
全体で同一とした。長期スケジューリングのみを行い、
短期スケジューリングではスレッド優先度を均一にし
た。
An experimental problem is that eight messages are input in parallel to a system of 64 distributed objects at a constant frequency, and messages are propagated between the objects 32 stages in accordance with the input.
The responsiveness is observed. All messages were asynchronous and the computational granularity of the evaluation was uniform. In the case of multiple nodes, the destination of the message is distributed Gaussian around a node different from the source. In the deadline, a time obtained by equally dividing the response time of the entire system at the upper limit of the processing capacity by 32 is given equally to each message. The scheduling policy was the same for the entire system. Perform only long-term scheduling,
In short-term scheduling, thread priorities were made uniform.

【0076】処理能力は、メッセージ(データ)入力の
上限頻度であるSustainable Data Rate (SDR)によ
って測定した。SDRは、メッセージやデータの伝達頻
度であって、所定の観測レーテンシが安定していて時間
経過とともに増大することのない最大値である。そのS
DRの測定結果の一例を図12に示す。図12は、ノー
ド数4でデッドライン優先の時レーテンシの変化を示
す図であり、(a)はデータレートが1/4.3[sec]
の時のレーテンシの変化を示す図であり、(b)はデー
タレートが1/4[sec] の時のレーテンシの変化を示す
図である。図12より、ノード数が4の時のSDRは
4.3と観測できる。
The processing capacity was measured by a Sustainable Data Rate (SDR), which is the upper limit frequency of message (data) input. The SDR is a transmission frequency of a message or data, and is a maximum value at which a predetermined observation latency is stable and does not increase over time. That S
FIG. 12 shows an example of the DR measurement result. Figure 12 is a graph showing changes in latency when the deadline priority at node number 4, (a) a data rate of 1 / 4.3 [sec]
FIG. 7B is a diagram showing a change in latency at the time of (1), and (b) is a diagram showing a change of latency at a data rate of 1/4 [sec]. From FIG. 12, it can be observed that the SDR when the number of nodes is 4 is 4.3.

【0077】ノード数を変えて系の応答性を観測した結
果を、図13に示す。図13において、(a)はスケジ
ューリングポリシ毎のSDRでのデッドライン充足率、
(b)は(a)の各観測値でのSDRである。図示のご
とく、処理限界(SDR)では、ネットワーク通信負荷
による内部処理の乱れが認められるが、系全体の応答能
力は、ノード数に対してほぼリニアに増加している。ま
た、メッセージ評価粒度を変えたときのノード数に対す
るSDR増加比を、図14に示す。また、図13(a)
は、SDRによるものであったが、その間、データタイ
ム優先のスケジューリングポリシについて、SDRを中
心にデータレートを換えた時のデッドライン充足率の図
を、系の応答性を示す図として図15に示す。分散処理
では、本実験のように非同期で均質な制御を行えば、理
想的な台数と応答性の効果を得ることができる。したが
って、本実施の形態の大域並行計算方式も、分散処理の
特質を活かした基本性能を備えているといえる。
FIG. 13 shows the result of observing the response of the system by changing the number of nodes. In FIG. 13, (a) is a deadline satisfaction rate in SDR for each scheduling policy,
(B) is the SDR at each observation in (a). As shown in the figure, at the processing limit (SDR), disturbance of internal processing due to the network communication load is recognized, but the response capability of the entire system increases almost linearly with the number of nodes. FIG. 14 shows the SDR increase ratio with respect to the number of nodes when the message evaluation granularity is changed. FIG. 13 (a)
Was based on SDR. Meanwhile, regarding the scheduling policy of the data time priority, a diagram of the deadline satisfaction rate when the data rate was changed around SDR is shown in FIG. 15 as a diagram showing the responsiveness of the system. Show. In the distributed processing, if the control is performed asynchronously and homogeneously as in this experiment, the ideal number of units and the responsiveness can be obtained. Therefore, it can be said that the global parallel computing method according to the present embodiment also has basic performance utilizing characteristics of distributed processing.

【0078】以上説明したように、本実施の形態の大域
計算方式によれば、広域のネットワークをひとつの統合
的な計算環境として捉え、その上で大域的な並行計算を
行なえる。またこの方式によれば、プログラミング言語
やネットワークといった実行環境の違いに適応して、メ
ッセージパッシングの機能を提供することができる。さ
らに、インタフェース規定などを必要としない柔軟な分
散並行プログラミング機能を提供することができる。ま
た、計算オブジェクトは大域参照で管理しているので、
それによる効率のよい空間管理とオブジェクト間メッセ
ージ送信を実現することができる。
As described above, according to the global computing method of the present embodiment, a wide area network can be regarded as one integrated computing environment, and global parallel computing can be performed on it. Further, according to this method, a message passing function can be provided by adapting to differences in execution environments such as a programming language and a network. Further, it is possible to provide a flexible distributed parallel programming function that does not require an interface definition or the like. Also, since calculation objects are managed by global reference,
Thereby, efficient space management and message transmission between objects can be realized.

【0079】そして特に、本実施の形態の大域計算方式
によれば、ネットワーク環境上で、大域的な計算スケジ
ューリングが行えるようにしている。具体的には、評価
すべきメッセージをその時間属性と優先度によって選択
する長期スケジューリングと、選択された評価を並行し
て処理する短期スケジューリングとにより、計算スケジ
ューリングを行っている。そしてこの処理の中で、長期
スケジューリングでは、系全体の応答性向上のための負
荷の均衡化の処理を、また、短期スケジューリングで
は、実時間性の充足のための負荷の共有化の処理を行っ
ている。そして、局所的な制御を広域連係させることに
より、大域的な実時間性を確保した分散システムでの実
時間処理を実現している。
In particular, according to the global calculation method of the present embodiment, global calculation scheduling can be performed in a network environment. Specifically, calculation scheduling is performed by long-term scheduling in which a message to be evaluated is selected according to its time attribute and priority, and short-term scheduling in which the selected evaluation is processed in parallel. In this process, in the long-term scheduling, load balancing is performed to improve responsiveness of the entire system, and in the short-term scheduling, load sharing is performed to satisfy real-time performance. ing. By realizing local control over a wide area, real-time processing in a distributed system that secures global real-time performance is realized.

【0080】さらに、長期スケジューラはタスク生成器
として、短期スケジューラはタスク実行器として機能
し、これらの実効的なタスク処理により、計算実行リソ
ースの効果的な利用が可能である。また、長期スケジュ
ーリングは、実時間制御のためのOS独立なミドルウェ
ア機能として、また、短期スケジューリングは、計算実
行のためのOS機能インタフェースとして位置付けるこ
とができ、より汎用的でAPIに優れたオープンなシス
テムを提供することができる。
Further, the long-term scheduler functions as a task generator, and the short-term scheduler functions as a task executor. These effective task processes enable effective use of computational execution resources. In addition, the long-term scheduling can be positioned as an OS-independent middleware function for real-time control, and the short-term scheduling can be positioned as an OS function interface for executing calculations. Can be provided.

【0081】[0081]

【発明の効果】以上説明したように、本発明によれば、
広域な分散システム上で実時間処理を適切に行うことの
できる分散処理方法を提供することができる。また、大
域的な並行計算により実時間処理を適切に行うことので
きるネットワークシステムを提供することができる。さ
らに、そのような広域分散システムのノードに適用して
好適で、協調してその分散システム上で実時間処理を適
切に行うことのできるノード装置を提供することができ
る。
As described above, according to the present invention,
A distributed processing method capable of appropriately performing real-time processing on a wide-area distributed system can be provided. Further, it is possible to provide a network system capable of appropriately performing real-time processing by global parallel calculation. Further, it is possible to provide a node device which is suitable for being applied to a node of such a wide area distributed system and which can appropriately perform real-time processing on the distributed system in a coordinated manner.

【図面の簡単な説明】[Brief description of the drawings]

【図1】図1は、本発明の一実施の形態における大域計
算の概念構成図である。
FIG. 1 is a conceptual configuration diagram of global calculation according to an embodiment of the present invention.

【図2】図2は、並行オブジェクトについて説明する図
であり、(a)は並行オブジェクトとプロセスとの関係
を示す図であり、(b)は並行オブジェクトの内部状態
構成を示す図である。
FIGS. 2A and 2B are diagrams illustrating a concurrent object; FIG. 2A is a diagram illustrating a relationship between a concurrent object and a process; FIG. 2B is a diagram illustrating an internal state configuration of the concurrent object;

【図3】図3は、図1に示した大域計算を実現するメッ
セージパッシングの機構を示す図である。
FIG. 3 is a diagram illustrating a message passing mechanism for realizing the global calculation illustrated in FIG. 1;

【図4】図4は、大域参照を管理するリモート参照表と
ローカル参照表の例を示す図であり、メッセージ送信時
のオブジェクト参照のスキームを例示する図である。
FIG. 4 is a diagram illustrating an example of a remote reference table and a local reference table that manage global references, and is a diagram illustrating a scheme of object reference at the time of transmitting a message;

【図5】図5は、参照解決の方式と機能の構成を示す図
である。
FIG. 5 is a diagram showing a configuration of a reference solution method and a function;

【図6】図6は、メッセージ送信機能の詳細を示す図で
ある。
FIG. 6 is a diagram illustrating details of a message transmission function.

【図7】図7は、メッセージ受信機能の詳細を示す図で
ある。
FIG. 7 is a diagram illustrating details of a message receiving function;

【図8】図8は、メッセージ評価スケジューリング方式
の機能構成について示す図である。
FIG. 8 is a diagram illustrating a functional configuration of a message evaluation scheduling method.

【図9】図9は、メッセージパッシング機構におけるメ
ッセージ受信機能の一部とスケジューラの構成を示す図
である。
FIG. 9 is a diagram illustrating a part of a message receiving function in a message passing mechanism and a configuration of a scheduler;

【図10】図9に示したスケジューラにおけるファンク
ションキューの構造を説明するための図である。
FIG. 10 is a diagram for explaining a structure of a function queue in the scheduler shown in FIG. 9;

【図11】図11は、負荷分散の方法について説明する
図であり、(a)は拡散型の負荷分散方法を示す図であ
り、(b)はタスク充填型の負荷分散方法を示す図であ
る。
FIGS. 11A and 11B are diagrams for explaining a load distribution method; FIG. 11A is a diagram showing a spread type load distribution method; FIG. 11B is a diagram showing a task filling type load distribution method; is there.

【図12】図12は、SDRの測定結果を示す図であ
り、(a)はデータレートが1/4.3[sec] の時のレ
ーテンシの変化を示す図であり、(b)はデータレート
が1/4[sec] の時のレーテンシの変化を示す図であ
る。
12A and 12B are diagrams showing SDR measurement results, FIG. 12A is a diagram showing a change in latency when the data rate is 1 / 4.3 [sec], and FIG. FIG. 9 is a diagram showing a change in latency when the rate is 1/4 [sec].

【図13】図13は、本実施の形態の大域計算システム
において、ノード数を変えて系の応答性を観測した結果
を示す図であり、(a)はスケジューリングポリシ毎の
SDRでのデッドライン充足率を示す図であり、、
(b)は(a)の各観測値でのSDRである。
FIG. 13 is a diagram showing a result of observing the responsiveness of the system while changing the number of nodes in the global computing system according to the present embodiment, and FIG. 13 (a) shows a deadline in SDR for each scheduling policy; FIG. 6 is a diagram showing a filling rate,
(B) is the SDR at each observation in (a).

【図14】図14は、メッセージ評価粒度を変えたとき
のノード数に対するSDR増加比を示す図である。
FIG. 14 is a diagram illustrating an SDR increase ratio with respect to the number of nodes when the message evaluation granularity is changed.

【図15】図15は、データタイム優先のスケジューリ
ングポリシについて、SDRを中心にデータレートを換
えた時のデッドライン充足率の図である。
FIG. 15 is a diagram of a deadline satisfaction rate when a data rate is changed with a focus on SDR for a scheduling policy giving priority to data time.

【符号の説明】[Explanation of symbols]

300…プロセス、310…メッセジ通信部、311…
メッセージディスパッチャ、320…参照解決機能、3
21…参照表、330…アプリケーションプログラミン
グ機能、331…プレインヴォーク、332…ポストイ
ンヴォーク、333…ファンクションインヴォーク、4
00…スケジューラ、411…登録ファンクション、4
12…消去ファンクション、413…スケジュールファ
ンクション、414…キュー、415…選択ファンクシ
ョン、420…短期スケジューラ、421…登録ファン
クション、422…消去ファンクション、423…スケ
ジュールファンクション、424…プール、425…マ
ニピュレートファンクションプライオリティーズ(MF
P)
300: Process, 310: Message communication unit, 311 ...
Message dispatcher 320, reference resolution function, 3
21: Reference table, 330: Application programming function, 331: Pre-invoked, 332: Post-invoked, 333: Function invoked, 4
00: scheduler, 411: registration function, 4
12: Delete function, 413: Schedule function, 414: Queue, 415: Select function, 420: Short-term scheduler, 421: Register function, 422: Delete function, 423: Schedule function, 424: Pool, 425: Manipulate function priorities ( MF
P)

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−219787(JP,A) 前川博俊、外2名,大域計算アーキテ クチャ−広域環境での並列計算とマルチ メディア処理の総合的実現,情報処理学 会論文誌,日本,1998年 2月15日,V ol.39 No.2,267−282 小早川雄一、外2名,ネットワークス ケーラブルな分散オブジェクト空間管理 方式,情報処理学会研究報告,日本, 1997年 1月31日,Vol.97 No. 13(97−DPS−80,97−GW−21), 211−216 前川博俊、外2名,大域並行計算とそ のメッセージ評価スケジューリング,情 報処理学会研究報告,日本,1998年 2 月26日,Vol.98 No.15(98−O S−77,98−DPS−87),97−102 (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 9/46 ──────────────────────────────────────────────────続 き Continuation of the front page (56) References JP-A-7-219787 (JP, A) Hirotoshi Maekawa, 2 others, Global Computing Architecture-Comprehensive realization of parallel computing and multimedia processing in a global environment, Information Processing Society Transactions, Japan, February 15, 1998, Vol. 39 No. 2, 267-282 Yuichi Kobayakawa, et al., Network scalable distributed object space management method, IPSJ research report, Japan, January 31, 1997, Vol. 97 No. 13 (97-DPS-80, 97-GW-21), 211-216 Hirotoshi Maekawa, and two others, global parallel computation and its message evaluation scheduling, Information Processing Society of Japan Research Report, Japan, 1998 March 26, Vol. 98 No. 15 (98-OS-77, 98-DPS-87), 97-102 (58) Fields studied (Int. Cl. 7 , DB name) G06F 15/16-15/177 G06F 9/46

Claims (27)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】実時間処理に係わるオブジェクトを有する
複数のプロセスが、ネットワークシステムに係わる適宜
更新される第1の情報に基づいて複数のノード上に配置
される当該ネットワークシステムにおいて、当該複数の
オブジェクトにおける複数のタスクにより前記実時間処
理を行う方法であって、 前記各プロセスにおいて、 入力されたタスクに対して、当該入力されたタスクに係
わるメッセージが有する優先度属性を示す情報に基づい
て、第1のスケジューリング方針に基づく第1の優先順
位を検出し、 前記入力されたタスクを、前記検出された第1の優先順
位に応じてタスク保持手段に登録して保持し、 前記タスク保持手段に登録され保持されているタスクの
うちで前記第1の優先順位の高いタスクを選択し、 前記選択されたタスクに対して、前記第1の優先順位に
基づいて、第2のスケジューリング方針に基づく第2の
優先順位を検出し、 前記選択されたタスクを、実行スレッドとして、前記検
出された第2の優先順位に応じてスレッド保持手段に登
録して保持し、 前記スレッド保持手段に登録され保持されている実行ス
レッドのうちで前記第2の優先順位の高い実行スレッド
を選択し、 当該選択された実行スレッドを実行する分散処理方法。
In a network system in which a plurality of processes having objects related to real-time processing are arranged on a plurality of nodes based on appropriately updated first information related to a network system, a method of performing pre-you-time processing by a plurality of tasks in, in each process, for the input task based on the information indicating the priority attributes message relating to the input task has, Detecting a first priority based on a first scheduling policy; registering and holding the input task in a task holding unit according to the detected first priority; Selecting the first higher priority task from the registered and retained tasks; Detecting, based on the first priority, a second priority based on a second scheduling policy, using the selected task as an execution thread for the detected second priority. Registering and holding the thread in the thread holding means according to the order; selecting the second highest-priority execution thread from among the execution threads registered and held in the thread holding means; Distributed processing method to execute.
【請求項2】新たなタスクが実行スレッドとして前記ス
レッド保持手段に登録して保持されるごとに、前記スレ
ッド保持手段に登録され保持されている実行スレッドの
前記第2の優先順位を更新し、 前記スレッド保持手段に登録され保持されている実行ス
レッドのうちで前記更新された第2の優先順位の高い実
行スレッドを選択し、 当該選択された実行スレッドを実行する請求項1に記載
の分散処理方法。
2. Every time a new task is registered and held as an execution thread in the thread holding unit, the second priority of the execution thread registered and held in the thread holding unit is updated, 2. The distributed processing according to claim 1, wherein the updated second higher-priority execution thread is selected from among the execution threads registered and held in the thread holding unit, and the selected execution thread is executed. 3. Method.
【請求項3】前記第1の優先順位は、当該タスクに係わ
るメッセージが有する所定の優先度属性を示す情報に基
づいて、前記第1のスケジューリング方針に基づいて算
出された換算優先度であり、 前記第2の優先順位は、前記選択されたタスクに対し
て、前記換算優先度に基づいて、前記第2のスケジュー
リング方針に基づいて算出されたスレッド優先度である
請求項1または2に記載の分散処理方法。
3. The first priority is a conversion priority calculated based on the first scheduling policy based on information indicating a predetermined priority attribute of a message relating to the task, 3. The thread priority according to claim 1, wherein the second priority is a thread priority calculated for the selected task based on the second scheduling policy based on the conversion priority. Distributed processing method.
【請求項4】前記複数のオブジェクトは、前記ネットワ
ークシステムにおける各ノード間でリモード呼び出し可
能な分散オブジェクト、分散関数、共有変数を包含する
並行オブジェクトであり、 前記タスクは、前記並行オブジェクト間のメッセージに
基づく、分散オブジェクトのメソッドの呼び出し、分散
関数の呼び出し、共有変数へのアクセスの実行を含む、
前記並行オブジェクトにおける所定の処理の実行であ
り、 前記メッセージの連鎖により前記実時間処理を行う請求
項3に記載の分散処理方法。
4. The plurality of objects are parallel objects including distributed objects, distributed functions, and shared variables that can be remotely called between nodes in the network system. Based, including calling distributed object methods, calling distributed functions, and performing access to shared variables,
Wherein an execution of a predetermined processing in parallel object distributed processing method according to claim 3 for pre you time processing through linkage of the message.
【請求項5】前記メッセージは、スケジューリングポリ
シの情報、データタイムの情報、メッセージ送信タイム
の情報、評価の許容時間の情報、メッセージ発生の周期
性に係わる情報、実時間性の厳密度を示す情報、およ
び、計算の非精密性の許容度の情報のいずれか1つ、あ
るいは複数、あるいは全部を含む時間属性の情報と、優
先度属性を示す情報を有し、 前記情報を参照して、前記メッセージに基づく前記タス
クの前記換算優先度を求める請求項4に記載の分散処理
方法。
5. The message includes information on scheduling policy, information on data time, information on message transmission time, information on allowable time for evaluation, information on periodicity of message generation, and information on strictness of real-timeness. And, any one of the information of the degree of tolerance of the inaccuracy of the calculation, or information of a time attribute including a plurality or all, and information indicating a priority attribute, and, with reference to the information, 5. The distributed processing method according to claim 4, wherein the conversion priority of the task based on a message is obtained.
【請求項6】前記配置されたプロセスおよびオブジェク
トは、前記ネットワークシステムに係る適宜更新される
第1の情報、および、当該プロセスの配置された前記ノ
ードに係わる第2の情報に基づいて、少なくとも前記実
時間処理の実時間性が確保可能なように、他の前記ノー
ドに複写または再配置される請求項1〜5のいずれかに
記載の分散処理方法。
6. The deployed process and the object based on at least an appropriately updated first information relating to the network system and a second information relating to the node at which the process is disposed. as <br/> securable real-time of the time processing, distributed processing method according to claim 1 which is copied or relocated to another of said nodes.
【請求項7】前記第1の情報は、前記ネットワークシス
テムの構成に係わる情報、前記ネットワークシステムに
おける前記プロセスの配置の情報、前記プロセスおよび
前記オブジェクトの複製および再配置の情報、および、
前記第1の情報の管理場所の情報および当該第1の情報
の場所の情報のいずれか1つ、あるいは複数、あるいは
全部を包含する情報である請求項1〜6のいずれかに記
載の分散処理方法。
7. The first information includes information on a configuration of the network system, information on the arrangement of the processes in the network system, information on duplication and relocation of the processes and the objects, and
7. The distributed processing according to claim 1, wherein the information includes at least one of the information of the management location of the first information and the information of the location of the first information. Method.
【請求項8】前記タスク保持手段に登録され保持されて
いるタスクであって、前記選択されたタスクが、既に前
記スレッド保持手段に登録されて保持されているタスク
と同一のオブジェクトによるものであった場合には、当
該タスクの前記スレッド保持手段への登録を待機する請
求項1〜7のいずれかに記載の分散処理方法。
8. The task registered and held in the task holding means, wherein the selected task is based on the same object as the task already registered and held in the thread holding means. The distributed processing method according to any one of claims 1 to 7, wherein in a case where the task is registered, the task waits for registration of the task in the thread holding unit.
【請求項9】前記プロセスおよびオブジェクトは、前記
ネットワークシステムに係る適宜更新される第1の情
報、および、当該プロセスの配置された前記ノードに係
わる第2の情報に基づいて、前記ノードの間で負荷が均
衡するように、他の前記ノードに複写または再配置され
る請求項6に記載の分散処理方法。
9. The process and the object are exchanged between the nodes based on first information appropriately updated regarding the network system and second information regarding the node where the process is arranged. 7. The distributed processing method according to claim 6, wherein the data is copied or relocated to another node so that a load is balanced.
【請求項10】実時間処理に係わるオブジェクトを有す
る複数のプロセスが、ネットワークシステムに係わる適
宜更新される第1の情報に基づいて複数のノード上に配
置され、当該複数のオブジェクトにおける複数のタスク
により前記実時間処理を行うネットワークシステムであ
って、 前記各プロセスは、 入力されたタスクに対して、当該入力されたタスクに係
わるメッセージが有する優先度属性を示す情報に基づい
て、第1のスケジューリング方針に基づく第1の優先順
位を検出し、前記入力されたタスクをタスク保持手段に
登録するタスク登録手段と、 前記登録されたタスクを、前記検出された第1の優先順
位に応じて保持するタスク保持手段と、 前記タスク保持手段に登録され保持されているタスクの
うちで前記第1の優先順位の高いタスクを選択するタス
ク選択手段と、 前記選択されたタスクに対して、前記第1の優先順位に
基づいて、第2のスケジューリング方針に基づく第2の
優先順位を検出し、実行スレッドとしてスレッド保持手
段に登録するスレッド登録手段と、 前記登録された実行スレッドを、前記検出された第2の
優先順位に応じて保持するスレッド保持手段と、 前記スレッド保持手段に登録され保持されている実行ス
レッドのうちで前記第2の優先順位の高い実行スレッド
を選択するスレッド選択手段と、 当該選択された実行スレッドを実行するスレッド実行手
段とを有するネットワークシステム。
10. A plurality of processes having objects related to real-time processing are arranged on a plurality of nodes based on appropriately updated first information related to a network system. A network system for performing the real-time processing, wherein each of the processes is based on information indicating a priority attribute of a message related to the input task, based on information indicating a priority attribute. Task registration means for detecting a first priority based on the first task and registering the input task in a task holding means; and a task for holding the registered task in accordance with the detected first priority. Holding means; and a task having a high first priority among tasks registered and held in the task holding means. Task selecting means for selecting a new task, detecting a second priority based on a second scheduling policy for the selected task based on the first priority, and holding a thread as an execution thread A thread registration unit for registering the execution thread, a thread holding unit for holding the registered execution thread according to the detected second priority, and an execution thread registered and held by the thread holding unit. A network system comprising: a thread selecting unit that selects the second higher-priority execution thread; and a thread execution unit that executes the selected execution thread.
【請求項11】前記スレッド登録手段により、新たなタ
スクが前記スレッド保持手段に実行スレッドとして登録
されるごとに、前記スレッド保持手段に保持されている
実行スレッドの前記第2の優先順位を更新する優先順位
更新手段をさらに有し、 前記スレッド選択手段は、前記スレッド保持手段に保持
されている実行スレッドのうちで前記更新された第2の
優先順位の高い実行スレッドを選択し、 前記スレッド実行手段は、前記選択された実行スレッド
を実行する請求項10に記載のネットワークシステム。
11. Every time a new task is registered as an execution thread in said thread holding means by said thread registration means, said second priority of said execution thread held in said thread holding means is updated. The thread executing means further comprises priority updating means, wherein the thread selecting means selects the updated second higher-priority executing thread from among the executing threads held in the thread holding means, 11. The network system according to claim 10, wherein said network executes said selected execution thread.
【請求項12】前記第1の優先順位は、当該タスクに係
わるメッセージが有する所定の優先度属性を示す情報に
基づいて、前記第1のスケジューリング方針に基づいて
算出された換算優先度であり、 前記第2の優先順位は、前記選択されたタスクに対し
て、前記換算優先度に基づいて、前記第2のスケジュー
リング方針に基づいて算出されたスレッド優先度である
請求項10に記載のネットワークシステム。
12. The first priority is a conversion priority calculated based on the first scheduling policy based on information indicating a predetermined priority attribute of a message related to the task, The network system according to claim 10, wherein the second priority is a thread priority calculated for the selected task based on the second scheduling policy based on the conversion priority. .
【請求項13】前記複数のオブジェクトは、前記ネット
ワークシステムにおける各ノード間でリモード呼び出し
可能な分散オブジェクト、分散関数、共有変数を包含す
る並行オブジェクトであり、 前記タスクは、前記並行オブジェクト間のメッセージに
基づく、分散オブジェクトのメソッドの呼び出し、分散
関数の呼び出し、共有変数へのアクセスの実行を含む、
前記並行オブジェクトにおける所定の処理の実行であ
り、 前記メッセージの連鎖により前記実時間処理を行う請求
項12に記載のネットワークシステム。
13. The plurality of objects are concurrent objects including distributed objects, distributed functions, and shared variables that can be remotely called between nodes in the network system. Based, including calling distributed object methods, calling distributed functions, and performing access to shared variables,
Wherein an execution of a predetermined process in concurrent object, network system according to claim 12 for pre-you time processing through linkage of the message.
【請求項14】前記メッセージは、スケジューリングポ
リシの情報、データタイムの情報、メッセージ送信タイ
ムの情報、評価の許容時間の情報、メッセージ発生の周
期性に係わる情報、実時間の厳密度を示す情報、およ
び、計算の非精密性の許容度の情報のいずれか1つ、あ
るいは複数、あるいは全部を含む時間属性の情報と、優
先度属性を示す情報を有し、 前記情報を参照して、前記メッセージに基づく前記タス
クの前記換算優先度を求める請求項13に記載のネット
ワークシステム。
14. The message includes information indicating the information of the scheduling policy of the data time information, information of the message transmission time, the time allowed for information evaluation, information related to the periodicity of message generation, the real time of stringency And, any one of the information of the degree of tolerance of the inaccuracy of the calculation, or information of a time attribute including a plurality or all, and information indicating a priority attribute, and, with reference to the information, 14. The network system according to claim 13, wherein the conversion priority of the task based on a message is obtained.
【請求項15】前記配置されたプロセスおよびオブジェ
クトは、前記ネットワークシステムに係る適宜更新され
る第1の情報、および、当該プロセスの配置された前記
ノードに係わる第2の情報に基づいて、少なくとも前
時間処理の実時間性が確保可能なように、他の前記ノ
ードに複写または再配置される請求項10〜14のいず
れかに記載のネットワークシステム。
15. The arranged process and object are at least updated based on first information appropriately updated regarding the network system and second information concerning the node where the process is arranged. Record
15. The network system according to claim 10, wherein the network system is copied or relocated to another node so that real- time processing of real- time processing can be ensured.
【請求項16】前記第1の情報は、前記ネットワークシ
ステムの構成に係わる情報、前記ネットワークシステム
における前記プロセスの配置の情報、前記プロセスおよ
び前記オブジェクトの複製および再配置の情報、およ
び、前記第1の情報の管理場所の情報および当該第1の
情報の場所の情報のいずれか1つ、あるいは複数、ある
いは全部を包含する情報である請求項10〜15のいず
れかに記載のネットワークシステム。
16. The first information includes information on a configuration of the network system, information on the arrangement of the processes in the network system, information on duplication and relocation of the processes and the objects, and information on the first The network system according to any one of claims 10 to 15, wherein the information includes one, a plurality, or all of the information on the management location of the information and the information on the location of the first information.
【請求項17】前記タスク保持手段において選択された
タスクが、既に前記スレッド保持手段に登録されている
タスクと同一のオブジェクトによるものであった場合に
は、当該タスクの前記スレッド保持手段への登録を待機
させるスレッド待機手段をさらに有する請求項10〜1
6のいずれかに記載のネットワークシステム。
17. If the task selected by the task holding means is based on the same object as a task already registered in the thread holding means, the task is registered in the thread holding means. 10. A thread waiting means for waiting for a thread.
7. The network system according to any one of 6.
【請求項18】前記プロセスおよびオブジェクトは、前
記ネットワークシステムに係る適宜更新される第1の情
報、および、当該プロセスの配置された前記ノードに係
わる第2の情報に基づいて、前記ノードの間で負荷が均
衡するように、他の前記ノードに複写または再配置され
る請求項15に記載のネットワークシステム。
18. The process and the object are exchanged between the nodes based on the first information appropriately updated regarding the network system and the second information regarding the node where the process is arranged. The network system according to claim 15, wherein the network system is copied or relocated to another node so that a load is balanced.
【請求項19】複数のノードが接続されたネットワーク
システムに接続され、当該ネットワークシステムにおい
て行われる実時間処理に係わるオブジェクトを有するプ
ロセスが配置され、当該オブジェクトにおいて前記処理
に係わるタスクを実行するノード装置であって、 前記各プロセスは、 入力されたタスクに対して、当該タスクに係わるメッセ
ージが有する所定の優先度属性を示す情報に基づいて、
第1のスケジューリング方針に基づく第1の優先順位を
検出し、当該タスクをタスク保持手段に登録するタスク
登録手段と、 前記登録されたタスクを、前記検出された第1の優先順
位に応じて保持するタスク保持手段と、 前記タスク保持手段に登録され保持されているタスクの
うちで前記第1の優先順位の高いタスクを選択するタス
ク選択手段と、 前記選択されたタスクに対して、前記第1の優先順位に
基づいて、第2のスケジューリング方針に基づく第2の
優先順位を検出し、実行スレッドとしてスレッド保持手
段に登録するスレッド登録手段と、 前記登録された実行スレッドを、前記検出された第2の
優先順位に応じて保持するスレッド保持手段と、 前記スレッド保持手段に登録され保持されている実行ス
レッドのうちで前記第2の優先順位の高い実行スレッド
を選択するスレッド選択手段と、 当該選択された実行スレッドを実行するスレッド実行手
段とを有するノード装置。
19. plurality of nodes are connected to the connection network system is arranged process comprising an object according to the performed Ru real-time processing in the network system, node to perform tasks relating to the processing in the object An apparatus, wherein each of the processes, for an input task, based on information indicating a predetermined priority attribute included in a message related to the task,
A task registration unit for detecting a first priority based on a first scheduling policy and registering the task in a task holding unit; and holding the registered task in accordance with the detected first priority. Task holding means for performing the task, task selecting means for selecting the task having the first higher priority among the tasks registered and held in the task holding means, and the first task for the selected task. Thread registration means for detecting a second priority based on a second scheduling policy on the basis of the priority of the second thread, and registering the second priority in the thread holding means as an execution thread; A thread holding unit that holds the threads according to the priority order of the second thread; and the second thread among the execution threads registered and held in the thread holding unit. Node device has a thread selection means for selecting a high previous ranking execution thread, and a thread execution means for executing the selected execution thread.
【請求項20】前記スレッド登録手段により、新たなタ
スクが前記スレッド保持手段に実行スレッドとして登録
されるごとに、前記スレッド保持手段に保持されている
実行スレッドの前記第2の優先順位を更新する優先順位
更新手段をさらに有し、 前記スレッド選択手段は、前記スレッド保持手段に保持
されている実行スレッドのうちで前記更新された第2の
優先順位の高い実行スレッドを選択し、 前記スレッド実行手段は、前記選択された実行スレッド
を実行する請求項19に記載のノード装置。
20. Each time a new task is registered as an execution thread in the thread holding means by the thread registration means, the second priority of the execution thread held in the thread holding means is updated. The thread executing means further comprises priority updating means, wherein the thread selecting means selects the updated second higher-priority executing thread from among the executing threads held in the thread holding means, 20. The node device according to claim 19, wherein the node device executes the selected execution thread.
【請求項21】前記第1の優先順位は、当該タスクに係
わるメッセージが有する所定の優先度属性を示す情報に
基づいて、前記第1のスケジューリング方針に基づいて
算出された換算優先度であり、 前記第2の優先順位は、前記選択されたタスクに対し
て、前記換算優先度に基づいて、前記第2のスケジュー
リング方針に基づいて算出されたスレッド優先度である
請求項19または20に記載のノード装置。
21. The first priority is a conversion priority calculated based on the first scheduling policy based on information indicating a predetermined priority attribute of a message related to the task, 21. The thread priority according to claim 19, wherein the second priority is a thread priority calculated for the selected task based on the second scheduling policy based on the conversion priority. Node device.
【請求項22】前記複数のオブジェクトは、前記ネット
ワークシステムにおける各ノード間でリモード呼び出し
可能な分散オブジェクト、分散関数、共有変数を包含す
る並行オブジェクトであり、 前記タスクは、前記並行オブジェクト間のメッセージに
基づく、分散オブジェクトのメソッドの呼び出し、分散
関数の呼び出し、共有変数へのアクセスの実行を含む、
前記並行オブジェクトにおける所定の処理の実行であ
り、 前記メッセージの連鎖により前記実時間処理を行う請求
項19〜21いずれかに記載のノード装置。
22. The plurality of objects are concurrent objects including distributed objects, distributed functions, and shared variables that can be remotely called between nodes in the network system. Based, including calling distributed object methods, calling distributed functions, and performing access to shared variables,
The parallel is an execution of a predetermined process in an object, the node device according to claim 19 to 21 for performing a pre-you time processing through linkage of the message.
【請求項23】前記メッセージは、スケジューリングポ
リシの情報、データタイムの情報、メッセージ送信タイ
ムの情報、評価の許容時間の情報、メッセージ発生の周
期性に係わる情報、実時間性の厳密度を示す情報、およ
び、計算の非精密性の許容度の情報のいずれか1つ、あ
るいは複数、あるいは全部を含む時間属性の情報と、優
先度属性を示す情報を有し、 前記情報を参照して、前記メッセージに基づく前記タス
クの前記換算優先度を求める請求項22に記載のノード
装置。
23. The message includes information on scheduling policy, information on data time, information on message transmission time, information on allowable time for evaluation, information on periodicity of message generation, and information on strictness of real-timeness. And, any one of the information of the degree of tolerance of the inaccuracy of the calculation, or information of a time attribute including a plurality or all, and information indicating a priority attribute, and, with reference to the information, 23. The node device according to claim 22, wherein the conversion priority of the task based on a message is obtained.
【請求項24】前記配置されたプロセスおよびオブジェ
クトは、前記ネットワークシステムに係る適宜更新され
る第1の情報、および、当該プロセスの配置された前記
ノードに係わる第2の情報に基づいて、少なくとも前
時間処理の実時間性が確保可能なように、他の前記ノ
ードに複写または再配置される請求項19〜23のいず
れかに記載のノード装置。
24. The arranged processes and objects are at least updated based on first information that is appropriately updated concerning the network system and second information concerning the nodes where the processes are arranged. Record
The node device according to any one of claims 19 to 23, wherein the node device is copied or rearranged to another node so that real- time processing of real- time processing can be ensured.
【請求項25】前記第1の情報は、前記ネットワークシ
ステムの構成に係わる情報、前記ネットワークシステム
における前記プロセスの配置の情報、前記プロセスおよ
び前記オブジェクトの複製および再配置の情報、およ
び、前記第1の情報の管理場所の情報および当該第1の
情報の場所の情報のいずれか1つ、あるいは複数、ある
いは全部を包含する情報である請求項19〜24のいず
れかに記載のノード装置。
25. The first information includes information on the configuration of the network system, information on the arrangement of the processes in the network system, information on duplication and relocation of the processes and the objects, and information on the first The node device according to any one of claims 19 to 24, wherein the node device is information including one, a plurality, or all of the information on the management location of the first information and the information on the location of the first information.
【請求項26】前記タスク保持手段において選択された
タスクが、既に前記スレッド保持手段に登録されている
タスクと同一のオブジェクトによるものであった場合に
は、当該タスクの前記スレッド保持手段への登録を待機
させるスレッド待機手段をさらに有する請求項19〜2
5のいずれかに記載のノード装置。
26. If the task selected by the task holding means is based on the same object as a task already registered in the thread holding means, the task is registered in the thread holding means. 19-2, further comprising a thread waiting means for waiting for a thread.
5. The node device according to any one of 5.
【請求項27】前記プロセスおよびオブジェクトは、前
記ネットワークシステムに係る適宜更新される第1の情
報、および、当該プロセスの配置された前記ノードに係
わる第2の情報に基づいて、前記ノードの間で負荷が均
衡するように、他の前記ノードに複写または再配置され
る請求項24に記載のノード装置。
27. The process and the object are exchanged between the nodes on the basis of appropriately updated first information on the network system and second information on the node where the process is arranged. The node device according to claim 24, wherein the node device is copied or relocated to another node so that a load is balanced.
JP04412798A 1998-02-25 1998-02-25 Distributed processing method, network system and node device Expired - Lifetime JP3342659B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04412798A JP3342659B2 (en) 1998-02-25 1998-02-25 Distributed processing method, network system and node device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04412798A JP3342659B2 (en) 1998-02-25 1998-02-25 Distributed processing method, network system and node device

Publications (2)

Publication Number Publication Date
JPH11242658A JPH11242658A (en) 1999-09-07
JP3342659B2 true JP3342659B2 (en) 2002-11-11

Family

ID=12682957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04412798A Expired - Lifetime JP3342659B2 (en) 1998-02-25 1998-02-25 Distributed processing method, network system and node device

Country Status (1)

Country Link
JP (1) JP3342659B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107743246A (en) * 2017-01-24 2018-02-27 贵州白山云科技有限公司 Task processing method, system and data handling system
US11327793B2 (en) 2020-02-18 2022-05-10 International Business Machines Corporation Garbage collection work stealing mechanism

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
前川博俊、外2名,大域並行計算とそのメッセージ評価スケジューリング,情報処理学会研究報告,日本,1998年 2月26日,Vol.98 No.15(98−OS−77,98−DPS−87),97−102
前川博俊、外2名,大域計算アーキテクチャ−広域環境での並列計算とマルチメディア処理の総合的実現,情報処理学会論文誌,日本,1998年 2月15日,Vol.39 No.2,267−282
小早川雄一、外2名,ネットワークスケーラブルな分散オブジェクト空間管理方式,情報処理学会研究報告,日本,1997年 1月31日,Vol.97 No.13(97−DPS−80,97−GW−21),211−216

Also Published As

Publication number Publication date
JPH11242658A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
US7003777B2 (en) Coordination-centric framework for software design in a distributed environment
McAffer Meta-level programming with CodA
CN109889575B (en) Collaborative computing platform system and method under edge environment
Weissman et al. A federated model for scheduling in wide-area systems
JPH0563821B2 (en)
Chandy et al. Systematic composition of objects in distributed internet applications: Processes and sessions
Liu et al. Data-flow distribution in FICAS service composition infrastructure
Karpovich Support for object placement in wide area heterogeneous distributed systems
JP3342659B2 (en) Distributed processing method, network system and node device
Kim et al. TMOES: A CORBA service middleware enabling high-level real-time object programming
Gopalan Real-time support in general purpose operating systems
Braun et al. Tracy-A prototype of an architected middleware to support mobile agents
Ho et al. GRASG-a framework for" gridifying" and running applications on service-oriented grids
Zhang et al. A real-time performance comparison of distributable threads and event channels
Hui et al. Flexible and extensible load balancing
Li Some Engineering Aspects of Real-Time
Yau et al. An approach to adaptive distributed execution monitoring for workflows in service-based systems
Marazakis et al. Aurora: An architecture for dynamic and adaptive work sessions in open environments
Venkatasubramanian et al. A formal model for reasoning about adaptive QoS-enabled middleware
Abdullah et al. EOE-DRTSA: End-to-End Distributed Real-time System Scheduling Algorithm
Ii An overview of real-time ANSAware 1.0
Nakajima et al. Integrating computing resources on multiple Grid-enabled job scheduling systems through a Grid RPC system
Pérez Tijero et al. Experience in integrating interchangeable scheduling policies into a distribution middleware for Ada
Schmidt et al. TAO: a High-performance ORB Endsystem Architecture for Real-time CORBA
Li Distributing Real-Time Objects: Some Early Experiences

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20070823

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080823

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090823

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100823

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110823

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120823

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130823

Year of fee payment: 11

EXPY Cancellation because of completion of term