JPH04155465A - ファイル共用方法 - Google Patents
ファイル共用方法Info
- Publication number
- JPH04155465A JPH04155465A JP2279074A JP27907490A JPH04155465A JP H04155465 A JPH04155465 A JP H04155465A JP 2279074 A JP2279074 A JP 2279074A JP 27907490 A JP27907490 A JP 27907490A JP H04155465 A JPH04155465 A JP H04155465A
- Authority
- JP
- Japan
- Prior art keywords
- file
- page
- program
- external
- storage device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 64
- 230000015654 memory Effects 0.000 claims description 90
- 230000006854 communication Effects 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 33
- 238000012546 transfer Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 66
- 238000010586 diagram Methods 0.000 description 25
- 238000007726 management method Methods 0.000 description 24
- 238000013507 mapping Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000006378 damage Effects 0.000 description 2
- 235000006732 Torreya nucifera Nutrition 0.000 description 1
- 244000111306 Torreya nucifera Species 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011888 foil Substances 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は計算機システムにおけるファイルアクセス方法
およびそのシステムに係わる。特にマルチプロセッサシ
ステムにおいてファイル共用する場合のアクセス方法お
よびシステムに関する。
およびそのシステムに係わる。特にマルチプロセッサシ
ステムにおいてファイル共用する場合のアクセス方法お
よびシステムに関する。
一般に計算機システムにおいては、ファイルが配置され
る外部記憶装置の構造をプログラムが意識せずに済むよ
うに、オペレーティングシステム(以下O8と略す)は
、アクセスマクロを提供している。
る外部記憶装置の構造をプログラムが意識せずに済むよ
うに、オペレーティングシステム(以下O8と略す)は
、アクセスマクロを提供している。
プログラムは、仮想領域に入出カバソファを配置してお
き、アクセスマクロ(GET/PUTマクロ)を発行す
るだけでよい。プログラムがアクセスマクロを発生する
とO8(第2図中、データ管理)に制御が移り、O8は
外部記憶装置の物理的特性に適したチャネルプログラム
を作成する。
き、アクセスマクロ(GET/PUTマクロ)を発行す
るだけでよい。プログラムがアクセスマクロを発生する
とO8(第2図中、データ管理)に制御が移り、O8は
外部記憶装置の物理的特性に適したチャネルプログラム
を作成する。
またO8(第2図中、ハードウェア管理、メモリ管理)
は、入出力バッファやチャネルプログラムに割当てた主
記憶装置中のページが、他のプログラムに割当てられな
いようページを固定し、さらにチャネルプログラム内の
仮想アドレスを実アドレスに変換したのち、チャネルを
起動する。この方法は、鎌田肇著「多重仮想記憶オペレ
ーティングシステム」 (オーム社)第81頁から第9
5頁に記載されている。
は、入出力バッファやチャネルプログラムに割当てた主
記憶装置中のページが、他のプログラムに割当てられな
いようページを固定し、さらにチャネルプログラム内の
仮想アドレスを実アドレスに変換したのち、チャネルを
起動する。この方法は、鎌田肇著「多重仮想記憶オペレ
ーティングシステム」 (オーム社)第81頁から第9
5頁に記載されている。
一方、大規模システムでは、複数のプロセッサを結合し
たマルチプロセッサ(以下、LCMP :Loosse
ly Couples Multi Processo
rと呼ぶ。)構成を採用する場合が多い。LCMPシス
テムでは、複数のプロセッサ上のプログラムによるファ
イルへのアクセスが競合することがある。これを防止す
るためにプロセッサ間で排他制御をする必要がある。
たマルチプロセッサ(以下、LCMP :Loosse
ly Couples Multi Processo
rと呼ぶ。)構成を採用する場合が多い。LCMPシス
テムでは、複数のプロセッサ上のプログラムによるファ
イルへのアクセスが競合することがある。これを防止す
るためにプロセッサ間で排他制御をする必要がある。
排他制御の方法は、特開昭62−145349に開示さ
れている。この方法を以下に説明する。あるプロセッサ
をロックマネージャとしておき、他のプロセッサからは
、資源をアクセスする前にロックマネージャにアクセス
の許可を求める。アクセスの許可を求めたプロセッサは
、ロックマネージャからの応答に対応して処理を進める
。
れている。この方法を以下に説明する。あるプロセッサ
をロックマネージャとしておき、他のプロセッサからは
、資源をアクセスする前にロックマネージャにアクセス
の許可を求める。アクセスの許可を求めたプロセッサは
、ロックマネージャからの応答に対応して処理を進める
。
上記従来技術には、ファイルを、仮想領域を通してアク
セスする場合のオーバヘッドの増大という問題があった
。さらにLCMPシステムにおいては、排他制御が必要
となり、それに対応する処理時間が、従来技術をそのま
ま用いると、オーバーヘッドとして付加されることにな
る。
セスする場合のオーバヘッドの増大という問題があった
。さらにLCMPシステムにおいては、排他制御が必要
となり、それに対応する処理時間が、従来技術をそのま
ま用いると、オーバーヘッドとして付加されることにな
る。
本発明の目的は、ファイルへのアクセスに伴うオーバー
ヘッドを削減する方法およびシステムを提供することに
ある。
ヘッドを削減する方法およびシステムを提供することに
ある。
本発明の他の目的は、共用ファイルへのアクセスに伴う
競合制御を簡単化し、オーバーヘッドを削減する方法お
よびシステムを提供することにある。
競合制御を簡単化し、オーバーヘッドを削減する方法お
よびシステムを提供することにある。
上記目的は以下のようにして達成される。
仮想記憶方式を採用する複数のプロセッサが、外部記憶
装置を共用するマルチプロセッサシステムにおいて、ペ
ージが配置される外部記録部装置上のアドレスを保持す
る外部ページテーブルを各プロセッサの主記憶上に配置
し、プログラムからのファイルマツプ要求発生時、外部
記憶装置上に配置されるファイルのアドレスを上記外部
ページテーブルに格納し、ページ例外発生時、上記外部
ページテーブルの外部記憶アドレスからファイルを主記
憶へ転送することにより、上記目的は達成される。
装置を共用するマルチプロセッサシステムにおいて、ペ
ージが配置される外部記録部装置上のアドレスを保持す
る外部ページテーブルを各プロセッサの主記憶上に配置
し、プログラムからのファイルマツプ要求発生時、外部
記憶装置上に配置されるファイルのアドレスを上記外部
ページテーブルに格納し、ページ例外発生時、上記外部
ページテーブルの外部記憶アドレスからファイルを主記
憶へ転送することにより、上記目的は達成される。
上記により、ページが配置される外部記憶プロセッサか
らも均一にアクセス可能とする。これにより、ロックマ
ネージャのプロセッサにアクセスの度に、アクセス許可
を求める通信が不要になる。
らも均一にアクセス可能とする。これにより、ロックマ
ネージャのプロセッサにアクセスの度に、アクセス許可
を求める通信が不要になる。
また、外部ページは、各プロセッサの主記憶に配置する
ことにより、ページを読み込む時の処理オーバヘッドを
小さくする。
ことにより、ページを読み込む時の処理オーバヘッドを
小さくする。
ム、
プログラヤからの共用使要求発生時、排他制御管理テー
ブルを参照し、上記ファイルが他プログラムに排他使用
されている場合には、前記他プログラムの排他使用が解
除されるまで上記プログラムの共用使用要求を待たせる
。また、プログラムからの排他使用要求発生時、排他制
御管理テーブルを参照し、上記ファイルが他プログラム
に排他使用または共用使用されている場合には、前記他
プログラムの排他使用または共用使用が解除され乞 るまで上記プログラムの排他使用要求#持たせる。
ブルを参照し、上記ファイルが他プログラムに排他使用
されている場合には、前記他プログラムの排他使用が解
除されるまで上記プログラムの共用使用要求を待たせる
。また、プログラムからの排他使用要求発生時、排他制
御管理テーブルを参照し、上記ファイルが他プログラム
に排他使用または共用使用されている場合には、前記他
プログラムの排他使用または共用使用が解除され乞 るまで上記プログラムの排他使用要求#持たせる。
このようにすることにより、他プロセッサがファイルに
書き込みを行っている最中に、ファイルを読み込んでし
まい不当なデータを参照するような事態を防止する。
書き込みを行っている最中に、ファイルを読み込んでし
まい不当なデータを参照するような事態を防止する。
さらに、上記プログラムから排他使用解除要求発生時、
仮想記憶の内容を上記外部ページテーブルの外部記憶ア
ドレスに転送し、他プロセッサにページキャンセル・メ
ッセージを送信し、ページキャンセル・メッセージを受
信したプロセッサは、該当ページテーブルを無効化する
ことにより、以前ファイルを参照した時に、主記憶に取
り込んだデータを捨て、次に参照するときには、ページ
例外処理により最新のデータを読み込むことができる。
仮想記憶の内容を上記外部ページテーブルの外部記憶ア
ドレスに転送し、他プロセッサにページキャンセル・メ
ッセージを送信し、ページキャンセル・メッセージを受
信したプロセッサは、該当ページテーブルを無効化する
ことにより、以前ファイルを参照した時に、主記憶に取
り込んだデータを捨て、次に参照するときには、ページ
例外処理により最新のデータを読み込むことができる。
これにより、LCMPシステムにおいても、ファイルの
アクセスを高速かつ矛盾なくアクセスすることが可能に
なる。
アクセスを高速かつ矛盾なくアクセスすることが可能に
なる。
外部記憶装置として、プロセッサとの同期転送が可能な
拡散記憶装置を用い、拡張記憶装置上に排他制御情報を
配置することにより、排他制御処理が高速化され、ファ
イルアクセスがさらに高速化される。
拡散記憶装置を用い、拡張記憶装置上に排他制御情報を
配置することにより、排他制御処理が高速化され、ファ
イルアクセスがさらに高速化される。
以下、本発明の実施例を図面を用いて説明する。
第1図は、本発明を適用したLCMPシステムの構成図
である。第1図の構成は次の通りである。
である。第1図の構成は次の通りである。
複数のプロセッサ1に、それぞれ主記憶装置2が接続さ
れている。さらに、複数のプロセッサ1が共用する外部
記憶装置3が設けられている。プロセッサ1は、他のプ
ロセッサ1と信号路6で接続されている。
れている。さらに、複数のプロセッサ1が共用する外部
記憶装置3が設けられている。プロセッサ1は、他のプ
ロセッサ1と信号路6で接続されている。
主記憶装置2には、プロセッサ1で実行されるユーザプ
ログラム100及びシステムプログラム(O8)4が格
納されている。O8内の各プログラムは後述する。さら
に、ページテーブル11および外部ページテーブル12
が格納されている。
ログラム100及びシステムプログラム(O8)4が格
納されている。O8内の各プログラムは後述する。さら
に、ページテーブル11および外部ページテーブル12
が格納されている。
ページテーブル11は、仮想アドレスと主記憶族W2の
実アドレスとの対応関係を示す情報を格納している。外
部ページテーブル12は、仮想アドレスと外部記憶装置
3の実アドレスとの対応関係を示す情報を格納している
。ページテーブル11および外部ページテーブルの詳細
は後述する。なお、主記憶装置2および外部記憶装置3
の各記憶領域はページ単位で管理される。
実アドレスとの対応関係を示す情報を格納している。外
部ページテーブル12は、仮想アドレスと外部記憶装置
3の実アドレスとの対応関係を示す情報を格納している
。ページテーブル11および外部ページテーブルの詳細
は後述する。なお、主記憶装置2および外部記憶装置3
の各記憶領域はページ単位で管理される。
外部記憶装置3には、ファイル20.ファイル2oの管
理情報を格納するファイル管理テーブル8およびファイ
ル20へのアクセスの排他制御をするための排他制御用
ファイル3oが格納されている。
理情報を格納するファイル管理テーブル8およびファイ
ル20へのアクセスの排他制御をするための排他制御用
ファイル3oが格納されている。
以上の構成における動作を説明する。
ユーザプログラム100は仮想記憶10の上で実行され
る(仮想記憶はプログラムを実行する記憶空間であって
、プログラムそのものはプロセッサ1で実行される。)
。ユーザプログラム100は、O84内のファイルマツ
プ処理プログラム110(以下、単にファイルマツプ処
理)を起動し、ページテーブル11の仮想アドレスと主
記憶装置2の実アドレスとの対応関係を無効状態(i@
valid)にし、外部ページテーブル12に仮想記憶
10のアドレス(仮想アドレス)と外部記憶装置3の実
アドレスとの対応関係を格納する。ここで、外部ページ
テーブル12は、ユーザプログラム100の仮想記憶1
0に対応してページ単位に設けられ、外部記憶装置3の
実アドレス(ページ番号)を格納する。外部記憶装置3
の実アドレスは、ファイル20を管理するファイル管理
テーブル8を参照して求める。
る(仮想記憶はプログラムを実行する記憶空間であって
、プログラムそのものはプロセッサ1で実行される。)
。ユーザプログラム100は、O84内のファイルマツ
プ処理プログラム110(以下、単にファイルマツプ処
理)を起動し、ページテーブル11の仮想アドレスと主
記憶装置2の実アドレスとの対応関係を無効状態(i@
valid)にし、外部ページテーブル12に仮想記憶
10のアドレス(仮想アドレス)と外部記憶装置3の実
アドレスとの対応関係を格納する。ここで、外部ページ
テーブル12は、ユーザプログラム100の仮想記憶1
0に対応してページ単位に設けられ、外部記憶装置3の
実アドレス(ページ番号)を格納する。外部記憶装置3
の実アドレスは、ファイル20を管理するファイル管理
テーブル8を参照して求める。
以下の動作説明を簡単にするために、本実施例がとる3
種類のケースに分けて説明する。
種類のケースに分けて説明する。
第1に、ユーザプログラム100がファイルマツプ処理
110を実行した後、初めて(主記憶装置2にないペー
ジを)仮想記憶10をアクセスする場合である。
110を実行した後、初めて(主記憶装置2にないペー
ジを)仮想記憶10をアクセスする場合である。
ユーザプログラム1oが、主記憶装置2上にないページ
(ユーザプログラム100が出力した仮想アドレスに対
応するページが主記憶装置2上にない。)をアクセス′
すると、ユーザプログラム100が出力した仮想アドレ
スに対応するページが主記憶装置i2上にあるか否かが
、ページテーブル11を参照してチエツクされる。この
チエツクプロセッサ1内のアドレス変換回路によって実
行される。この場合、初めての仮想記憶10へのアクセ
スであるので、対応するページは主記憶装置2上にはな
い。このとき、アドレス変換回路は割込みを発生する。
(ユーザプログラム100が出力した仮想アドレスに対
応するページが主記憶装置2上にない。)をアクセス′
すると、ユーザプログラム100が出力した仮想アドレ
スに対応するページが主記憶装置i2上にあるか否かが
、ページテーブル11を参照してチエツクされる。この
チエツクプロセッサ1内のアドレス変換回路によって実
行される。この場合、初めての仮想記憶10へのアクセ
スであるので、対応するページは主記憶装置2上にはな
い。このとき、アドレス変換回路は割込みを発生する。
この割込みをページ例外割込みと呼ぶ。ページ例外割込
みの発生に伴って、O84内のページ例外処理プログラ
ム120(以下、単にページ例外処理と呼ぶ。)が起動
される。ページ例外処理120では、外部ページテーブ
ル12を参照して、ページ例外割込みが発生したページ
(ユーザプログラム100が出した仮想アドレスに対応
するページ)に対応する外部記憶装置3の実(ページ)
アドレスを求める。求めた外部記憶装置3の実アドレス
の内容をページ単位に主記憶装置2の空き領域へ転送す
る。この転送に伴って、ページテーブル11の実アドレ
ス欄に、外部記憶装置3からその内容が転送された主記
憶装° 置2の実アドレス(ページアドレス)を格
納する(ニ ジ例外処理120を終了すると、ユーザプログラム10
0の実行が再開される。ユーザプログラム100からの
アクセスは、ページテーブル11に格納された仮想アド
レスと主記憶装置2上の実アドレスとの対応関係を参照
して、実行される。ページテーブル11を用いたアドレ
ス変換は、前述のアドレス変換回路で実行される。
みの発生に伴って、O84内のページ例外処理プログラ
ム120(以下、単にページ例外処理と呼ぶ。)が起動
される。ページ例外処理120では、外部ページテーブ
ル12を参照して、ページ例外割込みが発生したページ
(ユーザプログラム100が出した仮想アドレスに対応
するページ)に対応する外部記憶装置3の実(ページ)
アドレスを求める。求めた外部記憶装置3の実アドレス
の内容をページ単位に主記憶装置2の空き領域へ転送す
る。この転送に伴って、ページテーブル11の実アドレ
ス欄に、外部記憶装置3からその内容が転送された主記
憶装° 置2の実アドレス(ページアドレス)を格
納する(ニ ジ例外処理120を終了すると、ユーザプログラム10
0の実行が再開される。ユーザプログラム100からの
アクセスは、ページテーブル11に格納された仮想アド
レスと主記憶装置2上の実アドレスとの対応関係を参照
して、実行される。ページテーブル11を用いたアドレ
ス変換は、前述のアドレス変換回路で実行される。
第2に、ユーザプログラム100がアクセスする仮想記
憶10に対応する内容が、主記憶装置2上にある場合で
ある。
憶10に対応する内容が、主記憶装置2上にある場合で
ある。
第1の場合の説明から明らかなように、ページテーブル
11を参照してアドレス変換回路によって、ユーザプロ
グラム100からのアクセスが実行される。
11を参照してアドレス変換回路によって、ユーザプロ
グラム100からのアクセスが実行される。
第3に、第1の場合におけるアクセスが、複数のプロセ
ッサ1で別々に実行されるユーザプログラム100によ
って発生し、かつ外部記憶装置3の同一アトドレス(ペ
ージ)へのアクセスであるいように次のように制御する
。
ッサ1で別々に実行されるユーザプログラム100によ
って発生し、かつ外部記憶装置3の同一アトドレス(ペ
ージ)へのアクセスであるいように次のように制御する
。
ユーザプログラム100は、仮想記憶10へのアクセス
に先立って、O84に対して排他制御を要求する。この
要求に対応して、O84内の排他処理プログラム130
(以下、単に排他処理と呼ぶ。)が起動される。排他処
理130は、排他制御要求の内容に応じて、外部記憶装
置3内の排他制御用ファイル30を更新する。この後、
ユーザプログラム100は仮想記憶10へのアクセスを
する。仮想記憶1oへのアクセスが終了した後、ユーザ
プログラム100は、054に対して排他制御の解除を
要求する。この要求に対応して、排他処理130が起動
され、外部記憶装置3内の排他制御用ファイル30を更
新する。この場合、必要に応じて、ページアウト処理プ
ログラム150(以下、単にページアウト処理と呼ぶ。
に先立って、O84に対して排他制御を要求する。この
要求に対応して、O84内の排他処理プログラム130
(以下、単に排他処理と呼ぶ。)が起動される。排他処
理130は、排他制御要求の内容に応じて、外部記憶装
置3内の排他制御用ファイル30を更新する。この後、
ユーザプログラム100は仮想記憶10へのアクセスを
する。仮想記憶1oへのアクセスが終了した後、ユーザ
プログラム100は、054に対して排他制御の解除を
要求する。この要求に対応して、排他処理130が起動
され、外部記憶装置3内の排他制御用ファイル30を更
新する。この場合、必要に応じて、ページアウト処理プ
ログラム150(以下、単にページアウト処理と呼ぶ。
)および通信処理プログラム140(以下、単に通信処
理と呼ぶ。)を実行する。この詳細は後述する6排他制
御用フアイル30は、説明を分かり易くするためにファ
イル20とは別のものとして説明したが、ファイル20
と同様の一ファイルで良い。
理と呼ぶ。)を実行する。この詳細は後述する6排他制
御用フアイル30は、説明を分かり易くするためにファ
イル20とは別のものとして説明したが、ファイル20
と同様の一ファイルで良い。
したがって、排他処理130からの排他制御用ファイル
30へのアクセスも仮想記憶へのアクセスと同じ処理と
して扱える。ただし、ファイル20への複数プロセッサ
1(ユーザプログラム100)からのアクセスの競合を
制御するために排他制御用ファイル30を設けであるが
、排他制御用ファイル30に対するアクセスの競合を制
御するためのファイルは設けていない。そのための情報
として、排他制御用ファイル内にロックワードを設ける
。このロックワードは、排他制御の要求や、排他制御の
解除の要求に対応してセットされ、それぞれの処理の終
1時にクリアされる。なお、排他制御用ファイル30と
ファイル20との関係は、(1)ファイル20に対応し
て排他制御用ファイル30を設ける、(2)複数のファ
イル20を一括して、一つの排他制御用ファイル30を
設ける、のいずれても良い。(2)の場合、ロックワー
ドは、ファイル20対応に設けても良いし、排他制御用
ファイル30に一つ設けても良い。
30へのアクセスも仮想記憶へのアクセスと同じ処理と
して扱える。ただし、ファイル20への複数プロセッサ
1(ユーザプログラム100)からのアクセスの競合を
制御するために排他制御用ファイル30を設けであるが
、排他制御用ファイル30に対するアクセスの競合を制
御するためのファイルは設けていない。そのための情報
として、排他制御用ファイル内にロックワードを設ける
。このロックワードは、排他制御の要求や、排他制御の
解除の要求に対応してセットされ、それぞれの処理の終
1時にクリアされる。なお、排他制御用ファイル30と
ファイル20との関係は、(1)ファイル20に対応し
て排他制御用ファイル30を設ける、(2)複数のファ
イル20を一括して、一つの排他制御用ファイル30を
設ける、のいずれても良い。(2)の場合、ロックワー
ドは、ファイル20対応に設けても良いし、排他制御用
ファイル30に一つ設けても良い。
ページアウト処理150は、ユーザプログラム100が
内容を更新したページを、主記憶装置2から外部記憶装
置へ書き戻す。この処理と共に、ページテーブル11の
対応するページを無効状態にしても良い。ここで無効状
態にすると5次に述へる通信処理140が不要となる。
内容を更新したページを、主記憶装置2から外部記憶装
置へ書き戻す。この処理と共に、ページテーブル11の
対応するページを無効状態にしても良い。ここで無効状
態にすると5次に述へる通信処理140が不要となる。
通信処理140は、ユーザプログラム100が内容を更
新したページを無効にするように、他のプロセッサ1へ
通知する処理をする。この通知は信号路6を介して行な
われる。この通知を受けとったプロセッサ1では、通信
処理140において。
新したページを無効にするように、他のプロセッサ1へ
通知する処理をする。この通知は信号路6を介して行な
われる。この通知を受けとったプロセッサ1では、通信
処理140において。
ページテーブル11内に対応するページがあれば、それ
を無効状態にする。
を無効状態にする。
以上で、本実施例の概要を説明したが、補足的な説明を
以下に加える。
以下に加える。
ユーザプログラム100は、あるページを主記憶装置2
に確保すると、同一ページ内のアドレスをアクセスする
命令が連続的に実行されるという性質を持つ。したがっ
て、1回の排他制御要求とその解除要求との間で、多く
のアクセス命令が実行されることになる。
に確保すると、同一ページ内のアドレスをアクセスする
命令が連続的に実行されるという性質を持つ。したがっ
て、1回の排他制御要求とその解除要求との間で、多く
のアクセス命令が実行されることになる。
本実施例では、排他制御の要求が、対応するページを参
照するためか、更新するためかによって、その処理を変
えるが、その詳細は後述する。
照するためか、更新するためかによって、その処理を変
えるが、その詳細は後述する。
以下、本実施例をより詳細に説明する。
第3図は、本実施例におけるユーザプログラム100と
O34との関連を示す。ユーザプログラム100は、自
プログラムの仮想記憶領域(10)にファイルをマツプ
するためのFILEMAPマクロを発行する。O84は
、ファイルマツプ処理(110)を実行し、仮想記憶(
10)とファイル(20)とのマツピングを行う。
O34との関連を示す。ユーザプログラム100は、自
プログラムの仮想記憶領域(10)にファイルをマツプ
するためのFILEMAPマクロを発行する。O84は
、ファイルマツプ処理(110)を実行し、仮想記憶(
10)とファイル(20)とのマツピングを行う。
マツピング完了後、ユーザプログラムは、マツピング領
域をアクセスする。
域をアクセスする。
第1回目のアクセスでは、ページ例外割り込みが発生す
る。このページ例外割り込みによって、054はファイ
ルの一部を主記憶装置へ転送する。
る。このページ例外割り込みによって、054はファイ
ルの一部を主記憶装置へ転送する。
これがページ例外処理120の主な処理である。
これにより、ユーザプログラムはファイルのアクセスが
可能になる。主記憶装置にファイルがある場合には、ペ
ージ例外割り込みは発生を伴わず、ユーザプログラムは
ファイルへのアクセスが可能である。
可能になる。主記憶装置にファイルがある場合には、ペ
ージ例外割り込みは発生を伴わず、ユーザプログラムは
ファイルへのアクセスが可能である。
FILEMARマクロの指定の仕方を第4図(a)に示
す。アクセスしようとするファイル名称をオペランドに
指定しマクロを実行すると、OS4は、ファイルをマツ
ピングした仮想記憶の先頭アドレスを返すので、ユーザ
はこのアドレスとファイル内オフセットを加算したアド
レスを参照することにより、ファイルのいずれの領域も
アクセス可能である。
す。アクセスしようとするファイル名称をオペランドに
指定しマクロを実行すると、OS4は、ファイルをマツ
ピングした仮想記憶の先頭アドレスを返すので、ユーザ
はこのアドレスとファイル内オフセットを加算したアド
レスを参照することにより、ファイルのいずれの領域も
アクセス可能である。
次に、本実施例の詳細を第5図、第6図、および第7図
から第9図を加えて説明する。
から第9図を加えて説明する。
まず、ハードウェアのアドレス変換方法について簡単に
説明する。
説明する。
第1図において、仮想記憶(10)および主記憶装置(
2)は、同じ大きさのページに分割される。主記憶装置
(2)上の、ファイルが格納されるエリアは図示してい
ない。仮想記憶(10)から主記憶(2)へのマツピン
グ情報は、ページテーブル(11)に格納される。ペー
ジテーブル(11)の構造は、第5図に示すように主記
憶アドレスを格納するRPNフィールド(llb)と、
RPNフィールド(llb)が有効か否かを示す1ビツ
ト(lla)からなる。このようなページテーブル(1
1)は、仮想記憶空間対応に作られる。
2)は、同じ大きさのページに分割される。主記憶装置
(2)上の、ファイルが格納されるエリアは図示してい
ない。仮想記憶(10)から主記憶(2)へのマツピン
グ情報は、ページテーブル(11)に格納される。ペー
ジテーブル(11)の構造は、第5図に示すように主記
憶アドレスを格納するRPNフィールド(llb)と、
RPNフィールド(llb)が有効か否かを示す1ビツ
ト(lla)からなる。このようなページテーブル(1
1)は、仮想記憶空間対応に作られる。
プログラムが仮想記憶を参照または更新する度に、ハー
ドウェア(アドレス変換回路)は参照または更新アドレ
スに対応する、ページテーブル(11)の1ビツト(l
la)を参照し、エビントがOならばRPNフィールド
(1l b) から主記憶アドレスを求める。■ビッ
ト(lla)が1ならば、ハードウェアはページ例外割
り込みを発生させOSに制御を渡す。
ドウェア(アドレス変換回路)は参照または更新アドレ
スに対応する、ページテーブル(11)の1ビツト(l
la)を参照し、エビントがOならばRPNフィールド
(1l b) から主記憶アドレスを求める。■ビッ
ト(lla)が1ならば、ハードウェアはページ例外割
り込みを発生させOSに制御を渡す。
O8は、ページ例外割り込みが発生したアトLスに対応
する外部ページテーブル(12)に格拳される外部記憶
からページを主記憶装置2に読2込む。外部ページテー
ブル(12)の構造は、16図に示しである。このよう
な外部ページチー;ル(12)は仮想記憶空間対応に作
られる。
する外部ページテーブル(12)に格拳される外部記憶
からページを主記憶装置2に読2込む。外部ページテー
ブル(12)の構造は、16図に示しである。このよう
な外部ページチー;ル(12)は仮想記憶空間対応に作
られる。
第8図は、ファイルマツプ処理(110)を力す。
ファイルマツプ処理(110)は、前述のよそに、ユー
ザプロゲラA (100)がFILEMAP マ’i口
を発行することにより、起動される。
ザプロゲラA (100)がFILEMAP マ’i口
を発行することにより、起動される。
外部記憶装置(3)上のファイル管理テーブノ【(8)
には、ファイル名称とファイルの配置アドレスが格納さ
れている。ファイルマツプ処理(110)は、まず、F
ILEMAPマクロオペランドに指定されるファイル名
をファイル管理テーブル(8)から捜し1、ファイル配
置アドレスとファイルサイズとを求める(ステップ11
1)。求めたファイルサイズ以上の仮想記憶領域を確保
する(ステップ112)、確保した仮想記憶領域に対応
する外部ページテーブル(12)にファイル配置アドレ
スをページ単位に格納する(ステップL 113
)。FILEMAPマクロを発行したユーザプロ5
グラムには、確保した仮想記憶領域の先頭アトレ′
スを渡す。
には、ファイル名称とファイルの配置アドレスが格納さ
れている。ファイルマツプ処理(110)は、まず、F
ILEMAPマクロオペランドに指定されるファイル名
をファイル管理テーブル(8)から捜し1、ファイル配
置アドレスとファイルサイズとを求める(ステップ11
1)。求めたファイルサイズ以上の仮想記憶領域を確保
する(ステップ112)、確保した仮想記憶領域に対応
する外部ページテーブル(12)にファイル配置アドレ
スをページ単位に格納する(ステップL 113
)。FILEMAPマクロを発行したユーザプロ5
グラムには、確保した仮想記憶領域の先頭アトレ′
スを渡す。
第9図は、ページ例外処理(120)の流れを1 示
すものである。ページ例外割り込みが発生した場合、主
記憶装置2に実ページを確保する(ステップ121)。
すものである。ページ例外割り込みが発生した場合、主
記憶装置2に実ページを確保する(ステップ121)。
次に、ページ例外割り込みの発生の要因になったアドレ
スに対応する外部ページテーブル(12)から外部記憶
アドレスを求める(ステップ122)。このアドレスは
、上記ステップ113で格納したアドレスである。この
アドレスをチエネルコマンドに指定し、ファイルの入力
を起動する(ステップ123)。次に、ユーザ′
プログラムをWAITさせ(ステップ124)、転送の
終了を待つ(ステップ125)。転送終了後、ページテ
ーブルの該当エントリを有効にしくステップ126)、
ユーザプログラムを再開させる(ステップ127)。
スに対応する外部ページテーブル(12)から外部記憶
アドレスを求める(ステップ122)。このアドレスは
、上記ステップ113で格納したアドレスである。この
アドレスをチエネルコマンドに指定し、ファイルの入力
を起動する(ステップ123)。次に、ユーザ′
プログラムをWAITさせ(ステップ124)、転送の
終了を待つ(ステップ125)。転送終了後、ページテ
ーブルの該当エントリを有効にしくステップ126)、
ユーザプログラムを再開させる(ステップ127)。
ページ例外処理の実行命令数は、従来のアクセスマクロ
によるファイルアクセス方法に比べ、削減できる。
によるファイルアクセス方法に比べ、削減できる。
次に、マルチプロセッサシステムにおいて、共用するフ
ァイルを更新する場合に、矛盾なくファイルのアクセス
を行うための方法を用いて説明する。
ァイルを更新する場合に、矛盾なくファイルのアクセス
を行うための方法を用いて説明する。
第3図は、本実施例におけるユーザプログラムとO8と
の関連を示すものである。ユーザプログ゛ ラム(10
0)は、自プログラムの仮想記憶領域(10)にファイ
ルをマツプするためのFILENAPマクロを発行する
。O8は、ファイルマツプ処理(110)を実行し、仮
想記憶(1o)とファイル(20)とのマツピングを行
なう。
の関連を示すものである。ユーザプログ゛ ラム(10
0)は、自プログラムの仮想記憶領域(10)にファイ
ルをマツプするためのFILENAPマクロを発行する
。O8は、ファイルマツプ処理(110)を実行し、仮
想記憶(1o)とファイル(20)とのマツピングを行
なう。
ユーザプログラム(100)は、マツピング領域を更新
する前に、ACCESSマクロを発行しく第3図)、フ
ァイル(20)を更新する旨をO84に通知する6通知
を受けたO84は、排他制御処理(130)に制御を渡
す。排他制御処理(130)は、外部記憶装置(3)上
の排他制御用ファイル(30)を参照し、上記ファイル
(20)を使用中のプログラムがいないことを確認し、
ユーザプログラム(100)に制御を渡す。ファイル(
20)を使用中のプログラムがある場合には、当該プロ
グラム(100)を休止(WA r T)状態にL、フ
ァイル(20)を使用中のプログラムがなくなるまで待
たせる。
する前に、ACCESSマクロを発行しく第3図)、フ
ァイル(20)を更新する旨をO84に通知する6通知
を受けたO84は、排他制御処理(130)に制御を渡
す。排他制御処理(130)は、外部記憶装置(3)上
の排他制御用ファイル(30)を参照し、上記ファイル
(20)を使用中のプログラムがいないことを確認し、
ユーザプログラム(100)に制御を渡す。ファイル(
20)を使用中のプログラムがある場合には、当該プロ
グラム(100)を休止(WA r T)状態にL、フ
ァイル(20)を使用中のプログラムがなくなるまで待
たせる。
ACCESSマクロ処理が完了したユーザプログラム(
100)は、初めてマツピング領域のアクセスが許され
る。
100)は、初めてマツピング領域のアクセスが許され
る。
第1回目のアクセスでは、ページ例外割り込みが発生す
るので、O8はファイルの一部を主記憶へ転送する。こ
れにより、ユーザプログラムはファイルのアクセスが可
能である。主記憶にファイルがある場合には、ページ例
外は発生せず直ちにアクセスが可能である。
るので、O8はファイルの一部を主記憶へ転送する。こ
れにより、ユーザプログラムはファイルのアクセスが可
能である。主記憶にファイルがある場合には、ページ例
外は発生せず直ちにアクセスが可能である。
ファイルへのアクセスが完了したならば、ユーザプログ
ラム(100)は、ACCESSマクロを発行し、O8
にファイルへの更新が完了したことを通知する。O8は
、排他制御処理(130)を起動する。排他制御処理(
130)は、外部記憶芸置土の排他制御用ファイル(3
0)を参照し、当該ファイル(20)へのアクセスが待
たされているは。
ラム(100)は、ACCESSマクロを発行し、O8
にファイルへの更新が完了したことを通知する。O8は
、排他制御処理(130)を起動する。排他制御処理(
130)は、外部記憶芸置土の排他制御用ファイル(3
0)を参照し、当該ファイル(20)へのアクセスが待
たされているは。
プログラムがあれ#、他のプロセッサにアクセスが完了
した旨を伝える。
した旨を伝える。
FILEMAPマクロの指定の仕方は第4図(a)に示
しである。アクセスしようとするファイル名称をオペラ
ンドに指定し本マクロを実行すると、O8は、ファイル
をマツピングした仮想記憶の先頭アドレスとO8内で一
意に決まるfile−id を返すので、ユーザはこの
アドレスとファイル内オフセットを加算したアドレスを
参照することにより、ファイルのいずれの領域もアクセ
ス可能である。
しである。アクセスしようとするファイル名称をオペラ
ンドに指定し本マクロを実行すると、O8は、ファイル
をマツピングした仮想記憶の先頭アドレスとO8内で一
意に決まるfile−id を返すので、ユーザはこの
アドレスとファイル内オフセットを加算したアドレスを
参照することにより、ファイルのいずれの領域もアクセ
ス可能である。
第4図(b)は、ACCESSマクロの指定の仕方を示
したものである。
したものである。
file−idは、FILEMAPマクロの実行結果と
して発行元に渡される番号である。O8はこの番号を元
にファイルを特定する。
して発行元に渡される番号である。O8はこの番号を元
にファイルを特定する。
ファイル内アドレスと長さは、プログラムが参照しよう
とするファイル内の領域を指定するものである。
とするファイル内の領域を指定するものである。
排他オプションとは、指定した領域を排他的に使用する
か、共用的に使用するか、または、排他および共用使用
を解除するか、を指定するものである。ユーザプログラ
ム(100)は、ファイルを更新する場合には排他使用
要求を、参照の場合には共用使用要求を指定し、更新ま
たは参照が終了した場合には、解除要求を指定する。
か、共用的に使用するか、または、排他および共用使用
を解除するか、を指定するものである。ユーザプログラ
ム(100)は、ファイルを更新する場合には排他使用
要求を、参照の場合には共用使用要求を指定し、更新ま
たは参照が終了した場合には、解除要求を指定する。
次に、詳細を第11図から第16図を用いて説明する。
第10図は、排他制御用ファイル(30)に配置する排
他制御管理テーブルの構造を示したものである。31は
資源管理テーブル、34は資源要求テーブルである。
他制御管理テーブルの構造を示したものである。31は
資源管理テーブル、34は資源要求テーブルである。
資源管理テーブル(31)は、ファイル名称と資源要求
テーブル(34)を指す2つのポインタからなる。第1
のポインタは、ファイルを使用中の資源要求テーブル(
34)を指す使用中キューポインタ(32)である。第
2のポインタは、ファイルの使用盲ちとなっている資源
要求テーブル(34)を指す資源待ちキューポインタ(
33)である。資源管理テーブル(31)は、LCMP
システム全体で使用されているファイルの数だけ存在す
る。
テーブル(34)を指す2つのポインタからなる。第1
のポインタは、ファイルを使用中の資源要求テーブル(
34)を指す使用中キューポインタ(32)である。第
2のポインタは、ファイルの使用盲ちとなっている資源
要求テーブル(34)を指す資源待ちキューポインタ(
33)である。資源管理テーブル(31)は、LCMP
システム全体で使用されているファイルの数だけ存在す
る。
資源要求テーブル(34)は、アクセスしようとするフ
ァイルのアドレス範囲と、要求属性(共用または排他)
と要求プログラムとを格納するフィールドからなる。要
求プログラムとは、資源を使用しようとする、または使
用中のプログラム名(またはタスク番号とアドレス空間
番号)およびO8名称(またはプロセッサ番号)を連結
したものである。
ァイルのアドレス範囲と、要求属性(共用または排他)
と要求プログラムとを格納するフィールドからなる。要
求プログラムとは、資源を使用しようとする、または使
用中のプログラム名(またはタスク番号とアドレス空間
番号)およびO8名称(またはプロセッサ番号)を連結
したものである。
次に、処理の概要について説明する。
ファイルマツプ処理(110)、ページ例外処理(12
0)は、それぞれ第8図、第9図に示しである。これに
ついては、既に説明済みなので省略する。
0)は、それぞれ第8図、第9図に示しである。これに
ついては、既に説明済みなので省略する。
第11図は、排他制御処理(130)の流れである。
排他制御処理(130)は、ユーザプログラム(100
)がACCESSマクロを発行することにより起動され
る。排他制御処理(130)は、排他制7′うな 御テーブルを他のプロiチネと同時に更新するのを避け
るため、排他制御用ファイル(30)をロックする(ス
テップ1301)。ロックの方法は、一般のディスク装
置の場合には、リザーブコマンドをディスクに発行する
ことによりディスク装置全体をロックする。また、排他
制御命令を有する拡張記憶装置の場合には、排他制御用
ファイルにロックワードを設け、ロック7−ドの内容が
Oならば未使用、それ以外ならば使用中と決めておき、
ロックワードが0ならば、ロックワードを排他制御命令
を用いて書き換え、書き換えに成功すれば次の処理を行
い、ロックワードが0以外、または、書き換えに失敗し
たならばロックワードが0になるまで待つ。
)がACCESSマクロを発行することにより起動され
る。排他制御処理(130)は、排他制7′うな 御テーブルを他のプロiチネと同時に更新するのを避け
るため、排他制御用ファイル(30)をロックする(ス
テップ1301)。ロックの方法は、一般のディスク装
置の場合には、リザーブコマンドをディスクに発行する
ことによりディスク装置全体をロックする。また、排他
制御命令を有する拡張記憶装置の場合には、排他制御用
ファイルにロックワードを設け、ロック7−ドの内容が
Oならば未使用、それ以外ならば使用中と決めておき、
ロックワードが0ならば、ロックワードを排他制御命令
を用いて書き換え、書き換えに成功すれば次の処理を行
い、ロックワードが0以外、または、書き換えに失敗し
たならばロックワードが0になるまで待つ。
排他制御命令の仕様は、第14図のようになっており、
第3パラメタのレジスタ3に指定される拡張記憶アドレ
スの8バイトを主記憶上の第1パラメタ(8バイト)と
比較と、一致すれば主記憶上の第2パラメタ(8)を第
8パラメタに指定される拡張記憶アドレスに格納する。
第3パラメタのレジスタ3に指定される拡張記憶アドレ
スの8バイトを主記憶上の第1パラメタ(8バイト)と
比較と、一致すれば主記憶上の第2パラメタ(8)を第
8パラメタに指定される拡張記憶アドレスに格納する。
比較の結果。
不一致であれば、拡張記憶への格納は行われず、不一致
であったことが条件コードに反映される。
であったことが条件コードに反映される。
この一連の処理は、連続して行われるので他のプロセッ
サから同時に同じ拡張記憶アドレスを更新しようとして
も、どちらか一方が命令の完了まで待たされる。
サから同時に同じ拡張記憶アドレスを更新しようとして
も、どちらか一方が命令の完了まで待たされる。
また、ロックワードを資源管理テーブル(31)ごとに
設けることにより、ロックの衝突を削減することが可能
である。
設けることにより、ロックの衝突を削減することが可能
である。
このように、拡張記憶を外部記憶装置として共用するこ
とにより、ロック範囲を狭くできるので、ロック処理の
オーバヘッドを大幅に削減可能である。
とにより、ロック範囲を狭くできるので、ロック処理の
オーバヘッドを大幅に削減可能である。
排他制御用フィテル(30)をロックしたのち、ユーザ
プログラム(100)の要求によって以下に述べる3つ
の処理に振り分ける。ユーザプログラム(100)の要
求とは、ACCESSマクロの排他オプションに指定さ
れる排他要求、共用要求、および解除要求である。
プログラム(100)の要求によって以下に述べる3つ
の処理に振り分ける。ユーザプログラム(100)の要
求とは、ACCESSマクロの排他オプションに指定さ
れる排他要求、共用要求、および解除要求である。
まず、排他オプションが排他要求の場合の処理について
述へる。
述へる。
排他制御処理(130)は、排他制御用ファイル(30
)を参照し、資源管理テーブル(31)からアクセス要
求のあったファイル名を捜し、使用中キューポインタか
ら資源要求テーブル(34)をたどり、ACCESSマ
クロに指定されるファイル領域を使用中のプログラムが
あるかどうかを調へる(ステップ1302)。当該領域
を使用中のプログラムがなければ、資源要求テーブル(
34)を作成し、必要事項を格納し、資源管理テーブル
(31)の使用中キューポインタ(32)に上記資源要
求テーブル(34)のアドレスを格納する(ステップ1
303)。そして、排他制御用ファイルをアンロックし
くステップ1304)、ユーザプログラム(100)に
制御を戻す。
)を参照し、資源管理テーブル(31)からアクセス要
求のあったファイル名を捜し、使用中キューポインタか
ら資源要求テーブル(34)をたどり、ACCESSマ
クロに指定されるファイル領域を使用中のプログラムが
あるかどうかを調へる(ステップ1302)。当該領域
を使用中のプログラムがなければ、資源要求テーブル(
34)を作成し、必要事項を格納し、資源管理テーブル
(31)の使用中キューポインタ(32)に上記資源要
求テーブル(34)のアドレスを格納する(ステップ1
303)。そして、排他制御用ファイルをアンロックし
くステップ1304)、ユーザプログラム(100)に
制御を戻す。
ステップ1302にて、使用中のプログラムが存在した
場合には、資源要求テーブル(34)を作成し必要事項
を格納し、資源管理テーブル(31)の待ちキューポイ
ンタ(33)に上記資源要求テーブル(34)のアドレ
スを格納する(ステップ1306)。
場合には、資源要求テーブル(34)を作成し必要事項
を格納し、資源管理テーブル(31)の待ちキューポイ
ンタ(33)に上記資源要求テーブル(34)のアドレ
スを格納する(ステップ1306)。
そして、排他制御用ファイル(30)をアンロックしく
ステップ1307)、現在ファイルを使用中のプログラ
ムが参照を完了するまで、ユーザプログラム(100)
をWAITさせる(ステップ1308)。
ステップ1307)、現在ファイルを使用中のプログラ
ムが参照を完了するまで、ユーザプログラム(100)
をWAITさせる(ステップ1308)。
以上が排他要求時の処理である。次に、共用要求の場合
について説明する。
について説明する。
共用要求の場合、他のプログラムが共用使用している場
合にも、ファイルを使用することができる。他のプログ
ラムが排他的に使用している場合には、共用要求を待た
せる必要がある。そこで、ステップ1305にて、他の
プログラムが排他的に使用しているかをチエツクする。
合にも、ファイルを使用することができる。他のプログ
ラムが排他的に使用している場合には、共用要求を待た
せる必要がある。そこで、ステップ1305にて、他の
プログラムが排他的に使用しているかをチエツクする。
他プログラムが排他的に使用している場合には、要求を
待たせるために、ステップ1306以降を処理を実行す
る。また、排他的に使用するプログラムがない場合には
、ステップ1303以降を実行し、ユーザプログラム(
100)に制御を戻す。
待たせるために、ステップ1306以降を処理を実行す
る。また、排他的に使用するプログラムがない場合には
、ステップ1303以降を実行し、ユーザプログラム(
100)に制御を戻す。
次に、解除要求の場合について述べる。
まず、排他制御用ファイル(30)を参照し。
現在使用中のファイルと同一名称を持つ資源管理テーブ
ル(31)を捜し、待ちキューポインタ(33)から現
在要求元のユーザプログラム(100)が使用している
領域を含む資源要求テーブル(34)を捜す(ステップ
1309)。発見した場合には、この資源要求テーブル
(34)に格納されている要求者に対して、PO8T通
信を行い(ステップ131Q)要求者を起動する。
ル(31)を捜し、待ちキューポインタ(33)から現
在要求元のユーザプログラム(100)が使用している
領域を含む資源要求テーブル(34)を捜す(ステップ
1309)。発見した場合には、この資源要求テーブル
(34)に格納されている要求者に対して、PO8T通
信を行い(ステップ131Q)要求者を起動する。
ステップ1309にて、資源管理テーブルを発見できな
かった場合、および、PO8T通信(1310)を行っ
た場合、次に、要求元のユーザプログラム(100)が
排他制御中か否かを調べる(ステップ1311)。
かった場合、および、PO8T通信(1310)を行っ
た場合、次に、要求元のユーザプログラム(100)が
排他制御中か否かを調べる(ステップ1311)。
排他使用中の場合は、ページアウト(ステップ1312
)およびキャンセル通信(ステップ1313)を行い、
自主記憶上の更新ページをファイル(20)に書き戻し
、他の主記憶上にある同一フアイル領域の内容を捨て、
各主記憶に分散されたファイルの内容の一貫性を保証で
きる。ページアウト処理およびキャンセル通信処理の詳
細は後で述へる。
)およびキャンセル通信(ステップ1313)を行い、
自主記憶上の更新ページをファイル(20)に書き戻し
、他の主記憶上にある同一フアイル領域の内容を捨て、
各主記憶に分散されたファイルの内容の一貫性を保証で
きる。ページアウト処理およびキャンセル通信処理の詳
細は後で述へる。
これらの処理を行った後、要求元の資源要求テーブル(
34)を資源管理テーブル(31)の使用中キューから
削除する(ステップ1314)。
34)を資源管理テーブル(31)の使用中キューから
削除する(ステップ1314)。
そして、排他制御用ファイルをアンロックしくステップ
1304)、ユーザプログラム(100)に制御を戻す
。
1304)、ユーザプログラム(100)に制御を戻す
。
次に、第12(a)図および第12 (b)図を参照し
、キャンセル通信およびPO5T通信を説明する。
、キャンセル通信およびPO5T通信を説明する。
キャンセル通信要求を受は付けた場合(第12(a)図
)、通信処理(140)は、キャンセルコマンドとファ
イル名、ファイル内のアドレス範囲をメソセージとして
組立て、プロセッサ間通信路(6)に対して出力要求を
送る。プロセッサ間通信路は、相手プロセッサに対して
割り込みをかけ、メンセージ内容を主記憶(2)に格納
する。
)、通信処理(140)は、キャンセルコマンドとファ
イル名、ファイル内のアドレス範囲をメソセージとして
組立て、プロセッサ間通信路(6)に対して出力要求を
送る。プロセッサ間通信路は、相手プロセッサに対して
割り込みをかけ、メンセージ内容を主記憶(2)に格納
する。
プロセッサ間通信路(6)から割り込みがかかると(第
12(b)図)、O5は、通信処理(受信)(140)
を起動する。通信処理(140) は、コマンドがキャ
ンセルであることから、メツセージからファイル名およ
びファイル内のアドレス範囲を取り出し、ファイルをマ
ツピングしている仮想記憶のページテーブルエントリ(
11)の■ビット(lla)をOにする(ステップ14
]−)。
12(b)図)、O5は、通信処理(受信)(140)
を起動する。通信処理(140) は、コマンドがキャ
ンセルであることから、メツセージからファイル名およ
びファイル内のアドレス範囲を取り出し、ファイルをマ
ツピングしている仮想記憶のページテーブルエントリ(
11)の■ビット(lla)をOにする(ステップ14
]−)。
これにより、キャンセルされた仮想記憶領域をプログラ
ムが参照するとページ例外が発生し、外部記憶からファ
イルを読み込むことになる。このときのファイルの内容
は、更新された最新のものになっている。
ムが参照するとページ例外が発生し、外部記憶からファ
イルを読み込むことになる。このときのファイルの内容
は、更新された最新のものになっている。
また、PO3T通信の処理(第12 (a)図)は、P
O5Tコマンド、アドレス空間番号、タスク番号のどの
相手プログラムを特定する情報をメツセージに格納し、
プロセッサ間通信路(6)を起動する。キャンセル通信
と同様に、相手プロセッサに割り込みがかかり、通信処
理(受信)(140)(第12(b)図)が起動される
。通信処理(受信)は、コマンドがPO3Tであること
から、メツセージの内容からプログラムを特定し、当該
プログラムをPO5Tする。PO5Tは、WAITによ
り待ち状態になっているプログラムを起動する。
O5Tコマンド、アドレス空間番号、タスク番号のどの
相手プログラムを特定する情報をメツセージに格納し、
プロセッサ間通信路(6)を起動する。キャンセル通信
と同様に、相手プロセッサに割り込みがかかり、通信処
理(受信)(140)(第12(b)図)が起動される
。通信処理(受信)は、コマンドがPO3Tであること
から、メツセージの内容からプログラムを特定し、当該
プログラムをPO5Tする。PO5Tは、WAITによ
り待ち状態になっているプログラムを起動する。
第13図は、ページアウト処理(150)である。この
処理は、更新されたページを外部ページテーブル(12
)に格納される外部記憶アドレスに転送する。
処理は、更新されたページを外部ページテーブル(12
)に格納される外部記憶アドレスに転送する。
本実施例によれば、ファイルを共用する疎結合マルチプ
ロセッサシステムにおいて、ファイルを更新する場合に
も、矛盾なく高速にファイルのアクセスを行うことがで
きる。
ロセッサシステムにおいて、ファイルを更新する場合に
も、矛盾なく高速にファイルのアクセスを行うことがで
きる。
第15図から第18図は、本発明の一実施例を示すもの
である。
である。
本実施例の特徴は、前記実施例において、排他制御処理
(130a)とページ例外処理(120a)を設けるこ
とにより、排他使用解除時のキャンセル通信を不要とし
、実行命令数を削減することにある。
(130a)とページ例外処理(120a)を設けるこ
とにより、排他使用解除時のキャンセル通信を不要とし
、実行命令数を削減することにある。
第15図は、第1図における排他制御用ファイル(30
)上に配置する排他アクセス完了時刻テーブル(35)
(図中、(a))と第1図における各主記憶(2)に配
置するページイン時刻テーブル(36)(図中、(b)
)の構造を示すものである。
)上に配置する排他アクセス完了時刻テーブル(35)
(図中、(a))と第1図における各主記憶(2)に配
置するページイン時刻テーブル(36)(図中、(b)
)の構造を示すものである。
これらのテーブルは、仮想記憶(10)へマツピング中
のファイル(20)のページ数と同数のエントリを持つ
。
のファイル(20)のページ数と同数のエントリを持つ
。
排他アクセス完了時刻テーブル(35)には、排他使用
解除要求があったとき、更新ページごとに解除要求のあ
った時刻を記録する。
解除要求があったとき、更新ページごとに解除要求のあ
った時刻を記録する。
ページイン時刻テーブル(36)には、各プロセッサに
おいてファイルからページを読み込んだ時刻およびペー
ジをファイルに書き戻した時刻を記録する。
おいてファイルからページを読み込んだ時刻およびペー
ジをファイルに書き戻した時刻を記録する。
第16図は、本実施例における排他制御処理(130a
)の流れである。
)の流れである。
第16図において、第11図と同じ参照番号は同じもの
をさす。
をさす。
ここでは、第11図と異なる処理のみを示す。
排他使用解除時、更新ページをファイルへ書き戻しくス
テップ1312)、排他制御用ファイル(30)上の排
他アクセス完了時刻テーブル(35)と、ページイン時
刻テーブル(36)の対応するエントリに現在時刻を格
納する。
テップ1312)、排他制御用ファイル(30)上の排
他アクセス完了時刻テーブル(35)と、ページイン時
刻テーブル(36)の対応するエントリに現在時刻を格
納する。
ユーザからの排他または共用要求時、ファイルアクセス
が可能であれば、排他制御用ファイル(30)上の排他
アクセス完了時刻テーブル(35)から排他アクセス完
了時刻(α)と主記憶上のページイン時刻テーブル(3
6)からページイン時刻(β)を求める(ステップ13
15a)。α〉βならば、即ち、主記憶の内容がファイ
ル(20)よりも古ければ(ステップ1316a)、自
プロセッサのページテーブル(11)の■ビット(ll
a)を0にしくステップ1317a)、当該ページを無
効化する6 第17図は、ページ例外処理(120a)を示す、第9
図のページ例外処理(120)と異なるのは、ページ入
力の完了時に、主記憶(2)上のページイン時刻テーブ
ル(36)に現在時刻を格納する(ステップ122a)
点である。
が可能であれば、排他制御用ファイル(30)上の排他
アクセス完了時刻テーブル(35)から排他アクセス完
了時刻(α)と主記憶上のページイン時刻テーブル(3
6)からページイン時刻(β)を求める(ステップ13
15a)。α〉βならば、即ち、主記憶の内容がファイ
ル(20)よりも古ければ(ステップ1316a)、自
プロセッサのページテーブル(11)の■ビット(ll
a)を0にしくステップ1317a)、当該ページを無
効化する6 第17図は、ページ例外処理(120a)を示す、第9
図のページ例外処理(120)と異なるのは、ページ入
力の完了時に、主記憶(2)上のページイン時刻テーブ
ル(36)に現在時刻を格納する(ステップ122a)
点である。
本実施例によれば、キャンセル通信が不要にな4J、C
PUオーバヘッドが削減させるという効果がある。
PUオーバヘッドが削減させるという効果がある。
第18図は、本発明の一実施例を示す。
第18図において、第1図と同一の参照番号は。
同じものをさす。
第18図の150はウィンドウ、160はウィンドウ処
理である。
理である。
本実施例の特徴は、ファイル(20)よりも小さな仮想
記憶(10)上の領域であるウィンドウ(15)と、ウ
ィンドウ処理(160)を設け。
記憶(10)上の領域であるウィンドウ(15)と、ウ
ィンドウ処理(160)を設け。
ユーザプログラム(100)がファイルを参照・更新す
る前に発行するACCESSマクロのオペランドに指定
されるファイル領域のみを仮想記憶(10)にマツピン
グすることにより、ユーザプログラム(100)がアク
セスしないファイル領域を参照不可能とし、ユーザプロ
グラム(100)の不良によるファイル(20)の破壊
を防止するところにある。
る前に発行するACCESSマクロのオペランドに指定
されるファイル領域のみを仮想記憶(10)にマツピン
グすることにより、ユーザプログラム(100)がアク
セスしないファイル領域を参照不可能とし、ユーザプロ
グラム(100)の不良によるファイル(20)の破壊
を防止するところにある。
本実施例の詳細を第19図および第20図を用いて説明
する。
する。
第19図は、ファイルマツプ処理(ILOa)を示す。
ファイルマツプ処理では、ファイルの配置情報を求め(
ステップ1lla)、仮想記憶(10)上にウィンドウ
領域を確保する(ステップ112a)だけであり、外部
ページテーブルへの更新は行わない。
ステップ1lla)、仮想記憶(10)上にウィンドウ
領域を確保する(ステップ112a)だけであり、外部
ページテーブルへの更新は行わない。
ウィンドウ処理(130b)は、ユーザプログラム(1
00)がACCESSマクロを発行することにより、起
動される。この処理は、第11図の排他制御処理(13
0)を行ったあと、ユーザが参照するファイル領域の配
置アドレスをウィンドウ(15)の外部ページテーブル
(12)に格納する。
00)がACCESSマクロを発行することにより、起
動される。この処理は、第11図の排他制御処理(13
0)を行ったあと、ユーザが参照するファイル領域の配
置アドレスをウィンドウ(15)の外部ページテーブル
(12)に格納する。
本実施例によれば、ユーザプログラム(100)がアク
セス宣言したファイルの領域のみを仮想記憶(20)に
マツピングするので、宣言しないファイル領域は、ユー
ザプログラム(100)からは参照できない、従って、
ユーザプログラム(100)の不良によるファイルの破
壊を防止できる。
セス宣言したファイルの領域のみを仮想記憶(20)に
マツピングするので、宣言しないファイル領域は、ユー
ザプログラム(100)からは参照できない、従って、
ユーザプログラム(100)の不良によるファイルの破
壊を防止できる。
第21図は、本発明の一実施例を示す。
第21図において、第1図と同一の参照番号は同じもの
をさす。第21図の、7は第1外部記憶装置、3は第2
外部記憶装置、21は第1外部記憶装置上のファイル、
20は第2外部記憶装置上のファイル、12は第1外部
ページテーブル、13は第2外部ページテーブルである
。
をさす。第21図の、7は第1外部記憶装置、3は第2
外部記憶装置、21は第1外部記憶装置上のファイル、
20は第2外部記憶装置上のファイル、12は第1外部
ページテーブル、13は第2外部ページテーブルである
。
本実施例の特徴は、第1外部記憶装M(7)上のファイ
ル(21)を、第1外部記憶装置よりも高速な第2外部
記憶装置(3)上のファイル(20)に順次ページ単位
に配置することにより、排他制御時のページング処理を
高速に行うことにある。
ル(21)を、第1外部記憶装置よりも高速な第2外部
記憶装置(3)上のファイル(20)に順次ページ単位
に配置することにより、排他制御時のページング処理を
高速に行うことにある。
また、ファイル(21)への書き戻しは、ユーザプログ
ラム(100)から5AVEマクロが発行された時点で
行う。さらに、あるプロセッサが低速な記憶装置上のフ
ァイル(21)のページを高速な記憶装置上のファイル
(20)に配置した場合に、他のプロセッサから同一ペ
ージを参照するときには、必ず高速なファイル(20)
からページを読み込むことも特徴とする。
ラム(100)から5AVEマクロが発行された時点で
行う。さらに、あるプロセッサが低速な記憶装置上のフ
ァイル(21)のページを高速な記憶装置上のファイル
(20)に配置した場合に、他のプロセッサから同一ペ
ージを参照するときには、必ず高速なファイル(20)
からページを読み込むことも特徴とする。
次に第6図、第7図、および第22図から第26図を参
照し、本実施例の詳細を説明する。
照し、本実施例の詳細を説明する。
第1外部ページテーブル(12)の構造は、第6図に示
す外部ページテーブルと同一である。第7図は、第2外
部ページテーブル(13)の構造を示す。13bは外部
記憶アドレスを格納するフィールド、1.3 aは、当
該外部記憶アドレスのフィールドが有効か否かを示すエ
ビットである。Tビット(13a)がOの場合、外部記
憶アドレス(13b)が有効であることを示し、1の場
合は無効であることを示す。
す外部ページテーブルと同一である。第7図は、第2外
部ページテーブル(13)の構造を示す。13bは外部
記憶アドレスを格納するフィールド、1.3 aは、当
該外部記憶アドレスのフィールドが有効か否かを示すエ
ビットである。Tビット(13a)がOの場合、外部記
憶アドレス(13b)が有効であることを示し、1の場
合は無効であることを示す。
第22図は、ファイルマツプ処理(110b)の流れで
ある。
ある。
ファイルマツプ処理(llob)は、ユーザプログラム
(100)からFILEMAPマクロを発行することに
より起動される点は他の実施例と同様である。ファイル
マツプ処理(ilob)は、まず、FILEMAPマク
ロのオペランドに指定されるファイル名を求め、第1外
部記憶装W(7)上のファイル管理テーブル(9)から
ファイル(21)の配置情報を求める(ステップ11↓
b)。次に、主記憶(2)上の第1外部ページテーブル
(12)にファイルの71〜レスを格納する(ステップ
112b)。
(100)からFILEMAPマクロを発行することに
より起動される点は他の実施例と同様である。ファイル
マツプ処理(ilob)は、まず、FILEMAPマク
ロのオペランドに指定されるファイル名を求め、第1外
部記憶装W(7)上のファイル管理テーブル(9)から
ファイル(21)の配置情報を求める(ステップ11↓
b)。次に、主記憶(2)上の第1外部ページテーブル
(12)にファイルの71〜レスを格納する(ステップ
112b)。
そして、第2外部記憶上のファイル管理テーブル(8)
にユーザプログラム(100)が指定したファイル名と
同一名称のファイルが存在するかを調へる(ステップ1
13b)。
にユーザプログラム(100)が指定したファイル名と
同一名称のファイルが存在するかを調へる(ステップ1
13b)。
同一ファイル名称が第2外部記憶装置(3)上になけれ
ば、ファイル(21)と同一長で同一名称のファイル(
20)を第2外部記憶装W(3)上に作成する(ステッ
プ114b)。
ば、ファイル(21)と同一長で同一名称のファイル(
20)を第2外部記憶装W(3)上に作成する(ステッ
プ114b)。
同一ファイル名称が第2外部記憶装置(3)上にある場
合には、既に他のプロセッサにより上記のファイル(2
0)の割当て処理は行われているため、ステップ114
bはスキップする。
合には、既に他のプロセッサにより上記のファイル(2
0)の割当て処理は行われているため、ステップ114
bはスキップする。
最後に、第2外部記憶装置(3)上のファイル(20)
の配置アドレスを第2外部ページテーブル(13)に格
納し、エビット(13a)を1(無効化)にする(ステ
ップ115b)。
の配置アドレスを第2外部ページテーブル(13)に格
納し、エビット(13a)を1(無効化)にする(ステ
ップ115b)。
第23図は、ページ例外処理(120b)である。
ページ例外処理(120b)は、ユーザプログラム(1
00)がファイルマツピング領域を参照したときに、ペ
ージが主記憶(2)にないとき、つまり、ページテーブ
ル(11)の■ビット(lla)が1の時に発生する。
00)がファイルマツピング領域を参照したときに、ペ
ージが主記憶(2)にないとき、つまり、ページテーブ
ル(11)の■ビット(lla)が1の時に発生する。
ページ例外処理(110a)は、まず、第2外部ページ
テーブル(13)の1ビツト(13a)を参照し、第2
外部ページテーブルの外部記憶アドレスが有効か否かを
調へる(ステップ12 l b)。
テーブル(13)の1ビツト(13a)を参照し、第2
外部ページテーブルの外部記憶アドレスが有効か否かを
調へる(ステップ12 l b)。
有効、つまり、■ビットが0であれば、第2外部ページ
テーブルの外部記憶アドレスからページインするアドレ
スを求める(ステップ122b)。
テーブルの外部記憶アドレスからページインするアドレ
スを求める(ステップ122b)。
無効、つまり、■ビットが1であるならば、第1外部ペ
ージテーブルの外部記憶アドレスからページインするア
ドレスを求める(ステップ123b)。
ージテーブルの外部記憶アドレスからページインするア
ドレスを求める(ステップ123b)。
ページイン動作完了後、第1外部ページテーブル(12
)からページインアドレスを求めた場合(ステップ12
4b)には、ページインしたページを第2外部記憶装置
(3)にページアウト(124b)L、第2外部ページ
テーブル(13)の1ビツト(13a)をOにすること
により、第2外部ページテーブルを有効化する。
)からページインアドレスを求めた場合(ステップ12
4b)には、ページインしたページを第2外部記憶装置
(3)にページアウト(124b)L、第2外部ページ
テーブル(13)の1ビツト(13a)をOにすること
により、第2外部ページテーブルを有効化する。
これにより、以降、自プロセッサ内で同一ぺ一ジを参照
し、ページ例外が発生した場合には、より高速な第2記
憶装置(3)からページインすることになる。
し、ページ例外が発生した場合には、より高速な第2記
憶装置(3)からページインすることになる。
他のプロセッサ上の同一ファイルを指す第2外部ページ
テーブル(13)の■ビット(13a)をOにする処理
は、ページアウト処理(150a)と、通信処理(14
0a)により行う。
テーブル(13)の■ビット(13a)をOにする処理
は、ページアウト処理(150a)と、通信処理(14
0a)により行う。
まず、ページアウト処理(150a)の処理を第24図
を用いて説明する。
を用いて説明する。
ページアウト処理(150a)は、まず、第1外部記憶
装置(7)に対するページアウト要求か、または、第2
外部記憶装置(3)に対する要求かにより、処理を振り
分ける。ページ例外処理(120b)からの要求は、第
2外部記憶装置(3)に対してのみである。第2外部記
憶装置(3)に対するページアウトは、第2外部ページ
テーブル(13)に格納される外部記憶アトレ2を求め
(151a)、ページアウトする。
装置(7)に対するページアウト要求か、または、第2
外部記憶装置(3)に対する要求かにより、処理を振り
分ける。ページ例外処理(120b)からの要求は、第
2外部記憶装置(3)に対してのみである。第2外部記
憶装置(3)に対するページアウトは、第2外部ページ
テーブル(13)に格納される外部記憶アトレ2を求め
(151a)、ページアウトする。
そして、他のプロセッサの第2外部ページテーブルを有
効化するために、VALID通信を起慶する(ステップ
152a)。
効化するために、VALID通信を起慶する(ステップ
152a)。
VALID通信処理は、第25 (a)および第25
(b)図に示しである。通信処理(140aは、VAL
ID通信要求を受は取るとメツセージにVALEDコマ
ンドとファイル名称、アドレス範囲を格納し、プロセッ
サ間通信路(6)を起動する。
(b)図に示しである。通信処理(140aは、VAL
ID通信要求を受は取るとメツセージにVALEDコマ
ンドとファイル名称、アドレス範囲を格納し、プロセッ
サ間通信路(6)を起動する。
メツセージを受は取ったプロセッサは、VALIDコマ
ンドであることがら、ステップ141aを実行する。即
ち、メツセージ内のファイルをマツピングしている仮想
記憶の第2外部ページテーブル(13)のエビットを○
にして有効化する。
ンドであることがら、ステップ141aを実行する。即
ち、メツセージ内のファイルをマツピングしている仮想
記憶の第2外部ページテーブル(13)のエビットを○
にして有効化する。
これにより、他のプロセッサ上で、同一のファイル領域
を参照した場合にも、高速な外部記憶装W(3)からペ
ージインすることができる。
を参照した場合にも、高速な外部記憶装W(3)からペ
ージインすることができる。
排他制御処理(130)については、第11図と同様で
あり、既に説明しであるので省略する。
あり、既に説明しであるので省略する。
これらの処理により、ファイル(21)が配置される第
1外部記憶装置(7)よりも高速な第2外j 部記憶
装置(3)を用いて、ファイルを更新する場合にも、矛
盾なくかつ高速にファイルのアクセスが可能である。
1外部記憶装置(7)よりも高速な第2外j 部記憶
装置(3)を用いて、ファイルを更新する場合にも、矛
盾なくかつ高速にファイルのアクセスが可能である。
) この方式は、ファイルを更新した結果を元の第
1外部記憶装置(7)に書き戻さないため、不都合が起
こることがある。
1外部記憶装置(7)に書き戻さないため、不都合が起
こることがある。
このため、5AVEマクロを設け、ファイルを第1外部
記憶装置(7)へ書き戻す方式をユーザプログラム(1
00)に提供する。
記憶装置(7)へ書き戻す方式をユーザプログラム(1
00)に提供する。
5AVEマクロの処理を第26図と第24図を用いて説
明する。
明する。
第26図は、5AVE処理(160)(7)流レヲ示す
ものである。
ものである。
5AVE処理(160)は、ユーザプログラム(100
)が5AVEマクロを発行することにより、起動される
。
)が5AVEマクロを発行することにより、起動される
。
5AVE処理(160)はまず、他のプロセッサがファ
イルを更新しないように、ファイルの全領域を共用アク
セス状態にする(ステップ161)。
イルを更新しないように、ファイルの全領域を共用アク
セス状態にする(ステップ161)。
そして、第1外部記憶装置(7)に対するページアウト
要求を発行する(ステップ162)。ページアウト完了
後、共用アクセス要求を解除する(ステップ163)。
要求を発行する(ステップ162)。ページアウト完了
後、共用アクセス要求を解除する(ステップ163)。
つぎに、ページアウト処理(150a)を第26図を用
いて説明する。
いて説明する。
第1外部記憶装置(7)のページアウト要求の場合は、
ステップ153aが実行される。ステップ153aでは
、第1外部ページテーブル(12)から外部記憶アドレ
スを算出するので、第1外部記憶装置(7)へページア
ウトすることになり、元のファイル(21)への書き戻
しが可能となる。
ステップ153aが実行される。ステップ153aでは
、第1外部ページテーブル(12)から外部記憶アドレ
スを算出するので、第1外部記憶装置(7)へページア
ウトすることになり、元のファイル(21)への書き戻
しが可能となる。
以上説明した実施例によれば、外部記憶装置上のファイ
ルをページ単位に仮想記憶上に対応させ、ユーザプログ
ラムがファイルに対応付けられたページを参照したとき
に、ページ例外処理ニよす外部記憶装置から主記憶へフ
ァイルを転送することにより、従来のファイルアクセス
方法に比べ、高速にアクセスすることができる。
ルをページ単位に仮想記憶上に対応させ、ユーザプログ
ラムがファイルに対応付けられたページを参照したとき
に、ページ例外処理ニよす外部記憶装置から主記憶へフ
ァイルを転送することにより、従来のファイルアクセス
方法に比べ、高速にアクセスすることができる。
さらに、拡張記憶装置にファイルを配置することにより
、従来のファイルアクセス方法に比へ。
、従来のファイルアクセス方法に比へ。
さらに高速にアクセスすることができる。
また、疎結合マルチプロセッサシステムにおいては、排
他制御処理を各プロセッサ上に設け5排他アクセス完了
時、各プロセッサに更新したページを無効化するメツセ
ージを送り、メツセージを受は取ったプロセッサは、当
該ページを無効化することにより、複数プロセッサ間で
共用するファイルを更新する場合にも、矛盾なく共用フ
ァイルをアクセスすることができる。
他制御処理を各プロセッサ上に設け5排他アクセス完了
時、各プロセッサに更新したページを無効化するメツセ
ージを送り、メツセージを受は取ったプロセッサは、当
該ページを無効化することにより、複数プロセッサ間で
共用するファイルを更新する場合にも、矛盾なく共用フ
ァイルをアクセスすることができる。
仮想記憶へのファイルのマツピング範囲を、ユーザプロ
グラムが宣言した領域に限定することにより、ユーザプ
ログラムの不良によるファイルの破壊を防止できる。
グラムが宣言した領域に限定することにより、ユーザプ
ログラムの不良によるファイルの破壊を防止できる。
さらに、低速な外部記憶装置上のファイルのうち、参照
・更新された領域のみを高速な外部記憶装置に配置する
ことにより、共用ファイルのアクセスが高速化される。
・更新された領域のみを高速な外部記憶装置に配置する
ことにより、共用ファイルのアクセスが高速化される。
本発明によれば、外部記憶装置上のファイルをページ単
位に仮想記憶上に対応させ、ユーザプログラムがファイ
ルに対応付けられたページを参照したときに、ページ例
外処理により外部記憶装置から主記憶へファイルを転送
することにより、従来のファイルアクセス方法に比へ、
高速にアクセスすることができる。
位に仮想記憶上に対応させ、ユーザプログラムがファイ
ルに対応付けられたページを参照したときに、ページ例
外処理により外部記憶装置から主記憶へファイルを転送
することにより、従来のファイルアクセス方法に比へ、
高速にアクセスすることができる。
第1図は、本発明によるファイル共用方法の実施例を示
す図。第2図は、従来技術を示す図。第3図は、ユーザ
プログラムとO8との関連を示す図。第4図は本発明の
ユーザインタフェースを示す図。第5図は、アドレス変
換を行うときのテーブル構造を示す図。第6図は、外部
記憶装置に配置されるページの配置アドレスを格納する
テーブル構造を示す図。第7図は、高速外部記憶装置に
配置されるページの配置アドレスを格納するテーブル構
造を示す図。第8図は、第1図におけるファイルマツプ
処理を示す図。第9図は、第1図にす図。第12(a)
図および第1.2(b’)図は、第1図における通信処
理を示す図。第13図は、第1図におけるページアウト
処理を示す図。第14図は、拡張記憶装置の排他制御命
令の仕様を示す図。第15図は、第1図における更新・
参照時刻を示す図。第16図は、第1図における他の排
他制御処理を示す図。第17図は、第1図における他の
ページ例外処理を示す図。 第18図は、本発明によるファイル共用方法の他の実施
例を示す図。第19図は、第18図におけるファイルマ
ツプ処理を示す図。第20図は、第18図におけるウィ
ンドウ処理を示す図。 第21図は、本発明によるファイル共用方法の他の実施
例を示す図。第22図は、第21図におけるファイルマ
ツプ処理を示す図。第23図は、第21図におけるペー
ジ例外処理を示す図。第24図は、第21図におけるペ
ージアウト処理を示す図。第25 (a)および2.5
(b)図は、第21図における通信処理を示す図。第
26図は、第21図における5AVE処理を示す図。 1・lプロセッサ、2・・主記憶、3・外部記憶装置ま
たは拡張記憶、5・・データ転送路、6・プロセッサ間
通信路、7・第1外部記憶装置、8・ファイル管理テー
ブル、9・・・第1外部記憶ファイル管理テーブル、1
0・・仮想記憶、20・ファイル、30・・排他制御用
ファイル、100 ユーザプログラム、110・・・
ファイルマツプ処理、120・・・ページ例外処理、1
30・・排他制御処理、140yFJ1 (2) −・1 箔 3 図 第 5 日 ′fJ b の 第 7 ロ ス 9 図 第 70 (2) ■−−山 ylu 回 黛I2洩記 乎/2(1)図 第 13 口 第 14 図 CβES Lリスクしレブズク2.レジ又り3シシ
゛人フ1 主書乙・)東7ドレ又 (更@簡ブー7
)シゾ人り2 家省乙寸見マトレ又 <t#frtL
7−り)し以り3 主言乙−)、t7ドし又 (1
5口・177−ト’7P’L又)第 /d ’f) tl 口 y]ts Q 第 21 図 夏げト部記1見U 第23 目 σb 第 24 区 2〜/9ユ 不 25(ユ、)Z ■百り、A−14I17ス 茅25(〆)凶
す図。第2図は、従来技術を示す図。第3図は、ユーザ
プログラムとO8との関連を示す図。第4図は本発明の
ユーザインタフェースを示す図。第5図は、アドレス変
換を行うときのテーブル構造を示す図。第6図は、外部
記憶装置に配置されるページの配置アドレスを格納する
テーブル構造を示す図。第7図は、高速外部記憶装置に
配置されるページの配置アドレスを格納するテーブル構
造を示す図。第8図は、第1図におけるファイルマツプ
処理を示す図。第9図は、第1図にす図。第12(a)
図および第1.2(b’)図は、第1図における通信処
理を示す図。第13図は、第1図におけるページアウト
処理を示す図。第14図は、拡張記憶装置の排他制御命
令の仕様を示す図。第15図は、第1図における更新・
参照時刻を示す図。第16図は、第1図における他の排
他制御処理を示す図。第17図は、第1図における他の
ページ例外処理を示す図。 第18図は、本発明によるファイル共用方法の他の実施
例を示す図。第19図は、第18図におけるファイルマ
ツプ処理を示す図。第20図は、第18図におけるウィ
ンドウ処理を示す図。 第21図は、本発明によるファイル共用方法の他の実施
例を示す図。第22図は、第21図におけるファイルマ
ツプ処理を示す図。第23図は、第21図におけるペー
ジ例外処理を示す図。第24図は、第21図におけるペ
ージアウト処理を示す図。第25 (a)および2.5
(b)図は、第21図における通信処理を示す図。第
26図は、第21図における5AVE処理を示す図。 1・lプロセッサ、2・・主記憶、3・外部記憶装置ま
たは拡張記憶、5・・データ転送路、6・プロセッサ間
通信路、7・第1外部記憶装置、8・ファイル管理テー
ブル、9・・・第1外部記憶ファイル管理テーブル、1
0・・仮想記憶、20・ファイル、30・・排他制御用
ファイル、100 ユーザプログラム、110・・・
ファイルマツプ処理、120・・・ページ例外処理、1
30・・排他制御処理、140yFJ1 (2) −・1 箔 3 図 第 5 日 ′fJ b の 第 7 ロ ス 9 図 第 70 (2) ■−−山 ylu 回 黛I2洩記 乎/2(1)図 第 13 口 第 14 図 CβES Lリスクしレブズク2.レジ又り3シシ
゛人フ1 主書乙・)東7ドレ又 (更@簡ブー7
)シゾ人り2 家省乙寸見マトレ又 <t#frtL
7−り)し以り3 主言乙−)、t7ドし又 (1
5口・177−ト’7P’L又)第 /d ’f) tl 口 y]ts Q 第 21 図 夏げト部記1見U 第23 目 σb 第 24 区 2〜/9ユ 不 25(ユ、)Z ■百り、A−14I17ス 茅25(〆)凶
Claims (1)
- 【特許請求の範囲】 1、仮想記憶方式を採用する複数のプロセッサが、外部
記憶装置を共用するマルチプロセッサシステムにおいて
、 ページが配置される外部記憶装置上のアドレスを保持す
る外部ページテーブルを各プロセッサの主記憶上に配置
し、 プログラムからのファイルマップ要求発生時、外部記憶
装置上に配置されるファイルのアドレスを上記外部ペー
ジテーブルに格納し、 ページ例外発生時、上記外部ページテーブルの外部記憶
アドレスからファイルを主記憶へ転送することを特徴と
するファイル共用方法。 2、仮想記憶方式を採用する複数のプロセッサが、外部
記憶装置を共用し、プロセッサ間通信装置により結合さ
れる疎結合マルチプロセッサシステムにおいて、 ページが配置される外部記憶装置上のアドレスを保持す
る外部ページテーブルを各プロセッサの主記憶上に配置
し、 上記共用外部記憶装置上に、排他制御管理テーブルを配
置し、 プログラムからのファイルマップ要求発生時、外部記憶
装置上に配置されるファイルのアドレスを上記外部ペー
ジテーブルに格納し、 ページ例外発生時、上記外部ページテーブルの外部記憶
アドレスからファイルを主記憶へ転送し、 上記プログラムからの共用使用要求発生時、上記排他制
御管理テーブルを参照し、上記ファイルが他プログラム
に排他使用されている場合には、前記他プログラムの排
他使用が解除されるまで上記プログラムの共用使用要求
を待たせ、上記プログラムから排他使用要求発生時、上
記排他制御管理テーブルを参照し、上記ファイルが他プ
ログラムに排他使用または共用使用されている場合には
、前記他プログラムの排他使用または共用使用が解除さ
れるまで上記プログラムの排他使用要求を待たせ、 上記プログラムからの排他使用解除要求発生時、仮想記
憶の内容を上記外部ページテーブルの外部記憶アドレス
に転送し、他プロセッサにページキャンセル・メッセー
ジを送信し、ページキャンセル・メッセージ受信時には
、該当ページテーブルを無効化することを特徴とするフ
ァイル共用方法。 3、仮想記憶方式を採用する複数のプロセッサが、外部
記憶装置を共用し、プロセッサ間通信装置により結合さ
れる疎結合マルチプロセッサシステムにおいて、 ページが配置される外部記憶装置上のアドレスを保持す
る外部ページテーブルと、ページインの時刻を格納する
ページイン時刻テーブルを各プロセッサの主記憶上に配
置し、 上記共用外部記憶装置上に、排他制御管理テーブルと排
他使用が解除された時刻を記録する排他使用完了時刻テ
ーブルを配置し、 プログラムからのファイルマップ要求発生時、外部記憶
装置上に配置されるファイルのアドレスを上記外部ペー
ジテーブルに格納し、 ページ例外発生時、上記外部ページテーブルの外部記憶
アドレスからファイルを主記憶へ転送し、ページイン時
刻を上記ページイン時刻テーブルに格納し、 上記プログラムからの排他使用解除要求発生時、仮想記
憶の内容を上記外部ページテーブルの外部記憶アドレス
に転送し、上記排他使用完了時刻テーブルと上記ページ
イン時刻テーブルに現在時刻を格納し、 上記プログラムからの共用使用要求発生時、上記排他制
御管理テーブルを参照し、上記ファイルが他プログラム
に排他使用されている場合には、前記他プログラムの排
他使用が解除されるまで上記プログラムの共用使要求を
待たせ、使用可能な場合には、上記排他使用完了時刻テ
ーブルに格納される時刻がページイン時刻テーブルに格
納される時刻より最近であれば、自プロセッサ内の該当
ページテーブルを無効化し、上記プログラムからの排他
使用要求発生時、上記排他制御管理テーブルを参照し、
上記ファイルが他プログラムに排他使用または共用使用
されている場合には、前記他プログラムの排他使用また
は共用使用が解除さるまで上記プログラムの排他使用要
求を待たせ、使用可能な場合には、上記排他使用完了時
刻テーブルに格納される時刻がページイン時刻テーブル
に格納される時刻より最近であれば、自プロセッサ内の
該当ページテーブルを無効化することを特徴とするファ
イル共用方法。 4、仮想記憶方式を採用する複数のプロセッサが、第1
の外部記憶装置と第1の外部記憶装置よりも高速な第2
の外部記憶装置を共用し、プロセッサ間通信装置により
結合される疎結合マルチプロセッサシステムにおいて、 ページが配置される第1外部記憶装置上のアドレスを保
持する第1外部ページテーブルと、第2外部記憶装置上
のアドレスを保持する第2外部ページテーブルを各プロ
セッサの主記憶上に配置し、 上記第2外部記憶装置上に、排他制御管理テーブルを配
置し、 プログラムからのファイルマップ要求発生時、上記第1
外部記憶装置上に配置されるファイルのアドレスを上記
第1外部ページテーブルに格納し、第2記憶装置上に上
記ファイルと同一長のファイルを確保し、前記第2記憶
装置上のファイルのアドレスを上記第2外部ページテー
ブルに格納し、 ページ例外発生時、上記第2外部ページテーブルが有効
であれば、第2外部記憶アドレスからファイルを主記憶
へ転送し、第2外部ページテーブルが無効であれば、第
1外部ページテーブルからファイルを主記憶へ転送し、
他プロセッサにページ有効メッセージを送信し、ページ
有効メッセージを受信した場合には該当第2外部ページ
テーブルを有効にし、上記プログラムからの共用使用要
求発生時、上記排他制御管理テーブルを参照し、上記フ
ァイルが他プログラムに排他使用されている場合には、
前記他プログラムの排他使用が解除されるまで上記プロ
グラムの共用使用要求を待たせ、上記プログラムからの
排他使用要求発生時、上記排他制御管理テーブルを参照
し、上記ファイルが他プログラムに排他使用または共用
使用されている場合には、前記他プログラムの排他使用
または共用使用が解除されるまで上記プログラムの排他
使用要求を待たせ、 上記プログラムからの排他使用解除要求発生時、仮想記
憶の内容を上記第2外部ページテーブルの外部記憶アド
レスに転送し、他プロセッサにページキャンセル・メッ
セージを送信し、ページキャンセル・メッセージ受信時
には、該当ページテーブルを無効化することを特徴とす
るファイル共用方法。 5、仮想記憶方式を採用する複数のプロセッサが、第1
の外部記憶装置と第1の外部記憶装置よりも高速な第2
の外部記憶装置を共用し、プロセッサ間通信装置により
結合される疎結合マルチプロセッサシステムにおいて、 ページが配置される第1外部記憶装置上のアドレスを保
持する第1外部ページテーブルと、第2外部記憶装置上
のアドレスを保持する第2外部ページテーブルと、 ページイン時刻格納するページイン時刻テーブルを各プ
ロセッサの主記憶上に配置し、 上記第2外部記憶装置上に、排他制御管理テーブルと排
他使用が解除された時刻を記録する排他使用完了時刻テ
ーブルを配置し、 プログラムからのファイルマップ要求発生時、上記第1
外部記憶装置上に配置されるファイルのアドレスを上記
第1外部ページテーブルに格納し、第2記憶装置上に上
記ファイルと同一長のファイルを確保し、前記第2記憶
装置上のファイルのアドレスを上記第2外部ページテー
ブルに格納し、 ページ例外発生時、上記第2外部ページテーブルが有効
であれ、第2外部記憶アドレスからファイルを主記憶へ
転送し、第2外部ページテーブルが無効であれば、第1
外部ページテーブルからファイルを主記憶へ転送し、ペ
ージイン時刻を上記ページイン時刻テーブルに格納し、
他プロセッサにページ有効メッセージを送信し、ページ
有効メッセージを受信した場合には該当第2外部ページ
テーブルを有効にし、 上記プログラムからの排他使用解除要求発生時、仮想記
憶の内容を上記外部ページテーブルの外部記憶アドレス
に転送し、上記排他使用完了時刻テーブルと上記ページ
イン時刻テーブルに現在時刻を格納し、 上記プログラムからの共用使用要求発生時、上記排他制
御管理テーブルを参照し、上記ファイルが他のプログラ
ムに排他使用されている場合には、前記他プログラムに
排他使用が解除されるまで上記プログラムの共用使用要
求を待たせ、使用可能な場合には、上記排他使用完了時
刻テーブルに格納される時刻がページイン時刻テーブル
に格納される時刻より最近であれ、自プロセッサ内の該
当ページテーブルを無効化し、上記プログラケからの排
他使用要求発生時、上記排他制御管理テーブルを参照し
、上記ファイルが他プログラムに排他使用または共用使
用されている場合には、前記他プログラムの排他使用ま
たは共用使用が解除されるまで上記プログラムの排他使
用要求を待たせ、使用可能な場合には、上記排他使用完
了時刻テーブルに格納される時刻がページイン時刻テー
ブルに格納される時刻より最近であれば、自プロセッサ
内の該当ページテーブルを無効化することを特徴とする
ファイル共用方法。 6、特許請求の範囲第1項から第5項のいずれか1つの
ファイル共用方法において、プログラムからの共用使用
または排他使用要求時、ファイル長よりも小さい仮想記
憶領域であるウィンドウの外部ページテーブルにファイ
ルのアドレスを格納することを特徴とするファイル共用
方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2279074A JP2829115B2 (ja) | 1990-10-19 | 1990-10-19 | ファイル共用方法 |
US08/368,765 US5619691A (en) | 1990-10-19 | 1995-01-04 | File sharing method and system for multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2279074A JP2829115B2 (ja) | 1990-10-19 | 1990-10-19 | ファイル共用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04155465A true JPH04155465A (ja) | 1992-05-28 |
JP2829115B2 JP2829115B2 (ja) | 1998-11-25 |
Family
ID=17606054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2279074A Expired - Fee Related JP2829115B2 (ja) | 1990-10-19 | 1990-10-19 | ファイル共用方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5619691A (ja) |
JP (1) | JP2829115B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890156A (en) * | 1996-05-02 | 1999-03-30 | Alcatel Usa, Inc. | Distributed redundant database |
US6178429B1 (en) * | 1997-11-26 | 2001-01-23 | Cisco Technology, Inc. | Mechanism for ensuring SCM database consistency on multi-part operation boundaries |
US6161191A (en) * | 1998-05-12 | 2000-12-12 | Sun Microsystems, Inc. | Mechanism for reliable update of virtual disk device mappings without corrupting data |
US6480864B1 (en) | 1999-06-15 | 2002-11-12 | Cisco Technology, Inc. | RAM based directory layer for a flash file system |
US6484224B1 (en) | 1999-11-29 | 2002-11-19 | Cisco Technology Inc. | Multi-interface symmetric multiprocessor |
US6606628B1 (en) * | 2000-02-14 | 2003-08-12 | Cisco Technology, Inc. | File system for nonvolatile memory |
JP2003150424A (ja) * | 2001-11-16 | 2003-05-23 | Fujitsu Ltd | ファイルシステム、制御方法及びプログラム |
JP2005141672A (ja) * | 2003-11-10 | 2005-06-02 | Hitachi Ltd | 共有リソースの使用の排他制御方式及び方法 |
JP4526337B2 (ja) * | 2004-09-15 | 2010-08-18 | 株式会社日立製作所 | データ管理システム及び方法 |
US7730258B1 (en) * | 2005-11-01 | 2010-06-01 | Netapp, Inc. | System and method for managing hard and soft lock state information in a distributed storage system environment |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4399504A (en) * | 1980-10-06 | 1983-08-16 | International Business Machines Corporation | Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment |
JPS62145349A (ja) * | 1985-12-20 | 1987-06-29 | Hitachi Ltd | システム間デ−タベ−ス共用方式 |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4823261A (en) * | 1986-11-24 | 1989-04-18 | International Business Machines Corp. | Multiprocessor system for updating status information through flip-flopping read version and write version of checkpoint data |
US5084816A (en) * | 1987-11-25 | 1992-01-28 | Bell Communications Research, Inc. | Real time fault tolerant transaction processing system |
DE68927783T2 (de) * | 1988-05-03 | 1997-09-25 | Wang Laboratories | Mikroprozessor mit äusserem steuerungsspeicher |
US5095420A (en) * | 1988-11-21 | 1992-03-10 | International Business Machines | Method and system for performing virtual address range mapping in a virtual storage data processing system |
US5237668A (en) * | 1989-10-20 | 1993-08-17 | International Business Machines Corporation | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media |
JP3102495B2 (ja) * | 1989-12-28 | 2000-10-23 | 株式会社日立製作所 | 仮想記憶管理方法 |
-
1990
- 1990-10-19 JP JP2279074A patent/JP2829115B2/ja not_active Expired - Fee Related
-
1995
- 1995-01-04 US US08/368,765 patent/US5619691A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2829115B2 (ja) | 1998-11-25 |
US5619691A (en) | 1997-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1755635B (zh) | 事务型存储器访问的混合硬件软件实现 | |
US5946711A (en) | System for locking data in a shared cache | |
EP0323013B1 (en) | Method of operating a multiprocessor system employing a shared virtual memory | |
EP1960878B1 (en) | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions | |
JP2575543B2 (ja) | 同時アクセス管理方法 | |
JP2603369B2 (ja) | ローカルキャッシュに共通のページ間の一貫性を確保する方法 | |
JP3102495B2 (ja) | 仮想記憶管理方法 | |
JPH05143453A (ja) | 分散キヤツシユの階層無効化方法 | |
JP2002268933A (ja) | クラスタシステム | |
JPH09311839A (ja) | データ共用方式 | |
JPH1185618A (ja) | 仮想メモリ変換を制御する方法 | |
JPH04155465A (ja) | ファイル共用方法 | |
JP3814521B2 (ja) | データ処理方法および装置 | |
JPS6113261B2 (ja) | ||
JP3093609B2 (ja) | キャッシュメモリの記憶一致制御装置及び方法 | |
JP3381079B2 (ja) | キャッシュメモリを用いた排他制御システム | |
JPS5848289A (ja) | バツフアメモリ制御方式 | |
JP3381086B2 (ja) | 排他制御可能なマルチプロセッサシステム | |
EP0049423A2 (en) | Multiprocessor system | |
JPH0559463B2 (ja) | ||
JPS6138504B2 (ja) | ||
JPH06139206A (ja) | マルチプロセッサシステムにおける排他制御方式 | |
JPH056706B2 (ja) | ||
JPH0581120A (ja) | データ処理装置 | |
JPH10161985A (ja) | プロセッサ割付方法およびマルチプロセッサ計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |