JPH02113351A - ファイル処理装置 - Google Patents

ファイル処理装置

Info

Publication number
JPH02113351A
JPH02113351A JP63267630A JP26763088A JPH02113351A JP H02113351 A JPH02113351 A JP H02113351A JP 63267630 A JP63267630 A JP 63267630A JP 26763088 A JP26763088 A JP 26763088A JP H02113351 A JPH02113351 A JP H02113351A
Authority
JP
Japan
Prior art keywords
file
task
block
processing device
data processing
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.)
Pending
Application number
JP63267630A
Other languages
English (en)
Inventor
Shinichi Nomiyama
野見山 眞一
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 JP63267630A priority Critical patent/JPH02113351A/ja
Publication of JPH02113351A publication Critical patent/JPH02113351A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理装置に入出力径路を介して接続され
外部記憶媒体に対して情報の書き込み或いは読み出しを
行うファイル処理装置に関し、特に資源待ちに伴って発
生し得るデ・ンドロック状態の検出機能を持つファイル
処理装置に関する。
〔従来の技術〕
従来、データ処理装置とファイルを格納する外部記憶媒
体とを含むデータ処理システムでは、データ処理装置に
おいて、前記外部記憶媒体に対する排他制御が行われて
いる。データ処理装置においては、同時に複数のタスク
が実行されており、各タスクは外部記憶装置上のファイ
ル中の種々の資源を参照、更新しながら所定の処理を行
っている。複数のタスクが同時に同一資源の更新を行う
と資源の破壊が生ずるため、それらの資源に対する排他
制御処理が必要となる。データ処理装置内においてタス
ク間の資源の排他制御を行うことは比較的に容易である
が、複数のデータ処理装置にて資源の共有を図る場合は
、処理が複雑になってく る。
従来のデータ処理システムでは、複数のデータ処理装置
にて資源の共用を行う場合には、通常衣のような方式が
採られている。1つの方式は、資源を必要とするデータ
処理装置が他の全てのデータ処理装置との間で情報通信
を行い、他のデータ処理装置にて資源が使用されていな
いことを確認する方式である。この方式では、各データ
処理装置を相互に通信ネットワークにより接続する場合
と、ループ状に接続して回覧方式にて情報転送を行う場
合とがある。 fillO方式としては、データ処理シ
ステム内の何れかのデータ処理装置が主ホストとして集
中管理する方式があり、他の全てのデータ処理装置は共
用資源を利用する場合に主ホストであるデータ処理装置
へ資源利用の許諾を問い合わせる。
これらの従来方式による資源の排他制御nは、外部記憶
媒体のポリニーム単位あるいはファイル単位の排他制御
であるため、通信によるオーバーヘッドは従来あまり問
題となっていなかった。しかし、ファイルを構成する個
々の単位置源たとえばブロックと呼ばれる単位で排他制
御を行う場合には通信量が増大するため、通信オーバー
へンドが著しく増大し、データ処理効率が大幅に低下す
る可能性がある。
また、資源の排他制御に関連する大きな問題にデッドロ
ックがある0例えば、2台のデータ処理装置A、Bと、
ファイルFl、F2を含む外部記憶媒体とを有するデー
タ処理システムにおいて、データ処理装置Aがファイル
Flを占有し、データ処理装置BがファイルF2を占有
している状態において、データ処理装置BでファイルF
1の使用要求が発生すると、ファイルFlはデータ処理
装置Aで占有中の為ファイル待ちが発生する。この状態
で更にデータ処理装置AでファイルF2の使用要求が発
生すると、ファイルF2はデータ処理装置Bで占有中の
為ファイル待ちが発生する。
このとき、データ処理装置Aとデータ処理装置Bとは相
互にファイルFl、F2を待つことになり、共に処理の
継続ができなくなる。この状態をデッドロックと呼び、
データ処理システムにとって致命的な状態である。この
ようなデンドロツク状態が発生しないように資源管理を
行う制御部は資源待ちの監視を行う必要がある。従来シ
ステムのほとんどは、この制御をデータ処理装置にて行
っており、データ処理装置は資源管理に多くの処理を必
要としている。
成る種のデータ処理システムでは、データ処理装置に入
出力径路を介して接続され外部記憶媒体に対して情報の
書き込み或いは読み出しを行うファイル処理装置におい
て、ボリューム単位あるいはファイル単位の排他制御を
行っているものがある。しかし、従来のファイル処理装
置は、デッドロック状態の検出機能は持っていす、デー
タ処理装置にて資源待ちにかかるデッドロック状態の監
視がなされているのが実情である。
第6図は排他制御機能を有する従来のファイル処理装置
の構成のうち排他制御に関連する部分のブロック図であ
る。同図において、入出力制御部11゛は図示しない2
個のデータ処理装置A、  Bとの間で指令あるいは制
御情報の転送を行う手段、バッファ部13°は入出力制
御部11°を経由してデータ処理装置A、  Bから転
送される指令および制御情報を格納するための記憶手段
である。ファイル管理制御部12″はバッファ部13°
、に格納された情報を解析し、自装置に接続された図示
しない複数個のファイル駆動装置a、b、cのうらの指
定されたファイル駆動装置の占有制御を行う。装置管理
部22はファイル駆動装置a、  bCの状態管理およ
びボリューム管理を行うための制御テーブルであり、フ
ァイル管理部23はファイルに関連する各種の管理情報
を格納する制御テーブルである。ファイル管理制御部1
2゛はそのような装置管理部22およびファイル管理部
23を参照或いは更新してファイルに対する排他制御管
理を実施する。例えば、1つのデータ処理装置A上で動
作するタスクがファイル駆動装置aに接続されたボリュ
ームV中のファイルF1における1つの資源(例えば1
ブロツク)Blの更新を行う場合、データ処理装置Aは
ファイルFlの占有を行う指令を作成し、ファイル処理
装置に転送する。ファイル処理装置では、入出力制御部
11’にて指令を受信し、バッファ部13’ に格納す
る。
そして、ファイル管理制御n部12°はバッファ部13
゛の指令を解析し、ファイルF1が格納されたポリニー
ム■対応のファイル駆動装置aの状態を装置管理部22
で調査する。装置管理部22にてファイル駆動装置aの
有効性を検証すると、ファイルF1の使用状態を検証す
るため、ファイル管理制御部12°はファイル管理部2
3を調査する。ファイル管理部23にてファイルF1が
未使用状態であるならば、ファイル管理制御部12゛は
ファイルFlがデータ処理装置への上記タスクにて使用
中となったことを登録する0反対にファイルFlが他の
データ処理装置Bやタスクで使用中である場合は、ファ
イル管理制御部12 がファイルFl使用中である旨を
示す状態情報を生成し、人出力制御部11゛を経由して
データ処理装置式に報告する。データ処理装置Aはファ
イルFlが使用中のため資源待ちとなった場合、データ
処理装置A内の他タスクの待ち状態および通信径路を利
用して他のデータ処理装置B内の待ち状態を調査し、フ
ァイルFlを待つことによりデッドロック状態が発生す
るか否かの確認処理を行っている。
〔発明が解決しようとする課題〕
上述した従来のデータ処理システムでは、デンドロツタ
状態の検出をデータ処理装置にて実施しているため、資
源を複数のデータ処理装置にて共有する場合には通信手
段を用いてデータ処理装置間で通信を行わなければなら
ない、従来は排他制御をポリニーム単位あるいはファイ
ル単位で行っていた為、上記のような方式でもあまり通
信オーバーヘッドがなく許容できたが、データ処理装置
の処理能力が著しく向上し同時に数多くのタスク処理が
行われるようになると、共用資源の有効利用を図る上で
単位置源毎のきめ細かい排他制御が必要となり、従来の
ような方式では通信オーバーヘンドが増大し、処理効率
が悪化することになる。
そこで、本発明の目的は、資源待ちに伴って発生し得る
デッドロック状態を検出する機能を持った新規なファイ
ル処理装置を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するために、複数のタスクを
並行して実行するデータ処理装置に入出力径路を介して
接続され前記データ処理装置からの入出力指令に従って
外部記憶媒体への情報の書き込み或いは前記外部記憶媒
体からの情報の読み出しを行うファイル処理装置におい
て、前記外部記憶媒体上に作成されるファイルを構成す
る個々の単位置源とタスクとの使用関係および待ち関係
を管理するデッドロック管理テーブルと、資源待ち発生
時に、前記デッドロック管理テーブルで管理された個々
の単位置源とタスクとの使用関係および待ち関係を調査
することにより、前記資源待ち発生によりデッドロック
状態が生じるか否かを検出するファイル管理制御手段と
を有している。
〔作用] 本発明のファイル処理装置においては、デンドロツタ管
理テーブルが、外部記憶媒体上に作成されるファイルを
構成する個々の単位置源たとえばブロックと各タスクと
の使用関係および待ち関係を管理し、ファイル管理制御
手段が、資源待ち発生時に、前記デッドロック管理テー
ブルで管理された個々の単位置源とタスクとの使用関係
および待ち関係を調査することにより、前記資源待ち発
生によりデンドロツク状態が生じるか否かを検出する。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
第2図は本発明のファイル処理装置を含むデータ処理シ
ステムの一例を示す、このデータ処理システムにおいて
は、ファイル処理袋W1は2台のデータ処理装置2aお
よび2bと入出力径路/!l。
12により接続されている。またファイル処理装置lに
は3台のファイル駆動装置3a、3bおよび3cが接続
されている。各々のファイル駆動装置3a、3bおよび
3cにはボリューム4a、4bおよび4cが実装されて
おり、ボリューム4aにはファイルPI  F2、ボリ
ューム4bにはファイルF3.F4およびボリューム4
CにはファイルF5.F6が含まれている。各ファイル
Fl。
F2.F3.F4.F5.F6はそれぞれ複数の単位置
源(たとえばブロックと呼ばれる単位の資源、以下、1
ブロンクを1単位置源とする)にて構成されている。
第1図は本発明のファイル処理装置の一実施例の要部ブ
ロック図であり、第2図のファイル処理装置1の構成の
うち排他制御およびデンドロツク検出に関連する部分の
みを図示している0本実施例のファイル処理装置lは、
第1図に示すように、人出力制御部11.ファイル管理
制御部12.バンファ部13.排他制?2I管理テーブ
ル21およびデッドロック管理テーブル22を有してい
る。また、デンドロツク管理テーブル22は、ホストイ
ンデックス格納部14.タスクインデックス格納部15
.タスク情報格納部16.ファイルインデックス格納部
17.資源インデックス格納部18゜資源管理情報格納
部19およびリンク情報格納部20で構成されている。
入出力制御部11は、データ処理装置2a、2bとの間
で入出力指令および各種の制御情報の転送料1TH1を
行う手段である。
バッファ部13は、データ処理装置2a、2bから転送
された入出力指令および制御情報を一時的に格納する記
憶手段である。
排他制御管理テーブル21は、ファイルFl〜F6を構
成する個々のブロック毎の使用状況を保持、管理する記
憶手段である。
デッドロック管理テーブル22は、ファイルF1−F6
を構成する個々のブロックとタスクとの使用関係および
待ち関係を管理する記憶手段である。
第1図のファイル管理制御部12は、バッファ部13に
格納された指令或いは制御情報を解析し、排他制御管理
テーブル21を使用した排他制御処理、デッドロック管
理テーブル22を使用したデッドロック状態発生存無の
検出等を行う手段である。
次に、第1図および第2図を参照して、本発明の実施例
の概略動作を説明する。
何れかのデータ処理装置における成るタスクTが成るフ
ァイルF中の成るブロックBを占有したいとき、そのデ
ータ処理装置は自己のデータ処理装置の識別情報、タス
クTの識別情報、ファイルFの識別情報およびブロック
Bの識別情報等を含む指令を生成し、ファイル処理装置
1へ送信する。
この指令はファイル処理装置1の入出力制御部llにて
受信され、バッファ部13に格納される。
ファイル管理制御部12はバッファ部13に格納された
指令を解析し、排他制御管理テーブル21に保持1管理
されている現在の個々のブロックの使用状況に照らして
、そのタスクTにファイルFのブロックBを占有させる
ことができるか否かを調べ、占有させ得るときは即ちブ
ロックBが未使用か或いは使用中であっても共用で占有
可能な場合は、排他制御管理テーブル21の管理状態お
よびデッドロック管理テーブル22の管理状態に、タス
クTがブロックBを使用中であることの状態を追加する
と共に、プロ、りBに対する参照或いは更新処理が可能
である旨の報告情報を生成して要求元のデータ処理装置
に入出力制御部11を経由して転送する。
他方、ファイル管理制御部12が排他制御管理テーブル
21による調査の結果、ブロックBが使用中で且つ共用
占有不可と判定したときは、ブロックBをタスクTが待
つことによりデッドロック状態が発生するか否かをデン
ドロツク管理テーブル22で管理されている現在のブロ
ックとタスクとの使用関係および待ち関係に照らして調
査する。
そして、デッドロック状態が発生しなければ、タスクT
に関しブロックBの待ちを許可し、待ちが発生した旨の
情報を入出力制御部11を経由して要求元のデータ処理
装置に送出すると共に、排他制御管理テーブル21の管
理状態およびデッドロック管理テーブル22の管理状態
に、タスクTがブロックBを待っている状態を追加する
。しかし、デンドロツタ状態が発生していると、ファイ
ル管理制御部12はブロックBの待ちを許可せず、デッ
ドロソク状態発生を示す報告情報を生成して要求元のデ
ータ処理装置に転送し、タスクTの処理を異常終了させ
るように通知する。これに応じて、要求元のデータ処理
装置はタスクTを異常終了させ、これによってデッドロ
ック状態が発生してデータ処理システム全体が処理不能
となる前にその原因を取り除くことが可能となる。
次に、ファイル管理制御部12のデッドロック状態検出
方法について説明する。
第1図に示したように、デッドロック管理テーブル22
は、ホストインデックス格納部14.タスクインデック
ス格納部15.タスク情報格納部16、ファイルインデ
ックス格納部17.資源インデックス格納部18.資源
管理情報格納部19およびリンク情報格納部20から構
成されており、各々の格納部には例えば次のような情報
が格納。
管理される。
・資源管理情報格納部19 第3図のブロックテーブル600a〜600cの如きブ
ロック対応のテーブルを保持し、リンク情報格納部20
中のリンカ−700a〜700dを指示するポインタを
保持する。
・資源インデックス格納部18 第3図(F)7y イルテーファ11500 a、  
500 bの如きファイル対応のテーブルを保持し、フ
ァイルFl−F6を構成する個々のブロックが何れかの
タスクで使用中の場合、そのブロックにかがる資源管理
情報格納部19中のブロックテーブル600a〜600
cへのポインタを管理する。なお、未使用のブロックに
対応するポインタは通常NULLになっている。
・ファイルインデックス格納部17 第3図のファイルインデックステーブル200の如きテ
ーブルを保持し、ファイルF1〜F6に対応するファイ
ルテーブル500a、500bが資源インデックス格納
部18のどこに存在するかを示すポインタを管理する。
・タスク情報格納部16 第3図のタスクテーブル400a〜400dの如きタス
ク対応のテーブルを保持し、資源待ちをしているタスク
がどの資源を待っているかを、そのタスク対応のタスク
テーブル400a〜400dに待ちブロックにかかるブ
ロックテーブル600a〜600cへのポインタを保持
することにより管理している。
・タスクインデックス格納部15 第3図のタスクインデックステーブル300 a。
300bの如きデータ処理装置対応のテーブルを保持し
、各タスクのタスクテーブル400a〜400dがタス
ク情報格納部16中のどこに存在するかを示すポインタ
を管理する。
・ホストインデックス格納部14 第3図のホストインデックステーブル100の如きテー
ブルを保持し、各データ処理装置毎のタスクインデック
ステーブル300a、300bがタスクインデックス格
納部15のどこに存在するかを示すポインタを管理する
・リンク情報格納部20 第3図のリンカ−700a〜700dの如きテーブルを
保持し、ブロックテーブル600a〜600cとタス’
)テーブル4ooa〜4oodとを関係付けることによ
り、各使用中のブロックが何れのタスクで使用されてい
るかを管理する。
デンドロツク管理テーブル22は、上記の如き各種の情
報を保持する格納部14〜2oで構成され、デンドロツ
ク状態の検出に必要な個々のブロック七タスクとの使用
関係および待ち関係を保持するものである。なお、第3
図は、データ処理装置Z2a、2bで動作するタスクT
1〜T4が次のような資源占有状況および待ち合わせ状
況にあるときの各格納部14〜2oの状態を示している
■データ処理装置2aのタスクT1がファイルF1のブ
ロックB1を占有中 ■データ処理装置2aのタスクT2がファイルF2のブ
ロックC1をタスクT3と共用して占有中であり、且つ
、ファイルF1のブロックB1の待ち合わせ中 ■データ処理装置2bのタスクT3がファイルF2のブ
ロックCIをタスクT2と共用して占有中 ■データ処理装置2bのタスクT4がファイルFlのブ
ロックB2を占有中であり、且つ、ファイルF2のブロ
ックCIを待ち合わせ中火に、このような状態において
、更にデータ処理装置2aのタスクTIがファイルF1
のブロックB2を占有する指令を出した場合を例にして
、デッドロック状態の検出方法について説明する。
上記の如き指令が出された場合、ブロックB2はタスク
T4で占有中なので、タスクTIに対してのブロックB
2の占有は拒否される。そこで、ファイル管理制御部1
2は、ブロックB2をタスクT1が待つことによりデッ
ドロック状態が発生するか否かを次のようにして調査す
る。先ず、タスクT1が動作するデータ処理装置2aの
識別情報でホストインデックステーブル100を検索し
て得たポインタ(300a)によりタスクインデックス
テーブル300aを取得し、次にタスクT1の識別情報
でタスクインデックステーブル300aを検索して得た
ポインタ(400a)によりタスクT1対応のタスクテ
ーブル400aを得る。
次にファイルFlの識別情報でファイルインデックステ
ーブル200を検索して得たポインタ(500a)によ
りファイルFl対応のファイルテーブル500aを取得
し、更にブロックB2の識別情報でファイルテーブル5
00aを検索して得たポインタ(600b)によりブロ
ックB2対応のブロックテーブル600bを取得する0
次に、この取得したブロックテーブル600bのポイン
タ(600b)を、上記取得したタスクTl対応のタス
クテーブル400a中の待ち資源用ポインタ域に第3図
の破線数字で示すように仮登録する。
そして、この仮登録したポインタ(600b)を出発点
として、ポインタを順次に追跡し、出発点であるタスク
テーブル400aに戻るルートが少なくとも1つでも存
在するか否かを調べ、存在すればデッドロック状態が発
生すると判断し、存在しなければデッドロック状態は発
生しないと判断する。デッドロック状態が発生しない場
合には、上記仮登録したポインタを本登録に切り替える
今の場合、タスクテーブル400aに仮登録されたポイ
ンタ(600b)より各テーブルを辿ると、1つのルー
トは、タスクテーブル400a→ブロツクテーブル60
0b→リンカ−700b→タスクテーブル400d→ブ
ロツクテーブル600c→リンカ−700c→タスクテ
ーブル400Cとなり、出発点のタスクテーブル400
aに戻らない、しかし、もう1つのルートは、タスクテ
ーブル400a→ブロツクテーブル600b→リンカ−
700b→タスクテーブル400d→ブロツクテーブル
600c (ここまでは前記のルートと同じ)→リンカ
ー700d→タスクテーブル400b→ブロックテーブ
ル600a→リンカ−700a→タスクテーブル400
aとなり、出発点のタスクテーブル400aに戻る。即
ちルートが形成されており、ブロックB2をタスクT1
に待たせると、デッドロック状態が生じることになるの
が、判明する。
なお、タスクTlにブロックB2を待たせるとデッドロ
ック状態が発生することは、論理的にも明らかである。
即ち、タスクTIを待ち状態にすると、ブロックBlは
その間解放されないので、ブロックB1を待っているタ
スクT2は処理を継続できずにブロックC1を解放しな
い。ブロックC1が解放されないと、そのブロックCI
を待っ°ζいるタスクT4は処理を継続できずにブロッ
クB2を占有したままとなる。従って、このブロックB
2をタスクTI待つと、タスクTl、T2゜T4が永久
に待ち状態となる。
次に、ファイル管理制御部12のブロック単位の排他制
御方法について説明する。
第4図は排他制御管理テーブル21の構成例を示してお
り、タスクインデックス記憶部114タスク記憶部11
5.ファイルインデンクス記憶部116.ファイル記憶
部117および資源状態記憶部118で構成される。各
々の記憶部は次のような情報を保持、管理する。
・資源状態記憶部118 第5図のブロックテーブル1300a〜1300gの如
きテーブルを保持し、ファイルF1〜F6を構成する個
々のブロックに関する詳細な使用状態を示す情報を保持
する。
・タスク記憶部115 第5図のタスクテーブル1100a〜1100Cの如き
テーブルを保持し、データ処理装置2a2b上で動作す
るタスクにて使用中のブロックにかかる情報あるいは占
有待ちとなっているブロックにかかる情報を、資源状態
記憶部118中の対応するブロックテーブル1300a
等との関係を含めて保持する。
・タスクインデックス記憶部114 データ処理装Z2a、2b上で動作するタスクにかかる
タスクテーブル1100a〜1100cがタスク記憶部
115のどこに存在するかを示すインデックスを保持す
る。
・ファイル記憶部117 第5図のファイルテーブル1200a、1200bの如
きテーブルを保持し、各ファイルF1〜F6を構成する
個々のブロックにかかるブロックテーブル1300a〜
1300gが資源状態記憶部118に存在する場合、そ
の所在場所を各ファイル対応に保持する。
・ファイルインデックス記憶部116 各フアイルFl〜F6にかかるファイルテーブル120
0a、1200bがファイル記憶部117のどこに存在
するかを示すインデックスを保持する。
排他制御管理テーブル21は、上記の如き各種の情報を
保持する各記憶部114〜118で構成され、ファイル
F1〜F6を構成する個々のブロックの使用状況および
各タスクのブロックの使用状況を管理している。なお、
第5図は、タスクT1〜T3がそれぞれ次のような資源
使用状況にある場合のタスク記憶部115.ファイル記
憶部l17および資源状態記憶部118の内容を示して
いる。
■タスクT1がファイルFlのブロックB1とファイル
F2のブロックCIを占有している。
■タスクT2がファイルF1のブロックBnを占有し、
ファイルF1のブロックBlの占有待ちである。
■タスクT3がファイルFlのブロックB1をタスクT
Iと共用して占有し、ファイルFlのブロックBnをタ
スクT2と共用して占有し、更にファイルF2のブロッ
クCnを占有している。
次に、第1図、第4図および第5図を参照して、タスク
T1〜T3が上記の如き資源使用状況に達するまでのフ
ァイル管理制御部12の排他制御処理について説明する
。なお、最初の状態においては、第5図の各タスクテー
ブル1100a−1100cおよび各ブロックテーブル
1300a〜1300gは生成されていないものとする
(1)タスクT1 ■タスクTIによるファイルF1のブロックB1の参照 データ処理装置2aにおけるタスクT1がファイルFl
のブロックB1を参照する場合、データ処理装置2aは
データ処理装置2aの識別情報。
タスクTIの識別情報、ファイルF1の識別情報および
プロ’7りB1の識別情報等を含む指令を生成し、ファ
イル処理装置tへその指令を転送する。
ごの指令はファイル処理装置lの入出力制御部11にて
受信され、バッファ部13に格納される。
ファイル管理側t1部12はバッファ部13に格納され
た指令を解析し、指令に含まれる各種の識別情報を抽出
する。最初に、ファイル管理制御部12はデータ処理装
置2aの識別情報およびタスクTlの識別情報を使用し
てタスクインデックス記憶部114にタスクTl対応の
タスクテーブルへのインデックスが存在するか否かを検
索する。今の場合、存在しないので、タスクTl用のタ
スクテーブル1100aをタスク記憶部115中に生成
すると共にそのインデックスをタスクインデックス記憶
部114に登録する。
次にファイル管理制御部12は、ファイルF1の識別情
報を使用してファイルインデックス記憶部116中にお
けるファイルF1のインデックスを検索し、このインデ
ックスからファイル記憶部117中に格納されたファイ
ルFl対応のファイルテーブル1200aを得る0次に
ファイル管理制御部12は、ブロックB1の識別情報を
使用してファイルテーブル1.200 aを検索し、ブ
ロックB1対応のポインタを取得する。ブロックB1が
どのタスクにも使用されていないときはブロックBlに
対応するブロックテーブル1300a〜1300cは存
在せず、上記ポインタはNULLになっている。そこで
、ファイル管理制御部12はこのことを検出すると、タ
スクT1からブロックB1を参照可能と判断し、ブロッ
クBlにかかるブロックテーブル1300aを資源状態
記憶部118中に生成し、それへのポインタ(1300
a)をタスクテーブル1100aに、タスクテーブル1
100aへのポインタ(1100a)をブロックテーブ
ル1300aにそれぞれ登録することにより、タスクT
1がブロックB1を使用していることを管理する。なお
、このときブロックテーブル1300aには、ブロック
B1をどのようなモードで使用するか等を示す属性情報
等が格納されると共に、ファイルテーブル1200aへ
のポインタ(1200a)が登録され、当工亥ブロック
テーブル1300aがファイルF1に属するものである
ことが管理される。
■タスクTlによるファイルF2のブロックC1の更新 このときも■とほぼ同様な情報を含む指令がデータ処理
装置2aからファイル処理装置lへ転送されてバッファ
部13に格納され、ファイル管理制御部12は、それを
解析して指令に含まれる各種の識別情報を抽出する。先
ず、ファイル管理制御部12はデータ処理装置2aの識
別情報およびタスクTlの識別情報を使用してタスクイ
ンデックス記tw部114を検索するが、■で既にイン
デックスが生成されているので、そのインデックスに従
いタスク記憶部115からタスクテーブル1100aを
得る0次にファイル管理制御部12は、ファイルF2の
識別情報を使用してファイルインデックス記憶部116
中におけるファイルF2のインデックスを検索し、この
インデックスからファイル記憶部117中に格納された
ファイルF2対応のファイルテーブル1200bを得、
更にブロックC1の識別情報を使用してファイルテーブ
ル1200bを検索し、ブロックB1対応のポインタを
取得する。このときブロックC1はどのタスクにも使用
されていす該当するブロックテーブルは存在しないので
、上記ポインタはNULLになっている。そこで、ファ
イル管理制御部12はそのことを検出すると、タスクT
lから資BC1を更新可能と判断し、ブロックC1にか
かるブロックテーブル1300fを資源状態記憶部11
8中に生成し、それへのポインタ(1300f)をタス
クT1が現在使用している最後のブロックテーブル13
00aの次ブロツクテーブルポインタ域に登録すると共
に、このブロックテーブル1300aへのポインタ(1
300a)をブロックテーブル1300fに登録するこ
とにより、タスクTIがブロックB1以外にブロックC
Iを使用していることを管理する。尚、このときブロッ
クテーブル1300fには、ブロックC1を更新モード
で使用する旨の属性情報等が格納されると共に、ファイ
ルテーブル1200bへのポインタ(1200b)が登
録され、当該ブロックテーブル1300rがファイルF
2に属するものであることが管理される。
(2)タスクT3 ■タスクT3によるファイルF1のブロックB1の参照 この場合、データ処理装置2bから、データ処理装置2
bの識別情報、タスクT3の識別情報ファイルFlの識
別情報およびブロックB1の識別情報等を含む指令がフ
ァイル処理装置lへ転送され、バッファ部13に格納さ
れる。ファイル管理制御部12はバッファ部13に格納
された指令を解析し、指令に含まれる各種の識別情報を
抽出する。最初に、データ処理装置2bの識別情報およ
びタスクT3の識別情報を使用してタスクインデックス
記憶部114にタスクT3のタスクテーブルへのインデ
ックスが存在するか否かを検索するが、今の場合存在し
ないので、タスクT3対応のタスクテーブル1100c
をタスク記憶部115中に生成すると共にそのインデッ
クスをタスクインデックス記憶部114に生成する。次
にファイル管理制御部12は、ファイルF1の識別情報
を使用してファイルインデンラス記憶部116中におけ
るファイルF1のインデックスを検索し、このインデッ
クスからファイル記憶部117中に格納されたファイル
Fl対応のファイルテーブル1200aを得る0次にフ
ァイル管理制御部12は、ブロックB1の識別情報を使
用してファイルテーブル1200aを検索し、ブロック
B1対応のポインタを取得する。このときのポインタ値
は(1300a)でプo ツクテーブル1300aを指
示しているので、ブロックB1が既に使用中であること
が判明する。そこで、ファイル管理制御部12は、ブロ
ックテーブル1300a中の属性情報で判明する資源使
用モードと今回の指令で要求された資源使用モードとを
比較し、ブロックB1を共有して使用し得るか否かを判
定する。今の場合、共用が可能なので、ファイル管理制
御部12は、タスクT3からブロックB1を参照可能と
判断し、ブロックB1にかかる新たなブロックテーブル
1300bを資源状態記憶部11B中に生成し、それへ
のポインタ(1300b)をタスクテーブル1100c
に、タスクテーブル1100Cへのポインタ(1100
c)をブロックテーブル1300bにそれぞれ登録する
ことにより、タスクT3がブロックB1を使用している
ことを管理する。なお、このときブロックテーブル13
00bには、ブロックB1を参照モードで使用する旨の
属性情報等が格納されると共に、同一資源にかかる最後
のブロックテーブル1300aへのポインタ(1300
a)とファイルテーブル1200aへのポインタ(12
00a)とが登録される。
また、ブロックテーブル1300aには同一資源を他の
タスクT3も使用していることを示す為にブロックテー
ブル1300bへのポインタ(1300b)が登録され
る。
■タスクT3によるファイルF1のブロックBnの参照 この場合、ブロックBnは未だ何れのタスクからも使用
されていないので、タスクT3に対しブロックBnの参
照が許可され、資源状態記憶部118にはブロックBn
対応のブロックテーブル1300dが作成され、ファイ
ルテーブル1200aのブロックBn対応のエントリに
ポインタ(1300d)が登録される。また、このブロ
ックテーブル1300dとタスクT3が現に使用してい
るブロックB1のブロックチーフル1300bとがポイ
ンタ(1300d、1300b)の登録により相互にリ
ンク付けられ、タスクT3がブロックBlとブロックB
nとを共に使用している状態が管理される。
■タスクT3によるファイルF2の資11(Cnの更新 二の場合も、ブロックCnは未だ何れのタスクからも使
用されていないので、タスクT3に対しブロックCnの
更新が許可され、資源状態記憶部118には、ブロック
Cn対応のブロックテーブル1300gが作成され、フ
ァイルテーブル1200bのブロックCn対応のエント
リにポインタ(1300g)が登録される。また、この
ブロックテーブル1300gとタスクT3が現に使用し
てし)るフ゛ロンクの最後のフ゛ロンクテーフ゛ル13
00dとがポインタ(1300g、1300d)の登録
により相互にリンク付けられ、タスクT3がブロックB
l、Bn、Cnを共に使用している状態が管理される。
(3)タスクT2 ■タスクT2によるファイルF1のブロックBnの参照 この場合、ブロックBnはタスクT3によって既に使用
されているが、共に参照モードであるので、タスクT2
に対しブロックBnの参照が許可され、タスク記1α部
115にタスク下2用のタスクテーブル1100bが、
資源状態記憶部118にブロックBn対応のブロックテ
ーブル1300eが、それぞれ作成される。そして、タ
スクテーブル1100bにブロックテーブル1300e
へのポインタ(1300e)が、ブロックテーブル13
00eにタスクテーブル1ioobへのポインタ(11
00b)が登録されることにより、タスクT2がブロッ
クBnを使用中である状態が管理され、更にブロックテ
ーブル1300dとブロックテーブル1300eとに相
互にポインタ(1300d、1300e)が登録される
ことにより、ブロックBnはタスクT2とタスクT3と
で共に使用されている状態が管理される。
■タスク下2によるファイルFlのブロックB1の更新 このときは、ブロックBlはタスクTI、T3によって
現在参照モードで使用中なので、更新は許可されない、
このときファイル管理制御部12は次のような処理を行
う、ファイル管理制御部12は、ブロックB1の識別情
報を使用してファイルテーブル1200aを検索してブ
ロックB1にかかるブロックテーブル1300aへのポ
インタを取得すると、このブロックテーブル1300a
によってブロックB1がタスクT1によって現在参照モ
ードで使用中であることを認識する。そこで、ファイル
管理側′4′B部12は、タスクT2によるブロックB
lの占有を不可と判断し、タスクT2にブロックB1を
待たせることによりデッドロック状態が発生ずるか否か
を前述の如くデッドロック管理テーブル22を使用して
調査する。そして、今の場合、デソドロンク状態が発生
しないので、ファイル管理制御部12は、ブロックBl
にかかる新たなブロックテーブル1300cを資源状態
記憶部11B中に生成し、それへのポインタ(1300
c)をタスクテーブル1100b中の待ち資源用エント
リに登録すると共に、タスクテーブル1100bへのポ
インタ(1100b)をブロンクチ−プル1300cに
登録することにより、タスクT2がブロックB1を待ち
合わせていることを管理する。なお、このときブロック
テーブル1300aには、ブロックB1を待ち合わせて
いるタスクT2用のブロンクチ−プル1300Cへのポ
インタ(1300c)が登録され、ブロックテーブル1
300cにはブロックテーブル1300aへのポインタ
(1300a)が登録される。そして、ファイル管理制
御部12は、ブロックBlが使用中である旨を示す状態
情報を生成し、これを入出力制御部11を介して要求元
のデータ処理装置2aに送出する。データ処理装置2a
では、ブロックB1が解放されるまでタスクT2を待ち
合わせる処理を行う。
このようにして、タスクTIがファイルF1のブロック
BlとファイルF2のブロックC1を占有し、タスクT
2はファイルFlのブロックBnを占有し、ファイルF
1のブロックB1の占有待ちにあり、タスクT3はファ
イルF1のブロックB1をタスクTIと共用して占有し
、ファイルFlのブロックBnをタスクT2と共用して
占をし、更にファイルF2のブロックCnを占有してい
ることを、きめ細かく管理し、ブロック単位で排他制御
を可能としている。
なお、タスクT2がブロックB1を待ち合わせている状
態において、タスクTlおよびタスクT3がブロックB
1の占有を終えると、ファイル管理制御部12によって
ブロックテーブル1300aおよび1300bがリンク
から外される。そして、このときブロックBlを待ち合
わせているタスクが存在することが、ブロックテーブル
1300aにリンク付けられていたブロックテーブル1
300cの存在によって判明する。このときファイル管
理制御部12は、ファイルテーブル1200aのブロン
クBl対応のポインタ領域にブロンクチ−プル1300
cのポインタ(1300c)を格納すると共に、タスク
テーブル1100b中の待ち資源用ポインタ(1300
c)を消去し、ブロックテーブル1300eとブロック
テーブル1300cとを相互にリンク付ける等の処理を
行った後、ブロックB1の待ちが解除した旨をタスクT
2が動作するデータ処理装置2aに通知する。
これによってデータ処理装置2aはタスクT2の待ちを
解除する。なお、待ちの解除時には第1図のデッドロッ
ク管理テーブル22の管理情報も同様に更新される。
以上、本発明の実施例について説明したが、本発明は以
上の実施例にのみ限定されずその他各種の付加変更が可
能である0例えば、排他制御管理テーブル21とデッド
ロック管理テーブル22とで管理される状態を、一つの
排他制御・デッドロツク管理テーブルを使用して管理す
るようにしても良い。
[発明の効果] 以上説明したように、本発明のファイル処理装置におい
ては、ファイルを構成するプロンク等の個々の単位置源
毎に排他制御を行うに際して、デッドロック管理テーブ
ルにより個々の単位置源とタスクとの使用関係および待
ち関係を管理し、資源待ちの発生時にはファイル管理制
御手段が上記デンドロツク管理テーブルで管理される情
報を調査してデッドロック状態が発生ずるか否かを検出
するものであり、データ処理装置の負荷を高めることな
く、ファイル処理装置自体でデッドロック状態の検出が
可能となり、データ処理システムのデッドロンクによる
処理停止を効率良く防止することができる効果がある。
【図面の簡単な説明】
第1図は本発明のファイル処理装置の一実施例の要部ブ
ロック図、 第2図は本発明のファイル処理装置を含むデータ処理シ
ステムの一例を示すブロック図、第3図はデッドロック
管理テーブル22の内容例を示す図、 第4図は排他制御管理テーブル21の構成例を示す図、 第5図は排他制御管理テーブル21中のタスク記憶部1
15.ファイル記憶部117および資源状態記憶部11
Bの内容例を示す図および、第6図は従来のファイル処
理装置の要部ブロック図である。 図において、 1・・・ファイル処理装置 2a、2b・・・データ処理装置 3a〜3c・・・ファイル駆動装置 48〜4C・・・ボリューム 11・・・入出力制御部 12・・・ファイル管理制御部 13・・・バッファ部 14・・・ホストインデックス格納部 15・・・タスクインデックス格納部 16・・・タスク情報格納部 17・・・ファイルインデックス格納部18・・・資源
インデックス格納部 19・・・資源管理情報格納部 20・・・リンク情報格納部 21・・・排他制御管理テーブル 22・・・デッドロック管理テーブル F1〜F6・・・ファイル Bl、B2.Bn、CI。 Cn・・・フ゛ロンク (単位置源)

Claims (1)

  1. 【特許請求の範囲】 複数のタスクを並行して実行するデータ処理装置に入出
    力径路を介して接続され前記データ処理装置からの入出
    力指令に従って外部記憶媒体への情報の書き込み或いは
    前記外部記憶媒体からの情報の読み出しを行うファイル
    処理装置において、前記外部記憶媒体上に作成されるフ
    ァイルを構成する個々の単位資源とタスクとの使用関係
    および待ち関係を管理するデッドロック管理テーブルと
    、 資源待ち発生時に、前記デッドロック管理テーブルで管
    理された個々の単位置源とタスクとの使用関係および待
    ち関係を調査することにより、前記資源待ち発生により
    デッドロック状態が生じるか否かを検出するファイル管
    理制御手段とを具備したことを特徴とするファイル処理
    装置。
JP63267630A 1988-10-24 1988-10-24 ファイル処理装置 Pending JPH02113351A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63267630A JPH02113351A (ja) 1988-10-24 1988-10-24 ファイル処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63267630A JPH02113351A (ja) 1988-10-24 1988-10-24 ファイル処理装置

Publications (1)

Publication Number Publication Date
JPH02113351A true JPH02113351A (ja) 1990-04-25

Family

ID=17447352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63267630A Pending JPH02113351A (ja) 1988-10-24 1988-10-24 ファイル処理装置

Country Status (1)

Country Link
JP (1) JPH02113351A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50144355A (ja) * 1974-04-19 1975-11-20
JPS5422738A (en) * 1977-07-21 1979-02-20 Nec Corp Lock control device
JPS5459046A (en) * 1977-10-11 1979-05-12 Ibm Method of detecting dead lock between tasks
JPS6151245A (ja) * 1984-08-20 1986-03-13 Mitsubishi Electric Corp 資源の逐次化要求におけるデツドロツク検出方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50144355A (ja) * 1974-04-19 1975-11-20
JPS5422738A (en) * 1977-07-21 1979-02-20 Nec Corp Lock control device
JPS5459046A (en) * 1977-10-11 1979-05-12 Ibm Method of detecting dead lock between tasks
JPS6151245A (ja) * 1984-08-20 1986-03-13 Mitsubishi Electric Corp 資源の逐次化要求におけるデツドロツク検出方法

Similar Documents

Publication Publication Date Title
EP0563623B1 (en) Communicating messages between processors and a coupling facility
US5317739A (en) Method and apparatus for coupling data processing systems
Baskett et al. Task communication in DEMOS
EP0428006B1 (en) Multilevel locking system and method
US5890217A (en) Coherence apparatus for cache of multiprocessor
US5251318A (en) Multiprocessing system comparing information copied from extended storage before and after processing for serializing access to shared resource
US5848241A (en) Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links
EP0563624B1 (en) Method and apparatus for performing conditional operations on externally shared data
US5394554A (en) Interdicting I/O and messaging operations from sending central processing complex to other central processing complexes and to I/O device in multi-system complex
US7502876B1 (en) Background memory manager that determines if data structures fits in memory with memory state transactions map
JP2007018236A (ja) ストレージ管理システム
JPH07334436A (ja) ソフトウエア自動配布方式
US5574901A (en) Method and apparatus for object traversing suitable for structured memory formed by linked objects
JP2685530B2 (ja) 共用データの管理方法
JPH0622015B2 (ja) データ処理システムの制御方法
JP2018101343A (ja) 排他制御装置、排他制御システム、排他制御方法、および、排他制御プログラム
JPH02113351A (ja) ファイル処理装置
JP3681415B2 (ja) デッドロック検出装置
CN101443765A (zh) 数据库卸载处理
JPH02113350A (ja) ファイル処理装置
JP5031538B2 (ja) データ分配方法、データ分配プログラム、及び並列データベースシステム
JP2611648B2 (ja) ファイル共用システム
JPH0690703B2 (ja) グロ−バルデツドロツク検出方式
JPH08237887A (ja) 電力系統監視制御システム
JP2000020386A (ja) 情報システム