JPH09319653A - Information processor, information processing system and control method for the same - Google Patents

Information processor, information processing system and control method for the same

Info

Publication number
JPH09319653A
JPH09319653A JP13863596A JP13863596A JPH09319653A JP H09319653 A JPH09319653 A JP H09319653A JP 13863596 A JP13863596 A JP 13863596A JP 13863596 A JP13863596 A JP 13863596A JP H09319653 A JPH09319653 A JP H09319653A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
memory
distributed
physical
area
mechanism
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.)
Withdrawn
Application number
JP13863596A
Other languages
Japanese (ja)
Inventor
Shigeo Suzuki
茂夫 鈴木
Original Assignee
Canon Inc
キヤノン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Abstract

PROBLEM TO BE SOLVED: To provide efficient distributed parallel processing while keeping the dependency of respective computers and effectively utilizing a hardware distributed shared memory mechanism by providing a distributed task/sled mechanism utilizing the hardware distributed shared memory mechanism. SOLUTION: Computers 201, 301 and 401 are connected so as to mutually share a physical memory through the hardware distributed shared memory mechanism. When generating distributed tasks 21, example, a distributed task managing server part 253 issues requests to kernel parts 251 and 351 and generates tasks 11 and 12. When generating and executing threads 31 and 32 through the computer 201, for example, a physical memory area corresponding to a virtual memory area to be used is secured from any physical memory of the computers 201, 301 and 401. Then, the secured physical memory area is made correspondent to that virtual memory area and this physical memory area is accessed by using the hardware distributed shared memory mechanism.

Description

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

【0001】 [0001]

【発明の属する技術分野】本発明は、ハードウエア分散メモリ機構により複数台の情報処理装置が接続され、それぞれのメモリを互いに直接利用することが可能な情報処理装置、情報処理システム及びその制御方法に関するものである。 The present invention relates to the plurality of information processing apparatus are connected by hardware distributed memory system, each of an information processing apparatus capable of memory utilizing directly with each other, the information processing system and control method thereof it relates.

【0002】 [0002]

【従来の技術】従来、ワークステーションのような計算機の高性能化、そしてネットワークの高速化に伴い、ネットワークでつながれた複数台のワークステーションを、より密な形態で結合しクラスタ化して(ワークステーションクラスタ)、高度な並列処理に利用しようとする方式が提案されてきた。 Conventionally, computer performance, such as a workstation, and with the speed of the network, a plurality of workstations connected by a network, and cluster bonded in a more dense form (workstation cluster), have been proposed a method of trying to use the advanced parallel processing. 出願特許(File No.137922,1 Patent application (File No.137922,1
37945,137949)などでは、仮想記憶オペレーティングシステム(OS)を対象として、ネットワークでつながれた複数台の計算機にまたがるタスク(分散タスク)を生成可能とし、そのタスク内部で、複数台の計算機上のプロセッサを活用して複数のスレッドを並列実行させる方式(分散タスク/スレッドモデル)を提案した。 37945,137949) In like, as a target virtual storage operating system (OS), and can generate a task that spans a plurality of computers connected by a network (distributed task), with the task inside the processor on a plurality of computers by utilizing the proposed method for parallel execution of multiple threads (distributed task / thread models).

【0003】タスクは、通常,プログラムテキスト、データなどのプログラム実行資源の割当ての単位である。 [0003] The task is a unit of allocation of normal, program text, program execution resources, such as data.
そして、スレッドはそのタスク内部に生成、実行されるもので、プログラム実行の単位であり、プロセッサ資源の割当て単位となる。 The thread that task inside generate, intended to be performed, a unit of program execution, the allocation unit of the processor resources. つまり、通常のタスク/スレッドモデルは、マルチプロセッサ構成の計算機においてプロセッサ資源を有効利用可能とするモデルとなる。 In other words, the normal task / thread model, a model for effective available processor resources in a computer in a multiprocessor configuration. また、 Also,
分散タスク/スレッドモデルはこれを拡張したものであり、従来一つの計算機内部で閉じて存在していたタスクを複数の計算機にまたがって存在可能としたものである。 Distributed Task / thread model is an extension of this, in which the possible presence across tasks that existed closed inside a conventional one computer to a plurality of computers. 従って、この分散タスク/スレッドモデルは、タスクの内部で動作するスレッドが、複数の計算機上の複数のプロセッサを有効活用して動作できるようになるモデルである。 Thus, the distributed task / thread model, a thread running inside the task is a model made to operate by effectively utilizing a plurality of processors on multiple computers.

【0004】この分散タスク/スレッドモデルの実現方式を簡単に説明すると次のようになる。 [0004] To describe the implementation method of the distributed task / thread model briefly as follows.

【0005】まず、ソフトウェアによる分散共有メモリ機構(ソフト分散共有メモリ)を実現する。 [0005] First, to realize the distributed shared memory mechanism by software (soft DSM). これは、分散共有メモリ管理を行なうソフトウェアが、メモリをページ単位で管理し、キャッシュシステムのようにそれぞれの計算機上にページのコピーを保持する。 This is software for a distributed shared memory management, manage memory in page units, retains a copy of the pages on each computer as caching system. そして、それ等のコピーされたページへの書込みなどが発生すると、キャッシュシステムと同様に、それ等のコンシステンシ保持動作を行なうことで分散共有メモリ機構を実現する。 When such writes to the like of the copied page is generated, as with cache system, to realize a distributed shared memory system by performing a consistency holding operation of it, or the like. このコンシステンシ保持処理の際、従来のネットワーク通信で用いられるパケット通信方式を利用して、 During the consistency holding process, by utilizing the packet communication method used in a conventional network communication,
例えば、ページの内容を計算機間で転送することでコピーページを更新する、といったことを行なう。 For example, to update the copy page by transferring the contents of the pages between computers, it performs the like.

【0006】そして、このソフト分散共有メモリ機構を使って、複数台の計算機上に生成した複数のタスクのメモリ空間(プログラムテキストやデータ空間)を共有し、それ等のタスクグループを一つの大きなタスク、分散タスクとして扱えるように管理し、そのタスク内部に複数のスレッドを生成、並列実行可能とすることで分散タスク/スレッドモデルを実現する。 [0006] Then, using this software distributed shared memory mechanism, to share the memory space of the plurality of tasks was generated on a plurality of computer (program text and data space), one of the major tasks of the task group of it, etc. manages to handle as distributed task, generating a plurality of threads within the task, to realize the distributed task / thread models by enabling parallel execution.

【0007】一方、近年光ケーブルなどのような信頼性もあり計算機の内部バスにある程度近い帯域幅を持つ通信媒体の登場で物理メモリを直接他の計算機に見せるような構成も可能となりつつあり、各計算機に配置されたメモリを(またはその一部を)全体で単一のメモリ空間として、どの計算機からでも直接アクセス可能にすることができるようなシステムが提案されてきている。 On the other hand, there a physical memory directly becoming the other possible configurations as shown to the computer with the advent of the communications medium having a certain close bandwidth to the internal bus of reliability have computer such as a recent optical cable, each the arranged in the computer memory as a single memory space (or a portion thereof) in the entire system that can be directly accessible from any computer have been proposed. つまり、高速高信頼性の通信媒体で結ばれた複数台の計算機が、システム全体でNUMA型(Non Uniform Memory Ac In other words, high-speed reliability of multiple connected by communications media computer, NUMA-type in the whole system (Non Uniform Memory Ac
cess)型のマルチプロセッサシステムのような形態になるモデルである。 A model that will form as a cess) multiprocessor systems. このようなハードウェアによって、複数の計算機間で分散共有メモリを実現する機構を、前述のソフトウェアによる分散共有メモリ機構と区別して、 Such hardware, a mechanism for realizing the distributed shared memory between a plurality of computers, as distinguished from the distributed shared memory mechanism by the described software,
ハードウェア分散共有メモリ機構と呼ぶことにする。 It will be referred to as a hardware distributed shared memory mechanism.

【0008】 [0008]

【発明が解決しようとする課題】しかしながら、上述のようなハードウエア分散共有メモリ機構を持つ複数台の計算機の上に、従来のワークステーション用などのOS [SUMMARY OF THE INVENTION However, on a plurality of computers having a hardware distributed shared memory mechanism described above, OS, such as a conventional workstation
をそのまま実装しようとすると、(1)複数台の計算機全体で一つの計算機として扱い、ただ一つのOSがどこかの計算機上に、または複数の計算機上に分割して存在し、その一つのOSが全体を管理する方式、または、 When the attempts to directly implement (1) treated as one computer across a plurality of computers, only on one OS somewhere computer, or a plurality of present and divided over the computer, one of the OS There method to manage the whole or,
(2)個々の計算機上に従来通り一つ一つOSが存在し、基本的にはそれぞれのOSがそれぞれの計算機のみを管理し、必要な際に通信回線を介して通信する方式、 (2) There is conventionally one by one OS on an individual computer, basically each of OS manages only each computer, to communicate via a communication line when required manner,
のいずれかになってしまう。 Become one of the.

【0009】(1)の方式の場合、システム全体が一つの並列計算機のように扱われるため、各計算機上のプロセッサを有効活用した並列処理が可能となる反面、システム動作中に任意の計算機を自由にON/OFF、或はシステムに対して付加/削除することが難しいなど、個々の計算機の独立性が失われ、分散処理には向かない。 [0009] When the method (1), the entire system is treated as one of a parallel computer, while the parallel processing effectively utilizing the processors on each computer is possible, any of the computer during system operation such as it is difficult to add / delete relative to freely oN / OFF or system, independence of the individual computer is lost, not suitable for distributed processing.
また、その反対に(2)の方式の場合には、個々の計算機に独立性があり、分散処理には向いているものの、従来のOSそのままでは、ハード分散共有メモリ機構を活用することができず、効率のよい並列処理が実現できないという問題がある。 In the case of method (2) On the contrary, there is independence of the individual computer, although fit for distributed processing, the intact conventional OS, it is possible to utilize a hard distributed shared memory mechanism not, there is a problem that parallel processing efficient can not be realized.

【0010】また、前述のパケット通信を利用したソフト分散共有メモリによる分散タスク/スレッド機構を、 Further, the distributed task / thread mechanism by software distributed shared memory using packet communication described above,
そのままハード分散共有メモリ機構を持つ複数台の計算機上に実装することも考えられるが、他計算機のメモリはコピーページを介してアクセスすることになり、直接的な他計算機のメモリへのアクセスが可能なハードウエア分散共有メモリ機構を活用することはできない。 It is conceivable to implement on a plurality of computers as having a hard distributed shared memory mechanism, the memory of the other computer would be accessed via the copy page, allows access to the memory direct other computer not be able to take advantage of such hardware distributed shared memory mechanism.

【0011】本発明は、上記の問題点に鑑みてなされたものであり、ハードウエア分散共有メモリ機構を利用した分散タスク/スレッド機構を実現し、個々の計算機の独立性を保ちつつ、かつハード分散共有メモリ機構を活かして効率のよい分散並列処理を実現する情報処理装置、情報処理システム及びその制御方法を提供することを目的とする。 [0011] The present invention has been made in view of the above problems, to realize the distributed task / thread mechanism using a hardware distributed shared memory mechanism, while maintaining the independence of each computer, and the hard Taking advantage of the distributed shared memory mechanism information processing device which realizes good distributed parallel processing efficiency, and an object thereof is to provide an information processing system and a control method thereof.

【0012】 [0012]

【課題を解決するための手段】上記の目的を達成するための本発明の情報処理装置は以下の構成を備える。 Means for Solving the Problems An information processing apparatus of the present invention for achieving the above object comprises the following arrangement. 即ち、ハードウエア分散共有メモリ機構により複数の外部情報処理装置と物理メモリを相互に共有可能に接続された情報処理装置であって、当該情報処理装置及び前記複数の外部情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成手段と、前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び前記複数の外部情報処理装置の物理メモリより確保する確保手段と、前記確保手段で確保された物理メモリ領域と前記仮想メモリ領域との対応を管理する管理手段と、前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理手段によって対応付けられた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用いてアクセ That is, an information processing apparatus which is connected in a shared multiple external information processing apparatus and the physical memory to each other by hardware distributed shared memory mechanism, is distributed to the information processing apparatus and the plurality of external information processing apparatus and generating means for generating a composed distributed task by multiple tasks, the physical memory area corresponding to the virtual memory area used for execution of the distributed task, the information processing apparatus and the plurality of external information processing apparatus and securing means for securing from the physical memory, a management unit for managing the correspondence between the physical memory area and the virtual memory area secured by said securing means, the virtual memory area that occurs in the execution of each task of the distributed task depending on the use, access the physical memory area associated with the managing unit using the hardware distributed shared memory mechanism するアクセス手段とを備える。 And an access means for.

【0013】また、上記の目的を達成するための本発明の情報処理システムは以下の構成を備える。 [0013] The information processing system of the present invention for achieving the above object comprises the following arrangement. 即ち、ハードウエア分散共有メモリ機構により複数の情報処理装置が物理メモリを相互に共有可能に接続された情報処理システムであって、前記複数の情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成手段と、前記複数の情報処理装置の夫々において、前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、該複数の情報処理装置の備える物理メモリより確保する確保手段と、前記複数の情報処理装置の夫々において、前記確保手段で確保された物理メモリ領域と前記仮想メモリ領域との対応を管理する管理手段と、前記複数の情報処理装置の夫々において、前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理手段によって対応付け That is, a plurality of information processing devices by hardware distributed shared memory mechanism be connected to an information processing system share physical memory to each other, is composed of a plurality of tasks are distributed to the plurality of information processing devices a generating means for generating a distributed task that, in each of the plurality of information processing devices, a physical memory area corresponding to the virtual memory area used for execution of the distributed task, physical included in the plurality of information processing apparatus and securing means for securing from the memory, in each of the plurality of information processing devices, a management unit for managing the correspondence between the physical memory area and secured by the securing means and the virtual memory area, of the plurality of information processing devices in each, depending on the use of virtual memory space that occurs in the execution of each task of the distributed task, the association by the managing unit れた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用いてアクセスするアクセス手段とを備える。 And an access means for accessing the physical memory area by using the hardware distributed shared memory mechanism.

【0014】また、上記の目的を達成するための本発明の情報処理システムにおける制御方法はハードウエア分散共有メモリ機構により複数の情報処理装置が物理メモリを相互に共有可能に接続された情報処理システムにおける制御方法であって、当該情報処理装置及び前記複数の外部情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成工程と、前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び前記複数の外部情報処理装置の物理メモリより確保する確保工程と、 [0014] The information processing system control method covalently connected plurality of information processing apparatuses physical memory to each other by hardware distributed shared memory mechanism in the information processing system of the present invention for achieving the above object a control method in use for the information processing apparatus and a generation step of generating a composed distributed task by a plurality of tasks are distributed to the plurality of external information processing apparatus, the execution of the distributed task the physical memory area corresponding to the virtual memory space, and securing step to secure than the physical memory of the information processing apparatus and the plurality of external information processing apparatus,
前記確保工程で確保された物理メモリ領域と前記仮想メモリ領域とを対応づける管理する管理工程と、前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理工程によって対応付けられた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用いてアクセスするアクセス工程とを備える。 A management step of managing correspondence between physical memory space and secured by said securing step the virtual memory area, in accordance with the use of a virtual memory space that occurs in the execution of each task of the distributed task, addressed by the management process the physical memory area attached and an access step of accessing using the hardware distributed shared memory mechanism.

【0015】 [0015]

【発明の実施の形態】以下、添付の図面を参照して、本発明の好適な実施形態を説明する。 DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, with reference to the accompanying drawings, illustrating a preferred embodiment of the present invention.

【0016】[第1の実施形態]図1は第1の実施形態による計算機システムの構成を説明するブロック図である。 [0016] [First Embodiment] FIG. 1 is a block diagram illustrating the configuration of a computer system according to the first embodiment. 図において、101は光ネットワークなどの高速な通信回線、201,301,401は通信回線101で結ばれた複数台の計算機である。 In the figure, 101 is a high-speed communication line such as an optical network, 201, 301, 401 is a plurality of computers connected by a communication line 101. 202,203,30 202,203,30
2,303,304,402,403は、計算機20 2,303,304,402,403, the computer 20
1,301,401に各々1つ以上備えられたMMU MMU provided each at one or more 1,301,401
(メモリ管理ユニット)内蔵型のプロセッサ(以下、単にプロセッサ或はCPUという)である。 (Memory Management Unit) built-in processor (hereinafter, simply referred to as a processor or CPU) it is. 210,31 210,31
0は計算機201,301に備えられたユーザインターフェイスとしてのディスプレイ及びキーボードである。 0 is a display and a keyboard as a user interface provided to the computer 201, 301.
220,420は、夫々計算機201,401に備えられたハードディスク(HD)装置などの2次記憶装置である。 220, 420 is a hard disk provided in each computer 201 and 401 (HD) device is a secondary storage device such as.

【0017】ディスプレイ及びキーボード210,31 [0017] The display and keyboard 210,31
0や2次記憶装置220,420は計算機に必ずしも装備されていなくても構わない。 0 or a secondary storage device 220, 420 does not matter even if they are not necessarily equipped with the computer. 例えばディスプレイ及びキーボードが装備されていない計算機401などはサーバマシンまたはプロセッサプールとして利用されることになる。 For example, computer 401 that display and keyboard are not equipped to be utilized as a server machine or processor pool.

【0018】250,350,450は、計算機20 [0018] 250,350,450, the computer 20
1,301,401上でそれぞれ独立して動作可能なO Each on 1,301,401 independently operable O
Sである。 It is a S. 102は、各計算機上で動作するOS間の非同期な通信を行なうためのCPU間割込み機構である。 102 is a CPU interprocessor interrupt mechanism for performing asynchronous communication between OS running on each computer.
260,360,460は、各計算機上で動作するOS 260,360,460 operates in each calculation machine OS
間での通信を行なうための情報交換領域である。 The information exchange area for communicating between.

【0019】230,330,430は全体で一つの単一なメモリ空間を成す物理メモリ、240,340,4 [0019] The physical memory 230, 330, 430 is to form one single memory space as a whole, 240,340,4
40は各計算機用のローカルメモリである。 40 is a local memory for each computer. ローカルメモリは主にOSなどのために必要となるが、物理メモリ230,330,430の一部で代用可能であるため、 Local memory is mainly required for such OS, because it can be replaced by some of the physical memory 230, 330, 430,
あってもなくても本発明の適用の妨げとはならない。 Not interfere with the application of the present invention with or without. 各プロセッサは物理メモリ230,330,430をアクセス可能に構成されている。 Each processor is configured physical memory 230, 330, 430 accessibly. ただし、メモリアクセスを行なうプロセッサと同一計算機内部の物理メモリへのアクセスよりも、他の計算機に属する物理メモリへのアクセスの方が、通信回線101が介在するため遅くなるような構成が一般的である。 However, by the processor and the access to the same computer internal physical memory to perform memory access, towards the access to the physical memory belonging to another computer, such as slower configuration for the communication line 101 is interposed is common is there.

【0020】なお、本実施形態において、OS250, [0020] In the present embodiment, the OS 250,
350,450は、各計算機上のローカルメモリ24 350 and 450, the local memory 24 on the computer
0,340,440上で動作しても、物理メモリ23 Also operate on 0,340,440, physical memory 23
0,330,430上で動作しても構わないことは上述した通りである。 That may be running on the 0,330,430 are as described above.

【0021】図2は、第1の実施形態によるOSや分散タスクの関係を示す概念図である。 [0021] FIG. 2 is a conceptual diagram showing the relationship between the OS and distributed task according to the first embodiment. 図1で示したように、各計算機201,301,401は通信回線101 As shown in FIG. 1, each computer 201, 301, 401 is a communication line 101
により相互に接続されているものとする。 Assumed to be connected to each other by. 250,35 250,35
0,450はそれぞれの計算機上で動作する仮想記憶方式を採用したOSである。 0,450 is a OS that employs a virtual memory system to operate at each computer.

【0022】251,351,451はカーネル部であり、OS内部で、タスクやスレッドの制御、仮想記憶処理、メモリやプロセッサ資源の管理、I/O資源の管理など、そしてハード分散共有メモリ機構を利用して、自計算機上の物理メモリを共有メモリとして登録・削除する処理、登録済みの他計算機上の共有メモリを参照する処理などを行なう。 [0022] 251,351,451 is a kernel portion, inside the OS, control tasks and threads, virtual memory processing, memory management and processor resources, such as management of I / O resources, and a hard distributed shared memory mechanism using the process of registering or deleting physical memory on its own computer as a shared memory, it performs processing such as referring to the shared memory on the registered another computer.

【0023】252,352,452は分散共有メモリ管理サーバ部であり、OS内部で、上記の共有メモリの登録・削除・参照機構を利用して、複数の計算機上に存在する複数のタスクのメモリ空間(プログラムテキスト、データなど)の共有を実現する。 [0023] 252,352,452 is a distributed shared memory management server unit, inside the OS, the plurality of tasks by using the registration, deletion, reference mechanism of the shared memory described above, present on a plurality of computers memory to realize the sharing of space (program text, data, etc.).

【0024】253,353,453は分散タスク管理サーバ部であり、OS内部で、分散共有メモリ管理サーバ部252,352,452によりメモリ空間を共有している複数のタスクを一つの分散タスクとして管理し、 [0024] 253,353,453 is distributed task management server unit, inside the OS, it manages a plurality of tasks sharing the memory space by the distributed shared memory management server unit 252,352,452 as one distributed task and,
その中で複数のスレッドの生成、並列実行を可能として、複数の計算機上の複数のプロセッサ資源を有効活用する。 Generating a plurality of threads therein, as a possible parallel execution, to effectively utilize a plurality of processor resources on multiple computers.

【0025】以上のように、基本的には各計算機ごとに個々にOSを動作させ、それらが協調動作するような構成を取ることで、個々の計算機の独立性を保つとともに、分散処理にも適応する。 [0025] As described above, basically individually operating the OS for each computer in, that they adopt a configuration such that work together, with maintaining the independence of the individual computer, in distributed processing To adapt.

【0026】11,12,13,14は分散タスクを構成するため、分散共有メモリ管理サーバ部252,35 [0026] Since 11, 12, 13, 14 constituting the distributed task, distributed shared memory management server unit 252,35
2,452によりメモリ空間を共有し、分散タスク管理サーバ部253,353,453によりまとめて管理される通常のタスクである。 Share memory space by 2,452, which is a normal task that is managed collectively by distributed task management server unit 253,353,453. 21,22は、分散共有メモリ管理サーバ部252,352,452によりメモリ空間を共有した複数のタスクが、分散タスク管理サーバ部253,353,453によりまとめられ、一つの大きなタスクとして管理される分散タスクである。 21 and 22, a plurality of tasks share memory space by the distributed shared memory management server unit 252,352,452 is summarized by the dispersion task management server unit 253,353,453, it is managed as one large task dispersion it is the task. 31,3 31,3
2,33,34,35,36,37は、分散タスク管理サーバ部により管理され、各タスク内部に生成、並列実行されるスレッドである。 2,33,34,35,36,37 is managed by distributed task management server unit, a thread that generated and executed in parallel within each task.

【0027】本実施形態では、カーネル部、分散共有メモリ管理サーバ部、分散タスク管理サーバ部がOS内部に含まれる例を示したが、MachOS(カーネギーメロン大学)のようにマイクロカーネル構成を採用しているOSであれば、カーネル部はマイクロカーネルに相当し、分散共有メモリ管理サーバ部及び分散タスク管理サーバ部は、マイクロカーネル上で生成、実行されるタスクというマイクロカーネルとは独立したプログラムモジュールの形態で実現されても構わない。 [0027] In this embodiment, the kernel portion, distributed shared memory management server unit, but distributed task management server unit is an example contained within OS, adopts the micro-kernel configuration as Machos (Carnegie Mellon University) if it is OS, kernel unit corresponds to microkernel, distributed shared memory management server unit and the distributed task management server unit, generated on micro kernel, program modules independent of the micro-kernel that tasks performed it may be embodied in the form. このように、本実施形態では、これらのモジュールの実現形態については特に制限を設けるものではない。 Thus, in this embodiment, it is not particularly set limits for implementation of these modules.

【0028】次に、ハード分散共有メモリ機構を利用して、複数の計算機上の複数のタスクのメモリ空間をどのように共有するか、という点について説明する。 Next, by using the hard distributed shared memory mechanism, how to share the memory space of a plurality of tasks on multiple computers, it is described that.

【0029】本実施形態では、デマンドページング方式の場合について説明する。 [0029] In this embodiment, it will be described for the case of demand paging method. この方式の場合、タスク生成時には物理メモリ領域(通常ページと呼ばれる単位で扱われるため以下では物理ページと呼ぶ)は割り当てられない。 In this method, (referred to as a physical page in the following because they are handled in units called normal page) at task creation physical memory area is not assigned. このため、プログラム実行単位であるスレッドの生成及びスレッドの実行が開始され、物理ページが存在しない仮想アドレスをアクセスするとページフォールトが発生する。 Therefore, the generation and thread of execution threads which is a program execution unit starts, the page fault occurs when accessing a virtual address to a physical page is not present. 本方式では、このタイミングで始めて、物理ページを確保し、確保した物理ページに必要な内容(プログラムテキストまたはデータ、或は全てゼロ)を書き込み、タスクの仮想アドレス空間にマップして当該スレッドを続行させていく。 In this method, beginning at this timing, to ensure physical page, writes the content (program text or data, or all zeros,) required to ensure the physical page, continuing the thread maps the virtual address space of the task go to.

【0030】図3は、主に分散タスク管理サーバ部が主体で行なう、分散タスク生成、スレッド生成・実行処理の流れを示すフローチャートである。 FIG. 3 is mainly distributed task management server unit to performs by mainly a flowchart of distributed task generating a flow of thread generation and execution process. また、図4は、ページフォールト発生以降のページフォールト処理により、タスクのメモリ空間を共有する処理の流れを示すフローチャートである。 Further, FIG. 4, the page fault occurs subsequent page fault processing is a flowchart showing a flow of a process of sharing a memory space of the task. なお、各フローチャートともに、 Note that in both the flowcharts,
図2で示した分散タスク21の場合を例として示してある。 Is shown as an example the case of a distributed task 21 shown in FIG.

【0031】ステップS101では、ユーザからの要求を受けた分散タスク管理サーバ部が分散タスク21の生成を開始する。 [0031] In step S101, distributed task management server unit which has received a request from a user to initiate generation of a distributed task 21. 本例では、分散タスク管理サーバ部25 In this example, distributed task management server unit 25
3がユーザからの要求を受けたものとして説明する。 3 is described as receiving the request from the user. 続いて、ステップS102において、分散タスク管理サーバ部253は、カーネル部351,251に要求して、 Subsequently, in step S102, distributed task management server unit 253 requests the kernel portion 351,251,
分散タスク21を構成するタスク11,12を生成する。 Generating a task 11, 12 constituting the distributed task 21.

【0032】ここで、タスクとは、その内部で複数のスレッドが実行できるようにするための、共通の実行環境(プログラムテキストやデータなど)のことをさす。 [0032] Here, the task to prevent multiple threads therein can perform refers to a common execution environment (such as program text or data). 従って、タスクの生成とは、OSがその環境をユーザからの指定に従って準備し、またそのタスクを管理する管理ブロックをOS内部で作り、管理を開始することである。 Accordingly, the generation of the task, OS prepares its environment according to the specification from the user and creates a management block for managing the task OS internally is to start managing.

【0033】一般的に、カーネル部は、自計算機内部にのみタスクを生成することができる。 [0033] In general, the kernel section may generate the task only inside its own computer. このタスク生成機能を持つカーネル部が、他計算機上の分散タスク管理サーバ部からのタスク生成要求を直接受けられる構成になっている場合には、例えば分散タスク管理サーバ部25 Kernel unit having the task generation function, if it has been directly received is configure task generation request from the distributed task management server unit on another computer, for example, distributed task management server unit 25
3がユーザからのタスク生成要求を受けると、タスク1 When 3 receives a task generation request from the user, the task 1
1についてはカーネル部251に、タスク12についてはカーネル部351にタスクの生成を直接要求して、タスク11、12を生成する。 Kernel 251 for 1, the tasks 12 to directly request the generation of a task in the kernel portion 351 generates the task 11,12.

【0034】一方、カーネル部が他計算機上の分散タスク管理サーバからのタスク生成要求を直接受けられる構成になっていない場合には、例えば分散タスク管理サーバ部253がユーザからの要求を受けた場合において、 On the other hand, if the kernel portion is not in direct receiving is configure task generation request from the distributed task management server on another computer, for example, if the distributed task management server unit 253 receives a request from a user in,
タスク11についてはカーネル部251にタスク生成を直接要求し、タスク12については分散タスク管理サーバ部353を経由してカーネル部351にタスク生成を要求してタスク11、12の生成を行うことになる。 Requesting task generated directly to the kernel 251 for the tasks 11, will perform production tasks 11 and 12 request the task generator to the kernel portion 351 via the distributed task management server unit 353 for the tasks 12 . 分散タスク管理サーバ部353を経由する方法としては、 As a method via distributed task management server unit 353,
通常、カーネル部から提供される計算機間のネットワーク通信手段を利用して、分散タスク管理サーバ部間で通信して要求を行なってもよいし、またそれが不可能な場合には、情報交換領域260,360そしてCPU間割込み機構102などを利用した非同期通信により、分散タスク管理サーバ部間で通信して要求を行なってもよい。 Usually, using a network communication means between computers provided by the kernel portion, may be the requesting communicate between distributed task management server unit, also if this is not possible, the information exchange area 260 and 360 and the asynchronous communication using a CPU interprocessor interrupt mechanism 102 may perform the request to communicate between distributed task management server unit. このように各計算機上の分散タスク管理サーバ部はお互いに協調動作をしながら処理を進めていく。 Thus distributed task management server unit on each computer proceed with processing while the cooperative operation with one another.

【0035】次に、ステップS103において、分散タスク管理サーバ部はカーネル部に要求して、これら生成したタスク11,12に対するページフォールト処理を、分散共有メモリ管理サーバ部が行なうように割り当てる。 Next, in step S103, distributed task management server unit requests the kernel portion allocates the page fault processing for the task 11 and 12 these products, as distributed shared memory management server unit performs. 即ち、タスク11については、分散共有メモリ管理サーバ部252が、タスク12については、分散共有メモリ管理サーバ部352が、ページフォールト処理を行なうように設定する。 That is, for the task 11, the distributed shared memory management server unit 252, the task 12, the distributed shared memory management server unit 352, is set to perform the page fault processing. これにより、タスク11,12 As a result, the task 11, 12
でページフォールトが発生すると、制御が分散共有メモリ管理サーバ部252,352に移ることになる。 In a page fault occurs, control is to move to the distributed shared memory management server unit 252, 352.

【0036】次に、ステップS104において、分散タスク管理サーバ部253は、カーネル部に要求して、スレッド31,32,33を生成、実行する。 Next, in step S104, the distributed task management server unit 253, and requests the kernel portion, a thread 31, 32, 33 generate, run. タスクの生成と同様に、スレッド31,32についてはカーネル部251に、スレッド33についてはカーネル部351に要求してスレッドの生成及び実行を行う。 Like the generation of the task, the kernel 251 for threads 31 and 32, it performs a thread creation and execution of requests to the kernel 351 for thread 33.

【0037】なお、スレッドは、タスクの内部で実際にプログラムを実行する実行の単位のことで、固有の環境として、通常、スタック領域とプロセッサのコンテキスト情報を有する。 [0037] Incidentally, the thread, by a unit of execution that actually performs the program within the task, as specific environment, usually have context information of the stack area and the processor. 従って、スレッドの生成とは、OSがこれらの環境をユーザからの指定に従って準備し、またそのスレッドを管理する管理ブロックをOS内部でつくり、管理を開始することである。 Therefore, the thread generation, OS is prepared in accordance with designation from the user of these environments, also create a management block for managing the thread inside the OS, it is to start managing.

【0038】以上で分散タスク21の生成処理の流れが終了となる。 The flow of generation processing of distributed task 21 above is completed. この分散タスク生成の際、分散タスクを構成するタスクをどの計算機上にいくつ生成するか、どのタスク内にスレッドをいくつ生成するか、といったことは、ユーザが直接指定しても、また分散タスク管理サーバ部などが自動的に判断しても構わない。 During the distributed task generation, how many generated on any computer tasks of the distributed tasks, which tasks in some produce a thread, things like can be specified directly by the user, also distributed task management is not may be automatically determines, such as a server part. 本実施形態ではこれらを特に制限しない。 Not particularly limited to these in the present embodiment.

【0039】次に、分散タスク内部のスレッドの生成及び実行において、まだ物理ページが存在していない仮想アドレスをアクセスしたためにページフォールトが発生し、分散共有メモリ管理サーバ部に制御が移ってから、 Next, in the generation and execution of distributed task internal thread, yet page fault occurs because the access to a virtual address that does not exist physical page, the control is moved to the distributed shared memory management server unit,
実際に共有メモリページが分散タスクのメモリ空間にマップされるまでの処理の流れについて、図4のフローチャートを参照して説明する。 Indeed the flow of processing up to the shared memory pages are mapped to the memory space of the distributed task will be described with reference to the flowchart of FIG.

【0040】ステップS201で、分散タスク内部で実行中のスレッドがページフォールトを発生すると、分散共有メモリ管理サーバ部によるページフォールト処理が開始される。 [0040] In step S201, the thread running internally distributed task when generating a page fault, the page fault process is started by the distributed shared memory management server unit. 例えば、スレッド31,32においてページフォールトが発生すると分散共有メモリ管理サーバ部252によるページフォールト処理が開始され、スレッド33でページフォールトが発生すると分散共有メモリ管理サーバ部352によるページフォールト処理が開始される。 For example, a page fault handling a page fault occurs due to the distributed shared memory management server unit 252 in the thread 31, 32 is started, the page fault process is started by the distributed shared memory management server unit 352 and the page fault occurs in the thread 33 . ここではスレッド31でページフォールトが発生した場合を例に示す。 Here shows a case where a page fault in the thread 31 has occurred as an example. 即ち、分散共有メモリ管理サーバ部252によるページフォールト処理を例に挙げて説明する。 That is, a page fault processing by DSM management server unit 252 will be described as an example.

【0041】ページフォールト処理が開始されると、ステップS202で、分散共有メモリ管理サーバ部252 [0041] When the page fault process is started, in step S202, the distributed shared memory management server unit 252
は、フォールトが発生したページに対応する物理ページが既にどこかの計算機上で確保され、分散タスクを構成するいずれかのタスクにマップされているかどうか確認する。 The fault is secured in the physical page is already somewhere calculation machine which corresponds to the page that generated, to see if it is mapped to one of the tasks of the distributed task.

【0042】ここで、各分散共有メモリ管理サーバ部は、各分散タスクごとに、使用される仮想メモリ領域に対応する物理ページとしてすでに確保されている物理ページと、それを参照するときにその物理ページを特定するためのキーを管理する分散タスク管理テーブルを備えている。 [0042] Here, the distributed shared memory management server unit, for each distributed task, a physical page that has already been secured as a physical page corresponding to the virtual memory space used, the physical when referencing it and a distributed task management table for managing a key for identifying the page. 従って、その分散タスク管理テーブルなどを参照することで、ステップS202における確認は可能となる。 Therefore, by referring to like their distributed task management table, check in step S202 becomes possible. なお、この分散タスク管理テーブルは、各分散タスクごとに存在し、協調動作する複数の分散共有メモリ管理サーバ部のいずれかの内部に存在し、どの分散共有メモリ管理サーバ部からでも参照可能とする。 Incidentally, the distributed task management table exists for each distributed task, present within any of a plurality of distributed shared memory management server unit to cooperate, and can be referred from any DSM management server unit .

【0043】ここで、キーとは、ある物理ページが(a)どの計算機上のものなのかをどの計算機からでも特定することが可能で、(b)メモリ上のどこ(アドレス)にあるのかを特定することが可能なものである。 [0043] Here, the key, can be identified even if there is physical page (a) how on a computer thing for from any computer, or where to find (address) on (b) memory those that can be identified. 例えば計算機Aがキーによって他の計算機(計算機B)上の物理ページを確保する場合には、キーによって特定された計算機(計算機B)から実際の物理アドレスの通知を受け、これによりアクセス権を得ることになる。 For example, when computer A is to ensure the physical page on another computer (computer B) by the key is notified of the actual physical addresses from identified by a key computer (computer B), thereby obtaining the access rights It will be. すなわち、このキーとともにアクセスが要求されると、計算機Bは当該キーの示す物理アドレスを計算機Aに通知すると共に、当該物理ページ計算機Aからも共有アクセスされるものとして管理するべく設定を行う。 That is, when access is requested with this key, the computer B notifies the physical address indicated by the key to the computer A, it performs to manage set as being shared access from the physical page computer A. また、物理アドレスの通知を受けた計算機Aでは、そのアドレスを自OS内部の仮想記憶管理部に設定することにより、自OSが管理する仮想記憶空間内で当該物理ページをアクセスすることが可能となる。 With the computer A receives the notification of the physical address, by setting the address to the virtual memory management unit of the internal self-OS, and can access the physical page in the virtual memory space own OS manages Become.

【0044】従って、自計算機内の分散共有メモリ管理サーバ部に参照したい管理テーブルが存在しない場合には、それが存在する分散共有メモリ管理サーバ部から、 [0044] Therefore, when the management table to be referenced in the distributed shared memory management server unit of its own computer does not exist, the distributed shared memory management server unit in which it is present,
通常カーネル部から提供される計算機間のネットワーク通信手段を利用して必要な情報を送ってもらえばよい。 Usually it Could send the required information by using the network communication means between computers provided by the kernel portion.
または、情報交換領域260,360そしてCPU間割込み機構102などを利用した通信によって、必要な情報を送ってもらっても構わない。 Or by communication using such information exchange area 260 and 360 and the inter-CPU interrupt mechanism 102, you may be asked to send the required data.

【0045】次にステップS203で、物理ページの有無を確認した結果、対応する物理ページが存在していないとわかった場合には、いずれかの計算機上より物理ページを確保するためにステップS204に進む。 [0045] Then, in step S203, a result of the check for the physical page, if it is found the corresponding physical page is not present, to step S204 in order to ensure the physical page from any computing machine move on. また、 Also,
いずれかの計算機上にすでに当該物理ページが存在し、 Either already exists the physical page on a computer,
いずれかのタスクにマップされているとわかった場合にはステップS221に進む。 If it found to have been mapped to one of the task proceeds to step S221.

【0046】ステップS204に進むと、どの計算機から物理ページを確保するかを決定する。 [0046] When the processing proceeds to step S204, to determine whether to ensure the physical page from any computer. この決定は、あらかじめユーザによって分散タスク生成時に指定されていても構わないし、分散共有メモリ管理サーバ部または分散タスク管理サーバ部によって自動的に行なわれても構わない。 This decision may also be pre It may be specified when the distributed task generated by the user, automatically by DSM management server unit or distributed task management server unit. 本実施形態ではこの決定方法を特に制限しない。 Not particularly limited to this determination method in this embodiment.

【0047】どの計算機から物理ページを確保するかが決定されると、次にステップS205において、分散共有メモリ管理サーバ部252は、カーネル部に要求して、物理ページを共有メモリとして確保し、その物理ページを参照する際、その物理ページを一意に特定するキーを得る。 [0047] When either to ensure the physical page from which the computer has been determined, then in step S205, the distributed shared memory management server unit 252, and requests the kernel unit, ensuring the physical pages as shared memory, its when referring to physical pages, obtaining a key that uniquely identifies the physical page. この際、物理ページを、自計算機である計算機201から確保すると決定された場合には、カーネル部251に直接物理ページの確保を要求する。 In this case, the physical page, if it is determined to ensure the computer 201 is its own computer requests to secure direct physical page in kernel unit 251. また、計算機201以外の計算機、例えば計算機301から物理ページを確保すると決定された場合には、その計算機3 The computer 201 other than the computer, for example, when the computer 301 is determined to ensure the physical page, the computer 3
01上の分散共有メモリ管理サーバ部352を経由して、その計算機301上のカーネル部351に物理ページの確保を要求する。 Via the distributed shared memory management server unit 352 on 01, it requests the secure physical page in kernel unit 351 on the computer 301.

【0048】分散共有メモリ管理サーバ部352を経由する方法としては、通常カーネル部から提供される計算機間のネットワーク通信手段を利用して、分散共有メモリ管理サーバ部間で通信して要求を行なえばよい。 [0048] As a method via distributed shared memory management server unit 352, typically using a network communication means between computers provided by the kernel unit, by performing a request to communicate between distributed shared memory management server unit good. また、他の方法として、情報交換領域260,360そしてCPU間割込み機構102などを利用した通信により、分散共有メモリ管理サーバ部間で通信して要求を行なうようにしてもよい。 Further, as another method, the communication using the information exchange area 260 and 360 and the inter-CPU interrupt mechanism 102, may be performed request to communicate between distributed shared memory management server unit.

【0049】物理ページ確保の要求を受けたカーネル部は、計算機内部のフリー状態の物理ページを確保し、そのページを他の計算機から参照可能な共有ページとして、カーネル内部の共有物理ページを管理するテーブルに登録し、参照の際にページを特定するためのキーとなる値を決定する。 The kernel portion of requests received physical page secured, ensuring the physical page of a computer inside the free state, the page as a shared page can be referenced from another computer, for managing the shared physical page in the kernel registered in the table to determine the key value serving to identify pages in the reference. キーはシステム内で対象となる物理ページを一意に特定することが可能な値であり、また、その物理ページが存在する計算機をも一意に特定することが可能なものとする。 Key is a value that can uniquely identify the physical page of interest in the system, also, it is assumed that can uniquely identify even the computer to which the physical page is present. そして確保した物理ページとキーを分散共有メモリ管理サーバ部252に返す。 And it returns the physical page and the key secured in the distributed shared memory management server unit 252.

【0050】次にステップS206で、分散共有メモリ管理サーバ部252は、返された物理ページの情報とキーを分散共有メモリ管理サーバ部252内部の分散タスク管理テーブルに登録する。 [0050] Then, in step S206, the distributed shared memory management server unit 252 registers the information and key physical page returned to the distributed shared memory management server unit 252 inside the distributed task management table. 次にステップS207で、 Next, in step S207,
分散共有メモリ管理サーバ部252は、確保した物理ページに必要な内容を埋める。 Distributed shared memory management server unit 252, fill the content required in the allocated physical page. 即ち、対応する仮想空間の領域にしたがって、プログラムテキストまたはデータまたはゼロ値を物理ページに埋める。 That is, according to the region of the corresponding virtual space, to fill the program text or data or zero values ​​to the physical page. ここで、埋める内容がプログラムテキストまたはデータだった場合には、ファイルシステムなどから対応する内容を読み出してその値を物理ページに書き込んでいく。 Here, when the contents to fill it was the program text or data, and writes that value to the physical page reads the contents of the corresponding from, such as a file system.

【0051】次にステップS208で、分散共有メモリ管理サーバ部252は、カーネル部251に要求して、 [0051] Then at step S208, the distributed shared memory management server unit 252, and requests the kernel 251,
内容を埋めた物理ページを、ページフォールトを起こしたタスク11の対応する仮想アドレス空間にマップする。 The physical page that fills the content, maps to the corresponding virtual address space of the task 11 that caused the page fault. そして最後にステップS209で分散共有メモリ管理サーバ部252は、カーネル部251に要求して、ページフォールトを起こしたスレッド31の実行を再開させる。 The DSM management server unit 252 at the last step S209 may request the kernel portion 251, to resume execution of the thread 31 that caused the page fault.

【0052】次にステップS203で、物理ページの有無を確認した結果すでに存在しているとわかった場合について説明する。 [0052] Then, in step S203, it will be described a case where it was found to be already present results to confirm the presence or absence of a physical page. すでに物理ページが存在している場合とは、分散タスク21を構成するタスク11以外のタスク、本例の場合にはタスク12の仮想アドレス空間の対応するページにすでに物理ページがマップさせていることを意味する。 The case where already the physical page is present, already the physical page is not mapped to the corresponding page of the task 11 other tasks constituting the distributed task 21, the virtual address space of the task 12 in the case of this example It means. つまり、この場合、タスク11の仮想アドレス空間の同じページに対して、上記の物理ページをマップする処理を行なうことで、タスク11とタスク1 That is, in this case, for the same page of the virtual address space of the task 11, by performing the process of mapping the physical page, task 11 and task 1
2で同じメモリを共有させることが可能となる。 2 it is possible to share the same memory. 以下にその処理の流れを示す。 The following shows the flow of the processing.

【0053】ステップS203で、ページフォールトの発生した物理ページに対応する物理ページが存在するとわかると、ステップS221に進む。 [0053] In step S203, and know that the physical page is present corresponding to the generated physical page of a page fault, the process proceeds to step S221. ステップS221 Step S221
において、分散共有メモリ管理サーバ部252は、分散共有メモリ管理サーバ部内部に存在する分散タスク管理テーブルを参照して、対応する物理ページのキーを獲得する。 In, the distributed shared memory management server unit 252, with reference to the distributed task management table existing in the distributed shared memory management server unit, it acquires a key corresponding physical page.

【0054】次に、ステップS222で、獲得したキーを引数にカーネル部251に要求して、すでに他の計算機(例えば計算機301)上に存在している上記の物理ページを参照する。 Next, in step S222, it requests the kernel unit 251 the acquired key argument already reference to the above physical page is present on another computer (e.g. computer 301). これは、通常、自計算機上の物理メモリについては、直接自計算機上のカーネル部に要求して確保すれば直接扱える(Read/Write可能) This is usually about the physical memory on the own computer is handled directly if secure request to the kernel portion of the direct own computer (a Read / Write possible)
ようになるのに対して、他計算機上の物理メモリについては直接扱えないためであり、これを可能にするため、 Whereas become, for the physical memory on the other computer it is because not handle directly, to make this possible,
自計算機上のカーネル部に要求して、その物理メモリを参照して直接扱えるようにする手続を行なうものである。 Request the kernel portion on its own computer, and performs a procedure to handle directly with reference to its physical memory.

【0055】例えば、参照要求を受けたカーネル部25 [0055] For example, the kernel unit 25, which has received a reference request
1は、キーをもとに上記物理ページが存在する計算機である計算機301を特定し、計算機301上のカーネル部351と通信を行い、上記物理ページのアクセス権と物理アドレス情報などを得て、直接その物理ページを扱えるようにする。 1 identifies the computer 301 based on the key is a computer in which the physical page is present, communicates with the kernel portion 351 on a computer 301, to obtain such access and physical address information of the physical page, directly to handle the physical page. なお、カーネル部相互の通信は、通常カーネル部が持つネットワーク通信機能、または、情報交換領域260,360そしてCPU間割込み機構10 Incidentally, the kernel portion mutual communication, network communication function with the normal kernel unit, or information exchange between regions 260 and 360 and CPU interrupt mechanism 10
2などを利用した通信機構を利用して行われる。 It is performed using the communication mechanism using, for example, 2. そして、分散共有メモリ管理サーバ部252に対して、その物理ページを参照可能(Read/Write可能)なように設定する。 Then, the distributed shared memory management server unit 252 is set so that the physical page can be referenced (a Read / Write possible) a like.

【0056】次に、ステップS208に進み、分散共有メモリ管理サーバ部252は、参照可能にした物理ページを、カーネル部251に要求して、タスク11の対応する仮想アドレスにマップし、最後に、ステップS20 Next, the process proceeds to step S208, the distributed shared memory management server unit 252, the physical page to be referenced, and requests the kernel 251 maps to a corresponding virtual address of the task 11, finally, step S20
9で、スレッド31の実行を再開する。 9, resume the execution of the thread 31.

【0057】以上のように、第1の実施形態においては、分散タスク生成、実行の際に、デマンドページング方式による物理ページの確保が行われる。 [0057] As described above, in the first embodiment, distributed task generates, upon execution, ensuring the physical page by demand paging method is performed. 即ち、分散タスクを生成する処理を開始すると、まず複数の計算機上に、分散タスクを構成する複数のタスクをそれぞれ生成し、前記複数のタスク内部でページフォールトが発生した際に後述するページフォールト処理に移行するように設定し、前記複数のタスク内部に、複数のスレッドを生成、実行する。 That is, when starting the process of generating a distributed task, firstly on a plurality of computers, a plurality of tasks of the distributed tasks to generate each page fault process described later when a plurality of tasks inside page fault occurs set to shift to, within said plurality of tasks, generating a plurality of threads to execute. そして、上記スレッドのいずれかがページフォールトを発生した際、ページフォールト処理を開始する。 Then, when any of the above thread has generated the page fault, to start a page fault processing.

【0058】ページフォールト処理では、対応する物理ページが、前記分散タスクを構成する前記複数のタスクのうちいずれかにすでにマップされているかどうかを確認し、まだいずれのタスクにもマップされていない場合には、前記複数の計算機のうち一つを決定し、その計算機上の物理ページを共有メモリとして確保し、参照の際に前記物理ページを一意に特定するキーとなる値を決定し、それらを分散タスク管理テーブルに登録する。 [0058] In the page fault handling is, if the corresponding physical page, the check to see if it has already been mapped to any one of the plurality of tasks that make up a distributed task, not yet mapped to any task the determines the one of the plurality of computers to ensure the physical page on that computer as a shared memory, the physical page to determine the uniquely specifying key value when the reference, they It is registered in the distributed task management table. そして、確保した物理ページに対応する内容(プログラムテキスト、データなど)を設定し、内容が設定された物理ページを、当該ページフォールトの発生したタスクの対応する仮想アドレス空間にマップし、当該ページフォールトを発生したスレッドの生成、実行を再開する。 Then, contents corresponding to the secured physical page (program text, data, etc.) is set, the physical page whose contents are set, and maps to a corresponding virtual address space of the generated task of the page fault, the page fault generation of the thread that generated the resumes execution.

【0059】また、上記スレッドのいずれかがページページフォールトを発生した際に開始されたページフォールト処理において、対応する物理ページが、前記分散タスクを構成する前記複数のタスクのいずれかに既にマップされていた場合には、分散タスク管理テーブルを参照してマップされていた物理ページのキーを獲得して、獲得されたキーをもとに対応する物理ページへの直接的なアクセス(ハードウエア分散共有メモリ機構を用いたアクセス)を可能にする。 [0059] Further, in the page fault processing any of the above thread is started upon generating the page fault, the corresponding physical page is already mapped to one of said plurality of tasks constituting the distributed task in the case had been in, won the key of the physical page, which has been mapped with reference to the distributed task management table, direct access (hardware distributed shared of the acquired key to the physical page corresponding to the original enabling access) using the memory mechanism. そして、この獲得した物理ページを、当該ページフォールトの発生したタスクの対応をする仮想アドレス空間にマップし、当該ページフォールトを発生したスレッドの生成、実行を再開する。 Then, the acquired physical pages, maps the virtual address space to a corresponding generated task of the page fault, generation of thread that generated the page fault, resumes execution.

【0060】以上の処理を行なうことにより、異なる計算機上に動作する複数のタスクでメモリ空間を共有できるようになり、これを利用して、複数のタスクをまとめて、複数の計算機に跨る一つの分散タスクとして扱うことが可能となる。 [0060] By performing the above processing, different operating on the computer can share the memory space by multiple tasks, using this together multiple tasks, one across multiple computers it is possible to handle as distributed task.

【0061】従って、本発明によれば、ハード分散共有メモリ機構を利用した分散タスク/スレッド機構が実現可能で、個々の計算機の独立性を保ちつつ、ハード分散共有メモリを活かして効率のよい分散並列処理を実現することが可能となる。 [0061] Therefore, according to the present invention, distributed task / thread mechanism using a hard distributed shared memory mechanism is feasible, while maintaining the independence of each computer, efficient by utilizing the hard distributed shared memory distributed it is possible to realize parallel processing.

【0062】[第2の実施形態]上述した第1の実施形態では、デマンドページング方式の場合を説明した。 [0062] In the Second Embodiment In the first embodiment described above has been described the case of the demand paging method. 第2の実施形態では、タスク生成時に、全てのメモリ空間に物理メモリをマップしてしまう方式の場合について説明する。 In the second embodiment, when a task generated, will be described in scheme would map the physical memory to all the memory space. なお、このような方式を非デマンドページング方式と呼ぶことにする。 Note that will be referred to such a method a non-demand paging method. この場合ページフォールトは発生しなくなるので、第1の実施形態でページフォールト処理を行なっていた分散共有メモリ管理サーバ252, In this case the page fault is not generated, distributed shared memory management server 252 that has performed the page fault processing in the first embodiment,
352,452は不要となる。 352,452 is not required. 従って、第2の実施形態によるOSや分散タスクの関係は、図2から分散共有メモリ管理サーバを抜いた状態になる。 Therefore, the relationship OS and distributed task according to the second embodiment, in a state in which disconnect the distributed shared memory management server from FIG. 以下では、分散タスク21を例として、第2の実施形態による処理の流れを示す。 In the following, as an example distributed task 21 shows the flow of processing according to the second embodiment.

【0063】図5は、分散タスク管理サーバ部が主体で行なう、分散タスク生成、スレッド生成・実行処理の流れを示すフローチャートである。 [0063] Figure 5 is a distributed task performed management server unit is in principal a flowchart showing distributed task generating a flow of thread generation and execution process.

【0064】ステップS301で、ユーザからの要求に従い、分散タスク管理サーバ部により分散タスクの生成を開始する。 [0064] In step S301, in accordance with a request from the user, it starts the generation of the distributed task by the dispersion task management server unit. ここでは、分散タスク管理サーバ部253 Here, distributed task management server unit 253
により分散タスク21の生成を開始するものとする。 It shall start generating distributed task 21 by. 続いて、ステップS302において、分散タスク管理サーバ部はカーネル部に要求して、分散タスク21を構成するタスク11,12を生成する。 Subsequently, in step S302, distributed task management server unit requests the kernel portion, for generating a task 11, 12 constituting the distributed task 21. このタスク11,12 This task 11, 12
の生成方法に関しては第1の実施形態と同様である。 With respect to the method of production is the same as the first embodiment.

【0065】次にステップS303において、分散タスク管理サーバ部は、どの計算機上の物理メモリを使用して分散タスクを構成するかを決定する。 [0065] Then, in step S303, distributed task management server unit, using the physical memory on which the computer determines whether to configure the distributed task. この決定は、あらかじめユーザによって、分散タスク生成時に指定されていても構わないし、分散タスク管理サーバ部によって自動的に行なわれても構わない。 This determination is performed by the user in advance, to may be specified when the distributed task generation, may be performed automatically by the distributed task management server unit. 本実施形態ではこの決定方法を特に限定しない。 Not limited to this determination method in this embodiment. また、分散タスクの全メモリ空間をある一つの計算機上の物理メモリで構成しても構わないし、また、適当に分割した単位またはページ単位でメモリ空間を分割し、それぞれ異なる計算機上の物理メモリを割り当てるようにしても構わない。 Also, It may be composed of physical memory on one computer in the entire memory space of the distributed task, also a memory space divided by appropriately divided units or page units, the physical memory on different computers it may be assigned.

【0066】次に、ステップS304において、分散タスク管理サーバ部は、上記の決定にしたがって、カーネル部に要求して、タスクを構成するのに必要なだけの物理メモリを共有メモリとして確保するとともに、他の計算機上の物理メモリを用いる場合はその物理メモリを特定するキーを獲得する。 Next, in step S304, distributed task management server unit, as determined by the above, and requests the kernel unit, while securing a shared memory of physical memory as needed to configure task, when using the physical memory on another computer to acquire a key to identify the physical memory. 例えば、分散タスク管理サーバ部253は、自計算機である計算機201上の物理メモリを確保する際には、直接カーネル部251に要求して物理メモリの確保を行う。 For example, the distributed task management server unit 253, when securing the physical memories of the computer 201 is its own computer performs secure physical memory requests directly kernel unit 251. また、計算機201以外の計算機、例えば計算機301の物理メモリを確保する際には、計算機301上の分散タスク管理サーバ部353を経由して、カーネル部351に対して要求を行い、物理メモリを確保するとともに、そのキーを獲得する。 The computer 201 other than the computer, for example, when securing the physical memory of the computer 301, via the distributed task management server unit 353 of the computer 301, makes a request to the kernel portion 351, ensure the physical memory as well as, to win the key.

【0067】次に、ステップS305において、もし、 Next, in step S305, if,
ステップS304で計算機201以外の計算機、例えば計算機301の物理メモリを確保していた場合に、分散タスク管理サーバ部253は、キーを引数にカーネル部251に要求して、上記物理メモリを参照して直接扱える(Read/Write可能)ようにする。 Step S304 in the computer 201 other than the computer, if you were secured, for example computer 301 of the physical memory, the distributed task management server unit 253, the key argument and requests the kernel portion 251, with reference to the physical memory directly handle (Read / Write possible) so as to. この処理も第1の実施形態と同様である。 This processing is similar to the first embodiment.

【0068】次に、分散タスク管理サーバ部253は、 Next, the distributed task management server unit 253,
ステップS306で、直接扱えるようになった物理メモリに対して、対応する内容を第1の実施形態の場合と同様に埋める。 In step S306, the physical memory when it is to handle directly fill the corresponding contents as in the first embodiment.

【0069】次に、ステップS307で、分散タスク管理サーバ部は、カーネル部に要求して、内容を埋めた物理メモリを、分散タスクを構成する複数のタスクにそれぞれマップする。 Next, in step S307, the distributed task management server unit may request the kernel portion, a physical memory filling the contents, maps each of a plurality of tasks constituting the distributed task. タスク11に対しては、直接カーネル部251に要求して、タスク12に対しては、分散タスク管理サーバ部353を経由してカーネル部351に要求してマップを行う。 For the task 11, directly requests the kernel portion 251, for the task 12 performs a map request to the kernel portion 351 via the distributed task management server unit 353.

【0070】次に、ステップS308において、分散タスク管理サーバ部は、カーネル部に要求して、スレッド31,32,33を生成、実行する。 Next, in step S308, distributed task management server unit may request the kernel portion, a thread 31, 32, 33 generate, run. このスレッド3 This thread 3
1,32,33の生成、実行に関しては、第1の実施形態と同様である。 Generation of 1,32,33, for execution, is the same as the first embodiment.

【0071】以上で第2の実施形態における分散タスク21の生成実行処理が終了となる。 Generation execution processing of distributed task 21 in the second embodiment is completed by [0071] above. この分散タスク生成実行の際、分散タスクを構成するタスクをどの計算機上に生成するか、とか、どのタスク内にスレッドをいくつ生成するか、といったことは、ユーザが直接指定しても、また分散タスク管理サーバ部などが自動的に判断しても構わない。 During the distributed task generates running, or produced on any computer tasks of the distributed tasks, Toka, what in the task number generating a thread, that such can be specified directly by the user, also distributed such as task management server unit may be automatically determined. 本実施形態ではこれらを特に制限しない。 Not particularly limited to these in the present embodiment.

【0072】以上説明した第2の実施形態による処理手順をまとめると次のようになる。 [0072] To summarize the procedure according to the second embodiment described above is as follows. 即ち、分散タスクを生成する処理を開始すると、まず複数の計算機上に、分散タスクを構成する複数のタスクをそれぞれ生成し、この分散タスクを構成する物理メモリを複数の計算機上にどのように配置するかを決定する。 That is, when starting the process of generating a distributed task, firstly on a plurality of computers, a plurality of tasks of the distributed tasks generated respectively, how place the physical memory constituting the distributed task to a plurality of the computers or to determine that. 配置が決定された物理メモリは、各計算機上の物理メモリとして確保し、参照の際に物理メモリを一意に特定するためのキーとなる値を決定する。 Physical memory arrangement has been determined, secured as physical memory on the computer, to determine the key value serving to uniquely identify the physical memory when the reference. ここで、確保された物理メモリのうち、参照の手続を行なわないと直接的に扱うことができない物理メモリがあった場合には、決定されたキーをもとに対応する物理メモリを参照して直接アクセス可能とする。 Here, among the physical memory allocated, when a physical memory that can not be handled directly Without the procedure references are determined key by referring to the physical memory corresponding to the original direct access to.
そして、確保した、または、確保し参照した物理メモリに、対応する内容(プログラムテキスト、データなど) Then, secured, or, in the physical memory allocated reference, corresponding content (program text, data, etc.)
を設定し、上記内容を設定した物理メモリを、上記複数のタスクの仮想アドレス空間にそれぞれマップし、上記複数のタスク内部に、複数のスレッドを生成、実行する。 Set, the physical memory which is set to the contents, respectively the virtual address space of said plurality of tasks mapped, within the plurality of tasks, generating a plurality of threads to execute.

【0073】以上説明したように、上記各実施形態によれば、分散タスクを構成するために複数の計算機上に生成する複数のタスクのメモリ空間を、ハード分散共有メモリ機構を利用して共有することが可能となる。 [0073] As described above, according to the above embodiments, the memory space of the plurality of tasks generated on a plurality of computers to configure the distributed task, and share use of the hard distributed shared memory mechanism it becomes possible. そして、これを利用して、それら複数のタスクを一つの分散タスクとして管理し、その分散タスク内部に複数のスレッドを生成し、複数の計算機上の複数のプロセッサを活用して並列実行することも可能となる。 Then, by using this, to manage the plurality of tasks as one of the distributed task, also possible to generate a plurality of threads therein distributed task, parallel execution by utilizing multiple processors on multiple computers It can become. 従って、ハード分散共有メモリ機構を利用した分散タスク/スレッド機構が実現でき、個々の計算機の独立性を保ちつつ、かつハード分散共有メモリ機構を活かして効率のよい分散並列処理を実現できる、という効果を奏する。 Thus, distributed task / thread mechanism using a hard distributed shared memory mechanism can be realized, while maintaining the independence of each computer can realize a distributed parallel processing efficiency and taking advantage of the hard distributed shared memory mechanism, that the effect achieve the.

【0074】なお、本発明は、複数種類の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用してもよい。 [0074] The present invention is a plurality of types of devices (eg, host computer, interface, reader, printer, etc.) may be applied to a system constituted by.

【0075】また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPU [0075] Another object of the present invention, a storage medium storing software program codes for realizing the functions of the above embodiments is supplied to a system or an apparatus and a computer (or CPU
やMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。 Or MPU) also by reading out and executing the program code stored in the storage medium, it is needless to say that is achieved.

【0076】この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。 [0076] In this case, the program codes read from the storage medium realizes the functions of the embodiments and the storage medium storing the program code constitutes the present invention.

【0077】プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD [0077] As the storage medium for supplying the program codes, a floppy disk, hard disk, optical disk, magnetooptical disk, CD-ROM, CD
−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。 -R, magnetic tape, nonvolatile memory card, ROM, and the like.

【0078】また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 [0078] Further, by a computer executing the read program code, as well as functions of the above embodiments are realized on the basis of the instructions of the program code, OS (operating system running on the computer ) performs a part or all of the processing but also to a case where the functions of the above-described embodiments are realized by those processes like.

【0079】さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 [0079] Furthermore, the program code read from the storage medium are written in a memory of a function expansion unit connected to a function expansion board inserted into the computer or on the basis of the instructions of the program code, its function expansion board or function expansion unit CPU performs a part or all of the processing but also to a case where the functions of the above embodiments are realized by those processes.

【0080】本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図6のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。 [0080] When the present invention is applied to the storage medium, the storage medium when it will store the program codes corresponding to the flowcharts described in the embodiments will be briefly described, as an example of a memory map in FIG. 6 It will store the respective modules shown in the storage medium.

【0081】すなわち、少なくとも「生成処理モジュール」、「確保処理モジュール」、「管理処理モジュール」および「アクセス処理モジュール」の各モジュールのプログラムコードを記憶媒体に格納すればよい。 [0081] That is, at least 'generation processing module "," securing processing module "may be stored in the" management processing module "and" access processing module "storage medium storing a program code for each module.

【0082】ここで、生成処理モジュールは、自身の情報処理装置及びハードウエア分散共有メモリ機構によって接続された複数の外部情報処理装置に分散配置される複数のタスクで構成される分散タスクを生成する生成処理を実現するためのプログラムモジュールである。 [0082] Here, generation processing module generates a composed distributed task by a plurality of tasks to be distributed to a plurality of external information processing apparatus connected by its information processor and hardware distributed shared memory mechanism a program module for realizing the generation process. また、確保処理モジュールは、上記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び上記複数の外部情報処理装置の物理メモリより確保する確保処理を実行するためのプログラムモジュールである。 Further, securing processing module, a physical memory area corresponding to the virtual memory area used for execution of the distributed task, perform the securing process to ensure than the physical memory of the information processing apparatus and said plurality of external information processing apparatus it is a program module for. また、管理処理モジュールは、上記確保処理で確保された物理メモリ領域と前記仮想メモリ領域とを対応づける管理処理を実現するプログラムモジュールである。 The management process module is a program module for realizing the administrative process associating the physical memory area reserved by the reservation process and the virtual memory area. 更にアクセス処理モジュールは、上記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、上記管理処理によって対応付けられた物理メモリ領域を、上記ハードウエア分散共有メモリ機構を用いて直接的にアクセスするアクセス処理を実現するためのプログラムモジュールである。 Further access processing module, in accordance with the use of a virtual memory space that occurs in the execution of each task in the distributed task, the physical memory area associated with the management process, directly with the hardware distributed shared memory mechanism a program module for realizing the access process of accessing.

【0083】 [0083]

【発明の効果】以上説明したように、本発明にれば、ハードウエア分散共有メモリ機構を利用した分散タスク/ As described in the foregoing, if elm present invention, distributed task using hardware distributed shared memory mechanism /
スレッド機構を実現し、個々の計算機の独立性を保ちつつ、かつハード分散共有メモリ機構を活かして効率のよい分散並列処理を実現することが可能となる。 It provides a thread mechanism, while maintaining the independence of each computer, and it is possible to realize a distributed parallel processing efficiency by utilizing the hard distributed shared memory mechanism.

【0084】また、本発明によれば、分散タスクの実行において物理メモリ領域が対応付けられていない仮想メモリ領域の使用が発生した場合に、当該仮想メモリ領域に物理メモリ領域の対応づけを行うので、分散タスクが生成されるとすぐにスレッド生成及び実行を開始する事が可能となる。 [0084] According to the present invention, when the use of the virtual memory area not physical memory area is associated with the execution of the distributed task occurs, since the correspondence between the physical memory space in the virtual memory area , it is possible to start the thread generation and execution as soon as the distributed task is generated.

【0085】また、本発明によれば、使用すべき仮想メモリ領域に対応する物理メモリ領域が、外部の他の情報処理装置のいずれかに確保されていると判断された場合、当該仮想メモリ領域をその物理メモリ領域へ対応づけることが可能となる。 Further, according to the present invention, when a physical memory area corresponding to the virtual memory area to be used is determined to have been secured to one of the other external information processing apparatus, the virtual memory area the it is possible to associate to the physical memory area. このため、当該分散タスク内で共通の仮想メモリ領域がシステム内で唯一の物理メモリ領域に対応付けられることになり、各タスクで当該物理メモリ領域を共有することが可能となる。 Therefore, results in a common virtual memory space within the distributed task is associated with only the physical memory area in the system, it is possible to share the physical memory space in each task.

【0086】また、本発明によれば、生成された分散タスクの実行に先立って、該分散タスクが使用する全仮想メモリ領域に対応する物理メモリ領域を確保するので、 [0086] Further, according to the present invention, prior to the execution of the generated distributed task, since to secure a physical memory area corresponding to the entire virtual memory area the dispersion task uses,
当該分散タスクが実行されてからはページフォールト等の発生が無くなり、高速な処理が実現できる。 Is from the distributed task is executed eliminated occurrence of page faults, high speed processing can be realized.

【0087】 [0087]

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】第1の実施形態による計算機システムの構成を説明するブロック図である。 1 is a block diagram illustrating the configuration of a computer system according to the first embodiment.

【図2】第1の実施形態によるOSや分散タスクの関係を示す概念図である。 2 is a conceptual diagram showing the relationship between the OS and distributed task according to the first embodiment.

【図3】主に分散タスク管理サーバ部が主体で行なう、 [Figure 3] is performed primarily in distributed task management server unit is mainly
分散タスク生成、スレッド生成・実行処理の流れを示すフローチャートである。 Distributed Task generation is a flowchart showing a flow of a thread generation and execution process.

【図4】ページフォールト発生以降のページフォールト処理により、タスクのメモリ空間を共有する処理の流れを示すフローチャートである。 The [4] page fault occurs subsequent page fault processing is a flowchart showing a flow of a process of sharing a memory space of the task.

【図5】分散タスク管理サーバ部が主体で行なう、分散タスク生成、スレッド生成・実行処理の流れを示すフローチャートである。 [5] performing a distributed task management server unit mainly a flowchart of distributed task generating a flow of thread generation and execution process.

【図6】本発明に関わる制御プログラムの構造的特徴を表す図である。 6 is a diagram showing a structural feature of a control program according to the present invention.

【符号の説明】 DESCRIPTION OF SYMBOLS

101 通信回線 102 CPU間割込み機構 201,301,401 計算機 202,203,302,303,304,402,4 101 communication line 102 CPU interprocessor interrupt mechanism 201, 301, 401 computer 202,203,302,303,304,402,4
03 プロセッサ 210,310 ディスプレイ及びキーボード 220,420 2次記憶装置 230,330,430 物理メモリ 240,340,440 ローカルメモリ 250,350,450 OS 260,360,460 情報交換領域 251,351,451 カーネル部 252,352,452 分散共有メモリ管理サーバ部 253,353,453 分散タスク管理サーバ部 11,12,13,14 タスク 21,22 分散タスク 31,32,34,35,36,37 スレッド 03 processors 210, 310 display and keyboard 220, 420 secondary storage device 230, 330, 430 physical memory 240,340,440 local memory 250,350,450 OS 260,360,460 information exchange area 251,351,451 kernel unit 252,352,452 DSM management server unit 253,353,453 distributed task management server unit 11, 12, 13, 14 task 21 distributed task 31,32,34,35,36,37 thread

Claims (18)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】 ハードウエア分散共有メモリ機構により複数の外部情報処理装置と物理メモリを相互に共有可能に接続された情報処理装置であって、 当該情報処理装置及び前記複数の外部情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成手段と、 前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び前記複数の外部情報処理装置の物理メモリより確保する確保手段と、 前記確保手段で確保された物理メモリ領域と前記仮想メモリ領域との対応を管理する管理手段と、 前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理手段によって対応付けられた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用 1. A sharable information processing apparatus connected to a plurality of external information processing apparatus and the physical memory to each other by hardware distributed shared memory mechanism, to the information processing apparatus and the plurality of external information processing apparatus a generating means for generating a composed distributed task by a plurality of tasks are distributed, the physical memory area corresponding to the virtual memory area used for execution of the distributed task, the information processing apparatus and the plurality of external and securing means for securing from the physical memory of the information processing apparatus, a management unit for managing the correspondence between the physical memory area and the virtual memory area secured by said securing means, the virtual generated in the execution of each task of the distributed task depending on the use of memory space, use the hardware distributed shared memory mechanism physical memory area associated with said management means てアクセスするアクセス手段とを備えることを特徴とする情報処理装置。 The information processing apparatus characterized by comprising an access means for accessing Te.
  2. 【請求項2】 前記管理手段によって管理されていない仮想メモリ領域の使用が発生した場合、前記複数の外部情報処理装置において当該仮想メモリ領域に対応する物理メモリ領域が確保されているか否かを判断する判断手段を更に備え、 前記管理手段は、前記判断手段によって、当該仮想メモリ領域に対応する物理メモリ領域が確保されていると判断された場合、その物理メモリ領域を当該仮想メモリ領域に対応する物理メモリ領域として対応付けることを特徴とする請求項1に記載の情報処理装置。 Wherein when the use of a virtual memory space that is not managed by the management unit has occurred, determining whether the physical memory area corresponding to the virtual memory space in said plurality of external information processing apparatus is reserved further comprising a determination means for, the management means, by said determining means, when a physical memory area corresponding to the virtual memory area is judged to be secured, the corresponding the physical memory space in the virtual memory area the information processing apparatus according to claim 1, characterized in that associating a physical memory area.
  3. 【請求項3】 前記判断手段は、前記アクセス手段の実行においてページフォールトが発生した場合に実行されることを特徴とする請求項2に記載の情報処理装置。 Wherein said determining means, the information processing apparatus according to claim 2, characterized in that a page fault is executed in the event of the execution of the access means.
  4. 【請求項4】 前記判断手段によって、前記仮想メモリ領域に対応する物理メモリ領域がいずれの外部情報処理装置によっても確保されていないと判断された場合、前記確保手段を実行する制御手段を更に備えることを特徴とする請求項2に記載の情報処理装置。 By wherein said determining means, when a physical memory area corresponding to the virtual memory area is judged not to be ensured by any of the external information processing apparatus, further comprising a control means for performing said securing means the information processing apparatus according to claim 2, characterized in that.
  5. 【請求項5】 前記判断手段は、前記分散タスクで使用される複数の仮想メモリ領域に対応づけられた複数の物理メモリ領域と、各物理メモリ領域を特定するための特定情報とを対応づける管理テーブルを参照して、前記実行手段が使用する仮想メモリ領域に対応する物理メモリ領域が存在するか否かを判断し、 前記管理手段は、前記判断手段によって、当該仮想メモリ領域に対応する物理メモリ領域が確保されていると判断された場合、前記管理テーブルの特定情報に基づいてその物理メモリ領域を獲得し、当該仮想メモリ領域に対応する物理メモリ領域として対応付けることを特徴とする請求項2に記載の情報処理装置。 Wherein said determining means, associates management and a plurality of physical memory area associated with the plurality of virtual memory area used by the distributed task and the specific information for specifying each physical memory area by referring to the table, to determine whether the physical memory area corresponding to the virtual memory area where the execution unit uses exists, the management means, by the determination means, the physical memory corresponding to the virtual memory area If the area is determined to be ensured, to acquire the physical memory area based on the specific information of the management table, to claim 2, characterized in that associating a physical memory area corresponding to the virtual memory area the information processing apparatus according.
  6. 【請求項6】 前記管理手段は、前記実行手段において使用する仮想メモリ領域のアドレスを対応する物理メモリ領域のアドレスへ変換することを特徴とする請求項1 Wherein said management means, according to claim 1, characterized in that converting the address of the virtual memory area used in the execution unit to the address of the corresponding physical memory area
    乃至5のいずれかに記載の情報処理装置。 Through the information processing apparatus according to any one of 5.
  7. 【請求項7】 前記分散タスクの実行とは、該分散タスクの各タスク内にスレッドを生成し、生成された各スレッドを実行するものであることを特徴とする請求項1乃至6のいずれかに記載の情報処理装置。 Wherein said the execution of distributed tasks, to generate a thread in each task in the distributed task, any one of claims 1 to 6, characterized in that the generated is to execute each thread the information processing apparatus according to.
  8. 【請求項8】 前記確保手段は、前記生成手段によって生成された分散タスクの実行に先立って、該分散タスクが使用する全仮想メモリ領域に対応する物理メモリ領域を確保することを特徴とする請求項1に記載の情報処理装置。 Wherein said securing means, claims prior to the execution of the distributed tasks generated by the generating means and to ensure the physical memory area corresponding to the entire virtual memory space in which the dispersion task uses the information processing apparatus according to claim 1.
  9. 【請求項9】 ハードウエア分散共有メモリ機構により複数の情報処理装置が物理メモリを相互に共有可能に接続された情報処理システムであって、 前記複数の情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成手段と、 前記複数の情報処理装置の夫々において、前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、該複数の情報処理装置の備える物理メモリより確保する確保手段と、 前記複数の情報処理装置の夫々において、前記確保手段で確保された物理メモリ領域と前記仮想メモリ領域との対応を管理する管理手段と、 前記複数の情報処理装置の夫々において、前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理手段によっ 9. plurality of information processing devices by hardware distributed shared memory mechanism is an information processing system that is shared connected physical memory to each other, a plurality of tasks are distributed to the plurality of information processing devices a generating means for generating a composed distributed task in, in each of the plurality of information processing devices, a physical memory area corresponding to the virtual memory area used for execution of the distributed task, the plurality of information processing apparatus physical and securing means for securing from the memory, in each of the plurality of information processing devices, a management unit for managing the correspondence between the physical memory area and the virtual memory area secured by said securing means, said plurality of information included in the in each of the processing apparatus, in accordance with the use of a virtual memory space that occurs in the execution of each task of the distributed task, due to the management unit 対応付けられた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用いてアクセスするアクセス手段とを備えることを特徴とする情報処理システム。 The information processing system characterized in that it comprises an access means for a physical memory area associated with access using the hardware distributed shared memory mechanism.
  10. 【請求項10】 ハードウエア分散共有メモリ機構により複数の情報処理装置が物理メモリを相互に共有可能に接続された情報処理システムにおける制御方法であって、 当該情報処理装置及び前記複数の外部情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成工程と、 前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び前記複数の外部情報処理装置の物理メモリより確保する確保工程と、 前記確保工程で確保された物理メモリ領域と前記仮想メモリ領域とを対応づける管理工程と、 前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理工程によって対応付けられた物理メモリ領域を前記ハードウエア分散共有 10. plurality of information processing devices by hardware distributed shared memory mechanism A control method in an information processing system that is shared connected physical memory to each other, the information processing apparatus and the plurality of external information processing a generation step of generating composed distributed task by a plurality of tasks are distributed to the device, a physical memory area corresponding to the virtual memory area used for execution of the distributed task, the information processing apparatus and the plurality of the securing step of securing than the physical memory of the external information processing apparatus, a management step of associating a reserved physical memory regions and the virtual memory area in the secure process, a virtual generated in the execution of each task of the distributed task depending on the use of memory space, the hardware distributed shared physical memory area associated with the management process モリ機構を用いてアクセスするアクセス工程とを備えることを特徴とする制御方法。 Control method characterized by comprising an access step of accessing using the memory mechanism.
  11. 【請求項11】 前記管理工程によって管理されていない仮想メモリ領域の使用が発生した場合、前記複数の外部情報処理装置において当該仮想メモリ領域に対応する物理メモリ領域が確保されているか否かを判断する判断工程を更に備え、 前記管理工程は、前記判断工程によって、当該仮想メモリ領域に対応する物理メモリ領域が確保されていると判断された場合、その物理メモリ領域を当該仮想メモリ領域に対応する物理メモリ領域として対応付けることを特徴とする請求項10に記載の制御方法。 11. If the use of a virtual memory space that is not managed by the management process is generated, it determines whether or not the physical memory area corresponding to the virtual memory space in said plurality of external information processing apparatus is reserved further comprising a determination step of, the management process, by the determination step, when a physical memory area corresponding to the virtual memory area is judged to be secured, the corresponding the physical memory space in the virtual memory area the method according to claim 10, characterized in that associating a physical memory area.
  12. 【請求項12】 前記判断工程は、前記アクセス工程の実行においてページフォールトが発生した場合に実行されることを特徴とする請求項11に記載の制御方法。 12. The method of claim 11, wherein determining step The control method according to claim 11, characterized in that a page fault is executed in the event of the execution of the access process.
  13. 【請求項13】 前記判断工程によって、前記仮想メモリ領域に対応する物理メモリ領域がいずれの外部情報処理装置によっても確保されていないと判断された場合、 By wherein said determining step, when a physical memory area corresponding to the virtual memory area is judged not to be ensured by any of the external information processing apparatus,
    前記確保工程を実行する制御工程を更に備えることを特徴とする請求項11に記載の制御方法。 The method according to claim 11, further comprising a control step of executing the secure process.
  14. 【請求項14】 前記判断工程は、前記分散タスクで使用される複数の仮想メモリ領域に対応づけられた複数の物理メモリ領域と、各物理メモリ領域を特定するための特定情報とを対応づける管理テーブルを参照して、前記実行工程が使用する仮想メモリ領域に対応する物理メモリ領域が存在するか否かを判断し、 前記管理工程は、前記判断工程によって、当該仮想メモリ領域に対応する物理メモリ領域が確保されていると判断された場合、前記管理テーブルの特定情報に基づいてその物理メモリ領域を獲得し、当該仮想メモリ領域に対応する物理メモリ領域として対応付けることを特徴とする請求項11に記載の制御方法。 14. The decision process, associates the management and a plurality of physical memory area associated with the plurality of virtual memory area used by the distributed task and the specific information for specifying each physical memory area by referring to the table, to determine whether the physical memory area corresponding to the virtual memory area where the execution process is used is present, the management process, by the determination step, the physical memory corresponding to the virtual memory area If the area is judged to be secured, in claim 11, wherein based on the specific information of the management table to acquire the physical memory area, and wherein the associating a physical memory area corresponding to the virtual memory area the control method according.
  15. 【請求項15】 前記管理工程は、前記実行工程において使用する仮想メモリ領域のアドレスを対応する物理メモリ領域のアドレスへ変換することを特徴とする請求項10乃至14のいずれかに記載の制御方法。 15. The management process, control method according to any one of claims 10 to 14, wherein the conversion of addresses in the virtual memory space to the address of the corresponding physical memory area used in the execution step .
  16. 【請求項16】 前記分散タスクの実行とは、該分散タスクの各タスク内にスレッドを生成し、生成された各スレッドを実行するものであることを特徴とする請求項1 16. The The execution of distributed tasks, according to claim 1 which produces a thread in each task in the distributed task, and wherein the generated is to execute each thread
    0乃至15のいずれかに記載の制御方法。 The method according to any one of 0 to 15.
  17. 【請求項17】 前記確保工程は、前記生成工程によって生成された分散タスクの実行に先立って、該分散タスクが使用する全仮想メモリ領域に対応する物理メモリ領域を確保することを特徴とする請求項10に記載の制御方法。 17. The securing step, prior to the execution of the distributed tasks generated by the generating step, characterized in that to secure a physical memory area corresponding to the entire virtual memory space in which the dispersion task uses claims the method according to claim 10.
  18. 【請求項18】 ハードウエア分散共有メモリ機構により複数の情報処理装置が物理メモリを相互に共有可能に接続された情報処理装置のためのプログラムコードが格納されたコンピュータ可読メモリであって、 当該情報処理装置及び前記複数の外部情報処理装置に分散配置された複数のタスクで構成される分散タスクを生成する生成工程のコードと、 前記分散タスクの実行のために使用する仮想メモリ領域に対応する物理メモリ領域を、当該情報処理装置及び前記複数の外部情報処理装置の物理メモリより確保する確保工程のコードと、 前記確保工程で確保された物理メモリ領域と前記仮想メモリ領域とを対応づける管理工程のコードと、 前記分散タスクの各タスクの実行において発生する仮想メモリ領域の使用に応じて、前記管理工程 18. A computer-readable memory that the program code is stored for a plurality of information processing devices by hardware distributed shared memory mechanism sharable information processing apparatus connected to each other physical memory, the information and code generation step of generating a composed distributed task by a plurality of tasks are distributed to the processor and the plurality of external information processing apparatus, a physical corresponding to the virtual memory area used for execution of the distributed task a memory area, in the information processing apparatus and the plurality of external information processing and code securing step to secure than the physical memory of the device, the securing step physical memory area allocated by said virtual memory area and the associates management process code, in accordance with the use of a virtual memory space that occurs in the execution of each task of the distributed task, the management process よって対応付けられた物理メモリ領域を前記ハードウエア分散共有メモリ機構を用いてアクセスするアクセス工程のコードとを備えることを特徴とするコンピュータ可読メモリ。 A computer-readable memory, characterized in that it comprises a code of an access step thus the physical memory area associated with access using the hardware distributed shared memory mechanism.
JP13863596A 1996-05-31 1996-05-31 Information processor, information processing system and control method for the same Withdrawn JPH09319653A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13863596A JPH09319653A (en) 1996-05-31 1996-05-31 Information processor, information processing system and control method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13863596A JPH09319653A (en) 1996-05-31 1996-05-31 Information processor, information processing system and control method for the same

Publications (1)

Publication Number Publication Date
JPH09319653A true true JPH09319653A (en) 1997-12-12

Family

ID=15226658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13863596A Withdrawn JPH09319653A (en) 1996-05-31 1996-05-31 Information processor, information processing system and control method for the same

Country Status (1)

Country Link
JP (1) JPH09319653A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675191B1 (en) 1999-05-24 2004-01-06 Nec Corporation Method of starting execution of threads simultaneously at a plurality of processors and device therefor
US7251815B2 (en) 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle
US7299468B2 (en) 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7328437B2 (en) 2002-10-24 2008-02-05 International Business Machines Corporation Management of locks in a virtual machine environment
US8589937B2 (en) 2003-04-29 2013-11-19 International Business Machines Corporation Shared file system cache in a virtual machine or LPAR environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675191B1 (en) 1999-05-24 2004-01-06 Nec Corporation Method of starting execution of threads simultaneously at a plurality of processors and device therefor
US7328437B2 (en) 2002-10-24 2008-02-05 International Business Machines Corporation Management of locks in a virtual machine environment
US7251815B2 (en) 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle
US7299468B2 (en) 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7784053B2 (en) 2003-04-29 2010-08-24 International Business Machines Corporation Management of virtual machines to utilize shared resources
US8589937B2 (en) 2003-04-29 2013-11-19 International Business Machines Corporation Shared file system cache in a virtual machine or LPAR environment

Similar Documents

Publication Publication Date Title
Dennis Segmentation and the design of multiprogrammed computer systems
US5274789A (en) Multiprocessor system having distributed shared resources and dynamic and selective global data replication
US7356665B2 (en) Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US6081879A (en) Data processing system and virtual partitioning method for creating logical multi-level units of online storage
US4912629A (en) Real-time garbage collection for list processing using restructured cells for increased reference counter size
US5784697A (en) Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture
US6651143B2 (en) Cache management using a buffer for invalidation requests
US5729710A (en) Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5491808A (en) Method for tracking memory allocation in network file server
US20050223005A1 (en) Shared file system cache in a virtual machine or LPAR environment
US5237673A (en) Memory management method for coupled memory multiprocessor systems
US20060253682A1 (en) Managing computer memory in a computing environment with dynamic logical partitioning
US20090307447A1 (en) Managing Migration of a Shared Memory Logical Partition from a Source System to a Target System
US20030131067A1 (en) Hardware support for partitioning a multiprocessor system to allow distinct operating systems
US6151663A (en) Cluster controller for memory and data cache in a multiple cluster processing system
US7584222B1 (en) Methods and apparatus facilitating access to shared storage among multiple computers
US7389506B1 (en) Selecting processor configuration based on thread usage in a multiprocessor system
US6785892B1 (en) Communications between partitioned host processors and management processor
US4742447A (en) Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US20110072234A1 (en) Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory
US6055617A (en) Virtual address window for accessing physical memory in a computer system
US5239643A (en) Method for reducing disk I/O accesses in a multi-processor clustered type data processing system
US5734817A (en) Method for making a data base available to a user program during data base recovery
US5729714A (en) Shared memory access method and apparatus with address translation
US6701421B1 (en) Application-level memory affinity control

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030805