JPH09319653A - Information processor, information processing system and control method for the same - Google Patents
Information processor, information processing system and control method for the sameInfo
- Publication number
- JPH09319653A JPH09319653A JP8138635A JP13863596A JPH09319653A JP H09319653 A JPH09319653 A JP H09319653A JP 8138635 A JP8138635 A JP 8138635A JP 13863596 A JP13863596 A JP 13863596A JP H09319653 A JPH09319653 A JP H09319653A
- Authority
- JP
- Japan
- Prior art keywords
- memory area
- information processing
- distributed
- physical memory
- task
- 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
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、ハードウエア分散
メモリ機構により複数台の情報処理装置が接続され、そ
れぞれのメモリを互いに直接利用することが可能な情報
処理装置、情報処理システム及びその制御方法に関する
ものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus, an information processing system, and a control method thereof, in which a plurality of information processing apparatuses are connected by a hardware distributed memory mechanism and respective memories can be directly used. It is about.
【0002】[0002]
【従来の技術】従来、ワークステーションのような計算
機の高性能化、そしてネットワークの高速化に伴い、ネ
ットワークでつながれた複数台のワークステーション
を、より密な形態で結合しクラスタ化して(ワークステ
ーションクラスタ)、高度な並列処理に利用しようとす
る方式が提案されてきた。出願特許(File No.137922,1
37945,137949)などでは、仮想記憶オペレーティングシ
ステム(OS)を対象として、ネットワークでつながれ
た複数台の計算機にまたがるタスク(分散タスク)を生
成可能とし、そのタスク内部で、複数台の計算機上のプ
ロセッサを活用して複数のスレッドを並列実行させる方
式(分散タスク/スレッドモデル)を提案した。2. Description of the Related Art Conventionally, with the increase in performance of computers such as workstations and the increase in speed of networks, a plurality of workstations connected by a network are combined in a denser form and clustered (workstations). Cluster), and a method to be used for highly parallel processing has been proposed. Filed patent (File No.137922,1
37945, 137949), it is possible to create a task (distributed task) that spans multiple computers connected by a network and targets the virtual memory operating system (OS). We proposed a method (distributed task / thread model) to execute multiple threads in parallel by utilizing the.
【0003】タスクは、通常,プログラムテキスト、デ
ータなどのプログラム実行資源の割当ての単位である。
そして、スレッドはそのタスク内部に生成、実行される
もので、プログラム実行の単位であり、プロセッサ資源
の割当て単位となる。つまり、通常のタスク/スレッド
モデルは、マルチプロセッサ構成の計算機においてプロ
セッサ資源を有効利用可能とするモデルとなる。また、
分散タスク/スレッドモデルはこれを拡張したものであ
り、従来一つの計算機内部で閉じて存在していたタスク
を複数の計算機にまたがって存在可能としたものであ
る。従って、この分散タスク/スレッドモデルは、タス
クの内部で動作するスレッドが、複数の計算機上の複数
のプロセッサを有効活用して動作できるようになるモデ
ルである。A task is usually a unit of allocation of program execution resources such as program text and data.
A thread is generated and executed inside the task, is a unit of program execution, and is a unit of processor resource allocation. In other words, the normal task / thread model is a model that makes it possible to effectively use processor resources in a multiprocessor computer. Also,
The distributed task / thread model is an extension of this model, in which a task that has conventionally been closed inside a single computer can now exist across a plurality of computers. Therefore, this distributed task / thread model is a model in which a thread operating inside a task can operate by effectively utilizing a plurality of processors on a plurality of computers.
【0004】この分散タスク/スレッドモデルの実現方
式を簡単に説明すると次のようになる。A method of realizing the distributed task / thread model will be briefly described as follows.
【0005】まず、ソフトウェアによる分散共有メモリ
機構(ソフト分散共有メモリ)を実現する。これは、分
散共有メモリ管理を行なうソフトウェアが、メモリをペ
ージ単位で管理し、キャッシュシステムのようにそれぞ
れの計算機上にページのコピーを保持する。そして、そ
れ等のコピーされたページへの書込みなどが発生する
と、キャッシュシステムと同様に、それ等のコンシステ
ンシ保持動作を行なうことで分散共有メモリ機構を実現
する。このコンシステンシ保持処理の際、従来のネット
ワーク通信で用いられるパケット通信方式を利用して、
例えば、ページの内容を計算機間で転送することでコピ
ーページを更新する、といったことを行なう。First, a distributed shared memory mechanism (software distributed shared memory) is realized by software. This is because the software that manages the distributed shared memory manages the memory in page units and holds a copy of the page on each computer like a cache system. Then, when writing to those copied pages occurs, the distributed shared memory mechanism is realized by performing the consistency holding operation as in the cache system. At the time of this consistency holding process, the packet communication method used in the conventional network communication is used,
For example, the copy page is updated by transferring the contents of the page between computers.
【0006】そして、このソフト分散共有メモリ機構を
使って、複数台の計算機上に生成した複数のタスクのメ
モリ空間(プログラムテキストやデータ空間)を共有
し、それ等のタスクグループを一つの大きなタスク、分
散タスクとして扱えるように管理し、そのタスク内部に
複数のスレッドを生成、並列実行可能とすることで分散
タスク/スレッドモデルを実現する。Using this software distributed shared memory mechanism, the memory space (program text or data space) of a plurality of tasks generated on a plurality of computers is shared, and these task groups are combined into one large task. A distributed task / thread model is realized by managing so that it can be handled as a distributed task, creating multiple threads inside the task, and enabling parallel execution.
【0007】一方、近年光ケーブルなどのような信頼性
もあり計算機の内部バスにある程度近い帯域幅を持つ通
信媒体の登場で物理メモリを直接他の計算機に見せるよ
うな構成も可能となりつつあり、各計算機に配置された
メモリを(またはその一部を)全体で単一のメモリ空間
として、どの計算機からでも直接アクセス可能にするこ
とができるようなシステムが提案されてきている。つま
り、高速高信頼性の通信媒体で結ばれた複数台の計算機
が、システム全体でNUMA型(Non Uniform Memory Ac
cess)型のマルチプロセッサシステムのような形態にな
るモデルである。このようなハードウェアによって、複
数の計算機間で分散共有メモリを実現する機構を、前述
のソフトウェアによる分散共有メモリ機構と区別して、
ハードウェア分散共有メモリ機構と呼ぶことにする。On the other hand, in recent years, with the advent of a communication medium having reliability such as an optical cable and having a bandwidth close to the internal bus of a computer to some extent, it is becoming possible to directly show the physical memory to other computers. A system has been proposed in which the memory (or part thereof) arranged in a computer can be directly accessed from any computer as a single memory space. In other words, multiple computers connected by a high-speed and highly reliable communication medium are connected to the NUMA (Non Uniform Memory Ac
cess) type multiprocessor system. By distinguishing the mechanism that realizes distributed shared memory among multiple computers by such hardware from the distributed shared memory mechanism by software described above,
It is called a hardware distributed shared memory mechanism.
【0008】[0008]
【発明が解決しようとする課題】しかしながら、上述の
ようなハードウエア分散共有メモリ機構を持つ複数台の
計算機の上に、従来のワークステーション用などのOS
をそのまま実装しようとすると、(1)複数台の計算機
全体で一つの計算機として扱い、ただ一つのOSがどこ
かの計算機上に、または複数の計算機上に分割して存在
し、その一つのOSが全体を管理する方式、または、
(2)個々の計算機上に従来通り一つ一つOSが存在
し、基本的にはそれぞれのOSがそれぞれの計算機のみ
を管理し、必要な際に通信回線を介して通信する方式、
のいずれかになってしまう。However, on a plurality of computers having the hardware distributed shared memory mechanism as described above, an OS for a conventional workstation or the like is installed.
If you try to implement the above as it is, (1) treat as one computer with multiple computers as a whole, and only one OS exists on some computer or divided among multiple computers. Manages the whole, or
(2) Each OS has a conventional OS on each computer, and basically each OS manages only each computer and communicates via a communication line when necessary.
Will be one of.
【0009】(1)の方式の場合、システム全体が一つ
の並列計算機のように扱われるため、各計算機上のプロ
セッサを有効活用した並列処理が可能となる反面、シス
テム動作中に任意の計算機を自由にON/OFF、或は
システムに対して付加/削除することが難しいなど、個
々の計算機の独立性が失われ、分散処理には向かない。
また、その反対に(2)の方式の場合には、個々の計算
機に独立性があり、分散処理には向いているものの、従
来のOSそのままでは、ハード分散共有メモリ機構を活
用することができず、効率のよい並列処理が実現できな
いという問題がある。In the case of the method (1), since the entire system is treated like one parallel computer, parallel processing can be performed by effectively utilizing the processors on each computer, while any computer can be operated during system operation. Since it is difficult to freely turn on / off or add / delete to / from the system, the independence of individual computers is lost, and it is not suitable for distributed processing.
On the other hand, in the case of the method (2), although individual computers have independence and are suitable for distributed processing, the hard distributed shared memory mechanism can be used without changing the conventional OS. Therefore, there is a problem that efficient parallel processing cannot be realized.
【0010】また、前述のパケット通信を利用したソフ
ト分散共有メモリによる分散タスク/スレッド機構を、
そのままハード分散共有メモリ機構を持つ複数台の計算
機上に実装することも考えられるが、他計算機のメモリ
はコピーページを介してアクセスすることになり、直接
的な他計算機のメモリへのアクセスが可能なハードウエ
ア分散共有メモリ機構を活用することはできない。Further, the distributed task / thread mechanism by the soft distributed shared memory utilizing the above-mentioned packet communication,
It may be possible to implement it on multiple computers that have a hard distributed shared memory mechanism as it is, but the memory of other computers will be accessed via the copy page, and it is possible to directly access the memory of other computers. It is not possible to take advantage of the hardware distributed shared memory mechanism.
【0011】本発明は、上記の問題点に鑑みてなされた
ものであり、ハードウエア分散共有メモリ機構を利用し
た分散タスク/スレッド機構を実現し、個々の計算機の
独立性を保ちつつ、かつハード分散共有メモリ機構を活
かして効率のよい分散並列処理を実現する情報処理装
置、情報処理システム及びその制御方法を提供すること
を目的とする。The present invention has been made in view of the above problems, and realizes a distributed task / thread mechanism using a hardware distributed shared memory mechanism, and maintains the independence of each computer and the hardware. An object of the present invention is to provide an information processing device, an information processing system, and a control method thereof that realize an efficient distributed parallel processing by utilizing a distributed shared memory mechanism.
【0012】[0012]
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理装置は以下の構成を備える。即
ち、ハードウエア分散共有メモリ機構により複数の外部
情報処理装置と物理メモリを相互に共有可能に接続され
た情報処理装置であって、当該情報処理装置及び前記複
数の外部情報処理装置に分散配置された複数のタスクで
構成される分散タスクを生成する生成手段と、前記分散
タスクの実行のために使用する仮想メモリ領域に対応す
る物理メモリ領域を、当該情報処理装置及び前記複数の
外部情報処理装置の物理メモリより確保する確保手段
と、前記確保手段で確保された物理メモリ領域と前記仮
想メモリ領域との対応を管理する管理手段と、前記分散
タスクの各タスクの実行において発生する仮想メモリ領
域の使用に応じて、前記管理手段によって対応付けられ
た物理メモリ領域を前記ハードウエア分散共有メモリ機
構を用いてアクセスするアクセス手段とを備える。An information processing apparatus according to the present invention for achieving the above object has the following arrangement. That is, an information processing apparatus in which a plurality of external information processing apparatuses and physical memories are connected to each other by a hardware distributed shared memory mechanism so that they can be shared by each other, and the information processing apparatuses and the plurality of external information processing apparatuses are distributed and arranged. And a plurality of external information processing devices for generating a distributed task including a plurality of tasks and a physical memory area corresponding to a virtual memory area used for executing the distributed task. Securing means for securing from the physical memory of, the managing means for managing the correspondence between the physical memory area secured by the securing means and the virtual memory area, and the virtual memory area generated in the execution of each task of the distributed task. Depending on the use, the physical memory area associated by the management means is accessed using the hardware distributed shared memory mechanism. And an access means for.
【0013】また、上記の目的を達成するための本発明
の情報処理システムは以下の構成を備える。即ち、ハー
ドウエア分散共有メモリ機構により複数の情報処理装置
が物理メモリを相互に共有可能に接続された情報処理シ
ステムであって、前記複数の情報処理装置に分散配置さ
れた複数のタスクで構成される分散タスクを生成する生
成手段と、前記複数の情報処理装置の夫々において、前
記分散タスクの実行のために使用する仮想メモリ領域に
対応する物理メモリ領域を、該複数の情報処理装置の備
える物理メモリより確保する確保手段と、前記複数の情
報処理装置の夫々において、前記確保手段で確保された
物理メモリ領域と前記仮想メモリ領域との対応を管理す
る管理手段と、前記複数の情報処理装置の夫々におい
て、前記分散タスクの各タスクの実行において発生する
仮想メモリ領域の使用に応じて、前記管理手段によって
対応付けられた物理メモリ領域を前記ハードウエア分散
共有メモリ機構を用いてアクセスするアクセス手段とを
備える。An information processing system of the present invention for achieving the above object has the following configuration. That is, an information processing system in which a plurality of information processing devices are connected to each other so that their physical memories can be shared by a hardware distributed shared memory mechanism, and is configured by a plurality of tasks distributed in the plurality of information processing devices. And a physical memory area corresponding to a virtual memory area used for execution of the distributed task in each of the plurality of information processing apparatuses. A securing unit that secures the memory, a management unit that manages the correspondence between the physical memory area secured by the securing unit and the virtual memory area in each of the plurality of information processing devices, and a storage unit of the plurality of information processing devices. In each case, according to the use of the virtual memory area generated in the execution of each task of the distributed task, the management unit associates the virtual memory area with each other. And an access means for accessing the physical memory area by using the hardware distributed shared memory mechanism.
【0014】また、上記の目的を達成するための本発明
の情報処理システムにおける制御方法はハードウエア分
散共有メモリ機構により複数の情報処理装置が物理メモ
リを相互に共有可能に接続された情報処理システムにお
ける制御方法であって、当該情報処理装置及び前記複数
の外部情報処理装置に分散配置された複数のタスクで構
成される分散タスクを生成する生成工程と、前記分散タ
スクの実行のために使用する仮想メモリ領域に対応する
物理メモリ領域を、当該情報処理装置及び前記複数の外
部情報処理装置の物理メモリより確保する確保工程と、
前記確保工程で確保された物理メモリ領域と前記仮想メ
モリ領域とを対応づける管理する管理工程と、前記分散
タスクの各タスクの実行において発生する仮想メモリ領
域の使用に応じて、前記管理工程によって対応付けられ
た物理メモリ領域を前記ハードウエア分散共有メモリ機
構を用いてアクセスするアクセス工程とを備える。The control method in the information processing system of the present invention for achieving the above object is an information processing system in which a plurality of information processing devices are connected by a hardware distributed shared memory mechanism so that physical memories can be shared with each other. And a generating step of generating a distributed task including a plurality of tasks distributed in the information processing apparatus and the plurality of external information processing apparatuses, and used for executing the distributed task. A securing step of securing a physical memory area corresponding to the virtual memory area from the physical memories of the information processing apparatus and the plurality of external information processing apparatuses;
A management step of managing the physical memory area secured in the securing step and the virtual memory area in association with each other, and a management step corresponding to the use of the virtual memory area generated in the execution of each task of the distributed task An access step of accessing the attached physical memory area using the hardware distributed shared memory mechanism.
【0015】[0015]
【発明の実施の形態】以下、添付の図面を参照して、本
発明の好適な実施形態を説明する。BEST MODE FOR CARRYING OUT THE INVENTION Preferred embodiments of the present invention will be described below with reference to the accompanying drawings.
【0016】[第1の実施形態]図1は第1の実施形態
による計算機システムの構成を説明するブロック図であ
る。図において、101は光ネットワークなどの高速な
通信回線、201,301,401は通信回線101で
結ばれた複数台の計算機である。202,203,30
2,303,304,402,403は、計算機20
1,301,401に各々1つ以上備えられたMMU
(メモリ管理ユニット)内蔵型のプロセッサ(以下、単
にプロセッサ或はCPUという)である。210,31
0は計算機201,301に備えられたユーザインター
フェイスとしてのディスプレイ及びキーボードである。
220,420は、夫々計算機201,401に備えら
れたハードディスク(HD)装置などの2次記憶装置で
ある。[First Embodiment] FIG. 1 is a block diagram for explaining the arrangement of a computer system according to the first embodiment. In the figure, 101 is a high-speed communication line such as an optical network, and 201, 301, and 401 are a plurality of computers connected by the communication line 101. 202, 203, 30
2, 303, 304, 402, 403 are computer 20
One or more MMUs provided in 1, 301, 401
(Memory management unit) A built-in processor (hereinafter, simply referred to as a processor or a CPU). 210, 31
Reference numeral 0 denotes a display and a keyboard as a user interface provided in the computers 201 and 301.
220 and 420 are secondary storage devices such as hard disk (HD) devices provided in the computers 201 and 401, respectively.
【0017】ディスプレイ及びキーボード210,31
0や2次記憶装置220,420は計算機に必ずしも装
備されていなくても構わない。例えばディスプレイ及び
キーボードが装備されていない計算機401などはサー
バマシンまたはプロセッサプールとして利用されること
になる。Display and keyboard 210, 31
The 0 and the secondary storage devices 220 and 420 do not necessarily have to be installed in the computer. For example, a computer 401 that is not equipped with a display and a keyboard is used as a server machine or a processor pool.
【0018】250,350,450は、計算機20
1,301,401上でそれぞれ独立して動作可能なO
Sである。102は、各計算機上で動作するOS間の非
同期な通信を行なうためのCPU間割込み機構である。
260,360,460は、各計算機上で動作するOS
間での通信を行なうための情報交換領域である。Numerals 250, 350 and 450 are computers 20
O that can operate independently on 1, 301 and 401
S. Reference numeral 102 denotes an inter-CPU interrupt mechanism for performing asynchronous communication between OSs operating on each computer.
260, 360, 460 are operating systems running on each computer
It is an information exchange area for performing communication between parties.
【0019】230,330,430は全体で一つの単
一なメモリ空間を成す物理メモリ、240,340,4
40は各計算機用のローカルメモリである。ローカルメ
モリは主にOSなどのために必要となるが、物理メモリ
230,330,430の一部で代用可能であるため、
あってもなくても本発明の適用の妨げとはならない。各
プロセッサは物理メモリ230,330,430をアク
セス可能に構成されている。ただし、メモリアクセスを
行なうプロセッサと同一計算機内部の物理メモリへのア
クセスよりも、他の計算機に属する物理メモリへのアク
セスの方が、通信回線101が介在するため遅くなるよ
うな構成が一般的である。Reference numerals 230, 330 and 430 denote physical memories 240, 340 and 4 which form a single memory space as a whole.
Reference numeral 40 is a local memory for each computer. The local memory is mainly required for the OS and the like, but since a part of the physical memory 230, 330, 430 can be substituted,
The presence or absence of it does not hinder the application of the present invention. Each processor is configured to be able to access the physical memory 230, 330, 430. However, in general, the configuration is such that the access to the physical memory belonging to another computer is slower than the access to the physical memory inside the same computer as the processor performing the memory access because the communication line 101 intervenes. is there.
【0020】なお、本実施形態において、OS250,
350,450は、各計算機上のローカルメモリ24
0,340,440上で動作しても、物理メモリ23
0,330,430上で動作しても構わないことは上述
した通りである。In this embodiment, the OS 250,
350 and 450 are local memories 24 on each computer.
0, 340, 440, even if the physical memory 23
It is possible to operate on 0, 330 and 430 as described above.
【0021】図2は、第1の実施形態によるOSや分散
タスクの関係を示す概念図である。図1で示したよう
に、各計算機201,301,401は通信回線101
により相互に接続されているものとする。250,35
0,450はそれぞれの計算機上で動作する仮想記憶方
式を採用したOSである。FIG. 2 is a conceptual diagram showing the relationship between the OS and the distributed tasks according to the first embodiment. As shown in FIG. 1, each computer 201, 301, 401 has a communication line 101.
Shall be connected to each other. 250,35
Reference numerals 0 and 450 are OSs that employ a virtual memory system that operates on each computer.
【0022】251,351,451はカーネル部であ
り、OS内部で、タスクやスレッドの制御、仮想記憶処
理、メモリやプロセッサ資源の管理、I/O資源の管理
など、そしてハード分散共有メモリ機構を利用して、自
計算機上の物理メモリを共有メモリとして登録・削除す
る処理、登録済みの他計算機上の共有メモリを参照する
処理などを行なう。Reference numerals 251, 351 and 451 denote kernel units, which control tasks and threads, virtual memory processing, memory and processor resource management, I / O resource management, and a hard distributed shared memory mechanism inside the OS. By using the physical memory on its own computer as a shared memory, the process of registering / deleting it, the process of referring to the shared memory on another registered computer, and the like are performed.
【0023】252,352,452は分散共有メモリ
管理サーバ部であり、OS内部で、上記の共有メモリの
登録・削除・参照機構を利用して、複数の計算機上に存
在する複数のタスクのメモリ空間(プログラムテキス
ト、データなど)の共有を実現する。Denoted at 252, 352 and 452 are distributed shared memory management server units, which are memories of a plurality of tasks existing on a plurality of computers by utilizing the above-mentioned shared memory registration / deletion / reference mechanism inside the OS. Realize sharing of space (program text, data, etc.).
【0024】253,353,453は分散タスク管理
サーバ部であり、OS内部で、分散共有メモリ管理サー
バ部252,352,452によりメモリ空間を共有し
ている複数のタスクを一つの分散タスクとして管理し、
その中で複数のスレッドの生成、並列実行を可能とし
て、複数の計算機上の複数のプロセッサ資源を有効活用
する。Reference numerals 253, 353 and 453 denote distributed task management server units, which manage a plurality of tasks sharing a memory space by the distributed shared memory management server units 252, 352 and 452 in the OS as one distributed task. Then
Among them, multiple threads can be created and executed in parallel, and multiple processor resources on multiple computers can be effectively used.
【0025】以上のように、基本的には各計算機ごとに
個々にOSを動作させ、それらが協調動作するような構
成を取ることで、個々の計算機の独立性を保つととも
に、分散処理にも適応する。As described above, basically, the OS is individually operated for each computer, and by adopting a configuration in which the OSs cooperate with each other, the independence of each computer is maintained and the distributed processing is also performed. To adapt.
【0026】11,12,13,14は分散タスクを構
成するため、分散共有メモリ管理サーバ部252,35
2,452によりメモリ空間を共有し、分散タスク管理
サーバ部253,353,453によりまとめて管理さ
れる通常のタスクである。21,22は、分散共有メモ
リ管理サーバ部252,352,452によりメモリ空
間を共有した複数のタスクが、分散タスク管理サーバ部
253,353,453によりまとめられ、一つの大き
なタスクとして管理される分散タスクである。31,3
2,33,34,35,36,37は、分散タスク管理
サーバ部により管理され、各タスク内部に生成、並列実
行されるスレッドである。Since 11, 12, 13, and 14 form a distributed task, the distributed shared memory management server units 252 and 35 are provided.
2, 452 are common tasks that share a memory space and are managed collectively by the distributed task management server units 253, 353, 453. In 21 and 22, a plurality of tasks sharing a memory space by the distributed shared memory management server units 252, 352, 452 are collected by the distributed task management server units 253, 353, 453, and managed as one large task. It is a task. 31,3
Reference numerals 2, 33, 34, 35, 36, and 37 are threads that are managed by the distributed task management server unit and are generated inside each task and executed in parallel.
【0027】本実施形態では、カーネル部、分散共有メ
モリ管理サーバ部、分散タスク管理サーバ部がOS内部
に含まれる例を示したが、MachOS(カーネギーメ
ロン大学)のようにマイクロカーネル構成を採用してい
るOSであれば、カーネル部はマイクロカーネルに相当
し、分散共有メモリ管理サーバ部及び分散タスク管理サ
ーバ部は、マイクロカーネル上で生成、実行されるタス
クというマイクロカーネルとは独立したプログラムモジ
ュールの形態で実現されても構わない。このように、本
実施形態では、これらのモジュールの実現形態について
は特に制限を設けるものではない。In this embodiment, an example in which the kernel part, the distributed shared memory management server part, and the distributed task management server part are included in the OS is shown, but a microkernel structure such as MachOS (Carnegie Mellon University) is adopted. In the case of an operating system, the kernel part corresponds to a microkernel, and the distributed shared memory management server part and the distributed task management server part are program modules independent of the microkernel, which are tasks created and executed on the microkernel. It may be realized in a form. As described above, in the present embodiment, there is no particular limitation on the implementation form of these modules.
【0028】次に、ハード分散共有メモリ機構を利用し
て、複数の計算機上の複数のタスクのメモリ空間をどの
ように共有するか、という点について説明する。Next, how to share the memory space of a plurality of tasks on a plurality of computers by using the hard distributed shared memory mechanism will be described.
【0029】本実施形態では、デマンドページング方式
の場合について説明する。この方式の場合、タスク生成
時には物理メモリ領域(通常ページと呼ばれる単位で扱
われるため以下では物理ページと呼ぶ)は割り当てられ
ない。このため、プログラム実行単位であるスレッドの
生成及びスレッドの実行が開始され、物理ページが存在
しない仮想アドレスをアクセスするとページフォールト
が発生する。本方式では、このタイミングで始めて、物
理ページを確保し、確保した物理ページに必要な内容
(プログラムテキストまたはデータ、或は全てゼロ)を
書き込み、タスクの仮想アドレス空間にマップして当該
スレッドを続行させていく。In this embodiment, the case of the demand paging system will be described. In this method, a physical memory area (hereinafter, referred to as a physical page because it is handled in a unit called a normal page) is not allocated at the time of task generation. For this reason, generation of a thread, which is a program execution unit, and execution of the thread are started, and a page fault occurs when a virtual address where a physical page does not exist is accessed. In this method, first at this timing, a physical page is reserved, necessary contents (program text or data, or all zeros) are written in the reserved physical page, mapped to the virtual address space of the task, and the thread continues. I will let you.
【0030】図3は、主に分散タスク管理サーバ部が主
体で行なう、分散タスク生成、スレッド生成・実行処理
の流れを示すフローチャートである。また、図4は、ペ
ージフォールト発生以降のページフォールト処理によ
り、タスクのメモリ空間を共有する処理の流れを示すフ
ローチャートである。なお、各フローチャートともに、
図2で示した分散タスク21の場合を例として示してあ
る。FIG. 3 is a flow chart showing the flow of distributed task generation and thread generation / execution processing, which is mainly performed by the distributed task management server section. FIG. 4 is a flowchart showing the flow of processing for sharing the task memory space by the page fault processing after the page fault occurs. In addition, with each flow chart,
The case of the distributed task 21 shown in FIG. 2 is shown as an example.
【0031】ステップS101では、ユーザからの要求
を受けた分散タスク管理サーバ部が分散タスク21の生
成を開始する。本例では、分散タスク管理サーバ部25
3がユーザからの要求を受けたものとして説明する。続
いて、ステップS102において、分散タスク管理サー
バ部253は、カーネル部351,251に要求して、
分散タスク21を構成するタスク11,12を生成す
る。In step S101, the distributed task management server unit that has received a request from the user starts the generation of the distributed task 21. In this example, the distributed task management server unit 25
3 will be described as having received a request from the user. Subsequently, in step S102, the distributed task management server unit 253 requests the kernel units 351 and 251 to
The tasks 11 and 12 that constitute the distributed task 21 are generated.
【0032】ここで、タスクとは、その内部で複数のス
レッドが実行できるようにするための、共通の実行環境
(プログラムテキストやデータなど)のことをさす。従
って、タスクの生成とは、OSがその環境をユーザから
の指定に従って準備し、またそのタスクを管理する管理
ブロックをOS内部で作り、管理を開始することであ
る。Here, the task means a common execution environment (program text, data, etc.) for allowing a plurality of threads to execute therein. Therefore, the task generation means that the OS prepares the environment according to the designation from the user, creates a management block for managing the task in the OS, and starts the management.
【0033】一般的に、カーネル部は、自計算機内部に
のみタスクを生成することができる。このタスク生成機
能を持つカーネル部が、他計算機上の分散タスク管理サ
ーバ部からのタスク生成要求を直接受けられる構成にな
っている場合には、例えば分散タスク管理サーバ部25
3がユーザからのタスク生成要求を受けると、タスク1
1についてはカーネル部251に、タスク12について
はカーネル部351にタスクの生成を直接要求して、タ
スク11、12を生成する。In general, the kernel unit can generate a task only within its own computer. When the kernel unit having this task generation function is configured to directly receive the task generation request from the distributed task management server unit on another computer, for example, the distributed task management server unit 25
3 receives a task generation request from the user, task 1
For the task 1, the task is directly requested to the kernel unit 251 and for the task 12, the task is requested to the kernel unit 351 to generate the tasks 11 and 12.
【0034】一方、カーネル部が他計算機上の分散タス
ク管理サーバからのタスク生成要求を直接受けられる構
成になっていない場合には、例えば分散タスク管理サー
バ部253がユーザからの要求を受けた場合において、
タスク11についてはカーネル部251にタスク生成を
直接要求し、タスク12については分散タスク管理サー
バ部353を経由してカーネル部351にタスク生成を
要求してタスク11、12の生成を行うことになる。分
散タスク管理サーバ部353を経由する方法としては、
通常、カーネル部から提供される計算機間のネットワー
ク通信手段を利用して、分散タスク管理サーバ部間で通
信して要求を行なってもよいし、またそれが不可能な場
合には、情報交換領域260,360そしてCPU間割
込み機構102などを利用した非同期通信により、分散
タスク管理サーバ部間で通信して要求を行なってもよ
い。このように各計算機上の分散タスク管理サーバ部は
お互いに協調動作をしながら処理を進めていく。On the other hand, when the kernel unit is not configured to directly receive the task generation request from the distributed task management server on another computer, for example, when the distributed task management server unit 253 receives a request from the user. At
The task 11 directly requests the kernel unit 251 to generate a task, and the task 12 requests the kernel unit 351 to generate a task via the distributed task management server unit 353 to generate the tasks 11 and 12. . As a method of passing through the distributed task management server unit 353,
Normally, the network communication means between computers provided by the kernel section may be used to communicate between the distributed task management server sections to make a request. If that is not possible, the information exchange area may be used. A request may be made by communicating between the distributed task management server units by asynchronous communication using the 260, 360 and the CPU interrupt mechanism 102 and the like. In this way, the distributed task management server units on each computer proceed with processing while cooperating with each other.
【0035】次に、ステップS103において、分散タ
スク管理サーバ部はカーネル部に要求して、これら生成
したタスク11,12に対するページフォールト処理
を、分散共有メモリ管理サーバ部が行なうように割り当
てる。即ち、タスク11については、分散共有メモリ管
理サーバ部252が、タスク12については、分散共有
メモリ管理サーバ部352が、ページフォールト処理を
行なうように設定する。これにより、タスク11,12
でページフォールトが発生すると、制御が分散共有メモ
リ管理サーバ部252,352に移ることになる。Next, in step S103, the distributed task management server unit requests the kernel unit to allocate the page fault processing to the generated tasks 11 and 12 so that the distributed shared memory management server unit will perform them. That is, the distributed shared memory management server unit 252 for the task 11 and the distributed shared memory management server unit 352 for the task 12 are set to perform the page fault process. As a result, tasks 11, 12
When a page fault occurs, control is transferred to the distributed shared memory management server units 252 and 352.
【0036】次に、ステップS104において、分散タ
スク管理サーバ部253は、カーネル部に要求して、ス
レッド31,32,33を生成、実行する。タスクの生
成と同様に、スレッド31,32についてはカーネル部
251に、スレッド33についてはカーネル部351に
要求してスレッドの生成及び実行を行う。Next, in step S104, the distributed task management server unit 253 requests the kernel unit to generate and execute the threads 31, 32 and 33. Similar to the task generation, the threads 31 and 32 are requested to the kernel unit 251 and the thread 33 to the kernel unit 351 to generate and execute the threads.
【0037】なお、スレッドは、タスクの内部で実際に
プログラムを実行する実行の単位のことで、固有の環境
として、通常、スタック領域とプロセッサのコンテキス
ト情報を有する。従って、スレッドの生成とは、OSが
これらの環境をユーザからの指定に従って準備し、また
そのスレッドを管理する管理ブロックをOS内部でつく
り、管理を開始することである。A thread is a unit of execution for actually executing a program inside a task, and normally has a stack area and processor context information as its own environment. Therefore, the generation of a thread means that the OS prepares these environments according to the specification from the user, creates a management block for managing the thread inside the OS, and starts the management.
【0038】以上で分散タスク21の生成処理の流れが
終了となる。この分散タスク生成の際、分散タスクを構
成するタスクをどの計算機上にいくつ生成するか、どの
タスク内にスレッドをいくつ生成するか、といったこと
は、ユーザが直接指定しても、また分散タスク管理サー
バ部などが自動的に判断しても構わない。本実施形態で
はこれらを特に制限しない。With the above, the flow of the generation processing of the distributed task 21 ends. When creating this distributed task, the user can directly specify how many tasks that make up the distributed task will be created on which computer, and how many threads will be created in which task. The server unit may automatically make the determination. In the present embodiment, these are not particularly limited.
【0039】次に、分散タスク内部のスレッドの生成及
び実行において、まだ物理ページが存在していない仮想
アドレスをアクセスしたためにページフォールトが発生
し、分散共有メモリ管理サーバ部に制御が移ってから、
実際に共有メモリページが分散タスクのメモリ空間にマ
ップされるまでの処理の流れについて、図4のフローチ
ャートを参照して説明する。Next, in the generation and execution of threads in the distributed task, a page fault occurs because a virtual address where a physical page does not exist yet is accessed, and control is transferred to the distributed shared memory management server unit.
The flow of processing until the shared memory page is actually mapped to the memory space of the distributed task will be described with reference to the flowchart of FIG.
【0040】ステップS201で、分散タスク内部で実
行中のスレッドがページフォールトを発生すると、分散
共有メモリ管理サーバ部によるページフォールト処理が
開始される。例えば、スレッド31,32においてペー
ジフォールトが発生すると分散共有メモリ管理サーバ部
252によるページフォールト処理が開始され、スレッ
ド33でページフォールトが発生すると分散共有メモリ
管理サーバ部352によるページフォールト処理が開始
される。ここではスレッド31でページフォールトが発
生した場合を例に示す。即ち、分散共有メモリ管理サー
バ部252によるページフォールト処理を例に挙げて説
明する。In step S201, when a thread running inside the distributed task generates a page fault, the page fault process by the distributed shared memory management server unit is started. For example, when a page fault occurs in the threads 31 and 32, the page fault process by the distributed shared memory management server unit 252 is started, and when a page fault occurs in the thread 33, the page fault process by the distributed shared memory management server unit 352 is started. . Here, a case where a page fault occurs in the thread 31 is shown as an example. That is, the page fault processing by the distributed shared memory management server unit 252 will be described as an example.
【0041】ページフォールト処理が開始されると、ス
テップS202で、分散共有メモリ管理サーバ部252
は、フォールトが発生したページに対応する物理ページ
が既にどこかの計算機上で確保され、分散タスクを構成
するいずれかのタスクにマップされているかどうか確認
する。When the page fault process is started, in step S202, the distributed shared memory management server unit 252.
Checks whether the physical page corresponding to the faulted page has already been reserved on some computer and mapped to one of the tasks that make up the distributed task.
【0042】ここで、各分散共有メモリ管理サーバ部
は、各分散タスクごとに、使用される仮想メモリ領域に
対応する物理ページとしてすでに確保されている物理ペ
ージと、それを参照するときにその物理ページを特定す
るためのキーを管理する分散タスク管理テーブルを備え
ている。従って、その分散タスク管理テーブルなどを参
照することで、ステップS202における確認は可能と
なる。なお、この分散タスク管理テーブルは、各分散タ
スクごとに存在し、協調動作する複数の分散共有メモリ
管理サーバ部のいずれかの内部に存在し、どの分散共有
メモリ管理サーバ部からでも参照可能とする。Here, each distributed shared memory management server unit has, for each distributed task, a physical page already reserved as a physical page corresponding to the virtual memory area to be used and the physical page when referring to it. It has a distributed task management table that manages keys for specifying pages. Therefore, the confirmation in step S202 can be performed by referring to the distributed task management table or the like. This distributed task management table exists for each distributed task, exists inside any of the plurality of distributed shared memory management server units that cooperate, and can be referenced from any distributed shared memory management server unit. .
【0043】ここで、キーとは、ある物理ページが
(a)どの計算機上のものなのかをどの計算機からでも
特定することが可能で、(b)メモリ上のどこ(アドレ
ス)にあるのかを特定することが可能なものである。例
えば計算機Aがキーによって他の計算機(計算機B)上
の物理ページを確保する場合には、キーによって特定さ
れた計算機(計算機B)から実際の物理アドレスの通知
を受け、これによりアクセス権を得ることになる。すな
わち、このキーとともにアクセスが要求されると、計算
機Bは当該キーの示す物理アドレスを計算機Aに通知す
ると共に、当該物理ページ計算機Aからも共有アクセス
されるものとして管理するべく設定を行う。また、物理
アドレスの通知を受けた計算機Aでは、そのアドレスを
自OS内部の仮想記憶管理部に設定することにより、自
OSが管理する仮想記憶空間内で当該物理ページをアク
セスすることが可能となる。Here, the key is used to identify from which computer (a) which computer a certain physical page belongs to, and (b) where (address) on the memory it is. It is possible to specify. For example, when the computer A reserves a physical page on another computer (computer B) with a key, the computer (computer B) specified by the key receives a notification of the actual physical address, and thereby obtains an access right. It will be. That is, when access is requested together with this key, the computer B notifies the physical address indicated by the key to the computer A, and sets the physical page computer A so that the physical page computer A also manages the shared access. Also, the computer A that has received the notification of the physical address can access the physical page in the virtual storage space managed by the own OS by setting the address in the virtual storage management unit inside the own OS. Become.
【0044】従って、自計算機内の分散共有メモリ管理
サーバ部に参照したい管理テーブルが存在しない場合に
は、それが存在する分散共有メモリ管理サーバ部から、
通常カーネル部から提供される計算機間のネットワーク
通信手段を利用して必要な情報を送ってもらえばよい。
または、情報交換領域260,360そしてCPU間割
込み機構102などを利用した通信によって、必要な情
報を送ってもらっても構わない。Therefore, when the management table to be referred to does not exist in the distributed shared memory management server unit in the own computer, the distributed shared memory management server unit in which it exists is
Usually, it is sufficient to send necessary information using network communication means between computers provided from the kernel unit.
Alternatively, the necessary information may be sent by communication using the information exchange areas 260, 360 and the CPU interrupt mechanism 102.
【0045】次にステップS203で、物理ページの有
無を確認した結果、対応する物理ページが存在していな
いとわかった場合には、いずれかの計算機上より物理ペ
ージを確保するためにステップS204に進む。また、
いずれかの計算機上にすでに当該物理ページが存在し、
いずれかのタスクにマップされているとわかった場合に
はステップS221に進む。Next, in step S203, if it is found that the corresponding physical page does not exist as a result of checking the presence or absence of the physical page, the process proceeds to step S204 in order to secure the physical page from any computer. move on. Also,
The physical page already exists on any computer,
If it is determined that the task is mapped to any task, the process proceeds to step S221.
【0046】ステップS204に進むと、どの計算機か
ら物理ページを確保するかを決定する。この決定は、あ
らかじめユーザによって分散タスク生成時に指定されて
いても構わないし、分散共有メモリ管理サーバ部または
分散タスク管理サーバ部によって自動的に行なわれても
構わない。本実施形態ではこの決定方法を特に制限しな
い。In step S204, it is determined from which computer to secure the physical page. This determination may be designated in advance by the user when the distributed task is generated, or may be automatically performed by the distributed shared memory management server unit or the distributed task management server unit. In this embodiment, this determination method is not particularly limited.
【0047】どの計算機から物理ページを確保するかが
決定されると、次にステップS205において、分散共
有メモリ管理サーバ部252は、カーネル部に要求し
て、物理ページを共有メモリとして確保し、その物理ペ
ージを参照する際、その物理ページを一意に特定するキ
ーを得る。この際、物理ページを、自計算機である計算
機201から確保すると決定された場合には、カーネル
部251に直接物理ページの確保を要求する。また、計
算機201以外の計算機、例えば計算機301から物理
ページを確保すると決定された場合には、その計算機3
01上の分散共有メモリ管理サーバ部352を経由し
て、その計算機301上のカーネル部351に物理ペー
ジの確保を要求する。When it is determined from which computer to secure the physical page, in step S205, the distributed shared memory management server unit 252 requests the kernel unit to secure the physical page as the shared memory, and When referring to a physical page, a key that uniquely identifies the physical page is obtained. At this time, if it is determined that the physical page is to be reserved from the computer 201 which is its own computer, the kernel unit 251 is requested to directly reserve the physical page. Further, when it is decided to secure a physical page from a computer other than the computer 201, for example, the computer 301, the computer 3
A request for securing a physical page is made to the kernel unit 351 on the computer 301 via the distributed shared memory management server unit 352 on 01.
【0048】分散共有メモリ管理サーバ部352を経由
する方法としては、通常カーネル部から提供される計算
機間のネットワーク通信手段を利用して、分散共有メモ
リ管理サーバ部間で通信して要求を行なえばよい。ま
た、他の方法として、情報交換領域260,360そし
てCPU間割込み機構102などを利用した通信によ
り、分散共有メモリ管理サーバ部間で通信して要求を行
なうようにしてもよい。As a method of passing through the distributed shared memory management server unit 352, if a request is made by communicating between the distributed shared memory management server units using a network communication means between computers which is usually provided from the kernel unit. Good. As another method, the request may be made by communicating between the distributed shared memory management server units by communication using the information exchange areas 260, 360 and the inter-CPU interrupt mechanism 102.
【0049】物理ページ確保の要求を受けたカーネル部
は、計算機内部のフリー状態の物理ページを確保し、そ
のページを他の計算機から参照可能な共有ページとし
て、カーネル内部の共有物理ページを管理するテーブル
に登録し、参照の際にページを特定するためのキーとな
る値を決定する。キーはシステム内で対象となる物理ペ
ージを一意に特定することが可能な値であり、また、そ
の物理ページが存在する計算機をも一意に特定すること
が可能なものとする。そして確保した物理ページとキー
を分散共有メモリ管理サーバ部252に返す。Upon receiving the request to secure the physical page, the kernel unit secures a free physical page inside the computer and manages the shared physical page inside the kernel as a shared page that can be referenced by other computers. Register in the table and determine the key value for specifying the page when referencing. The key is a value capable of uniquely specifying a target physical page in the system, and is also capable of uniquely specifying a computer in which the physical page exists. Then, the secured physical page and key are returned to the distributed shared memory management server unit 252.
【0050】次にステップS206で、分散共有メモリ
管理サーバ部252は、返された物理ページの情報とキ
ーを分散共有メモリ管理サーバ部252内部の分散タス
ク管理テーブルに登録する。次にステップS207で、
分散共有メモリ管理サーバ部252は、確保した物理ペ
ージに必要な内容を埋める。即ち、対応する仮想空間の
領域にしたがって、プログラムテキストまたはデータま
たはゼロ値を物理ページに埋める。ここで、埋める内容
がプログラムテキストまたはデータだった場合には、フ
ァイルシステムなどから対応する内容を読み出してその
値を物理ページに書き込んでいく。Next, in step S206, the distributed shared memory management server unit 252 registers the returned physical page information and key in the distributed task management table inside the distributed shared memory management server unit 252. Next, in step S207,
The distributed shared memory management server unit 252 fills the secured physical page with necessary contents. That is, the program text or data or zero value is embedded in the physical page according to the corresponding region of the virtual space. If the content to be filled is program text or data, the corresponding content is read from a file system or the like, and the value is written to a physical page.
【0051】次にステップS208で、分散共有メモリ
管理サーバ部252は、カーネル部251に要求して、
内容を埋めた物理ページを、ページフォールトを起こし
たタスク11の対応する仮想アドレス空間にマップす
る。そして最後にステップS209で分散共有メモリ管
理サーバ部252は、カーネル部251に要求して、ペ
ージフォールトを起こしたスレッド31の実行を再開さ
せる。Next, in step S208, the distributed shared memory management server unit 252 requests the kernel unit 251 to
The physical page with the filled contents is mapped to the corresponding virtual address space of the task 11 that caused the page fault. Finally, in step S209, the distributed shared memory management server unit 252 requests the kernel unit 251 to restart the execution of the thread 31 that caused the page fault.
【0052】次にステップS203で、物理ページの有
無を確認した結果すでに存在しているとわかった場合に
ついて説明する。すでに物理ページが存在している場合
とは、分散タスク21を構成するタスク11以外のタス
ク、本例の場合にはタスク12の仮想アドレス空間の対
応するページにすでに物理ページがマップさせているこ
とを意味する。つまり、この場合、タスク11の仮想ア
ドレス空間の同じページに対して、上記の物理ページを
マップする処理を行なうことで、タスク11とタスク1
2で同じメモリを共有させることが可能となる。以下に
その処理の流れを示す。Next, a case will be described in which it is determined in step S203 that a physical page already exists as a result of checking the presence / absence of a physical page. When the physical page already exists, it means that the physical page has already been mapped to the corresponding page of the virtual address space of the task other than the task 11 that constitutes the distributed task 21, in this example the task 12. Means That is, in this case, by performing the process of mapping the physical page to the same page in the virtual address space of task 11, task 11 and task 1
It becomes possible to share the same memory in 2. The flow of the processing is shown below.
【0053】ステップS203で、ページフォールトの
発生した物理ページに対応する物理ページが存在すると
わかると、ステップS221に進む。ステップS221
において、分散共有メモリ管理サーバ部252は、分散
共有メモリ管理サーバ部内部に存在する分散タスク管理
テーブルを参照して、対応する物理ページのキーを獲得
する。When it is determined in step S203 that there is a physical page corresponding to the physical page in which the page fault has occurred, the process proceeds to step S221. Step S221
At, the distributed shared memory management server unit 252 refers to the distributed task management table existing inside the distributed shared memory management server unit, and acquires the key of the corresponding physical page.
【0054】次に、ステップS222で、獲得したキー
を引数にカーネル部251に要求して、すでに他の計算
機(例えば計算機301)上に存在している上記の物理
ページを参照する。これは、通常、自計算機上の物理メ
モリについては、直接自計算機上のカーネル部に要求し
て確保すれば直接扱える(Read/Write可能)
ようになるのに対して、他計算機上の物理メモリについ
ては直接扱えないためであり、これを可能にするため、
自計算機上のカーネル部に要求して、その物理メモリを
参照して直接扱えるようにする手続を行なうものであ
る。In step S222, the obtained key is used as an argument to request the kernel unit 251 to refer to the physical page already existing on another computer (for example, the computer 301). This is normally handled directly by requesting and securing the physical memory on the local computer to the kernel section on the local computer (Read / Write is possible).
On the other hand, it is because the physical memory on other computers cannot be directly handled, and in order to enable this,
This is a procedure for requesting the kernel section on the own computer to refer to the physical memory and handle it directly.
【0055】例えば、参照要求を受けたカーネル部25
1は、キーをもとに上記物理ページが存在する計算機で
ある計算機301を特定し、計算機301上のカーネル
部351と通信を行い、上記物理ページのアクセス権と
物理アドレス情報などを得て、直接その物理ページを扱
えるようにする。なお、カーネル部相互の通信は、通常
カーネル部が持つネットワーク通信機能、または、情報
交換領域260,360そしてCPU間割込み機構10
2などを利用した通信機構を利用して行われる。そし
て、分散共有メモリ管理サーバ部252に対して、その
物理ページを参照可能(Read/Write可能)な
ように設定する。For example, the kernel unit 25 that receives the reference request
1 specifies the computer 301 which is the computer where the physical page exists based on the key, communicates with the kernel unit 351 on the computer 301, obtains the access right of the physical page and physical address information, etc. Be able to handle the physical page directly. The communication between the kernel parts is normally performed by the network communication function of the kernel part, or the information exchange areas 260 and 360 and the inter-CPU interrupt mechanism 10.
This is performed by using a communication mechanism that utilizes the 2 or the like. Then, the distributed shared memory management server unit 252 is set so that the physical page can be referenced (Read / Write enabled).
【0056】次に、ステップS208に進み、分散共有
メモリ管理サーバ部252は、参照可能にした物理ペー
ジを、カーネル部251に要求して、タスク11の対応
する仮想アドレスにマップし、最後に、ステップS20
9で、スレッド31の実行を再開する。Next, proceeding to step S208, the distributed shared memory management server unit 252 requests the referenceable physical page to the kernel unit 251, maps it to the virtual address corresponding to the task 11, and finally, Step S20
At 9, the execution of the thread 31 is resumed.
【0057】以上のように、第1の実施形態において
は、分散タスク生成、実行の際に、デマンドページング
方式による物理ページの確保が行われる。即ち、分散タ
スクを生成する処理を開始すると、まず複数の計算機上
に、分散タスクを構成する複数のタスクをそれぞれ生成
し、前記複数のタスク内部でページフォールトが発生し
た際に後述するページフォールト処理に移行するように
設定し、前記複数のタスク内部に、複数のスレッドを生
成、実行する。そして、上記スレッドのいずれかがペー
ジフォールトを発生した際、ページフォールト処理を開
始する。As described above, in the first embodiment, the physical page is secured by the demand paging method when the distributed task is generated and executed. That is, when the process of generating a distributed task is started, first, a plurality of tasks that form the distributed task are generated on a plurality of computers, and when a page fault occurs inside the plurality of tasks, a page fault process described later is performed. To generate and execute a plurality of threads inside the plurality of tasks. Then, when any of the above threads generates a page fault, the page fault process is started.
【0058】ページフォールト処理では、対応する物理
ページが、前記分散タスクを構成する前記複数のタスク
のうちいずれかにすでにマップされているかどうかを確
認し、まだいずれのタスクにもマップされていない場合
には、前記複数の計算機のうち一つを決定し、その計算
機上の物理ページを共有メモリとして確保し、参照の際
に前記物理ページを一意に特定するキーとなる値を決定
し、それらを分散タスク管理テーブルに登録する。そし
て、確保した物理ページに対応する内容(プログラムテ
キスト、データなど)を設定し、内容が設定された物理
ページを、当該ページフォールトの発生したタスクの対
応する仮想アドレス空間にマップし、当該ページフォー
ルトを発生したスレッドの生成、実行を再開する。In the page fault processing, it is confirmed whether the corresponding physical page is already mapped to any of the plurality of tasks constituting the distributed task, and if it is not mapped to any task yet. , One of the plurality of computers is determined, a physical page on that computer is secured as a shared memory, a value that becomes a key that uniquely identifies the physical page at the time of reference is determined, and Register in the distributed task management table. Then, the content (program text, data, etc.) corresponding to the secured physical page is set, the physical page with the set content is mapped to the virtual address space corresponding to the task in which the page fault occurs, and the page fault Resume the generation and execution of the thread that generated.
【0059】また、上記スレッドのいずれかがページペ
ージフォールトを発生した際に開始されたページフォー
ルト処理において、対応する物理ページが、前記分散タ
スクを構成する前記複数のタスクのいずれかに既にマッ
プされていた場合には、分散タスク管理テーブルを参照
してマップされていた物理ページのキーを獲得して、獲
得されたキーをもとに対応する物理ページへの直接的な
アクセス(ハードウエア分散共有メモリ機構を用いたア
クセス)を可能にする。そして、この獲得した物理ペー
ジを、当該ページフォールトの発生したタスクの対応を
する仮想アドレス空間にマップし、当該ページフォール
トを発生したスレッドの生成、実行を再開する。Further, in the page fault processing started when any of the above threads generates a page page fault, the corresponding physical page is already mapped to any of the plurality of tasks constituting the distributed task. If so, the key of the mapped physical page is acquired by referring to the distributed task management table, and direct access to the corresponding physical page based on the acquired key (hardware distributed sharing). Access using a memory mechanism). Then, the acquired physical page is mapped to the virtual address space corresponding to the task in which the page fault has occurred, and the generation and execution of the thread in which the page fault has occurred are restarted.
【0060】以上の処理を行なうことにより、異なる計
算機上に動作する複数のタスクでメモリ空間を共有でき
るようになり、これを利用して、複数のタスクをまとめ
て、複数の計算機に跨る一つの分散タスクとして扱うこ
とが可能となる。By performing the above processing, a plurality of tasks operating on different computers can share a memory space, and by utilizing this, a plurality of tasks can be collected and one task that spans a plurality of computers can be collected. It can be handled as a distributed task.
【0061】従って、本発明によれば、ハード分散共有
メモリ機構を利用した分散タスク/スレッド機構が実現
可能で、個々の計算機の独立性を保ちつつ、ハード分散
共有メモリを活かして効率のよい分散並列処理を実現す
ることが可能となる。Therefore, according to the present invention, a distributed task / thread mechanism using the hard distributed shared memory mechanism can be realized, and while maintaining the independence of individual computers, the hard distributed shared memory can be utilized to achieve efficient distribution. It is possible to realize parallel processing.
【0062】[第2の実施形態]上述した第1の実施形
態では、デマンドページング方式の場合を説明した。第
2の実施形態では、タスク生成時に、全てのメモリ空間
に物理メモリをマップしてしまう方式の場合について説
明する。なお、このような方式を非デマンドページング
方式と呼ぶことにする。この場合ページフォールトは発
生しなくなるので、第1の実施形態でページフォールト
処理を行なっていた分散共有メモリ管理サーバ252,
352,452は不要となる。従って、第2の実施形態
によるOSや分散タスクの関係は、図2から分散共有メ
モリ管理サーバを抜いた状態になる。以下では、分散タ
スク21を例として、第2の実施形態による処理の流れ
を示す。[Second Embodiment] In the above-described first embodiment, the case of the demand paging system has been described. In the second embodiment, a case will be described in which a physical memory is mapped in all memory spaces when a task is generated. Note that such a method will be referred to as a non-demand paging method. In this case, since the page fault does not occur, the distributed shared memory management server 252 which has performed the page fault process in the first embodiment.
352 and 452 are unnecessary. Therefore, the relationship between the OS and the distributed task according to the second embodiment is a state in which the distributed shared memory management server is omitted from FIG. In the following, the flow of processing according to the second embodiment will be described using the distributed task 21 as an example.
【0063】図5は、分散タスク管理サーバ部が主体で
行なう、分散タスク生成、スレッド生成・実行処理の流
れを示すフローチャートである。FIG. 5 is a flow chart showing the flow of distributed task generation and thread generation / execution processing, which is mainly performed by the distributed task management server unit.
【0064】ステップS301で、ユーザからの要求に
従い、分散タスク管理サーバ部により分散タスクの生成
を開始する。ここでは、分散タスク管理サーバ部253
により分散タスク21の生成を開始するものとする。続
いて、ステップS302において、分散タスク管理サー
バ部はカーネル部に要求して、分散タスク21を構成す
るタスク11,12を生成する。このタスク11,12
の生成方法に関しては第1の実施形態と同様である。In step S301, the distributed task management server unit starts the generation of the distributed task in accordance with the request from the user. Here, the distributed task management server unit 253
Then, the generation of the distributed task 21 is started. Subsequently, in step S302, the distributed task management server unit requests the kernel unit to generate the tasks 11 and 12 configuring the distributed task 21. This task 11, 12
The generation method of is similar to that of the first embodiment.
【0065】次にステップS303において、分散タス
ク管理サーバ部は、どの計算機上の物理メモリを使用し
て分散タスクを構成するかを決定する。この決定は、あ
らかじめユーザによって、分散タスク生成時に指定され
ていても構わないし、分散タスク管理サーバ部によって
自動的に行なわれても構わない。本実施形態ではこの決
定方法を特に限定しない。また、分散タスクの全メモリ
空間をある一つの計算機上の物理メモリで構成しても構
わないし、また、適当に分割した単位またはページ単位
でメモリ空間を分割し、それぞれ異なる計算機上の物理
メモリを割り当てるようにしても構わない。Next, in step S303, the distributed task management server unit determines which computer physical memory is used to configure the distributed task. This determination may be designated in advance by the user when the distributed task is generated, or may be automatically performed by the distributed task management server unit. In this embodiment, this determination method is not particularly limited. Further, the total memory space of the distributed task may be configured by the physical memory on one computer, or the memory space may be divided into appropriately divided units or page units, and the physical memory on different computers may be divided. You may assign it.
【0066】次に、ステップS304において、分散タ
スク管理サーバ部は、上記の決定にしたがって、カーネ
ル部に要求して、タスクを構成するのに必要なだけの物
理メモリを共有メモリとして確保するとともに、他の計
算機上の物理メモリを用いる場合はその物理メモリを特
定するキーを獲得する。例えば、分散タスク管理サーバ
部253は、自計算機である計算機201上の物理メモ
リを確保する際には、直接カーネル部251に要求して
物理メモリの確保を行う。また、計算機201以外の計
算機、例えば計算機301の物理メモリを確保する際に
は、計算機301上の分散タスク管理サーバ部353を
経由して、カーネル部351に対して要求を行い、物理
メモリを確保するとともに、そのキーを獲得する。Next, in step S304, the distributed task management server unit makes a request to the kernel unit according to the above determination to secure as many physical memories as necessary to configure a task as a shared memory, and When the physical memory on another computer is used, a key for specifying the physical memory is acquired. For example, the distributed task management server unit 253 directly requests the kernel unit 251 to secure the physical memory when securing the physical memory on the computer 201, which is its own computer. Further, when securing a physical memory of a computer other than the computer 201, for example, the computer 301, a request is made to the kernel unit 351 via the distributed task management server unit 353 on the computer 301 to secure the physical memory. And earn the key.
【0067】次に、ステップS305において、もし、
ステップS304で計算機201以外の計算機、例えば
計算機301の物理メモリを確保していた場合に、分散
タスク管理サーバ部253は、キーを引数にカーネル部
251に要求して、上記物理メモリを参照して直接扱え
る(Read/Write可能)ようにする。この処理
も第1の実施形態と同様である。Next, in step S305, if
When the physical memory of the computer other than the computer 201, for example, the computer 301 is secured in step S304, the distributed task management server unit 253 requests the kernel unit 251 with a key as an argument and refers to the physical memory. Be able to handle directly (Read / Write possible). This processing is also similar to that of the first embodiment.
【0068】次に、分散タスク管理サーバ部253は、
ステップS306で、直接扱えるようになった物理メモ
リに対して、対応する内容を第1の実施形態の場合と同
様に埋める。Next, the distributed task management server unit 253
In step S306, the corresponding contents are filled in the physical memory that can be directly handled as in the case of the first embodiment.
【0069】次に、ステップS307で、分散タスク管
理サーバ部は、カーネル部に要求して、内容を埋めた物
理メモリを、分散タスクを構成する複数のタスクにそれ
ぞれマップする。タスク11に対しては、直接カーネル
部251に要求して、タスク12に対しては、分散タス
ク管理サーバ部353を経由してカーネル部351に要
求してマップを行う。Next, in step S307, the distributed task management server unit requests the kernel unit to map the physical memory in which the contents are filled into a plurality of tasks constituting the distributed task. For the task 11, the kernel unit 251 is directly requested, and for the task 12, the kernel unit 351 is requested via the distributed task management server unit 353 to perform mapping.
【0070】次に、ステップS308において、分散タ
スク管理サーバ部は、カーネル部に要求して、スレッド
31,32,33を生成、実行する。このスレッド3
1,32,33の生成、実行に関しては、第1の実施形
態と同様である。Next, in step S308, the distributed task management server unit requests the kernel unit to generate and execute the threads 31, 32, 33. This thread 3
The generation and execution of 1, 32 and 33 are the same as in the first embodiment.
【0071】以上で第2の実施形態における分散タスク
21の生成実行処理が終了となる。この分散タスク生成
実行の際、分散タスクを構成するタスクをどの計算機上
に生成するか、とか、どのタスク内にスレッドをいくつ
生成するか、といったことは、ユーザが直接指定して
も、また分散タスク管理サーバ部などが自動的に判断し
ても構わない。本実施形態ではこれらを特に制限しな
い。With the above, the generation / execution processing of the distributed task 21 in the second embodiment is completed. When creating and executing this distributed task, users can specify directly on which computer the tasks that make up the distributed task will be created, and how many threads will be created in which task. The task management server unit may automatically make the determination. In the present embodiment, these are not particularly limited.
【0072】以上説明した第2の実施形態による処理手
順をまとめると次のようになる。即ち、分散タスクを生
成する処理を開始すると、まず複数の計算機上に、分散
タスクを構成する複数のタスクをそれぞれ生成し、この
分散タスクを構成する物理メモリを複数の計算機上にど
のように配置するかを決定する。配置が決定された物理
メモリは、各計算機上の物理メモリとして確保し、参照
の際に物理メモリを一意に特定するためのキーとなる値
を決定する。ここで、確保された物理メモリのうち、参
照の手続を行なわないと直接的に扱うことができない物
理メモリがあった場合には、決定されたキーをもとに対
応する物理メモリを参照して直接アクセス可能とする。
そして、確保した、または、確保し参照した物理メモリ
に、対応する内容(プログラムテキスト、データなど)
を設定し、上記内容を設定した物理メモリを、上記複数
のタスクの仮想アドレス空間にそれぞれマップし、上記
複数のタスク内部に、複数のスレッドを生成、実行す
る。The processing procedure according to the second embodiment described above is summarized as follows. That is, when the process of creating a distributed task is started, first, a plurality of tasks that make up a distributed task are created on a plurality of computers, and how the physical memory that makes up this distributed task is placed on a plurality of computers. Decide what to do. The physical memory whose arrangement has been determined is secured as a physical memory on each computer, and a key value for uniquely identifying the physical memory at the time of reference is determined. Here, if there is a physical memory that cannot be directly handled without performing the reference procedure among the secured physical memory, refer to the corresponding physical memory based on the determined key. Allow direct access.
Then, the content (program text, data, etc.) corresponding to the reserved physical memory or the reserved physical memory.
To map the physical memory with the above contents set to the virtual address spaces of the plurality of tasks, and generate and execute a plurality of threads inside the plurality of tasks.
【0073】以上説明したように、上記各実施形態によ
れば、分散タスクを構成するために複数の計算機上に生
成する複数のタスクのメモリ空間を、ハード分散共有メ
モリ機構を利用して共有することが可能となる。そし
て、これを利用して、それら複数のタスクを一つの分散
タスクとして管理し、その分散タスク内部に複数のスレ
ッドを生成し、複数の計算機上の複数のプロセッサを活
用して並列実行することも可能となる。従って、ハード
分散共有メモリ機構を利用した分散タスク/スレッド機
構が実現でき、個々の計算機の独立性を保ちつつ、かつ
ハード分散共有メモリ機構を活かして効率のよい分散並
列処理を実現できる、という効果を奏する。As described above, according to each of the above embodiments, the memory space of a plurality of tasks generated on a plurality of computers to form a distributed task is shared by using the hard distributed shared memory mechanism. It becomes possible. Then, by utilizing this, these multiple tasks can be managed as one distributed task, multiple threads can be created inside the distributed task, and parallel execution can be performed by utilizing multiple processors on multiple computers. It will be possible. Therefore, it is possible to realize a distributed task / thread mechanism that uses the hard distributed shared memory mechanism, and it is possible to realize efficient distributed parallel processing while maintaining the independence of individual computers and utilizing the hard distributed shared memory mechanism. Play.
【0074】なお、本発明は、複数種類の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用してもよ
い。The present invention may be applied to a system including a plurality of types of devices (for example, host computer, interface device, reader, printer, etc.).
【0075】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。Further, an object of the present invention is to supply a storage medium storing program codes of software for realizing the functions of the above-described embodiments to a system or an apparatus, and to provide a computer (or CPU) of the system or apparatus.
And MPU) read and execute the program code stored in the storage medium.
【0076】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。In this case, the program code itself read from the storage medium implements the functions of the above-described embodiment, and the storage medium storing the program code constitutes the present invention.
【0077】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。As a storage medium for supplying the program code, for example, a floppy disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD
-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
【0078】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。When the computer executes the readout program code, not only the functions of the above-described embodiment are realized, but also the OS (Operating System) running on the computer based on the instruction of the program code. ) May perform some or all of the actual processing, and the processing may realize the functions of the above-described embodiments.
【0079】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。Further, after the program code read from the storage medium is written into a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, based on the instruction of the program code, It goes without saying that the CPU included in the function expansion board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
【0080】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図6のメモリマップ例に示す各モジュールを
記憶媒体に格納することになる。When the present invention is applied to the above-mentioned storage medium, the storage medium stores the program code corresponding to the above-mentioned flow chart. Briefly, in the memory map example of FIG. Each module shown will be stored in the storage medium.
【0081】すなわち、少なくとも「生成処理モジュー
ル」、「確保処理モジュール」、「管理処理モジュー
ル」および「アクセス処理モジュール」の各モジュール
のプログラムコードを記憶媒体に格納すればよい。That is, at least the program codes of the "generation processing module", "securing processing module", "management processing module" and "access processing module" may be stored in the storage medium.
【0082】ここで、生成処理モジュールは、自身の情
報処理装置及びハードウエア分散共有メモリ機構によっ
て接続された複数の外部情報処理装置に分散配置される
複数のタスクで構成される分散タスクを生成する生成処
理を実現するためのプログラムモジュールである。ま
た、確保処理モジュールは、上記分散タスクの実行のた
めに使用する仮想メモリ領域に対応する物理メモリ領域
を、当該情報処理装置及び上記複数の外部情報処理装置
の物理メモリより確保する確保処理を実行するためのプ
ログラムモジュールである。また、管理処理モジュール
は、上記確保処理で確保された物理メモリ領域と前記仮
想メモリ領域とを対応づける管理処理を実現するプログ
ラムモジュールである。更にアクセス処理モジュール
は、上記分散タスクの各タスクの実行において発生する
仮想メモリ領域の使用に応じて、上記管理処理によって
対応付けられた物理メモリ領域を、上記ハードウエア分
散共有メモリ機構を用いて直接的にアクセスするアクセ
ス処理を実現するためのプログラムモジュールである。Here, the generation processing module generates a distributed task composed of a plurality of tasks which are distributed and arranged in a plurality of external information processing apparatuses connected by the information processing apparatus of its own and the hardware distributed shared memory mechanism. It is a program module for realizing the generation processing. In addition, the reservation processing module executes a reservation process that reserves a physical memory area corresponding to a virtual memory area used for executing the distributed task from the physical memory of the information processing apparatus and the plurality of external information processing apparatuses. It is a program module for doing. The management processing module is a program module that realizes management processing for associating the physical memory area secured by the securing processing with the virtual memory area. Further, the access processing module directly uses the hardware distributed shared memory mechanism to directly allocate the physical memory area associated by the management processing according to the use of the virtual memory area generated in the execution of each task of the distributed task. This is a program module for realizing an access process for physically accessing.
【0083】[0083]
【発明の効果】以上説明したように、本発明にれば、ハ
ードウエア分散共有メモリ機構を利用した分散タスク/
スレッド機構を実現し、個々の計算機の独立性を保ちつ
つ、かつハード分散共有メモリ機構を活かして効率のよ
い分散並列処理を実現することが可能となる。As described above, according to the present invention, distributed tasks / tasks utilizing the hardware distributed shared memory mechanism can be used.
It is possible to realize a thread mechanism and maintain the independence of each computer, and to realize efficient distributed parallel processing by utilizing the hard distributed shared memory mechanism.
【0084】また、本発明によれば、分散タスクの実行
において物理メモリ領域が対応付けられていない仮想メ
モリ領域の使用が発生した場合に、当該仮想メモリ領域
に物理メモリ領域の対応づけを行うので、分散タスクが
生成されるとすぐにスレッド生成及び実行を開始する事
が可能となる。Further, according to the present invention, when the use of the virtual memory area to which the physical memory area is not associated occurs in the execution of the distributed task, the physical memory area is associated with the virtual memory area. As soon as a distributed task is created, it is possible to start thread creation and execution.
【0085】また、本発明によれば、使用すべき仮想メ
モリ領域に対応する物理メモリ領域が、外部の他の情報
処理装置のいずれかに確保されていると判断された場
合、当該仮想メモリ領域をその物理メモリ領域へ対応づ
けることが可能となる。このため、当該分散タスク内で
共通の仮想メモリ領域がシステム内で唯一の物理メモリ
領域に対応付けられることになり、各タスクで当該物理
メモリ領域を共有することが可能となる。Further, according to the present invention, when it is determined that the physical memory area corresponding to the virtual memory area to be used is secured in any other external information processing apparatus, the virtual memory area is determined. Can be associated with the physical memory area. Therefore, the common virtual memory area in the distributed task is associated with the only physical memory area in the system, and the tasks can share the physical memory area.
【0086】また、本発明によれば、生成された分散タ
スクの実行に先立って、該分散タスクが使用する全仮想
メモリ領域に対応する物理メモリ領域を確保するので、
当該分散タスクが実行されてからはページフォールト等
の発生が無くなり、高速な処理が実現できる。Further, according to the present invention, the physical memory area corresponding to all virtual memory areas used by the distributed task is secured prior to the execution of the generated distributed task.
After the distributed task is executed, page faults and the like do not occur, and high-speed processing can be realized.
【0087】[0087]
【図1】第1の実施形態による計算機システムの構成を
説明するブロック図である。FIG. 1 is a block diagram illustrating a configuration of a computer system according to a first embodiment.
【図2】第1の実施形態によるOSや分散タスクの関係
を示す概念図である。FIG. 2 is a conceptual diagram showing a relationship between an OS and a distributed task according to the first embodiment.
【図3】主に分散タスク管理サーバ部が主体で行なう、
分散タスク生成、スレッド生成・実行処理の流れを示す
フローチャートである。FIG. 3 is mainly performed by a distributed task management server unit,
7 is a flowchart showing the flow of distributed task generation and thread generation / execution processing.
【図4】ページフォールト発生以降のページフォールト
処理により、タスクのメモリ空間を共有する処理の流れ
を示すフローチャートである。FIG. 4 is a flowchart showing a flow of processing for sharing a memory space of tasks by page fault processing after a page fault occurs.
【図5】分散タスク管理サーバ部が主体で行なう、分散
タスク生成、スレッド生成・実行処理の流れを示すフロ
ーチャートである。FIG. 5 is a flowchart showing the flow of distributed task generation and thread generation / execution processing, which is mainly performed by the distributed task management server unit.
【図6】本発明に関わる制御プログラムの構造的特徴を
表す図である。FIG. 6 is a diagram showing structural features of a control program according to the present invention.
101 通信回線 102 CPU間割込み機構 201,301,401 計算機 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 スレッド101 communication line 102 inter-CPU interrupt mechanism 201, 301, 401 computer 202, 203, 302, 303, 304, 402, 4
03 Processor 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 part 252,352,452 distributed shared memory management server unit 253,353,453 distributed task management server unit 11,12,13,14 tasks 21,22 distributed task 31,32,34,35,36,37 threads
Claims (18)
複数の外部情報処理装置と物理メモリを相互に共有可能
に接続された情報処理装置であって、 当該情報処理装置及び前記複数の外部情報処理装置に分
散配置された複数のタスクで構成される分散タスクを生
成する生成手段と、 前記分散タスクの実行のために使用する仮想メモリ領域
に対応する物理メモリ領域を、当該情報処理装置及び前
記複数の外部情報処理装置の物理メモリより確保する確
保手段と、 前記確保手段で確保された物理メモリ領域と前記仮想メ
モリ領域との対応を管理する管理手段と、 前記分散タスクの各タスクの実行において発生する仮想
メモリ領域の使用に応じて、前記管理手段によって対応
付けられた物理メモリ領域を前記ハードウエア分散共有
メモリ機構を用いてアクセスするアクセス手段とを備え
ることを特徴とする情報処理装置。1. An information processing apparatus in which a plurality of external information processing apparatuses and physical memories are connected to each other by a hardware distributed shared memory mechanism so that the physical memories can be shared by the information processing apparatus and the plurality of external information processing apparatuses. A generation unit configured to generate a distributed task including a plurality of tasks arranged in a distributed manner, and a physical memory area corresponding to a virtual memory area used for executing the distributed task, the information processing apparatus and the plurality of external units. A securing unit that secures from the physical memory of the information processing device, a managing unit that manages the correspondence between the physical memory area secured by the securing unit and the virtual memory area, and a virtual that occurs during execution of each task of the distributed task. Depending on the use of the memory area, the physical memory area associated by the management means is used by the hardware distributed shared memory mechanism. The information processing apparatus characterized by comprising an access means for accessing Te.
仮想メモリ領域の使用が発生した場合、前記複数の外部
情報処理装置において当該仮想メモリ領域に対応する物
理メモリ領域が確保されているか否かを判断する判断手
段を更に備え、 前記管理手段は、前記判断手段によって、当該仮想メモ
リ領域に対応する物理メモリ領域が確保されていると判
断された場合、その物理メモリ領域を当該仮想メモリ領
域に対応する物理メモリ領域として対応付けることを特
徴とする請求項1に記載の情報処理装置。2. When a use of a virtual memory area that is not managed by the management unit occurs, it is determined whether or not a physical memory area corresponding to the virtual memory area is secured in the plurality of external information processing devices. When the determination means determines that the physical memory area corresponding to the virtual memory area is secured, the management means associates the physical memory area with the virtual memory area. The information processing apparatus according to claim 1, wherein the information processing apparatus is associated as a physical memory area.
行においてページフォールトが発生した場合に実行され
ることを特徴とする請求項2に記載の情報処理装置。3. The information processing apparatus according to claim 2, wherein the determination unit is executed when a page fault occurs during execution of the access unit.
領域に対応する物理メモリ領域がいずれの外部情報処理
装置によっても確保されていないと判断された場合、前
記確保手段を実行する制御手段を更に備えることを特徴
とする請求項2に記載の情報処理装置。4. A control means for executing the securing means when the determining means determines that the physical memory area corresponding to the virtual memory area is not secured by any external information processing device. The information processing apparatus according to claim 2, wherein:
される複数の仮想メモリ領域に対応づけられた複数の物
理メモリ領域と、各物理メモリ領域を特定するための特
定情報とを対応づける管理テーブルを参照して、前記実
行手段が使用する仮想メモリ領域に対応する物理メモリ
領域が存在するか否かを判断し、 前記管理手段は、前記判断手段によって、当該仮想メモ
リ領域に対応する物理メモリ領域が確保されていると判
断された場合、前記管理テーブルの特定情報に基づいて
その物理メモリ領域を獲得し、当該仮想メモリ領域に対
応する物理メモリ領域として対応付けることを特徴とす
る請求項2に記載の情報処理装置。5. The management means associates a plurality of physical memory areas associated with a plurality of virtual memory areas used in the distributed task with identification information for identifying each physical memory area. By referring to the table, it is determined whether or not there is a physical memory area corresponding to the virtual memory area used by the executing means, and the management means causes the determining means to determine the physical memory corresponding to the virtual memory area. When it is determined that the area is secured, the physical memory area is acquired based on the specific information of the management table, and is associated as the physical memory area corresponding to the virtual memory area. The information processing device described.
使用する仮想メモリ領域のアドレスを対応する物理メモ
リ領域のアドレスへ変換することを特徴とする請求項1
乃至5のいずれかに記載の情報処理装置。6. The management means converts an address of a virtual memory area used in the execution means into an address of a corresponding physical memory area.
6. The information processing device according to any one of 5 to 5.
クの各タスク内にスレッドを生成し、生成された各スレ
ッドを実行するものであることを特徴とする請求項1乃
至6のいずれかに記載の情報処理装置。7. The execution of the distributed task is to create a thread in each task of the distributed task and execute each created thread. The information processing device according to 1.
生成された分散タスクの実行に先立って、該分散タスク
が使用する全仮想メモリ領域に対応する物理メモリ領域
を確保することを特徴とする請求項1に記載の情報処理
装置。8. The securing means secures a physical memory area corresponding to all virtual memory areas used by the distributed task prior to execution of the distributed task generated by the generating means. The information processing device according to item 1.
複数の情報処理装置が物理メモリを相互に共有可能に接
続された情報処理システムであって、 前記複数の情報処理装置に分散配置された複数のタスク
で構成される分散タスクを生成する生成手段と、 前記複数の情報処理装置の夫々において、前記分散タス
クの実行のために使用する仮想メモリ領域に対応する物
理メモリ領域を、該複数の情報処理装置の備える物理メ
モリより確保する確保手段と、 前記複数の情報処理装置の夫々において、前記確保手段
で確保された物理メモリ領域と前記仮想メモリ領域との
対応を管理する管理手段と、 前記複数の情報処理装置の夫々において、前記分散タス
クの各タスクの実行において発生する仮想メモリ領域の
使用に応じて、前記管理手段によって対応付けられた物
理メモリ領域を前記ハードウエア分散共有メモリ機構を
用いてアクセスするアクセス手段とを備えることを特徴
とする情報処理システム。9. An information processing system in which a plurality of information processing devices are connected by a hardware distributed shared memory mechanism so that physical memories can be shared by each other, and a plurality of tasks distributed in the plurality of information processing devices. And a physical memory area corresponding to a virtual memory area used for the execution of the distributed task in each of the plurality of information processing apparatuses. Securing means for securing from a physical memory included in the information processing device, managing means for managing the correspondence between the physical memory area secured by the securing means and the virtual memory area in each of the plurality of information processing devices; In each of the processing devices, the management unit is controlled by the management unit according to the use of the virtual memory area generated in the execution of each task of the distributed task. 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. A control method in an information processing system in which a plurality of information processing devices are connected by a hardware distributed shared memory mechanism so that physical memories can be shared by each other, the information processing device and the plurality of external information processing devices. A generation step of generating a distributed task composed of a plurality of tasks distributed in a device, and a physical memory area corresponding to a virtual memory area used for executing the distributed task, Securement step of securing from the physical memory of the external information processing device, a management step of associating the physical memory area secured in the securing step with the virtual memory area, and a virtual process that occurs during execution of each task of the distributed task. According to the use of the memory area, the physical memory area associated by the management process is shared by the hardware. Control method characterized by comprising an access step of accessing using the memory mechanism.
い仮想メモリ領域の使用が発生した場合、前記複数の外
部情報処理装置において当該仮想メモリ領域に対応する
物理メモリ領域が確保されているか否かを判断する判断
工程を更に備え、 前記管理工程は、前記判断工程によって、当該仮想メモ
リ領域に対応する物理メモリ領域が確保されていると判
断された場合、その物理メモリ領域を当該仮想メモリ領
域に対応する物理メモリ領域として対応付けることを特
徴とする請求項10に記載の制御方法。11. When a use of a virtual memory area that is not managed by the management step occurs, it is determined whether a physical memory area corresponding to the virtual memory area is secured in the plurality of external information processing devices. When the determination step determines that the physical memory area corresponding to the virtual memory area is secured, the management step assigns the physical memory area to the virtual memory area. 11. The control method according to claim 10, wherein the control is performed as a physical memory area.
実行においてページフォールトが発生した場合に実行さ
れることを特徴とする請求項11に記載の制御方法。12. The control method according to claim 11, wherein the determination step is executed when a page fault occurs during execution of the access step.
リ領域に対応する物理メモリ領域がいずれの外部情報処
理装置によっても確保されていないと判断された場合、
前記確保工程を実行する制御工程を更に備えることを特
徴とする請求項11に記載の制御方法。13. If the determination step determines that the physical memory area corresponding to the virtual memory area is not secured by any external information processing device,
The control method according to claim 11, further comprising a control step of executing the securing step.
用される複数の仮想メモリ領域に対応づけられた複数の
物理メモリ領域と、各物理メモリ領域を特定するための
特定情報とを対応づける管理テーブルを参照して、前記
実行工程が使用する仮想メモリ領域に対応する物理メモ
リ領域が存在するか否かを判断し、 前記管理工程は、前記判断工程によって、当該仮想メモ
リ領域に対応する物理メモリ領域が確保されていると判
断された場合、前記管理テーブルの特定情報に基づいて
その物理メモリ領域を獲得し、当該仮想メモリ領域に対
応する物理メモリ領域として対応付けることを特徴とす
る請求項11に記載の制御方法。14. The management in which the determination step associates a plurality of physical memory areas associated with a plurality of virtual memory areas used in the distributed task with identification information for identifying each physical memory area. By referring to the table, it is determined whether or not there is a physical memory area corresponding to the virtual memory area used by the execution step, and the management step includes the physical memory corresponding to the virtual memory area by the determination step. 12. When it is determined that the area is secured, the physical memory area is acquired based on the specific information of the management table and is associated with the virtual memory area as a physical memory area. The described control method.
て使用する仮想メモリ領域のアドレスを対応する物理メ
モリ領域のアドレスへ変換することを特徴とする請求項
10乃至14のいずれかに記載の制御方法。15. The control method according to claim 10, wherein the managing step converts an address of a virtual memory area used in the executing step into an address of a corresponding physical memory area. .
スクの各タスク内にスレッドを生成し、生成された各ス
レッドを実行するものであることを特徴とする請求項1
0乃至15のいずれかに記載の制御方法。16. The execution of the distributed task is to create a thread in each task of the distributed task and execute each created thread.
16. The control method according to any one of 0 to 15.
て生成された分散タスクの実行に先立って、該分散タス
クが使用する全仮想メモリ領域に対応する物理メモリ領
域を確保することを特徴とする請求項10に記載の制御
方法。17. The securing step secures a physical memory area corresponding to all virtual memory areas used by the distributed task, prior to execution of the distributed task generated by the generating step. Item 11. The control method according to Item 10.
り複数の情報処理装置が物理メモリを相互に共有可能に
接続された情報処理装置のためのプログラムコードが格
納されたコンピュータ可読メモリであって、 当該情報処理装置及び前記複数の外部情報処理装置に分
散配置された複数のタスクで構成される分散タスクを生
成する生成工程のコードと、 前記分散タスクの実行のために使用する仮想メモリ領域
に対応する物理メモリ領域を、当該情報処理装置及び前
記複数の外部情報処理装置の物理メモリより確保する確
保工程のコードと、 前記確保工程で確保された物理メモリ領域と前記仮想メ
モリ領域とを対応づける管理工程のコードと、 前記分散タスクの各タスクの実行において発生する仮想
メモリ領域の使用に応じて、前記管理工程によって対応
付けられた物理メモリ領域を前記ハードウエア分散共有
メモリ機構を用いてアクセスするアクセス工程のコード
とを備えることを特徴とするコンピュータ可読メモリ。18. A computer readable memory storing a program code for an information processing device, wherein a plurality of information processing devices are connected to each other so that a physical memory can be shared by a hardware distributed shared memory mechanism. A code of a generation process for generating a distributed task composed of a plurality of tasks distributed in a processing device and the plurality of external information processing devices, and a physical memory corresponding to a virtual memory area used for executing the distributed task. A code of a securing step of securing a memory area from the physical memory of the information processing apparatus and the plurality of external information processing apparatuses, and a management step of associating the physical memory area secured in the securing step with the virtual memory area. The management step according to the use of the code and the virtual memory area generated in the execution of each task of the distributed task. 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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8138635A 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 |
---|---|---|---|
JP8138635A 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 JPH09319653A (en) | 1997-12-12 |
Family
ID=15226658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8138635A 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)
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 |
-
1996
- 1996-05-31 JP JP8138635A patent/JPH09319653A/en not_active Withdrawn
Cited By (6)
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 |
---|---|---|
CN112099941B (en) | Method, equipment and system for realizing hardware acceleration processing | |
US10747673B2 (en) | System and method for facilitating cluster-level cache and memory space | |
US8972991B2 (en) | Systems and methods for exposing processor topology for virtual machines | |
EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
US8312201B2 (en) | Managing memory allocations loans | |
US8112611B2 (en) | Allocating resources to partitions in a partitionable computer | |
US20170075818A1 (en) | Memory management method and device | |
US7971026B2 (en) | Information processing apparatus and access control method | |
JP2004326754A (en) | Management of virtual computer for utilizing shared resource | |
CN113674133A (en) | GPU cluster shared video memory system, method, device and equipment | |
JP2000330806A (en) | Computer system | |
US7689765B2 (en) | Control apparatus of storage unit, and method of controlling the control apparatus of storage unit | |
JP2001051959A (en) | Interconnected process node capable of being constituted as at least one numa(non-uniform memory access) data processing system | |
JPWO2009069326A1 (en) | Network boot system | |
US20090182893A1 (en) | Cache coherence in a virtual machine managed system | |
WO2010097925A1 (en) | Information processing device | |
US6598049B1 (en) | Data structure identifying method and recording medium | |
US7793051B1 (en) | Global shared memory subsystem | |
CN107832097B (en) | Data loading method and device | |
JP2017033375A (en) | Parallel calculation system, migration method, and migration program | |
JPH09319653A (en) | Information processor, information processing system and control method for the same | |
JPH1063525A (en) | Information processor, and information processing system and control method therefor | |
CN110447019B (en) | Memory allocation manager and method for managing memory allocation performed thereby | |
JP3169624B2 (en) | Interprocessor communication method and parallel processor therefor | |
García-Guirado et al. | Energy-efficient cache coherence protocols in chip-multiprocessors for server consolidation |
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 |