JPH1196061A - Exclusive controller - Google Patents

Exclusive controller

Info

Publication number
JPH1196061A
JPH1196061A JP9253630A JP25363097A JPH1196061A JP H1196061 A JPH1196061 A JP H1196061A JP 9253630 A JP9253630 A JP 9253630A JP 25363097 A JP25363097 A JP 25363097A JP H1196061 A JPH1196061 A JP H1196061A
Authority
JP
Japan
Prior art keywords
entry
block
lock
file
information
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
Application number
JP9253630A
Other languages
Japanese (ja)
Other versions
JP3085260B2 (en
Inventor
Katsumi Kobayashi
勝美 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP09253630A priority Critical patent/JP3085260B2/en
Publication of JPH1196061A publication Critical patent/JPH1196061A/en
Application granted granted Critical
Publication of JP3085260B2 publication Critical patent/JP3085260B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an exclusive controller capable of shortening time required for the retrieval of management information even when the controller has a generation number management function. SOLUTION: When block information corresponding to a lock request is not included in a block information string at the time of registering block information corresponding to the request outputted from a host computer, block information corresponding to the request is newly prepared and registered in the top of the block information string (step 109). When block information corresponding to the request exists in the string at the time of registering the block information corresponding to the request, the block information is connected to the top of the string and reregisters the information (step 110).

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は排他制御装置に関
し、特に複数のホストシステムからなる疎結合システム
における共有資源に対する排他制御装置に関する。
The present invention relates to an exclusive control device, and more particularly to an exclusive control device for a shared resource in a loosely coupled system including a plurality of host systems.

【0002】[0002]

【従来の技術】従来の排他制御装置については、例え
ば、特開平2−194442号公報や特開平8−305
622号公報に記載のように複数のホスト計算機(以下
ホストという)が外部記憶装置等の資源(以下共有資源
という)を共有するシステムにおいて、共有資源に対す
るホスト間での参照・更新アクセスを排他制御するため
に設けられたものである。
2. Description of the Related Art A conventional exclusive control apparatus is disclosed in, for example, Japanese Patent Application Laid-Open Nos. 2-194442 and 8-305.
In a system in which a plurality of host computers (hereinafter, referred to as a host) share resources such as an external storage device (hereinafter, referred to as a shared resource) as described in Japanese Patent No. 622, exclusive control of reference / update access between the hosts with respect to the shared resource is performed. It is provided in order to perform.

【0003】ホストは共有資源をアクセスする場合、ア
クセクするデータ部分を自身のローカルメモリに読み出
して、参照または更新を行なう。更新を行なった場合
は、更新したデータ部分を共有資源に書き戻す。
When a host accesses a shared resource, the host reads a data portion to be accessed into its own local memory and performs reference or update. When updating is performed, the updated data portion is written back to the shared resource.

【0004】排他制御を行なわないと、例えば、二つの
ホストが共有資源の同一データに対して同時に更新アク
セスを行なおうとした場合、各々が読み出し、異なる更
新を行なった後、再度書き戻すことになり、一方の更新
データが上書きされてしまうことになる。これに気づか
ずに処理が進むと、システムのデータ破壊につながる。
If exclusive control is not performed, for example, when two hosts try to perform update access to the same data of a shared resource at the same time, each of them will read, perform different updates, and write back again. That is, one of the update data is overwritten. If the process proceeds without noticing this, data in the system will be destroyed.

【0005】排他制御は、複数のホストによる共有資源
の同一データに対するアクセスを逐次化することで、前
述の同時更新によるデータ破壊を防ぐことを目的とす
る。
The exclusive control aims at preventing data destruction due to the above-mentioned simultaneous update by sequentially making accesses to the same data of a shared resource by a plurality of hosts.

【0006】排他制御の方法は、各々のホストがデータ
をアクセスする場合に、アクセスする前に排他制御装置
に当該データのアクセク許可要求(以下ロック要求とい
う)を行ない、排他制御装置から許可通知を受け取った
ら当該データのアクセスを行ない、アクセスを完了した
ら排他制御装置に開放要求(以下アンロック要求とい
う)を行なう。
In the exclusive control method, when each host accesses data, an access permission request (hereinafter referred to as a lock request) for the data is issued to the exclusive control device before the access, and a permission notification is issued from the exclusive control device. Upon receipt, the data is accessed, and upon completion of the access, a release request (hereinafter referred to as an unlock request) is made to the exclusive control device.

【0007】排他制御装置は、ホストからのロック要求
・アンロック要求に基づき共有資源のデータのロック状
態を管理し、ロック要求を受け取ったら自身の管理情報
を参照し、当該データを他のホストがロックしていなけ
ればロック許可を通知し、他のホストがロックしていれ
ばロック不可を通知する。さらに、ロック不可を通知し
た場合は、管理情報にロック許可を待っているホストが
あることを記録しておき、当該ロックがアンロックされ
たとき、ロック許可を待っているホストにロック許可を
通知する。以上の方法により、共有資源の同一データに
対するアクセスを逐次化する。
The exclusive control device manages the lock state of the data of the shared resource based on the lock request / unlock request from the host, and upon receiving the lock request, refers to its own management information, and the other host transfers the data to another host. If not locked, a lock permission is notified, and if another host is locked, a lock disable is notified. Furthermore, when the lock is notified, the fact that there is a host waiting for the lock permission is recorded in the management information, and when the lock is unlocked, the host that is waiting for the lock permission is notified of the lock permission. I do. According to the above method, access to the same data of the shared resource is serialized.

【0008】さらに、排他制御装置には、世代管理機能
を備えているものもある。
Furthermore, some exclusive control devices have a generation management function.

【0009】あるホストが自身のローカルメモリに共有
資源のデータを読み出して処理を行なった後、しばらく
してから再度同一データをアクセスする場合に、その間
に他のホストが当該データを更新していなければ、再度
ローカルメモリに読み出す必要がない。
When a certain host accesses the same data again after a certain time after reading the data of the shared resource in its own local memory and performing the processing, another host must update the data during that time. In this case, there is no need to read the data to the local memory again.

【0010】そこで、データに世代番号を持たせ、更新
の度に世代番号を1加算することにより、ローカルメモ
リに保持しているデータと共有資源内に存在するデータ
が一致するかを世代番号によって判断する。排他制御装
置は、共有資源内のデータの最新の世代番号を管理す
る。排他制御装置は、ロック要求を受け取ったとき、ロ
ック許可の通知とあわせて現在の世代番号を通知する。
また、アンロック要求を受け取ったとき、要求により保
持している世代番号を1加算する。
Therefore, the generation number is assigned to the data, and the generation number is incremented by one every time the data is updated, so that whether the data held in the local memory matches the data existing in the shared resource is determined by the generation number. to decide. The exclusive control device manages the latest generation number of the data in the shared resource. When receiving the lock request, the exclusive control device notifies the current generation number together with the lock permission notification.
When an unlock request is received, the generation number held by the request is incremented by one.

【0011】通常の排他制御装置は、以上の機能を実現
するにあたり、共有資源を複数のフアイルの集まりと定
義し、さらに各フアイルを複数のブロックに分割し、排
他制御を行なう最小単位をブロック単位としている。ま
た、ロック・アンロックの要求はホスト上で動作するタ
スク(プロセスともいう)単位に行なわせている。
In realizing the above functions, a common exclusive control device defines a shared resource as a group of a plurality of files, further divides each file into a plurality of blocks, and defines a minimum unit for performing the exclusive control in block units. And Lock / unlock requests are made in units of tasks (also called processes) operating on the host.

【0012】[0012]

【発明が解決しようとする課題】以上の機能は、単一ホ
ストシステムであれば不要な機能である。しかし、複数
ホストによる共有資源利用においては必須であり、共有
資源のデータをアクセスする度に、排他制御装置に対し
てロック・アンロック要求を行なう必要があり、単一ホ
ストシステムと比べ、排他制御装置に対するアクセス分
性能が低下する。したがって排他制御装置の処理に要す
る時間は限りなく短くする必要がある。
The above functions are unnecessary functions in a single host system. However, it is indispensable to use shared resources by a plurality of hosts, and it is necessary to issue a lock / unlock request to the exclusive control device every time data of the shared resources is accessed. The performance for the access to the device is reduced. Therefore, the time required for processing by the exclusive control device needs to be reduced as much as possible.

【0013】排他制御装置における処理性能のネック
は、管理情報の検索処理である。管理する情報が多くな
ればなるほど、要求の度に目的の管理情報を検索するの
に多くの時間を要する。
A bottleneck in the processing performance of the exclusive control device is a management information search process. The more information to manage, the more time it takes to retrieve the desired management information for each request.

【0014】特に、世代番号管理機能を有する排他制御
装置においては、世代番号管理のために、ロックされて
いなくてもブロック情報だけが排他制御の管理テーブル
上に多数残ったままとなるため、ブロックの管理情報の
検索に時間がかかる可能性がさらに、大きくなるという
欠点を有している。
Particularly, in an exclusive control device having a generation number management function, since only a large number of block information remains in the exclusive control management table even if it is not locked for generation number management, There is a disadvantage that the possibility that it takes a long time to search for the management information is further increased.

【0015】本発明は以上の点に着目してなされたもの
で、世代番号管理機能を有する場合でも管理情報の検索
に要する時間を短縮できる排他制御装置を提供すること
にある。
The present invention has been made in view of the above points, and it is an object of the present invention to provide an exclusive control device capable of reducing the time required for searching for management information even when having a generation number management function.

【0016】[0016]

【課題を解決するための手段】第1の発明の排他制御装
置は、複数のホスト計算機が外部記憶装置等の共有資源
を共有するシステムで前記共有資源を複数のフアイルの
集合と定義しさらに前記各フアイルのそれぞれを複数の
ブロックに分割し前記ホスト計算機のタスク単位による
排他制御を前記ブロック単位に行なう排他制御装置にお
いて、前記ブロックの更新情報を示す世代番号の管理と
ロック状態を示すロック情報の管理のために管理対象中
のフアイルの情報をフアイル情報列として一列にポイン
タで接続登録し管理対象中のブロックの情報をフアイル
毎にブロック情報列として一列にポインタで接続登録す
る管理テーブルと、前記ホスト計算機からのロック要求
に対するロック情報の登録時に前記ブロック情報列中に
前記要求に対応するブロックの情報がないときには新た
に前記要求に対応するブロックの情報を作成して前記ブ
ロック情報列の先頭に登録し前記ロック要求に対するロ
ック情報の登録時に前記ブロック情報列中に前記要求に
対応するブロックの情報が存在するときにはこのブロッ
ク情報を前記ブロック情報列の先頭に接続登録しなおす
ロック処理手段とを含んで構成されている。
According to a first aspect of the present invention, there is provided an exclusive control apparatus wherein a plurality of host computers define a shared resource as a set of a plurality of files in a system in which a shared resource such as an external storage device is shared. In an exclusive control device that divides each file into a plurality of blocks and performs exclusive control on a block-by-block basis in a task unit of the host computer, management of generation numbers indicating update information of the blocks and lock information indicating a lock state are performed. A management table for connecting and registering information of a file being managed for one file as a file information string for management with a pointer in a row and connecting and registering information of a block being managed for each file with a pointer as a block information string for each file in a row; When the lock information for the lock request from the host computer is registered, the lock information corresponding to the request is included in the block information sequence. When there is no block information, block information corresponding to the request is newly created and registered at the head of the block information sequence, and when the lock information for the lock request is registered, the block corresponding to the request is included in the block information sequence. And lock processing means for re-registering the block information at the head of the block information sequence when the information exists.

【0017】第2の発明の排他制御装置は、第1の発明
の排他制御装置において、ロック処理手段はホスト計算
機からのロック要求に対するロック情報の登録時にフア
イル情報列中に前記要求に対応するフアイルの情報がな
いときには新たに前記要求に対応するフアイルの情報を
作成して前記フアイル情報列の先頭に登録することを特
徴としている。
The exclusive control device according to a second aspect of the present invention is the exclusive control device according to the first aspect, wherein the lock processing means includes a file corresponding to the request in a file information sequence when registering lock information for a lock request from a host computer. If there is no such information, a new file information corresponding to the request is created and registered at the head of the file information sequence.

【0018】第3の発明の排他制御装置は、第1または
第2の発明の排他制御装置において、ホスト計算機から
のアンロック要求に対するロック情報の登録の削除時に
前記要求に対応するブロック情報が世代番号の管理対象
のブロック情報のときにはこのブロック情報の世代番号
を+1して更新してブロック情報列に保存し前記要求に
対応するブロック情報が前記世代番号の管理対象外のブ
ロック情報のときにはこのブロックをロックしている他
のロック情報がないときにはこのブロック情報を削除す
るアンロック処理手段を有することを特徴としている。
The exclusive control device according to a third aspect of the present invention is the exclusive control device according to the first or second aspect, wherein when registration of lock information for an unlock request from a host computer is deleted, block information corresponding to the request is generated. When the block information is a block number to be managed, the generation number of the block information is updated by +1 and stored in a block information sequence. When the block information corresponding to the request is block information not to be managed by the generation number, the block number is updated. When there is no other lock information that locks the block information, there is provided an unlock processing means for deleting this block information.

【0019】第4の発明の排他制御装置は、第3の発明
の排他制御装置において、アンロック処理手段はホスト
計算機からのアンロック要求に対するロック情報の登録
の削除時に前記要求に対応するブロック情報を削除して
前記要求に対応するフアイル情報のブロック情報列に他
のブロック情報がないときにはこのフアイル情報を削除
することを特徴としている。
The exclusive control device according to a fourth aspect of the present invention is the exclusive control device according to the third aspect of the present invention, wherein the unlock processing means deletes block information corresponding to the request when deleting the registration of the lock information in response to the unlock request from the host computer. And if there is no other block information in the block information sequence of the file information corresponding to the request, the file information is deleted.

【0020】[0020]

【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
Next, embodiments of the present invention will be described with reference to the drawings.

【0021】図4は本発明の排他制御装置の一実施の形
態を示すブロック図であり、(a)は排他制御装置にお
けるフアイルエントリ、タスクエントリの管理テーブル
構造を、(b)は空きエントリの管理テーブル構造を示
す。
FIG. 4 is a block diagram showing an embodiment of the exclusive control device according to the present invention. FIG. 4A shows a management table structure of file entries and task entries in the exclusive control device, and FIG. 3 shows a management table structure.

【0022】管理テーブルは、フアイル情報を示すエン
トリ(フアイルエントリ10−1〜10−n)と、タス
ク情報を示すエントリ(タスクエントリ20−1〜20
−n)と、ブロック情報を示すエントリ(ブロックエン
トリ30−1〜30−n)と、ロック情報を示すエント
リ(ロックエントリ40−1〜40−n)の4種類のエ
ントリ、および以上のいずれのエントリとしても使われ
ていない未使用のエントリ(空きエントリ50−1〜5
0−n)を持つ。エントリ数は、総べてnとしたが本発
明はこれに限定されるものではない。
The management table has entries indicating file information (file entries 10-1 to 10-n) and entries indicating task information (task entries 20-1 to 20- 20).
-N), entries indicating block information (block entries 30-1 to 30-n), and entries indicating lock information (lock entries 40-1 to 40-n), and any of the above. Unused entries that are not used as entries (empty entries 50-1 to 50-5)
0-n). The number of entries is all n, but the present invention is not limited to this.

【0023】空きエントリはポインタで結ばれ(空きエ
ントリ列)、先頭エントリと末尾エントリを指し示す空
きエントリ管理エリア50(図4(b))によって管理
される。
The empty entries are linked by a pointer (empty entry column), and are managed by an empty entry management area 50 (FIG. 4B) indicating the first entry and the last entry.

【0024】現在登録されているフアイルエントリはポ
インタで結ばれ(フアイルエントリ列)、先頭エントリ
と末尾エントリを指し示すフアイルエントリ管理エリア
10(図4(a))によって管理される。
The currently registered file entries are connected by a pointer (file entry sequence), and are managed by a file entry management area 10 (FIG. 4 (a)) indicating the head entry and the tail entry.

【0025】現在登録されているタスクエントリはポイ
ンタで結ばれ(タスクエントリ列)、先頭エントリと末
尾エントリを指し示すタスクエントリ管理エリア20
(図4(a))によって管理される。
The currently registered task entries are connected by a pointer (task entry sequence), and the task entry management area 20 indicating the first entry and the last entry.
(FIG. 4A).

【0026】現在登録されているブロックエントリは本
ブロックを持つフアイルに該当するフアイルエントリと
ポインタで結ばれている。同一フアイル配下に複数のブ
ロックが存在している場合は複数のブロックエントリが
ポインタで結ばれ(ブロックエントリ列)、フアイルエ
ントリが先頭エントリと末尾エントリを指し示してい
る。
The currently registered block entry is linked by a pointer to a file entry corresponding to the file having this block. When a plurality of blocks exist under the same file, a plurality of block entries are connected by a pointer (block entry sequence), and the file entry indicates the first entry and the last entry.

【0027】ロックされているブロックエントリとタス
クエントリとはロックエントリを介してポインタで結ば
れ、どのタスクがどのブロックをロックしているかを管
理している。また、ひとつのタスクが複数のブロックを
ロックしている場合は、各々のロックエントリがポイン
タで結ばれ(ロックエントリ列)、タスクエントリが先
頭エントリと末尾エントリを指し示している。
A locked block entry and a task entry are connected by a pointer via a lock entry, and manages which task locks which block. When one task locks a plurality of blocks, each lock entry is connected by a pointer (lock entry sequence), and the task entry indicates the first entry and the last entry.

【0028】図5は各エントリと各エントリ管理エリア
の構造を示す。
FIG. 5 shows the structure of each entry and each entry management area.

【0029】フアイルエントリ10−nは、フアイル識
別子エリアと、先頭ブロックエントリポインタと、末尾
ブロックエントリポインタと、フアイルエントリ列を構
成するための次エントリポインタと前エントリポインタ
を備えている(図5(a))。
The file entry 10-n includes a file identifier area, a head block entry pointer, a tail block entry pointer, a next entry pointer and a previous entry pointer for forming a file entry sequence (FIG. 5 ( a)).

【0030】タスクエントリ20−nはホスト識別子エ
リアと、タスク識別子エリアと、先頭ロックエントリポ
インタと、末尾ロックエントリポインタと、タスクエン
トリ列を構成するための次エントリポインタと前エント
リポインタを備えている(図5(b))。
The task entry 20-n has a host identifier area, a task identifier area, a head lock entry pointer, a tail lock entry pointer, and a next entry pointer and a previous entry pointer for forming a task entry sequence. (FIG. 5 (b)).

【0031】ブロックエントリ30−nはブロック識別
子エリアと、世代番号エリアと、ロックエントリポイン
タと、ロック待ちエントリポインタと、ブロックエント
リ列を構成するための次エントリポインタと前エントリ
ポインタを備えている(図5(c))。
The block entry 30-n includes a block identifier area, a generation number area, a lock entry pointer, a lock waiting entry pointer, and a next entry pointer and a previous entry pointer for forming a block entry sequence ( FIG. 5 (c)).

【0032】ロックエントリ40−nはブロックエント
リポインタとタスクエントリポインタと、ロックエント
リ列を構成するための次エントリポインタと前エントリ
ポインタを備えている(図5(d))。
The lock entry 40-n has a block entry pointer, a task entry pointer, and a next entry pointer and a previous entry pointer for forming a lock entry sequence (FIG. 5D).

【0033】空きエントリ50−nは空きエントリ列を
構成するための次エントリポインタと前エントリポイン
タを備えている(図5(e))。
The empty entry 50-n has a next entry pointer and a previous entry pointer for forming an empty entry string (FIG. 5 (e)).

【0034】空きエントリ管理エリア50は空きエント
リ列の先頭エントリポインタと末尾エントリポインタを
備えている(図5(h))。
The empty entry management area 50 has a head entry pointer and an end entry pointer of the empty entry row (FIG. 5 (h)).

【0035】フアイルエントリ管理エリア10はフアイ
ルエントリ列の先頭エントリポインタと末尾エントリポ
インタを備えている(図5(f))。
The file entry management area 10 has a head entry pointer and a tail entry pointer of the file entry string (FIG. 5 (f)).

【0036】タスクエントリ管理エリア20はタスクエ
ントリ列の先頭エントリポインタと末尾エントリポイン
タを備えている(図5(g))。
The task entry management area 20 has a head entry pointer and a tail entry pointer of the task entry sequence (FIG. 5 (g)).

【0037】図6は本発明の実施例を説明するための図
4におけるフアイルエントリによるブロックエントリの
管理状態の推移を示したものである。図4ではロックさ
れているブロックエントリの管理状態のみを示している
が、図6では、ロックされていないブロックエントリの
管理状態も示している。ロックされていないブロックで
の管理の必要性は世代番号管理のためである。
FIG. 6 shows the transition of the management state of the block entry by the file entry in FIG. 4 for explaining the embodiment of the present invention. FIG. 4 shows only the management state of the locked block entry, but FIG. 6 also shows the management state of the unlocked block entry. The need for management in unlocked blocks is for generation number management.

【0038】(a)は10個のエントリの管理状態を示
し、(b)は(a)より新たに1個のエントリが加わっ
た状態を示し、(c)は既存のエントリが再登録された
状態を示す図である。説明のために、ブロックエントリ
の上の数字はブロック識別子を示している。また、各ブ
ロックエントリの下の「L」はロックエントリを持って
いるブロックエントリであることを示している。
(A) shows a management state of 10 entries, (b) shows a state where one entry is newly added from (a), and (c) shows a state where an existing entry is re-registered. It is a figure showing a state. For illustrative purposes, the numbers above the block entries indicate block identifiers. “L” below each block entry indicates that the block entry has a lock entry.

【0039】図7、図8はあるブロックにおけるロック
の管理状態を示している。
FIGS. 7 and 8 show a lock management state in a certain block.

【0040】図7は、フアイルエントリ10−1配下の
ブロックエントリ30−1をタスクエントリ20−1が
ロックしている状態で、ブロックエントリ30−1とタ
スクエントリ20−1の双方がロックエントリ40−1
を指し示している。
FIG. 7 shows a state in which the block entry 30-1 under the file entry 10-1 is locked by the task entry 20-1, and both the block entry 30-1 and the task entry 20-1 are locked. -1
Is pointing to.

【0041】図8は、図7と同様にフアイルエントリ1
0−1配下のブロックエントリ30−1をタスクエント
リ20−1がロックしている状態だが、さらに本ブロッ
クをタスクエントリ20−2がロック待ちの状態で、ブ
ロックエントリ30−1とタスクエントリ20−2の双
方がロックエントリ40−2を指し示している。なおブ
ロックエントリ30−1は、自身のロックエントリポイ
ンタでロックエントリ40−1を、ロック持ちエントリ
ポインタでロックエントリ40−2を指し示している。
FIG. 8 shows file entry 1 similar to FIG.
Although the task entry 20-1 locks the block entry 30-1 under 0-1, the block entry 30-1 and the task entry 20- are also locked with the task entry 20-2 waiting for the lock of this block. 2 both point to lock entry 40-2. The block entry 30-1 points to the lock entry 40-1 by its own lock entry pointer and the lock entry 40-2 by the entry pointer having lock.

【0042】各エントリの登録または削除は、ロック要
求およびアンロック要求に伴なって生ずるものであり、
その際に、ロック、アンロックに対応するホスト、タス
ク、フアイルおよびブロックの各識別子が要求内容に含
まれて供給される。
Registration or deletion of each entry is caused by a lock request and an unlock request.
At that time, the identifiers of the host, task, file, and block corresponding to the lock and unlock are included in the request content and supplied.

【0043】最初に空きエントリ列の利用手順について
説明する。各エントリは空きエントリを共用利用する。
登録時に空きエントリ列から1つエントリを取得し、削
除時に空きエントリに戻す。
First, a procedure for using an empty entry string will be described. Each entry shares and uses an empty entry.
One entry is acquired from the empty entry sequence at the time of registration, and is returned to an empty entry at the time of deletion.

【0044】空きエントリの取得は以下の手順で行な
う。 1.空きエントリ管理エリア50から、先頭空きエント
リのアドレスを取得する。 2.「1.」で取得した空きエントリから次空きエント
リのアドレスを取得し空きエントリ管理エリア50の先
頭空きエントリポインタに格納する。 3.「2.」で次空きエントリがなかった場合(次エン
トリポインタが0)は、空きエントリ管理エリア50の
先頭および末尾空きエントリポインタの双方に0を格納
する。 以上の手順により空きエントリは空きエントリ列の先頭
から取り出される。
The acquisition of an empty entry is performed in the following procedure. 1. The address of the first empty entry is obtained from the empty entry management area 50. 2. The address of the next free entry is obtained from the free entry obtained in “1.” and stored in the first free entry pointer of the free entry management area 50. 3. If there is no next empty entry in “2.” (next entry pointer is 0), 0 is stored in both the leading and trailing empty entry pointers of the empty entry management area 50. With the above procedure, empty entries are extracted from the head of the empty entry string.

【0045】空きエントリ列にエントリを戻すのは以下
の手順で行なう。 1.戻すエントリの次エントリポインタに0を格納す
る。 2.空きエントリ管理エリア50の先頭エントリポイン
タを調べ値が0(空きエントリが1つもない状態)なら
「3.」を、0以外なら「4.」を実行する。 3.空きエントリ管理エリア50の先頭空きエントリポ
インタと末尾空きエントリポインタの双方に戻すエント
リのアドレスを格納する。 4.空きエントリ管理エリア50から末尾空きエントリ
のアドレスを取得し、このエントリの次エントリポイン
タと空きエントリ管理エリア50の末尾空きエントリポ
インタの双方に戻すエントリのアドレスを格納する。 以上の手順によりエントリは空きエントリ列の最後尾に
戻される。
The entry is returned to the empty entry column in the following procedure. 1. 0 is stored in the next entry pointer of the entry to be returned. 2. The head entry pointer of the empty entry management area 50 is checked, and if the value is 0 (there is no empty entry), “3.” is executed. If the value is other than 0, “4.” is executed. 3. The address of the entry to be returned to both the leading empty entry pointer and the trailing empty entry pointer of the empty entry management area 50 is stored. 4. The address of the last free entry is obtained from the free entry management area 50, and the address of the entry returned to both the next entry pointer of this entry and the last free entry pointer of the free entry management area 50 is stored. With the above procedure, the entry is returned to the end of the empty entry sequence.

【0046】次に各エントリの登録・削除手順について
説明する。
Next, the registration / deletion procedure of each entry will be described.

【0047】フアイルエントリの登録は以下の手順で行
なう。 1.空きエントリ列から空きエントリを1つ取得し、フ
アイル識別子エリアにフアイル識別子を格納し次エント
リポインタと前エントリポインタと先頭ブロックエント
リポインタと末尾ブロックエントリポインタに0を格納
する。 2.フアイルエントリ管理エリア10の先頭フアイルエ
ントリポインタを調べ、値が0(フアイルエントリが1
つもない状態)なら「3.」を、0以外なら「4.」を
実行する。 3.フアイルエントリ管理エリア10の先頭フアイルエ
ントリポインタと末尾フアイルエントリポインタの双方
に「1.」で作成したフアイルエントリのアドレスを格
納する。 4.フアイルエントリ管理エリア10から末尾フアイル
エントリのアドレスを取得し、「1.」で作成したフア
イルエントリの前エントリポインタに末尾フアイルエン
トリのアドレスを格納し、末尾フアイルエントリの次エ
ントリポインタとフアイルエントリ管理エリア10の末
尾フアイルエントリポインタの双方に「1.」で作成し
たフアイルエントリのアドレスを格納する。 以上の手順によりエントリはフアイルエントリ列の最後
尾に登録される。
Registration of a file entry is performed in the following procedure. 1. One empty entry is obtained from the empty entry column, the file identifier is stored in the file identifier area, and 0 is stored in the next entry pointer, previous entry pointer, first block entry pointer, and last block entry pointer. 2. The first file entry pointer in the file entry management area 10 is checked, and the value is 0 (the file entry is 1).
If no, execute "3.", otherwise execute "4." 3. The address of the file entry created in "1." is stored in both the first file entry pointer and the last file entry pointer of the file entry management area 10. 4. The address of the last file entry is acquired from the file entry management area 10, the address of the last file entry is stored in the entry pointer before the file entry created in "1.", the next entry pointer of the last file entry and the file entry management area. The address of the file entry created in "1." is stored in both of the last file entry pointers of "10." According to the above procedure, the entry is registered at the end of the file entry sequence.

【0048】フアイルエントリの削除は以下の手順で行
なう。 1.削除するフアイルエントリの前エントリポインタと
次エントリポインタを調べ、双方ともに0であれば
「2.」を、前エントリポインタのみ0であれば
「3.」を、次エントリポインタのみ0であれば
「4.」を、双方ともに0でなければ「5.」を実行す
る。 2.本ケースは他にフアイルエントリがないケースであ
る。この場合は、フアイルエントリ管理エリア10の先
頭フアイルエントリポインタと末尾フアイルエントリポ
インタの双方に0を格納し、削除するフアイルエントリ
を空きエントリ列に戻す。 3.本ケースは複数のフアイルエントリが存在し、削除
されるフアイルエントリが先頭に位置するケースであ
る。この場合は、削除するフアイルエントリから次フア
イルエントリのアドレスを取得し、次フアイルエントリ
の前エントリポインタに0を格納し、フアイルエントリ
管理エリア10の先頭フアイルエントリポインタに次フ
アイルエントリのアドレスを格納した後、削除するフア
イルエントリを空きエントリ列に戻す。 4.本ケースは複数のフアイルエントリが存在し、削除
されるフアイルエントリが末尾に位置するケースであ
る。この場合は、削除するフアイルエントリから前フア
イルエントリのアドレスを取得し、前フアイルエントリ
の次エントリポインタに0を格納し、フアイルエントリ
管理エリア10の末尾フアイルエントリポインタに前フ
アイルエントリのアドレスを格納した後、削除するフア
イルエントリを空きエントリ列に戻す。 5.本ケースは複数のフアイルエントリが存在し、削除
されるフアイルエントリが中間に位置するケースであ
る。この場合は、削除するフアイルエントリから前フア
イルエントリのアドレスと次フアイルエントリのアドレ
スを取得し、前フアイルエントリの次エントリポインタ
に次フアイルエントリのアドレスを格納し、次フアイル
エントリの前エントリポインタに前フアイルエントリの
アドレスを格納した後、削除するフアイルエントリを空
きエントリ列に戻す。
Deletion of a file entry is performed in the following procedure. 1. The previous entry pointer and the next entry pointer of the file entry to be deleted are checked. If both are 0, "2."; if only the previous entry pointer is 0, "3." 4. If both are not 0, execute 5 .. 2. In this case, there is no other file entry. In this case, 0 is stored in both the leading file entry pointer and the trailing file entry pointer of the file entry management area 10, and the file entry to be deleted is returned to the empty entry column. 3. In this case, there are a plurality of file entries, and the file entry to be deleted is located at the top. In this case, the address of the next file entry is obtained from the file entry to be deleted, 0 is stored in the previous entry pointer of the next file entry, and the address of the next file entry is stored in the first file entry pointer of the file entry management area 10. Thereafter, the file entry to be deleted is returned to the empty entry column. 4. In this case, there are a plurality of file entries, and the file entry to be deleted is located at the end. In this case, the address of the previous file entry is obtained from the file entry to be deleted, 0 is stored in the next entry pointer of the previous file entry, and the address of the previous file entry is stored in the last file entry pointer of the file entry management area 10. Thereafter, the file entry to be deleted is returned to the empty entry column. 5. In this case, there are a plurality of file entries, and the file entry to be deleted is located in the middle. In this case, the address of the previous file entry and the address of the next file entry are obtained from the file entry to be deleted, the address of the next file entry is stored in the next entry pointer of the previous file entry, and the previous entry pointer of the next file entry is stored. After storing the address of the file entry, the file entry to be deleted is returned to the empty entry column.

【0049】タスクエントリの登録は以下の手順で行な
う。 1.空きエントリ列から空きエントリを1つ取得し、ホ
スト識別子エリアにホスト識別子を、タスク識別子エリ
アにタスク識別子を格納し、次エントリポインタと前エ
ントリポインタと先頭ロックエントリポインタと末尾ロ
ックエントリポインタに0を格納する。 2.タスクエントリ管理エリア20の先頭タスクエント
リポインタを調べ、値が0(タスクエントリが1つもな
い状態)なら「3.」を、0以外なら「4.」を実行す
る。 3.タスクエントリ管理エリア20の先頭タスクエント
リポインタと末尾タスクエントリポインタの双方に
「1.」で作成したタスクエントリのアドレスを格納す
る。 4.タスクエントリ管理エリア20から末尾タスクエン
トリのアドレスを取得し、「1.」で作成したタスクエ
ントリの前エントリポインタに末尾タスクエントリのア
ドレスを格納し、末尾タスクエントリの次エントリポイ
ンタとタスクエントリ管理エリア20の末尾タスクエン
トリポインタの双方に「1.」で作成したタスクエント
リのアドレスを格納する。 以上の手順によりエントリはタスクエントリ列の最後尾
に登録される。
Registration of a task entry is performed in the following procedure. 1. One empty entry is obtained from the empty entry column, the host identifier is stored in the host identifier area, the task identifier is stored in the task identifier area, and 0 is stored in the next entry pointer, the previous entry pointer, the first lock entry pointer, and the last lock entry pointer. Store. 2. The first task entry pointer in the task entry management area 20 is checked, and if the value is 0 (there is no task entry), "3." 3. The address of the task entry created in "1." is stored in both the first task entry pointer and the last task entry pointer of the task entry management area 20. 4. The address of the last task entry is obtained from the task entry management area 20, the address of the last task entry is stored in the previous entry pointer of the task entry created in "1.", the next entry pointer of the last task entry and the task entry management area. The address of the task entry created in “1.” is stored in both of the last task entry pointers of No. 20. With the above procedure, the entry is registered at the end of the task entry sequence.

【0050】タスクエントリの削除は以下の手順で行な
う。 1.削除するタスクエントリの前エントリポインタと次
エントリポインタを調べ、双方ともに0であれば
「2.」を、前エントリポインタのみ0であれば
「3.」を、次エントリポインタのみ0であれば
「4.」を、双方ともに0でなければ「5.」を実行す
る。 2.本ケースは他にタスクエントリがないケースであ
る。この場合は、タスクエントリ管理エリア20の先頭
タスクエントリポインタと末尾タスクエントリポインタ
の双方に0を格納し、削除するタスクエントリを空きエ
ントリ列に戻す。 3.本ケースは複数のタスクエントリが存在し、削除さ
れるタスクエントリが先頭に位置するケースである。こ
の場合は、削除するタスクエントリから次タスクエント
リのアドレスを取得し、次タスクエントリの前エントリ
ポインタに0を格納し、タスクエントリ管理エリア20
の先頭タスクエントリポインタに次タスクエントリのア
ドレスを格納した後、削除するタスクエントリを空きエ
ントリ列に戻す。 4.本ケースは複数のタスクエントリが存在し、削除さ
れるタスクエントリが末尾に位置するケースである。こ
の場合は、削除するタスクエントリから前タスクエント
リのアドレスを取得し、前タスクエントリの次エントリ
ポインタに0を格納し、タスクエントリ管理エリア20
の末尾タスクエントリポインタに前タスクエントリのア
ドレスを格納した後、削除するタスクエントリを空きエ
ントリ列に戻す。 5.本ケースは複数のタスクエントリが存在し、削除さ
れるタスクエントリが中間に位置するケースである。こ
の場合は、削除するタスクエントリから前タスクエント
リのアドレスと次タスクエントリのアドレスを取得し、
前タスクエントリの次エントリポインタに次タスクエン
トリのアドレスを格納し、次タスクエントリの前エント
リポインタに前タスクエントリのアドレスを格納した
後、削除するタスクエントリを空きエントリ列に戻す。
The deletion of a task entry is performed in the following procedure. 1. The previous entry pointer and the next entry pointer of the task entry to be deleted are examined. If both are 0, “2.” is entered. If only the previous entry pointer is 0, “3.” is entered. 4. If both are not 0, execute 5 .. 2. In this case, there is no other task entry. In this case, 0 is stored in both the leading task entry pointer and the ending task entry pointer of the task entry management area 20, and the task entry to be deleted is returned to the empty entry column. 3. In this case, there are a plurality of task entries, and the task entry to be deleted is located at the top. In this case, the address of the next task entry is acquired from the task entry to be deleted, 0 is stored in the previous entry pointer of the next task entry, and the task entry management area 20
After the address of the next task entry is stored in the first task entry pointer, the task entry to be deleted is returned to the empty entry column. 4. In this case, there are a plurality of task entries, and the task entry to be deleted is located at the end. In this case, the address of the previous task entry is obtained from the task entry to be deleted, 0 is stored in the next entry pointer of the previous task entry, and the task entry management area 20 is stored.
After the address of the previous task entry is stored in the last task entry pointer, the task entry to be deleted is returned to the empty entry column. 5. In this case, there are a plurality of task entries, and the task entry to be deleted is located in the middle. In this case, obtain the address of the previous task entry and the address of the next task entry from the task entry to be deleted,
The address of the next task entry is stored in the next entry pointer of the previous task entry, the address of the previous task entry is stored in the previous entry pointer of the next task entry, and the task entry to be deleted is returned to the empty entry column.

【0051】ブロックエントリの登録は以下の手順で行
なう。 1.空きエントリ列から空きエントリを1つ取得し、ブ
ロック識別子エリアにブロック識別子を格納し、世代番
号エリアに初期値を格納し、次エントリポインタと前エ
ントリポインタとロックエントリポインタとロック待ち
エントリポインタに0を格納する。 2.本ブロックを持つフアイルエントリの先頭ブロック
エントリポインタを調べ、値が0(ブロックエントリが
1つもない状態)なら「3.」を、0以外なら「4.」
を実行する。 3.フアイルエントリの先頭ブロックエントリポインタ
と末尾ブロックエントリポインタに「1.」で作成した
ブロックエントリのアドレスを格納する。 4.フアイルエントリの先頭ブロックエントリポインタ
が示すブロックエントリの前エントリポインタに
「1.」で作成したブロックエントリのアドレスを格納
し、「1.」で作成したブロックエントリの次エントリ
ポインタにフアイルエントリの先頭ブロックエントリポ
インタの値を格納し、フアイルエントリの先頭ブロック
エントリポインタに「1.」で作成したブロックエント
リのアドレスを格納する。 以上の手順により、ブロックエントリはブロックエント
リ列の先頭に登録される。
The registration of a block entry is performed in the following procedure. 1. One empty entry is obtained from the empty entry column, the block identifier is stored in the block identifier area, the initial value is stored in the generation number area, and 0 is stored in the next entry pointer, previous entry pointer, lock entry pointer, and lock waiting entry pointer. Is stored. 2. The head block entry pointer of the file entry having this block is checked. If the value is 0 (there is no block entry), "3."
Execute 3. The address of the block entry created in “1.” is stored in the first block entry pointer and the last block entry pointer of the file entry. 4. The address of the block entry created in "1." is stored in the entry pointer before the block entry indicated by the first block entry pointer of the file entry, and the first block of the file entry is stored in the next entry pointer of the block entry created in "1." The value of the entry pointer is stored, and the address of the block entry created in "1." is stored in the first block entry pointer of the file entry. By the above procedure, the block entry is registered at the head of the block entry sequence.

【0052】ブロックエントリの削除は以下の手順で行
なう。 1.削除するブロックエントリの前エントリポインタと
次エントリポインタを調べ、双方ともに0であれば
「2.」を、前エントリポインタのみ0であれば
「3.」を、次エントリポインタのみ0であれば
「4.」を、双方ともに0でなければ「5.」を実行す
る。 2.本ケースは他にブロックエントリがないケースであ
る。この場合は、本ブロックを持っているフアイルエン
トリの先頭ブロックエントリポインタと末尾ブロックエ
ントリポインタの双方に0を格納し、削除するブロック
エントリを空きエントリ列に戻す。 3.本ケースは複数のブロックエントリが存在し、削除
するブロックエントリが先頭に位置するケースである。
この場合は、削除するブロックエントリから次エントリ
のアドレスを取得し、次ブロックエントリの前エントリ
ポインタに0を格納し、フアイルエトリの先頭ブロック
エントリポインタに次ブロックエントリのアドレスを格
納した後、削除するブロックエントリを空きエントリ列
に戻す。 4.本ケースは複数のブロックエントリが存在し、削除
するブロックエントリが末尾に位置するケースである。
この場合は削除するブロックエントリから前エントリの
アドレスを取得し、前ブロックエントリの次エントリポ
インタに0を格納し、フアイルエントリの末尾ブロック
エントリポインタに前ブロックエントリのアドレスを格
納した後、削除するブロックエントリを空きエントリ列
に戻す。 5.本ケースは複数のブロックエントリが存在し、削除
されるブロックエントリが中間に位置するケースであ
る。この場合は、削除するブロックエントリから前ブロ
ックエントリのアドレスと次ブロックエントリのアドレ
スを取得し、前ブロックエントリの次エントリポインタ
に次ブロックエントリのアドレスを格納し、次ブロック
エントリの前エントリポインタに前ブロックエントリの
アドレスを格納した後、削除するブロックエントリを空
きエントリ列に戻す。
The deletion of a block entry is performed in the following procedure. 1. The previous entry pointer and the next entry pointer of the block entry to be deleted are checked, and if both are 0, “2.”; if the previous entry pointer is only 0, “3.”; if only the next entry pointer is 0, “2.” 4. If both are not 0, execute 5 .. 2. In this case, there is no other block entry. In this case, 0 is stored in both the head block entry pointer and the end block entry pointer of the file entry having this block, and the block entry to be deleted is returned to the empty entry column. 3. In this case, there are a plurality of block entries, and the block entry to be deleted is located at the top.
In this case, the address of the next entry is obtained from the block entry to be deleted, 0 is stored in the previous entry pointer of the next block entry, the address of the next block entry is stored in the first block entry pointer of the file entry, and then the block to be deleted is deleted. Returns an entry to the empty entry column. 4. In this case, there are a plurality of block entries, and the block entry to be deleted is located at the end.
In this case, the address of the previous entry is obtained from the block entry to be deleted, 0 is stored in the next entry pointer of the previous block entry, the address of the previous block entry is stored in the last block entry pointer of the file entry, and then the block to be deleted Returns an entry to the empty entry column. 5. In this case, there are a plurality of block entries, and the block entry to be deleted is located in the middle. In this case, the address of the previous block entry and the address of the next block entry are obtained from the block entry to be deleted, the address of the next block entry is stored in the next entry pointer of the previous block entry, and the previous address is stored in the previous entry pointer of the next block entry. After storing the address of the block entry, the block entry to be deleted is returned to the empty entry column.

【0053】ロックエントリの登録は以下の手順で行な
う。 1.空きエントリ列から1つエントリを取得する。 2.ロック状態として登録する場合はブロックエントリ
のロックエントリポインタに「1.」で作成したロック
エントリのアドレスを格納する。ロック待ちエントリと
して登録する場合は、ブロックエントリのロック待ちエ
ントリポインタに「1.」で作成したロックエントリの
アドレスを格納する。「1.」で作成したロックエント
リのブロックエントリポインタに接続するブロックエン
トリのアドレスを格納する。 3.「1.」で作成したロックエントリのタスクエント
リポインタに接続するタスクエントリのアドレスを格納
する。次にタスクエントリの先頭ロックエントリポイン
タを調べる。値が0(ロックエントリが1つもない状
態)なら「4.」を、0以外なら「5.」を実行する。 4.タスクエントリの先頭ロックエントリポインタと末
尾ロックエントリポインタの双方に「1.」で作成した
ロックエントリのアドレスを格納する。 5.タスクエントリから末尾ロックエントリのアドレス
を取得し、「1.」で作成したロックエントリの前エン
トリポインタに末尾ロックエントリのアドレスを格納
し、末尾ロックエントリの次エントリポインタとタスク
エントリの末尾ロックエントリポインタの双方に
「1.」で作成したロックエントリのアドレスを格納す
る。 以上の手順により、ロックエントリはロックエントリ列
の末尾に登録される。
The registration of a lock entry is performed in the following procedure. 1. One entry is obtained from the empty entry string. 2. When registering as a lock state, the address of the lock entry created in "1." is stored in the lock entry pointer of the block entry. When registering as a lock waiting entry, the address of the lock entry created in "1." is stored in the lock waiting entry pointer of the block entry. The address of the block entry connected to the block entry pointer of the lock entry created in “1.” is stored. 3. The address of the task entry connected to the task entry pointer of the lock entry created in “1.” is stored. Next, the head lock entry pointer of the task entry is checked. If the value is 0 (there is no lock entry), “4.” is executed. If the value is not 0, “5.” is executed. 4. The address of the lock entry created in “1.” is stored in both the head lock entry pointer and the tail lock entry pointer of the task entry. 5. The address of the tail lock entry is obtained from the task entry, the address of the tail lock entry is stored in the entry pointer before the lock entry created in “1.”, the next entry pointer of the tail lock entry and the tail lock entry pointer of the task entry Store the address of the lock entry created in "1." By the above procedure, the lock entry is registered at the end of the lock entry sequence.

【0054】ロックエントリの削除は以下の手順で行な
う。 1.本ロックエントリを接続しているブロックエントリ
のロック待ちエントリポインタが0か調べ、0ならロッ
クエントリポインタに0を格納し、0以外ならロック待
ちエントリポインタのアドレスをロックエントリポイン
タにコピーし、ロック待ちエントリポインタに0を格納
する(ロック待ちのロック許可)。 2.削除するロックエントリの前エントリポインタと次
エントリポインタを調べ、双方ともに0であれば
「3.」を、前エントリポインタのみ0であれば
「4.」を、次エントリポインタのみ0であれば
「5.」を、双方ともに0でなければ「6.」を実行す
る。 3.本ケースは他にロックエントリがないケースであ
る。この場合は、タスクエントリの先頭ロックエントリ
ポインタと末尾ロックエントリポインタの双方に0を格
納し、削除するロックエントリを空きエントリ列に戻
す。 4.本ケースは複数のロックエントリが存在し、本ロッ
クエントリが先頭に位置するケースである。この場合は
削除するロックエントリから次ロックエントリのアドレ
スを取得し、次ロックエントリの前エントリポインタに
0を格納し、タスクエントリの先頭ロックエントリポイ
ンタに次ロックエントリのアドレスを格納した後、削除
するロックエントリを空きエントリ列に戻す。 5.本ケースは複数のロックエントリが存在し、本ロッ
クエントリが末尾に位置するケースである。この場合は
削除するロックエントリから前ロックエントリのアドレ
スを取得し、前ロックエントリの次エントリポインタに
0を格納し、タスクエントリの末尾ロックエントリポイ
ンタに前ロックエントリのアドレスを格納した後、削除
するロックエントリを空きエントリ列に戻す。 6.本ケースは複数のロックエントリが存在し、本ロッ
クエントリが中間に位置するケースである。この場合
は、削除するロックエントリから前ロックエントリのア
ドレスと次ロックエントリのアドレスを取得し、前ロッ
クエントリの次エントリポインタに次ロックエントリの
アドレスを格納し、次ロックエントリの前エントリポイ
ンタに前ロックエントリのアドレスを格納した後、削除
するロックエントリを空きエントリ列に戻す。
The lock entry is deleted in the following procedure. 1. Check whether the lock waiting entry pointer of the block entry connecting this lock entry is 0, if 0, store 0 in the lock entry pointer, otherwise copy the address of the lock waiting entry pointer to the lock entry pointer, and wait for lock. Store 0 in the entry pointer (lock permission waiting for lock). 2. The previous entry pointer and the next entry pointer of the lock entry to be deleted are checked, and if both are 0, “3.”; if the previous entry pointer is only 0, “4.”; if only the next entry pointer is 0, “3.” 5. If both are not 0, execute 6 .. 3. In this case, there is no other lock entry. In this case, 0 is stored in both the head lock entry pointer and the tail lock entry pointer of the task entry, and the lock entry to be deleted is returned to the empty entry column. 4. In this case, there are a plurality of lock entries, and this lock entry is located at the top. In this case, the address of the next lock entry is acquired from the lock entry to be deleted, 0 is stored in the previous entry pointer of the next lock entry, the address of the next lock entry is stored in the head lock entry pointer of the task entry, and then deleted. Returns the lock entry to the empty entry column. 5. In this case, there are a plurality of lock entries, and this lock entry is located at the end. In this case, the address of the previous lock entry is obtained from the lock entry to be deleted, 0 is stored in the next entry pointer of the previous lock entry, the address of the previous lock entry is stored in the tail lock entry pointer of the task entry, and then deleted. Returns the lock entry to the empty entry column. 6. In this case, there are a plurality of lock entries, and this lock entry is located in the middle. In this case, the address of the previous lock entry and the address of the next lock entry are acquired from the lock entry to be deleted, the address of the next lock entry is stored in the next entry pointer of the previous lock entry, and the previous address is stored in the previous entry pointer of the next lock entry. After storing the address of the lock entry, the lock entry to be deleted is returned to the empty entry column.

【0055】次に、ホストからロック要求およびアンロ
ック要求を受け取ったときの処理について説明する。ロ
ック要求またはアンロック要求の際には、前述のよう
に、対応するホスト、タスク、フアイルおよびブロック
の各識別子が要求内容に含まれて供給される。
Next, processing when a lock request and an unlock request are received from the host will be described. At the time of a lock request or an unlock request, as described above, the corresponding host, task, file, and block identifiers are included in the request and supplied.

【0056】ロック要求の処理を以下に示す。図1は本
発明の排他制御装置の一実施の形態のロック動作の第1
の部分を示す流れ図であり、図2は図1に示す以外の第
2の部分を示す流れ図である。
The processing of a lock request is described below. FIG. 1 shows a first example of a lock operation of an embodiment of an exclusive control device according to the present invention.
2 is a flowchart showing a second portion other than that shown in FIG.

【0057】最初にロック要求のフアイル識別子を取得
し、フアイルエントリを検索する。その手順を以下に示
す。 1.フアイルエントリ管理エリア10の先頭フアイルエ
ントリポインタを参照し、値が0なら当該フアイルエン
トリは存在しない(ステップ101のY枝)。値が0以
外なら、「2.」を実行する(ステップ101のN
枝)。 2.先頭フアイルエントリポインタが示すフアイルエン
トリから順に次エントリポインタのアドレスをたどりな
がら、ロック要求のフアイル識別子と一致するフアイル
エントリを探す。もし、最後のフアイルエントリまで一
致するフアイルエントリが見つからなければ該当フアイ
ルエントリは存在しない(ステップ102のN枝)。
First, a file identifier of the lock request is obtained, and a file entry is searched. The procedure is shown below. 1. Referring to the first file entry pointer in the file entry management area 10, if the value is 0, the file entry does not exist (Y branch in step 101). If the value is not 0, “2.” is executed (N in step 101).
branch). 2. While following the address of the next entry pointer in order from the file entry indicated by the first file entry pointer, a file entry that matches the file identifier of the lock request is searched. If no matching file entry is found up to the last file entry, there is no corresponding file entry (N branch of step 102).

【0058】フアイルエントリが見つかった場合(ステ
ップ103)、次にロック要求のブロック識別子を取得
し、ブロックエントリを検索する。その手順を以下に示
す。 1.フアイルエントリの先頭ブロックエントリポインタ
を参照し、値が0なら当該ブロックエントリは存在しな
い(ステップ104のY枝)。値が0以外なら「2.」
を実行する。 2.先頭ブロックエントリポインタが示すブロックエン
トリから順に次エントリポインタのアドレスをたどりな
がら、ロック要求のブロック識別子と一致するブロック
エントリを探す。もし、最後のブロックエントリまで一
致するブロックエントリが見つからなければ該当ブロッ
クエントリは存在しない(ステップ105のN枝)。
When the file entry is found (step 103), the block identifier of the lock request is obtained, and the block entry is searched. The procedure is shown below. 1. Referring to the head block entry pointer of the file entry, if the value is 0, the block entry does not exist (Y branch in step 104). If the value is other than 0, "2."
Execute 2. While following the address of the next entry pointer in order from the block entry indicated by the first block entry pointer, a block entry that matches the block identifier of the lock request is searched. If no matching block entry is found up to the last block entry, there is no corresponding block entry (N branch in step 105).

【0059】ブロックエントリが見つかった場合(ステ
ップ106)、次にロックエントリの有無を調べる。見
つけたブロックエントリのロックエントリポインタの値
が0ならロックエントリはなく(ステップ107のY
枝)、当該ブロックをロックしているタスクは存在しな
い。値が0以外ならロックエントリが存在し(ステップ
111)、当該ブロックを他のタスクがロックしてい
る。
If a block entry is found (step 106), it is checked whether a lock entry exists. If the value of the lock entry pointer of the found block entry is 0, there is no lock entry (Y in step 107).
Branch), there is no task that locks the block. If the value is other than 0, a lock entry exists (step 111), and the block is locked by another task.

【0060】以上の処理により、ロックエントリが見つ
かれば、本ロック要求はロック不可である。この場合
は、前述のロックエントリの登録手順にしたがい、ロッ
クエントリをロック待ちエントリとして登録し(ステッ
プ135)、ロック待ちを通知する(ステップ13
6)。この際、本ロック要求のタスクエントリが存在し
なければ(ステップ131のY枝、ステップ132のN
枝)、予め前述のタスクエントリの登録手順にしたがい
タスクエントリを登録する(ステップ134)。
If a lock entry is found by the above processing, this lock request cannot be locked. In this case, according to the lock entry registration procedure described above, the lock entry is registered as a lock waiting entry (step 135), and a lock waiting is notified (step 13).
6). At this time, if the task entry of this lock request does not exist (Y branch of step 131, N branch of step 132)
Branch), a task entry is registered in advance in accordance with the task entry registration procedure described above (step 134).

【0061】また、フアイルエントリもしくはブロック
エントリが見つからなければ(ステップ101のY枝、
102のN枝、104のY枝、105のN枝)、本ロッ
ク要求はロック可能である。この場合は、前述の各エン
トリの登録手順により存在しないエントリを登録する
(ステップ108またはステップ109)。
If no file entry or block entry is found (Y branch in step 101,
This lock request can be locked (N branch of 102, Y branch of 104, N branch of 105). In this case, an entry that does not exist is registered by the above-described registration procedure of each entry (step 108 or step 109).

【0062】また、フアイルエントリ、ブロックエント
リは見つかったが、ロックエントリが見つからない場合
も(ステップ107のY枝)、本ロック要求はロック可
能である。この場合は、最初に前述のブロックエントリ
の削除手順に準じて対応するブロックエントリをブロッ
クエントリ列から外す。ただし、当該ブロックエントリ
は空きエントリ列には戻さない。次に、前述のブロック
エントリの登録手順に準じて当該ブロックエントリをブ
ロックエントリ列の先頭にに再登録する。ただし、ブロ
ックエントリの作成は不要である(ステップ110)。
When a file entry and a block entry are found but a lock entry is not found (Y branch of step 107), the lock request can be locked. In this case, first, the corresponding block entry is removed from the block entry sequence according to the above-described block entry deletion procedure. However, the block entry is not returned to the empty entry column. Next, the block entry is re-registered at the head of the block entry sequence according to the above-described block entry registration procedure. However, it is not necessary to create a block entry (step 110).

【0063】既存ブロックエントリの対応するフアイル
エントリのブロックエントリ列の先頭への再登録(ステ
ップ110)の詳細は以下の手順で行なう。 1.再登録するブロックエントリの前エントリポインタ
と次エントリポインタを調べ、双方ともに0、または前
エントリポインタのみ0であれば「2.」を、次エント
リポインタのみ0であれば「3.」を、双方ともに0で
なければ「4.」を実行する。 2.本ケースは本ブロッグエントリがブロックエントリ
列の先頭に位置している場合であるので、再登録の必要
はなく以下は何も行なわず終了する。 3.本ケースは複数のブロックエントリが存在し、再登
録するブロックエントリが末尾に位置するケースであ
る。この場合は再登録するブロックエントリから前エン
トリのアドレスを取得し、前ブロックエントリの次エン
トリポインタに0を格納し、フアイルエントリの末尾ブ
ロックエントリポインタに前ブロックエントリのアドレ
スを格納した後、「5.」以降を行なう。 4.本ケースは複数のブロックエントリが存在し、再登
録するブロックエントリが中間に位置するケースであ
る。この場合は、再登録するブロックエントリから前ブ
ロックエントリのアドレスと次ブロックエントリのアド
レスを取得し、前ブロックエントリの次エントリポイン
タに次ブロックエントリのアドレスを格納し、次ブロッ
クエントリの前エントリポインタに前ブロックエントリ
のアドレスを格納した後、「5.」以降を行なう。 5.再登録すべきブロックエントリの前エントリポイン
タに0を格納する。 6.フアイルエントリの先頭ブロックエントリポインタ
が示すブロックエントリの前エントリポインタに再登録
すべきブロックエントリのアドレスを格納し、再登録す
べきブロックエントリの次エントリポインタにフアイル
エントリの先頭ブロックエントリポインタの値を格納
し、フアイルエントリの先頭ブロックエントリポインタ
に再登録すべきブロックエントリのアドレスを格納す
る。再登録すべきブロックエントリの世代番号は変更し
ない(再登録により世代番号を初期値にすることは行な
わない)。 以上の手順により、既存のブロックエントリはブロック
エントリ列の先頭に再登録される。
The details of the re-registration of the file entry corresponding to the existing block entry to the head of the block entry string (step 110) are performed in the following procedure. 1. The previous entry pointer and the next entry pointer of the block entry to be re-registered are checked. If both are 0 or only the previous entry pointer is 0, "2." If both are not 0, “4.” is executed. 2. In this case, since this blog entry is located at the head of the block entry sequence, there is no need to re-register, and the following ends without doing anything. 3. In this case, there are a plurality of block entries, and the block entry to be reregistered is located at the end. In this case, the address of the previous entry is obtained from the block entry to be re-registered, 0 is stored in the next entry pointer of the previous block entry, the address of the previous block entry is stored in the last block entry pointer of the file entry, and then “5” .. ”and after. 4. In this case, there are a plurality of block entries, and the block entry to be re-registered is located in the middle. In this case, obtain the address of the previous block entry and the address of the next block entry from the block entry to be re-registered, store the address of the next block entry in the next entry pointer of the previous block entry, and store the address of the next block entry in the previous entry pointer of the next block entry. After the address of the previous block entry is stored, the operation from “5.” is performed. 5. 0 is stored in the entry pointer before the block entry to be reregistered. 6. The address of the block entry to be re-registered is stored in the entry pointer before the block entry indicated by the first block entry pointer of the file entry, and the value of the first block entry pointer of the file entry is stored in the next entry pointer of the block entry to be re-registered. Then, the address of the block entry to be re-registered is stored in the first block entry pointer of the file entry. The generation number of the block entry to be reregistered is not changed (the generation number is not set to the initial value by reregistration). With the above procedure, the existing block entry is re-registered at the head of the block entry sequence.

【0064】次に前述のロックエントリの登録手順にし
たがいロックエントリをロック状態として登録する(ス
テップ125)。この際、本ロック要求のタスクエント
リが存在しなければ(ステップ121のY枝またはステ
ップ122のN枝)、予め前述のタスクエントリの登録
手順にしたがいタスクエントリを登録する(ステップ1
24)。以上の手順の結果、ロック可能であった場合に
はロック要求を行なったタスクに対してロック可能を通
知するとともに、ブロックエントリの世代番号エリアの
値を返す(ステップ126)。
Next, the lock entry is registered as locked according to the above-described lock entry registration procedure (step 125). At this time, if the task entry of this lock request does not exist (Y branch of step 121 or N branch of step 122), the task entry is registered in advance according to the task entry registration procedure described above (step 1).
24). As a result of the above procedure, if the lock is possible, the lock request is notified to the task which has issued the lock request, and the value of the generation number area of the block entry is returned (step 126).

【0065】世代番号を受理したホストは、これによ
り、ローカルメモリに保持しているデータと共有資源内
に存在しているデータとが一致するかどうかを判断し、
一致していると判断した場合は、ローカルメモリにアク
セスして済ませ、一致していないと判断すれば、共有資
源にアクセスすることとなる。
The host that has received the generation number thereby determines whether the data held in the local memory matches the data existing in the shared resource, and
When it is determined that they match, access to the local memory is completed, and when it is determined that they do not match, the shared resource is accessed.

【0066】次に、アンロック要求の処理を以下に示
す。図3は本実施の形態の排他制御装置におけるアンロ
ック動作の一例を示す流れ図である。
Next, the processing of the unlock request will be described below. FIG. 3 is a flowchart showing an example of the unlock operation in the exclusive control device according to the present embodiment.

【0067】アンロック要求は、要求を出すタスクによ
ってロックエントリの削除に伴ないブロックエントリを
削除するか、それともブロックエントリを残し世代番号
をカウントアップするかのいずれかの指定が行なわれ
る。
In the unlock request, either the block entry is deleted according to the deletion of the lock entry or the block entry is deleted or the generation number is counted up by the task issuing the request.

【0068】最初に前述のロック要求の手順の同一方法
で、フアイルエントリ、ブロックエントリおよびロック
エントリを検索する(ステップ301〜310)。次に
前述のロックエントリの削除手順により、見つけたロッ
クエントリを削除する(ステップ311)。次に本ロッ
クエントリを持つタスクエントリを調べ、本ロックエン
トリを削除したことでロックエントリが1つもなくなっ
たら(ステップ312のY枝)、前述のタスクエントリ
の削除手順により本タスクエントリを削除する(ステッ
プ313)。
First, a file entry, a block entry, and a lock entry are searched by the same method as the above-described lock request procedure (steps 301 to 310). Next, the found lock entry is deleted by the above-described lock entry deletion procedure (step 311). Next, the task entry having this lock entry is checked, and if there is no lock entry due to the deletion of this lock entry (Y branch in step 312), this task entry is deleted according to the above-described task entry deletion procedure (step 312). Step 313).

【0069】次に、アンロック要求でブロックエントリ
の削除が指定されていたら(ステップ314のN枝)、
本ロックエントリを持つブロックエントリを調べ、本ロ
ックエントリを削除したことでロックエントリが1つも
なくなったら(ステップ317のY枝)、ブロックエン
トリの削除手順によってブロックエントリを削除する
(ステップ318)。さらに、フアイルエントリを調
べ、本ブロックエントリを削除したことでブロックエン
トリが1つもなくなったら(ステップ319のY枝)、
前述のフアイルエントリの削除手順によって本フアイル
エントリを削除する(ステップ320)。
Next, if deletion of the block entry is specified by the unlock request (N branch of step 314),
The block entry having this lock entry is checked, and if there is no lock entry after deleting this lock entry (Y branch of step 317), the block entry is deleted by the block entry deletion procedure (step 318). Further, if the file entry is examined and this block entry is deleted, and there is no block entry (Y branch in step 319),
This file entry is deleted by the above-described file entry deletion procedure (step 320).

【0070】アンロック要求で世代番号のカウントアッ
プが指定されていたら(ステップ314のY枝)、本ロ
ックエントリを持つブロックエントリの世代番号エリア
の値をカウントアップする(ステップ315)。アンロ
ック要求で対応するフアイルエントリ、ブロックエント
リ、ロックエントリ、タスクエントリがないときには、
アンロック失敗であり、その旨の通知を行なう(ステッ
プ316)。
If count-up of the generation number is designated by the unlock request (Y branch of step 314), the value of the generation number area of the block entry having the lock entry is counted up (step 315). If there is no corresponding file entry, block entry, lock entry or task entry in the unlock request,
It is an unlock failure, and a notification to that effect is given (step 316).

【0071】ここで、本発明の特徴であるブロックエン
トリの検索について図6を用いて具体的に説明する。
Here, the search of the block entry, which is a feature of the present invention, will be specifically described with reference to FIG.

【0072】最初に(a)に示すように、あるフアイル
エントリ下にブロック識別子1〜10の10個のブロッ
クエントリが登録されているとする。ここで、ロックエ
ントリを持っているのは、ブロック識別子1、4、6、
8、9、10の6エントリである。残りのブロック識別
子2、3、5、7の4エントリはロックエントリは持っ
ておらず、世代番号のみ登録されている。
First, as shown in (a), it is assumed that ten block entries having block identifiers 1 to 10 are registered under a certain file entry. Here, the lock entries have block identifiers 1, 4, 6,
8, 9, and 10 entries. The remaining four entries of block identifiers 2, 3, 5, and 7 do not have lock entries, and only generation numbers are registered.

【0073】この状態でブロック識別子11のブロック
に対するロック要求を受け取った状態が(b)である。
本発明によって、ブロック識別子11のブロックエント
リはブロックエントリ列の先頭に登録されている。
In this state, the state where the lock request for the block with the block identifier 11 is received is shown in FIG.
According to the present invention, the block entry with the block identifier 11 is registered at the head of the block entry sequence.

【0074】さらに(b)の状態でブロック識別子3に
対するロック要求を受け取った状態が(c)である。本
発明によって、ブロック識別子3のブロックエントリ
は、ブロックエントリ列に既に存在しているため、当該
エントリを一旦ブロックエントリ列から外し、ブロック
エントリ列の先頭に再登録されている。
Further, the state where the lock request for the block identifier 3 is received in the state (b) is (c). According to the present invention, since the block entry with the block identifier 3 already exists in the block entry sequence, the entry is temporarily removed from the block entry sequence and is re-registered at the head of the block entry sequence.

【0075】通常、タスクはブロックをロックしてデー
タの処理後、速かにアンロックを行なう。このロックと
アンロックの間隔は非常に短い。よって、(c)の状態
でブロック識別子3のエントリのアンロックが行なわれ
る可能性が高い。この場合、本発明を適用しないと、
(b)の状態で、ブロックエントリ3を検索することに
なり検索するエントリ数は9エントリとなる。しかし、
本発明によれば、(c)の状態でブロックエントリ3を
検索することになり、検索するエントリは1エントリで
済む。
Normally, a task locks a block, and after processing data, unlocks quickly. The interval between this lock and unlock is very short. Therefore, there is a high possibility that the entry of the block identifier 3 is unlocked in the state of (c). In this case, unless the present invention is applied,
In the state of (b), the block entry 3 is searched, and the number of searched entries is nine. But,
According to the present invention, the block entry 3 is searched in the state of (c), and only one entry needs to be searched.

【0076】以上説明したように、本実施の形態の排他
制御装置は、ロック要求に対するロック情報の登録時
に、対応するブロック情報がない場合は新たに作成した
ブロック情報を既存のブロックエントリ列の先頭に登録
し、対応するブロック情報があるときには、このブロッ
ク情報を一旦ブロックエントリ列から外し、あらためて
このブロックエントリ列の先頭に再登録することによ
り、管理情報の検索に要する時間を大幅に短縮すること
ができる。
As described above, when the lock information is registered in response to the lock request, if there is no corresponding block information, the exclusive control device according to the present embodiment adds the newly created block information to the head of the existing block entry sequence. When there is corresponding block information, the block information is temporarily removed from the block entry sequence and re-registered at the beginning of the block entry sequence, thereby greatly reducing the time required for searching for management information. Can be.

【0077】以上の説明では、ロック要求に対するロッ
ク情報の登録時に、対応するブロック情報がない場合は
新たに作成したブロック情報を既存のブロックエントリ
列の先頭に登録しているが、本発明はこれに限定される
ものではなく、ロック要求に対するロック情報の登録時
に、対応するフアイル情報がない場合には新たに作成し
たフアイル情報を既存のフアイルエントリ列の先頭に登
録すれば、さらに管理情報の検索に要する時間が短縮で
きる。
In the above description, when the lock information corresponding to the lock request is registered, if there is no corresponding block information, the newly created block information is registered at the head of the existing block entry sequence. If there is no corresponding file information at the time of registering the lock information in response to the lock request, if newly created file information is registered at the head of the existing file entry column, further management information search is performed. Required time can be shortened.

【0078】その場合のフアイルエントリの登録手順は
下記のようにする。 1.空きエントリ列から空きエントリを1つ取得しフア
イル識別子エリアにフアイル識別子を格納し、次エント
リポインタと前エントリポインタと先頭ブロックエント
リポインタと末尾ブロックエントリポインタに0を格納
する。 2.フアイルエントリ管理エリア10の先頭フアイルエ
ントリポインタを調べ、値が0(フアイルエントリが1
つもない状態)なら「3.」を、0以外なら「4.」を
実行する。 3.フアイルエントリ管理エリア10の先頭フアイルエ
ントリポインタと末尾フアイルエントリポインタの双方
に「1.」で作成したフアイルエントリのアドレスを格
納する。 4.フアイルエントリ管理エリア10から先頭フアイル
エントリのアドレスを取得し、「1.」で作成したフア
イルエントリの次エントリポインタに先頭フアイルエン
トリのアドレスを格納し、先頭フアイルエントリの前エ
ントリポインタとフアイルエントリ管理エリア10の先
頭フアイルエントリポインタの双方に「1.」で作成し
たフアイルエントリのアドレスを格納する。 以上の手順によりエントリはフアイルエントリ列の先頭
に登録される。
The procedure for registering the file entry in this case is as follows. 1. One empty entry is obtained from the empty entry column, the file identifier is stored in the file identifier area, and 0 is stored in the next entry pointer, the previous entry pointer, the first block entry pointer, and the last block entry pointer. 2. The first file entry pointer in the file entry management area 10 is checked, and the value is 0 (the file entry is 1).
If no, execute "3.", otherwise execute "4." 3. The address of the file entry created in "1." is stored in both the first file entry pointer and the last file entry pointer of the file entry management area 10. 4. The address of the first file entry is acquired from the file entry management area 10, the address of the first file entry is stored in the next entry pointer of the file entry created in "1.", the entry pointer before the first file entry and the file entry management area. The address of the file entry created in "1." is stored in both of the first file entry pointers of "10." According to the above procedure, the entry is registered at the head of the file entry sequence.

【0079】[0079]

【発明の効果】以上説明したように、本発明の排他制御
装置は、ロック要求に対するロック情報の登録時に、対
応するブロック情報がない場合は新たに作成したブロッ
ク情報を既存のブロックエントリ列の先頭に登録し、対
応するブロック情報があるときには、このブロック情報
を一旦ブロックエントリ列から外し、あらためてこのブ
ロックエントリ列の先頭に再登録することにより、管理
情報の検索に要する時間を大幅に短縮することができる
という効果を有している。
As described above, the exclusive control device of the present invention, when registering lock information for a lock request, if there is no corresponding block information, adds the newly created block information to the head of the existing block entry sequence. When there is corresponding block information, the block information is temporarily removed from the block entry sequence and re-registered at the beginning of the block entry sequence, thereby greatly reducing the time required for searching for management information. It has the effect that it can be done.

【0080】さらに、ロック要求に対するロック情報の
登録時に、対応するフアイル情報がない場合は新たに作
成したフアイル情報を既存のフアイルエントリ列の先頭
に登録することにより、管理情報の検索に要する時間を
更に一段と短縮することができるという効果を有してい
る。
Further, when there is no corresponding file information at the time of registering the lock information in response to the lock request, the newly created file information is registered at the head of the existing file entry sequence, so that the time required for searching the management information is reduced. Further, there is an effect that the length can be further reduced.

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

【図1】本発明の排他制御装置の一実施の形態のロック
動作の第1の部分を示す流れ図である。
FIG. 1 is a flowchart showing a first part of a lock operation of an embodiment of an exclusive control device according to the present invention.

【図2】本発明の排他制御装置の一実施の形態のロック
動作の図1に示す以外の第2の部分を示す流れ図であ
る。
FIG. 2 is a flowchart showing a second part of the lock operation of the exclusive control device according to the embodiment of the present invention other than that shown in FIG. 1;

【図3】本実施の形態の排他制御装置におけるアンロッ
ク動作の一例を示す流れ図である。
FIG. 3 is a flowchart illustrating an example of an unlock operation in the exclusive control device according to the present embodiment.

【図4】各登録情報の管理テーブル構造を示すブロック
図であり、(a)はフアイルエントリ、ブロックエント
リ、ロックエントリ、タスクエントリの管理構造を、
(b)は空きエントリの管理構造をそれぞれ示す。
FIG. 4 is a block diagram showing a management table structure of each registration information. FIG. 4A shows a management structure of a file entry, a block entry, a lock entry, and a task entry.
(B) shows the management structure of the empty entry.

【図5】各エントリおよびエントリ管理エリアの構造を
示す詳細図であり.(a)はフアイルエントリ、(b)
はタスクエントリ、(c)はブロックエントリ、(d)
はロックエントリ、(e)は空きエントリ、(f)はフ
アイルエントリ管理エリア、(g)はタスクエントリ管
理エリア、(h)は空きエントリ管理エリアをそれぞれ
示している。
FIG. 5 is a detailed diagram showing the structure of each entry and an entry management area. (A) is a file entry, (b)
Is a task entry, (c) is a block entry, and (d)
Shows a lock entry, (e) shows a free entry, (f) shows a file entry management area, (g) shows a task entry management area, and (h) shows a free entry management area.

【図6】フアイルエントリによるブロックエントリの管
理状態の推移の一例をを示す詳細図であり、(a)は1
0個のエントリの管理状態を示し、(b)は(a)より
新たに1個のエントリが加わった状態を示し、(c)は
既存のエントリが再登録された状態を示す図である。
FIG. 6 is a detailed diagram showing an example of transition of the management state of a block entry by a file entry.
FIG. 7B illustrates a management state of zero entries, FIG. 7B illustrates a state in which one entry is newly added from FIG. 7A, and FIG. 7C illustrates a state in which an existing entry is re-registered.

【図7】管理テーブルにおけるロック状態の一例を示す
詳細図である。
FIG. 7 is a detailed diagram showing an example of a lock state in the management table.

【図8】管理テーブルにおけるロック状態とロック待ち
状態の一例を示す詳細図である。
FIG. 8 is a detailed diagram showing an example of a lock state and a lock wait state in the management table.

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

10 フアイルエントリ管理エリア 10−1〜10−n フアイルエントリ 20 タスクエントリ管理エリア 20−1〜20−n タスクエントリ 30−1〜30−n ブロックエントリ 40−1〜40−n ロックエントリ 50 空きエントリ管理エリア 50−1〜50−n 空きエントリ 10 File entry management area 10-1 to 10-n File entry 20 Task entry management area 20-1 to 20-n Task entry 30-1 to 30-n Block entry 40-1 to 40-n Lock entry 50 Free entry management Area 50-1 to 50-n Free entry

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 複数のホスト計算機が外部記憶装置等の
共有資源を共有するシステムで前記共有資源を複数のフ
アイルの集合と定義しさらに前記各フアイルのそれぞれ
を複数のブロックに分割し前記ホスト計算機のタスク単
位による排他制御を前記ブロック単位に行なう排他制御
装置において、前記ブロックの更新情報を示す世代番号
の管理とロック状態を示すロック情報の管理のために管
理対象中のフアイルの情報をフアイル情報列として一列
にポインタで接続登録し管理対象中のブロックの情報を
フアイル毎にブロック情報列として一列にポインタで接
続登録する管理テーブルと、前記ホスト計算機からのロ
ック要求に対するロック情報の登録時に前記ブロック情
報列中に前記要求に対応するブロックの情報がないとき
には新たに前記要求に対応するブロックの情報を作成し
て前記ブロック情報列の先頭に登録し前記ロック要求に
対するロック情報の登録時に前記ブロック情報列中に前
記要求に対応するブロックの情報が存在するときにはこ
のブロック情報を前記ブロック情報列の先頭に接続登録
しなおすロック処理手段とを含むことを特徴とする排他
制御装置。
In a system in which a plurality of host computers share a shared resource such as an external storage device, the shared resource is defined as a set of a plurality of files, and each of the files is divided into a plurality of blocks to divide the file into a plurality of blocks. An exclusive control device that performs exclusive control in units of a task in units of a block, wherein information of a file being managed for managing a generation number indicating update information of the block and managing lock information indicating a lock state is file information. A management table for connecting and registering the information of the block being managed by connecting the pointer in a line as a column and connecting and registering the information of the block being managed in a file as a block information column for each file, and the block when registering lock information in response to a lock request from the host computer. If there is no block information corresponding to the request in the information sequence, the request When the block information corresponding to the request exists in the block information sequence at the time of registering the lock information corresponding to the lock request, the block information is registered at the top of the block information sequence. An exclusive control device comprising: a lock processing unit for re-registering connection at the head of the block information sequence.
【請求項2】 ロック処理手段はホスト計算機からのロ
ック要求に対するロック情報の登録時にフアイル情報列
中に前記要求に対応するフアイルの情報がないときには
新たに前記要求に対応するフアイルの情報を作成して前
記フアイル情報列の先頭に登録することを特徴とする請
求項1記載の排他制御装置。
2. The lock processing means according to claim 1, wherein when the lock information for the lock request from the host computer is registered, if there is no file information corresponding to the request in the file information sequence, the file information corresponding to the request is newly created. 2. The exclusive control device according to claim 1, wherein the file is registered at the beginning of the file information sequence.
【請求項3】 ホスト計算機からのアンロック要求に対
するロック情報の登録の削除時に前記要求に対応するブ
ロック情報が世代番号の管理対象のブロック情報のとき
にはこのブロック情報の世代番号を+1して更新してブ
ロック情報列に保存し前記要求に対応するブロック情報
が前記世代番号の管理対象外のブロック情報のときには
このブロックをロックしている他のロック情報がないと
きにはこのブロック情報を削除するアンロック処理手段
を有することを特徴とする請求項1または2記載の排他
制御装置。
3. When the block information corresponding to the request is the block information to be managed with the generation number when deleting the registration of the lock information in response to the unlock request from the host computer, the generation number of the block information is updated by +1. Unlock processing for saving the block information in the block information column and deleting the block information when there is no other lock information that locks the block when the block information corresponding to the request is out of the management target of the generation number 3. The exclusive control device according to claim 1, further comprising a unit.
【請求項4】 アンロック処理手段はホスト計算機から
のアンロック要求に対するロック情報の登録の削除時に
前記要求に対応するブロック情報を削除して前記要求に
対応するフアイル情報のブロック情報列に他のブロック
情報がないときにはこのフアイル情報を削除することを
特徴とする請求項3記載の排他制御装置。
4. The unlock processing means deletes block information corresponding to the request when the registration of the lock information for the unlock request from the host computer is deleted, and adds another block information to the block information sequence of the file information corresponding to the request. 4. The exclusive control device according to claim 3, wherein the file information is deleted when there is no block information.
JP09253630A 1997-09-18 1997-09-18 Exclusive control unit Expired - Fee Related JP3085260B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09253630A JP3085260B2 (en) 1997-09-18 1997-09-18 Exclusive control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09253630A JP3085260B2 (en) 1997-09-18 1997-09-18 Exclusive control unit

Publications (2)

Publication Number Publication Date
JPH1196061A true JPH1196061A (en) 1999-04-09
JP3085260B2 JP3085260B2 (en) 2000-09-04

Family

ID=17254024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09253630A Expired - Fee Related JP3085260B2 (en) 1997-09-18 1997-09-18 Exclusive control unit

Country Status (1)

Country Link
JP (1) JP3085260B2 (en)

Also Published As

Publication number Publication date
JP3085260B2 (en) 2000-09-04

Similar Documents

Publication Publication Date Title
US5852747A (en) System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client
US6314417B1 (en) Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US6014730A (en) Dynamic adding system for memory files shared among hosts, dynamic adding method for memory files shared among hosts, and computer-readable medium recording dynamic adding program for memory files shared among hosts
US5813016A (en) Device/system for processing shared data accessed by a plurality of data processing devices/systems
US6457102B1 (en) Cache using multiple LRU's
JP2001134482A (en) Method for operating independent data copy in data processing system
US5715447A (en) Method of and an apparatus for shortening a lock period of a shared buffer
JP2002149454A (en) Transaction support on logical disk
US7444349B1 (en) Control of concurrent access to a partitioned data file
JPH05128072A (en) Inter-system exclusive control system
JPH07152498A (en) Information processing system
JP3085260B2 (en) Exclusive control unit
JP2924786B2 (en) Exclusive control system, exclusive control method, and medium for storing exclusive control program for shared file in loosely coupled multiple computer system
JPH05314032A (en) Electronic notice board device
JP3087701B2 (en) Exclusive control unit
JP3107094B2 (en) Method and apparatus for shortening shared buffer lock period
US5978810A (en) Data management system and method for storing a long record in a set of shorter keyed records
US7734592B2 (en) Method for reducing a data repository
JP2704028B2 (en) File area management method
CN117407374B (en) Distributed lock implementation method and system based on distributed file system
JPH06187201A (en) File system
JP4131579B2 (en) Data management system and data management method
JP3050194B2 (en) A system for dynamically adding a shared memory file between hosts, a method for dynamically adding a shared memory file between hosts, and a recording medium storing a program for dynamically adding a shared memory file between hosts
JP2708012B2 (en) Update buffer management device
JP2787107B2 (en) Buffer control system and device

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000606

LAPS Cancellation because of no payment of annual fees