JP2600800B2 - Exclusive control of buffer table and deadlock detection method - Google Patents

Exclusive control of buffer table and deadlock detection method

Info

Publication number
JP2600800B2
JP2600800B2 JP10887288A JP10887288A JP2600800B2 JP 2600800 B2 JP2600800 B2 JP 2600800B2 JP 10887288 A JP10887288 A JP 10887288A JP 10887288 A JP10887288 A JP 10887288A JP 2600800 B2 JP2600800 B2 JP 2600800B2
Authority
JP
Japan
Prior art keywords
task
exclusive
exclusion
management table
key
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.)
Expired - Lifetime
Application number
JP10887288A
Other languages
Japanese (ja)
Other versions
JPH01279329A (en
Inventor
忠生 石本
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 JP10887288A priority Critical patent/JP2600800B2/en
Publication of JPH01279329A publication Critical patent/JPH01279329A/en
Application granted granted Critical
Publication of JP2600800B2 publication Critical patent/JP2600800B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はバッファテーブルの排他制御およびデッドロ
ック検出方式に関し、特にマルチタスクオペレーティン
グシステム上で動作するタスク(トランザクション)に
よるバッファテーブル(ファイルの更新および参照の回
数を少なくするためにメモリ上に設けられたファイル内
容の一部を格納するテーブルをいう。以下同様)の更新
が多いコンピュータシステムにおけるバッファテーブル
の排他制御およびデッドロック検出方式に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an exclusive control of a buffer table and a deadlock detection method, and more particularly, to a buffer table (file update and file update) performed by a task (transaction) operating on a multitasking operating system. The present invention relates to an exclusive control of a buffer table and a deadlock detection method in a computer system in which a large number of updates are made to a part of file contents provided on a memory in order to reduce the number of times of reference.

〔従来の技術〕[Conventional technology]

従来、この種のバッファテーブルの排他制御方式で
は、ほとんど排他制御が行われるだけであった。すなわ
ち、あるタスクがある排他キー(バッファテーブル上の
エリアを指定するアドレス等の情報をいう。以下同様)
を指定してバッファテーブルの更新要求を行ったときに
指定された排他キーが他のタスクにより排他中の場合に
は、同一の排他キーでバッファテーブルを更新するタス
クは排他エラーとして処理されていた。
Conventionally, in this type of exclusive control of the buffer table, almost exclusively exclusive control is performed. That is, an exclusive key for a certain task (information such as an address specifying an area on the buffer table. The same applies hereinafter).
If the specified exclusive key is locked by another task when a buffer table update request is issued by specifying, the task that updates the buffer table with the same exclusive key was treated as an exclusive error. .

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

上述した従来のバッファテーブルの排他制御方式は、
参照系システムおよびバッファテーブルの更新がほとん
どない更新系システムでは特に問題を生じなかったが、
バッファテーブルの更新が多い更新系システムでは排他
エラーが多発することになるので、タスク(トランザク
ション)のリトライ処理が増え、コンピュータシステム
の負荷が高くなってレスポンスが遅くなり、コンピュー
タシステムの処理能力が低下するという欠点がある。
The conventional exclusive control method of the buffer table described above
There was no particular problem in the reference system and the update system with almost no update of the buffer table.
In an update system in which the buffer table is updated frequently, exclusion errors occur frequently, so the retry processing of tasks (transactions) increases, the load on the computer system increases, the response slows down, and the processing capacity of the computer system decreases. There is a disadvantage of doing so.

本発明の目的は、上述の点に鑑み、バッファテーブル
の排他制御でタスクのウェイト制御とデッドロック状態
の検出とを併せて行うことにより、コンピュータシステ
ムの処理能力の向上を図るようにしたバッファテーブル
の排他制御およびデッドロック検出方式を提供すること
にある。
SUMMARY OF THE INVENTION In view of the above, an object of the present invention is to improve the processing performance of a computer system by performing task wait control and deadlock state detection together with exclusive control of a buffer table. And a deadlock detection method.

〔課題を解決するための手段〕[Means for solving the problem]

本発明のバッファテーブルの排他制御およびデッドロ
ック検出方式は、複数のタスクを同時に実行可能なマル
チタスクオペレーティングシステムを搭載するコンピュ
ータシステムにおいて、タスク識別子,タスク動作状
態,排他件数,排他テーブルリンク情報,ウェイト元タ
スク番号,ウェイトタスク件数およびウェイトタスク番
号を含むタスク別情報を管理するタスク管理テーブル
と、前記排他テーブルの残り排他テーブル件数および残
り排他テーブルリンク情報を管理する排他管理テーブル
と、タスクからの更新要求で指定された排他キーを次排
他テーブルアドレスとともに登録する前記排他テーブル
と、前記タスク管理テーブル,前記排他管理テーブルお
よび前記排他テーブルを使用してメモリ上のバッファテ
ーブルに対する排他制御を行うとともにタスク制御およ
びデッドロック検出を行う排他制御モジュールとを有す
る。
The exclusive control and deadlock detection method of the buffer table according to the present invention is applied to a computer system equipped with a multitasking operating system capable of simultaneously executing a plurality of tasks, in a task identifier, task operation state, number of exclusive cases, exclusive table link information, and wait state. A task management table for managing task-specific information including the original task number, the number of wait tasks, and the number of wait tasks, an exclusive management table for managing the number of remaining exclusive tables and the remaining exclusive table link information of the exclusive table, and updating from the task An exclusion table for registering an exclusion key specified by a request together with a next exclusion table address, and exclusion control on a buffer table on a memory using the task management table, the exclusion management table, and the exclusion table And a lock control module for task control and deadlock detection performs.

〔作用〕[Action]

本発明のバッファテーブルの排他制御およびデッドロ
ック検出方式では、タスク管理テーブルがタスク識別
子,タスク動作状態,排他件数,排他テーブルリンク情
報,ウェイト元タスク番号,ウェイトタスク件数および
ウェイトタスク番号を含むタスク別情報を管理し、排他
管理テーブルが排他テーブルの残り排他テーブル件数お
よび残り排他テーブルリンク情報を管理し、排他テーブ
ルがタスクからの更新要求で指定された排他キーを次排
他テーブルアドレスとともに登録し、排他制御モジュー
ルがタスク管理テーブル,排他管理テーブルおよび排他
テーブルを使用してメモリ上のバッファテーブルに対す
る排他制御を行うとともにタスク制御およびデッドロッ
ク検出を行う。
In the exclusive control and deadlock detection method for the buffer table according to the present invention, the task management table includes a task identifier, a task operation state, an exclusive count, an exclusive table link information, a wait source task number, a wait task number, and a wait task number. Manages the information, the exclusive management table manages the number of remaining exclusive tables in the exclusive table and the remaining exclusive table link information, and the exclusive table registers the exclusive key specified in the update request from the task along with the next exclusive table address. The control module uses the task management table, the exclusion management table, and the exclusion table to perform exclusion control on the buffer table on the memory, and also performs task control and deadlock detection.

〔実施例〕〔Example〕

次に、本発明について図面を参照して詳細に説明す
る。
Next, the present invention will be described in detail with reference to the drawings.

第1図は、本発明の一実施例のバッファテーブルの排
他制御およびデッドロック検出方式の構成を示すブロッ
ク図である。本実施例のバッファテーブルの排他制御お
よびデッドロック検出方式は、複数のタスクを動作可能
なマルチタスクオペレーティングシステム1と、タスク
管理テーブル21,排他管理テーブル22および排他テーブ
ル23を含む排他制御モジュール2と、バッファテーブル
3とから、その主要部が構成されている。
FIG. 1 is a block diagram showing a configuration of a buffer table exclusive control and deadlock detection system according to an embodiment of the present invention. The exclusive control and deadlock detection method of the buffer table according to the present embodiment includes a multitask operating system 1 capable of operating a plurality of tasks, an exclusive control module 2 including a task management table 21, an exclusive management table 22, and an exclusive table 23. , The buffer table 3 constitutes a main part thereof.

第2図を参照すると、タスク管理テーブル21は、タス
クID(識別子),タスク動作状態,排他件数,排他テー
ブルリンク情報(開始アドレスおよび終了アドレス),
ウェイト元タスク番号,ウェイトタスク件数およびウェ
イトタスク番号のタスク別情報をタスク番号順のエント
リで管理し、タスクの制御に使用される。なお、タスク
動作状態は0のときにウェイト中を示し、1のときに動
作中を示す。また、ウェイト元タスク番号は自タスクが
ウェイトした原因となったタスクのタスク番号を、ウェ
イトタスク件数は自タスクが原因でウェイトしているタ
スクの件数を、ウェイトタスク番号は自タスクが原因で
ウェイトしているタスクのタスク番号をそれぞれ示す。
Referring to FIG. 2, the task management table 21 includes a task ID (identifier), a task operation state, the number of exclusive cases, exclusive table link information (start address and end address),
The task-specific information of the wait source task number, the number of wait tasks, and the wait task number is managed by entries in the order of the task number, and is used for task control. When the task operation state is 0, it indicates that the task is waiting, and when it is 1, it indicates that the task is operating. The wait source task number is the task number of the task that caused the invoking task to wait, the number of wait tasks is the number of tasks that are waiting due to the invoking task, and the wait task number is the wait task number due to the invoking task. Indicates the task number of the task being performed.

排他管理テーブル22は、排他テーブル23の残り排他テ
ーブル件数および残り排他テーブルリンク情報(開始ア
ドレスおよび終了アドレス)を管理する。
The exclusion management table 22 manages the number of remaining exclusion tables in the exclusion table 23 and the remaining exclusion table link information (start address and end address).

排他テーブル23は、次排他テーブルアドレスおよび排
他キーの登録を行い、排他チェックに使用される。な
お、排他テーブル23は、有限個n(正整数)のエントリ
を有し、次排他テーブルアドレスによってチェインされ
て管理される。
The exclusion table 23 registers a next exclusion table address and an exclusion key, and is used for exclusion check. The exclusion table 23 has a finite number n (positive integer) entries, and is managed by being chained by the next exclusion table address.

次に、このように構成された本実施例のバッファテー
ブルの排他制御およびデッドロック検出方式の動作につ
いて説明する。
Next, the operation of the exclusive control and deadlock detection method of the buffer table of the present embodiment configured as described above will be described.

まず、本実施例のバッファテーブルの排他制御および
デッドロック検出方式の動作の概要について説明する。
First, the outline of the operation of the exclusive control of the buffer table and the deadlock detection method of the present embodiment will be described.

マルチタスクオペレーティングシステム1上で動作す
るタスクから排他キーを指定したバッファテーブル3の
更新要求があると、排他制御モジュール2は、今回の更
新要求で指定された排他キーと同一の排他キーが排他テ
ーブル23に登録されているか否かを検索する。ただし、
排他テーブル23は全てのエントリを検索の対象とはせず
に、タスク管理テーブル21の排他件数と排他テーブルリ
ンク情報とに基づいて、排他キーが登録されているエン
トリだけを検索の対象とする。今回の更新要求で指定さ
れた排他キーと同一の排他キーが排他テーブル23に登録
されていなければ、排他制御モジュール2は、排他キー
が排他中でないと判断し、排他キーを排他テーブル23に
登録して排他制御しながら更新要求を処理する。今回の
更新要求で指定された排他キーと同一の排他キーが排他
テーブル23に登録されていれば、排他制御モジュール2
は、排他キーが排他中であるとみなし、さらにデッドロ
ック状態の検出を行う。デドロック状態の検出は、タス
ク管理テーブル21を参照して排他キーが排他中のタスク
のタスク動作状態を調べ、ウェイト中であってウェイト
した原因が今回の更新要求を行ったタスクにある場合に
はデッドロック状態であるとみなす。デッドロック状態
でなければ、排他制御モジュール2は、今回の更新要求
を行ったタスクをウェイトさせる。デッドロック状態で
あれば、排他制御モジュール2は、今回の更新要求を行
ったタスクで排他中の全ての配置キーをキャンセル(解
除)し、今回の更新要求を行ったタスクで排他キーを排
他中のためにウェイト中となっていたタスクを動作中に
戻す。
When a task operating on the multitask operating system 1 requests an update of the buffer table 3 specifying an exclusive key, the exclusive control module 2 sets the exclusive key identical to the exclusive key specified in the current update request to the exclusive table. Search whether it is registered in 23. However,
The exclusion table 23 does not search all entries, but searches only the entry in which the exclusion key is registered based on the exclusion count and the exclusion table link information of the task management table 21. If the same exclusive key as the exclusive key specified in the update request is not registered in the exclusive table 23, the exclusive control module 2 determines that the exclusive key is not exclusive and registers the exclusive key in the exclusive table 23. And processes the update request while performing exclusive control. If the same exclusive key as the exclusive key specified in this update request is registered in the exclusive table 23, the exclusive control module 2
Considers the exclusive key to be exclusive and detects a deadlock state. The detection of the deadlock state is performed by referring to the task management table 21 to check the task operation state of the task whose exclusive key is exclusive, and if the task that is in the waiting state is caused by the task that issued the update request this time. Consider deadlock. If it is not in the deadlock state, the exclusive control module 2 causes the task that has issued the update request this time to wait. In the deadlock state, the exclusion control module 2 cancels (releases) all the arrangement keys that have been excluded by the task that has issued this update request, and is exclusion of the exclusion key by the task that has issued this update request. The task that was in the waiting state for the task is returned to the running state.

第3図は、マルチタスクオペレーティングシステム1
で3つのタスクA,BおよびCが動作中で各タスクがa→
b→c→d→e→a→f→g→e→cの順序で排他キー
を指定してバッファテーブル3の更新要求を行った場合
を示す図である。
FIG. 3 shows a multitasking operating system 1
And three tasks A, B and C are operating and each task is a →
FIG. 13 is a diagram showing a case where an exclusive key is designated in the order of b → c → d → e → a → f → g → e → c and an update request of the buffer table 3 is made.

次に、上記更新要求の順序に従って本実施例のバッフ
ァテーブルの排他制御およびデッドロック検出方式の動
作を具体的に説明する。なお、初期状態では、タスク管
理テーブル21,排他管理テーブル22および排他テーブル2
3は、第2図に示すような内容に初期設定されているも
のとする。
Next, the operation of the exclusive control of the buffer table and the operation of the deadlock detection method according to the present embodiment will be specifically described according to the order of the update request. In the initial state, the task management table 21, the exclusion management table 22, and the exclusion table 2
3 is assumed to be initially set to the contents shown in FIG.

まず、タスクAは、排他キーaを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、タスク管理テーブル21の全てのタスク別情報を検索
し、いずれのタスク別情報も排他件数が0であるので、
ただちに排他テーブル23の1番目のエントリに排他キー
aを登録する。この際、対応する次排他テーブルアドレ
スがチェインの最終であることを示す「−」に設定され
る(以下、次排他テーブルアドレスの更新については特
に必要のない限り言及を省略する)。また、排他制御モ
ジュール2は、タスク管理テーブル21のタスクAとタス
ク別情報における排他件数に1を、排他テーブルリンク
情報(開始アドレスおよび終了アドレス)に1および1
をそれぞれ設定する。さらに、排他制御モジュール2
は、排他管理テーブル22の残り排他テーブル件数を1だ
け減算して(n−1)とし、残り排他テーブルリンク情
報の開始アドレスを2とする。
First, the task A issues an update request for the buffer table 3 by specifying the exclusive key a. Exclusive control module 2
Searches all task-specific information in the task management table 21, and since all task-specific information has zero exclusive cases,
Immediately, the exclusive key a is registered in the first entry of the exclusive table 23. At this time, the corresponding next exclusive table address is set to "-" indicating that it is at the end of the chain (hereinafter, the update of the next exclusive table address is omitted unless it is particularly necessary). The exclusion control module 2 sets the number of exclusions in the task A and task-specific information of the task management table 21 to 1 and sets 1 and 1 to the exclusion table link information (start address and end address).
Are set respectively. Furthermore, exclusive control module 2
Subtracts 1 from the number of remaining exclusive tables in the exclusive management table 22 to (n-1), and sets the start address of the remaining exclusive table link information to 2.

次に、タスクBは、排他キーbを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、タスク管理テーブル21の全てのタスク情報を検索
し、排他件数が1以上であるタスクAのタスク別情報に
おける排他テーブルリンク情報の開始アドレス1からリ
ンクされる排他テーブル23上に登録されている排他キー
の検索を行う。今回の更新要求で指定された排他キーb
が排他テーブル23に登録されている排他キーaとは重複
しないので、排他制御モジュール2は、排他管理テーブ
ル22を参照して排他テーブル23の2番目のエントリに排
他キーbを登録する。また、排他制御モジュール2は、
タスク管理テーブル21のタスクBのタスク別情報におけ
る排他件数に1を、排他テーブルリンク情報(開始アド
レスおよび終了アドレス)に2および2をそれぞれ設定
する。さらに、排他制御モジュール2は、排他管理テー
ブル22の残り排他テーブル件数を1だけ減算して(n−
2)とし、残り排他テーブルリンク情報の開始アドレス
を3とする。
Next, task B issues an update request for buffer table 3 by specifying exclusive key b. Exclusive control module 2
Searches for all task information in the task management table 21 and is registered in the exclusion table 23 linked from the start address 1 of the exclusion table link information in the task-specific information of the task A whose number of exclusions is 1 or more. Perform exclusive key search. Exclusive key b specified in this update request
Does not overlap with the exclusive key a registered in the exclusive table 23, the exclusive control module 2 refers to the exclusive management table 22 and registers the exclusive key b in the second entry of the exclusive table 23. Also, the exclusive control module 2
The number of exclusions in the task-specific information of the task B in the task management table 21 is set to 1, and the exclusion table link information (start address and end address) is set to 2 and 2, respectively. Further, the exclusion control module 2 subtracts 1 from the number of remaining exclusion tables in the exclusion management table 22 (n-
2), and the start address of the remaining exclusive table link information is 3.

次に、タスクCは、排他キーcを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行う。この結果、排他テーブ
ル23の3番目のエントリに排他キーcが登録され、タス
ク管理テーブル21のタスクCのタスク別情報における排
他件数に1が、排他テーブルリンク情報(開始アドレス
および終了アドレス)に3および3がそれぞれ設定さ
れ、排他管理テーブル22の残り排他テーブル件数が(n
−3)に、残り排他テーブルリンク情報の開始アドレス
が4となる。
Next, the task C requests the update of the buffer table 3 by specifying the exclusive key c. Exclusive control module 2
Performs the same processing as described above. As a result, the exclusion key c is registered in the third entry of the exclusion table 23, 1 is set as the number of exclusions in the task-specific information of the task C in the task management table 21, and 3 is set as the exclusion table link information (start address and end address). And 3 are respectively set, and the number of remaining exclusive tables in the exclusive management table 22 is (n
In -3), the start address of the remaining exclusive table link information is 4.

次に、タスクAは、排他キーdを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行う。この結果、排他テーブ
ル23の4番目のエントリに排他キーdが登録され、タス
ク管理テーブル21のタスクAのタスク別情報における排
他件数に2が、排他テーブルリンク情報の終了アドレス
に4がそれぞれ設定され、排他管理テーブル22の残り排
他テーブル件数が(n−4)に、残り排他テーブルリン
ク情報の開始アドレスが5となる。
Next, the task A issues an update request for the buffer table 3 by specifying the exclusive key d. Exclusive control module 2
Performs the same processing as described above. As a result, the exclusion key d is registered in the fourth entry of the exclusion table 23, 2 is set to the number of exclusions in the task-specific information of the task A in the task management table 21, and 4 is set to the end address of the exclusion table link information. The number of remaining exclusive tables in the exclusive management table 22 is (n−4), and the start address of the remaining exclusive table link information is 5.

次に、タスクBは、排他キーeを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行う。この結果、排他テーブ
ル23の5番目のエントリに排他キーeが登録され、タス
ク管理テーブル21のタスクBのタスク別情報における排
他件数に2が、排他テーブルリンク情報の終了アドレス
に5がそれぞれ設定され、排他管理テーブル22の残り排
他テーブル件数が(n−5)に、残り排他テーブルリン
ク情報の開始アドレスが6となる。
Next, the task B issues an update request for the buffer table 3 by specifying the exclusive key e. Exclusive control module 2
Performs the same processing as described above. As a result, the exclusion key e is registered in the fifth entry of the exclusion table 23, 2 is set as the number of exclusions in the task-specific information of the task B in the task management table 21, and 5 is set as the end address of the exclusion table link information. The number of remaining exclusive tables in the exclusive management table 22 is (n-5), and the start address of the remaining exclusive table link information is 6.

次に、タスクCは、排他キーaを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行い、排他キーaがタスクA
で排他中であることを検出する。そこで、排他制御モジ
ュール2は、タスク管理テーブル21のタスクAのタスク
別情報におけるタスク動作状態を調べ、タスクAが動作
中を示す1であるのでデッドロック状態ではないとみな
し、タスクCをウェイトさせるために(第3図参照)、
タスク管理テーブル21のタスクAのタスク別情報におけ
るウェイトタスク件数に1を、ウェイトタスク番号にタ
スクCのタスク番号3をそれぞれ設定する。また、排他
制御モジュール2は、タスク管理テーブル21のタスクC
のタスク別情報におけるタスク動作状態にウェイト中を
示す0を、ウェイト元タスク番号にタスクAのタスク番
号1をそれぞれ設定する(第4図参照)。
Next, the task C issues an update request for the buffer table 3 by specifying the exclusive key a. Exclusive control module 2
Performs the same processing as described above, and sets the exclusive key a to the task A
Detects that it is exclusive. Therefore, the exclusive control module 2 checks the task operation state in the task-by-task information of the task A in the task management table 21, determines that the task A is in operation, and determines that the task A is not in the deadlock state, and causes the task C to wait. (See Figure 3)
In the task management table 21, 1 is set to the number of wait tasks in the task-specific information of the task A, and task number 3 of the task C is set to the wait task number. The exclusive control module 2 also checks the task C in the task management table 21.
In the task-by-task information, "0" indicating "waiting" is set as the task operation state, and task number 1 of task A is set as the wait source task number (see FIG. 4).

次に、タスクAは、排他キーfを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行う。この結果、排他テーブ
ル23の6番目のエントリに排他キーfが登録され、タス
ク管理テーブル21のタスクAのタスク別情報における排
他件数に3が、排他テーブルリンク情報の終了アドレス
に6がそれぞれ設定され、排他管理テーブル22の残り排
他テーブル件数が(n−6)に、残り排他テーブルリン
ク情報の開始アドレスが7となる。
Next, the task A issues an update request for the buffer table 3 by specifying the exclusive key f. Exclusive control module 2
Performs the same processing as described above. As a result, the exclusion key f is registered in the sixth entry of the exclusion table 23, 3 is set as the number of exclusions in the task-specific information of the task A in the task management table 21, and 6 is set as the end address of the exclusion table link information. The number of remaining exclusive tables in the exclusive management table 22 is (n-6), and the start address of the remaining exclusive table link information is 7.

次に、タスクBは、排他キーgを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行う。この結果、排他テーブ
ル23の7番目のエントリに排他キーgが登録され、タス
ク管理テーブル21のタスクBのタスク別情報における排
他件数に3が、排他テーブルリンク情報の終了アドレス
に7がそれぞれ設定され、排他管理テーブル22の残り排
他テーブル件数が(n−7)に、残り排他テーブルリン
ク情報の開始アドレスが8となる(第4図参照)。
Next, the task B issues an update request for the buffer table 3 by specifying the exclusive key g. Exclusive control module 2
Performs the same processing as described above. As a result, the exclusion key g is registered in the seventh entry of the exclusion table 23, 3 is set as the number of exclusions in the task-specific information of the task B in the task management table 21, and 7 is set as the end address of the exclusion table link information. The number of remaining exclusive tables in the exclusive management table 22 is (n-7), and the start address of the remaining exclusive table link information is 8 (see FIG. 4).

次に、タスクAは、排他キーeを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行い、排他キーeがタスクB
で排他中であることを検出する。そこで、排他制御モジ
ュール2は、タスク管理テーブル21のタスクBのタスク
別情報におけるタスク動作状態を調べ、タスクBが動作
中を示す1であるのでデッドロック状態ではないとみな
し、タスクAをウェイトさせるために(第3図参照)、
タスク管理テーブル21のタスクBのタスク別情報におけ
るウェイトタスク件数に1を、ウェイトタスク番号にタ
スクAのタスク番号1をそれぞれ設定する。また、排他
制御モジュール2は、タスク管理テーブル21のタスクA
のタスク別情報におけるタスク動作状態にウェイト中を
示す0を、ウェイト元タスク番号にタスクBのタスク番
号2をそれぞれ設定する(第4図参照)。
Next, the task A requests the update of the buffer table 3 by designating the exclusive key e. Exclusive control module 2
Performs the same processing as described above, and sets the exclusive key e to the task B
Detects that it is exclusive. Therefore, the exclusive control module 2 checks the task operation state in the task-by-task information of the task B in the task management table 21, determines that the task B is in operation, and determines that the task B is not in the deadlock state, and waits for the task A. (See Figure 3)
The number of wait tasks in the task-specific information of the task B in the task management table 21 is set to 1, and the wait task number is set to the task number 1 of the task A. In addition, the exclusive control module 2 executes the task A in the task management table 21.
In the task-by-task information, "0" indicating "waiting" is set in the task operation state, and task number 2 of task B is set in the wait source task number (see FIG. 4).

次に、タスクBは、排他キーcを指定してバッファ
テーブル3の更新要求を行う。排他制御モジュール2
は、前記と同様の処理を行い、排他キーcがタスクC
で排他中であることを検出する。そこで、排他制御モジ
ュール2は、タスク管理テーブル21のタスクCのタスク
別情報におけるタスク動作状態を調べ、ウェイト中を示
す0であるのでウェイト元タスク番号1をもとにタスク
管理テーブル21のタスクAのタスク別情報におけるタス
ク動作状態を調べる。タスクAのタスク別情報における
タスク動作状態もウェイト中を示す0であるので、排他
制御モジュール2は、デッドロック状態を検出したとみ
なす(第3図参照)。このため、排他制御モジュール2
は、今回の更新要求を行ったタスクBで排他中の全ての
排他キーb,eおよびgならびに今回の更新要求で指定さ
れた排他キーcをキャンセルする。すなわち、排他制御
モジュール2は、排他テーブル23の排他キーb,eおよび
gの登録を削除し、排他キーb,eおよびgの登録を削除
した排他テーブル23のエントリを残り排他テーブルのチ
ェインに組み込むために次排他テーブルアドレスの付替
を行うとともに、排他管理テーブル22の残り排他テーブ
ル件数を(n−4)に、残り排他テーブルリンク情報の
開始アドレスおよび終了アドレスを9および7にそれぞ
れ更新する。また、排他制御モジュール2は、今回の更
新要求を行ったタスクBで排他中のためにウェイトして
いるタスクAをタスク管理テーブル21のタスク動作状態
を1にして動作中に戻す。これにより、タスクAからの
排他キーeを指定するバッファテーブル3の更新要求の
処理が行われる(第5図参照)。すなわち、排他制御モ
ジュール2は、前記と同様の処理を行い、この結果、
排他テーブル23の8番目のエントリに排他キーeが登録
され、タスク管理テーブル21のタスクAのタスク別情報
における排他件数に4が、排他テーブルリンク情報の終
了アドレスに8がそれぞれ設定され、排他管理テーブル
22の残り排他テーブル件数が(n−5)に、残り排他テ
ーブルリンク情報の開始アドレスが9となる。
Next, the task B issues an update request for the buffer table 3 by specifying the exclusive key c. Exclusive control module 2
Performs the same processing as described above, and sets the exclusive key c to the task C
Detects that it is exclusive. Therefore, the exclusive control module 2 checks the task operation state in the task-specific information of the task C in the task management table 21, and since it is 0 indicating that the task is being waited, the task A in the task management table 21 is determined based on the wait source task number 1. Check the task operation state in the task-specific information of. Since the task operation state in the task-by-task information of the task A is also 0 indicating that the task is waiting, the exclusive control module 2 considers that a deadlock state has been detected (see FIG. 3). Therefore, exclusive control module 2
Cancels all exclusive keys b, e, and g that are exclusive in task B that has issued the current update request, and exclusive key c specified in the current update request. That is, the exclusion control module 2 deletes the registration of the exclusion keys b, e, and g in the exclusion table 23, and incorporates the entry of the exclusion table 23 from which the registration of the exclusion keys b, e, and g has been deleted into the chain of the remaining exclusion table. Therefore, the next exclusive table address is replaced, the number of remaining exclusive tables in the exclusive management table 22 is updated to (n-4), and the start address and end address of the remaining exclusive table link information are updated to 9 and 7, respectively. Further, the exclusion control module 2 sets the task operation state in the task management table 21 of the task A, which is waiting for exclusion in the task B that has issued the update request this time, to 1 and returns it to the operation state. As a result, a process of updating the buffer table 3 specifying the exclusive key e from the task A is performed (see FIG. 5). That is, the exclusive control module 2 performs the same processing as described above, and as a result,
The exclusion key e is registered in the eighth entry of the exclusion table 23, 4 is set as the number of exclusions in the task-specific information of the task A in the task management table 21, and 8 is set as the end address of the exclusion table link information. table
The remaining exclusive table number of 22 is (n-5), and the start address of the remaining exclusive table link information is 9.

次に、タスクBがキャンセルされた排他キーbを指
定してバッファテーブル3の更新要求を再度行う(第5
図参照)。排他制御モジュール2は、前記と同様の処
理を行う。この結果、排他テーブル23の9番目のエント
リに排他キーbが登録され、タスク管理テーブル21のタ
スクBのタスク別情報における排他件数に1が、排他テ
ーブルリンク情報(開始アドレスおよび終了アドレス)
に9および9がそれぞれ設定され、排他管理テーブル22
の残り排他テーブル件数が(n−6)に、残り排他テー
ブルリンク情報の開始アドレスが10となる(第6図参
照)。
Next, the task B designates the canceled exclusive key b and makes a request to update the buffer table 3 again (fifth request).
See figure). The exclusive control module 2 performs the same processing as described above. As a result, the exclusion key b is registered in the ninth entry of the exclusion table 23, the exclusion number in the task-specific information of the task B in the task management table 21 is 1, and the exclusion table link information (start address and end address).
Are set to 9 and 9, respectively.
Of the remaining exclusive table is (n-6), and the start address of the remaining exclusive table link information is 10 (see FIG. 6).

次に、タスクBがキャンセルされた排他キーeを指
定してバッファテーブル3の更新要求を再度行う(第5
図参照)。排他制御モジュール2は、前記と同様の処
理を行い、排他キーeがタスクAで排他中であることを
検出する。そこで、排他制御モジュール2は、タスク管
理テーブル21のタスクAのタスク別情報におけるタスク
動作状態を調べ、タスクAが動作中を示す1であるので
デッドロック状態ではないとみなし、タスクBをウェイ
トさせるために、タスク管理テーブル21のタスクAのタ
スク別情報におけるウェイトタスク件数に1を加算して
2とし、ウェイトタスク番号にタスクBのタスク番号2
を追加する。また、排他制御モジュール2は、タスク管
理テーブル21のタスクBのタスク別情報におけるタスク
動作状態にウェイト中を示す0を、ウェイト元タスク番
号にタスクAのタスク番号1をそれぞれ設定する(第6
図参照)。
Next, the task B specifies the canceled exclusive key e and makes a request to update the buffer table 3 again (fifth request).
See figure). The exclusion control module 2 performs the same processing as described above, and detects that the exclusion key e is being exclusioned by the task A. Therefore, the exclusive control module 2 checks the task operation state in the task-by-task information of the task A in the task management table 21, determines that the task A is in operation, and determines that the task A is not in the deadlock state, and waits for the task B. Therefore, 1 is added to the number of wait tasks in the task-specific information of the task A in the task management table 21 to obtain 2, and the wait task number is assigned to the task number 2 of the task B.
Add. In addition, the exclusive control module 2 sets “0” indicating “waiting” in the task operation state and “task number 1” of the task A as the wait source task number in the task-specific information of the task B in the task management table 21 (sixth task).
See figure).

以下、同様にして、タスクBからの排他キーgおよび
cを指定するバッファテーブル3の更新要求も処理され
るが、それらの詳細については省略する。
Hereinafter, similarly, the update request of the buffer table 3 specifying the exclusive keys g and c from the task B is also processed, but the details thereof are omitted.

〔発明の効果〕〔The invention's effect〕

以上説明したように本発明は、バッファテーブルの排
他制御とタスクのウェイト制御およびデッドロック状態
の検出とを併せて行うことにより、コンピュータシステ
ムの処理能力の向上を図ることができるという効果があ
る。
As described above, the present invention has an effect that the processing capability of the computer system can be improved by performing the exclusive control of the buffer table, the wait control of the task, and the detection of the deadlock state together.

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

第1図は本発明の一実施例のバッファテーブルの排他制
御およびデッドロック検出方式の構成を示すブロック
図、 第2図は第1図中のタスク管理テーブル,排他管理テー
ブルおよび排他テーブルを示す図、 第3図はマルチタスクオペレーティングシステムにおけ
るデッドロック状態の一例を示す図、 第4図は第3図に示したデッドロック状態におけるタス
ク管理テーブル,排他管理テーブルおよび排他テーブル
の内容を例示する図、 第5図は第3図に示したデッドロック後の状態を示す
図、 第6図は第5図に示したデッドロック後の状態における
タスク管理テーブル,排他管理テーブルおよび排他テー
ブルの内容を例示する図である。 図において、 1……マルチタスクオペレーティングシステム、 2……排他制御モジュール、 3……バッファテーブル、 21……タスク管理テーブル、 22……排他管理テーブル、 23……排他テーブルである。
FIG. 1 is a block diagram showing the configuration of a buffer table exclusive control and deadlock detection system according to an embodiment of the present invention. FIG. 2 is a diagram showing a task management table, an exclusive management table and an exclusive table in FIG. FIG. 3 is a diagram showing an example of a deadlock state in the multitasking operating system; FIG. 4 is a diagram exemplifying the contents of a task management table, an exclusion management table, and an exclusion table in the deadlock state shown in FIG. FIG. 5 is a diagram showing the state after the deadlock shown in FIG. 3, and FIG. 6 exemplifies the contents of the task management table, the exclusion management table, and the exclusion table in the state after the deadlock shown in FIG. FIG. In the figure, 1 is a multitask operating system, 2 is an exclusive control module, 3 is a buffer table, 21 is a task management table, 22 is an exclusive management table, and 23 is an exclusive table.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数のタスクを同時に実行可能なマルチタ
スクオペレーティングシステムを搭載するコンピュータ
システムにおいて、 タスク識別子,タスク動作状態,排他件数,排他テーブ
ルリンク情報,ウェイト元タスク番号,ウェイトタスク
件数およびウェイトタスク番号を含むタスク別情報を管
理するタスク管理テーブルと、 前記排他テーブルの残り排他テーブル件数および残り排
他テーブルリンク情報を管理する排他管理テーブルと、 タスクからの更新要求で指定された排他キーを次排他テ
ーブルアドレスとともに登録する前記排他テーブルと、 前記タスク管理テーブル,前記排他管理テーブルおよび
前記排他テーブルを使用してメモリ上のバッファテーブ
ルに対する排他制御を行うとともにタスク制御およびデ
ッドロック検出を行う排他制御モジュールと、 を有することを特徴とするバッファテーブルの排他制御
およびデッドロック検出方式。
In a computer system having a multitask operating system capable of simultaneously executing a plurality of tasks, a task identifier, a task operation state, an exclusion count, an exclusion table link information, a wait source task number, a wait task count, and a wait task are provided. A task management table that manages task-specific information including numbers, an exclusive management table that manages the number of remaining exclusive tables in the exclusive table and the remaining exclusive table link information, and an exclusive key specified by an update request from the task. The exclusive table to be registered together with the table address, the task management table, the exclusive management table, and exclusive control of the buffer table on the memory using the exclusive table, and task control and deadlock detection are performed. And an exclusive control module for the buffer table.
JP10887288A 1988-04-30 1988-04-30 Exclusive control of buffer table and deadlock detection method Expired - Lifetime JP2600800B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10887288A JP2600800B2 (en) 1988-04-30 1988-04-30 Exclusive control of buffer table and deadlock detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10887288A JP2600800B2 (en) 1988-04-30 1988-04-30 Exclusive control of buffer table and deadlock detection method

Publications (2)

Publication Number Publication Date
JPH01279329A JPH01279329A (en) 1989-11-09
JP2600800B2 true JP2600800B2 (en) 1997-04-16

Family

ID=14495729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10887288A Expired - Lifetime JP2600800B2 (en) 1988-04-30 1988-04-30 Exclusive control of buffer table and deadlock detection method

Country Status (1)

Country Link
JP (1) JP2600800B2 (en)

Also Published As

Publication number Publication date
JPH01279329A (en) 1989-11-09

Similar Documents

Publication Publication Date Title
US6349310B1 (en) Database management system and method for accessing rows in a partitioned table
US6604102B2 (en) System and method for performing database operations on a continuous stream of tuples
US6397227B1 (en) Database management system and method for updating specified tuple fields upon transaction rollback
US6453313B1 (en) Database management system and method for dequeuing rows published to a database table
JPH0728679A (en) Locking system of checkin/checkout model
JPH103416A (en) Information processor and its method
JPH0468470A (en) Data sharing control system for cad system
JP2600800B2 (en) Exclusive control of buffer table and deadlock detection method
JPH08235032A (en) Logical check system for data base updating
JP3970524B2 (en) Exclusive control method between multiple operations
JPH05307478A (en) Constituting method for data base management system
JPH0644309A (en) Data base managing system
JP3741388B2 (en) Database reserved access processing method
JP3196925B2 (en) Relational database delay constraint check method
US12045223B2 (en) Method and system for lock after qualification for update queries
JPS63196956A (en) File exclusion system
JPH03123946A (en) Exclusive control method for data base
JP2740238B2 (en) File exclusive control unit
JPH04282733A (en) Method for managing data base
JPH09305471A (en) File simultaneous access control system
JPH03118645A (en) Exclusive control method for data base
JP2557953B2 (en) Interface definition and analysis support method
JP2000035909A (en) Method and system for managing database
JPH0293959A (en) File management system
JPH04360265A (en) Parallel transaction processing system for processing data distribution

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20080129

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 12