JPH04273535A - マルチタスク制御方式 - Google Patents
マルチタスク制御方式Info
- Publication number
- JPH04273535A JPH04273535A JP3387791A JP3387791A JPH04273535A JP H04273535 A JPH04273535 A JP H04273535A JP 3387791 A JP3387791 A JP 3387791A JP 3387791 A JP3387791 A JP 3387791A JP H04273535 A JPH04273535 A JP H04273535A
- Authority
- JP
- Japan
- Prior art keywords
- task
- state
- execution
- deadlock
- detection flag
- 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
Links
- 238000001514 detection method Methods 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 15
- 230000007704 transition Effects 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 abstract 1
- 238000001994 activation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は情報処理システムにおけ
るマルチタスク制御方式に関し、特に一つのジョブを構
成する複数タスク間のデッドロック状態を検出するマル
チタスク制御方式に関する。
るマルチタスク制御方式に関し、特に一つのジョブを構
成する複数タスク間のデッドロック状態を検出するマル
チタスク制御方式に関する。
【0002】
【従来の技術】マルチタスク処理では、一つのジョブを
構成する複数タスク間での排他制御および同期化制御が
頻繁に行われる。排他制御および同期化制御にプログラ
ムミスがあると、そのマルチタスク処理プログラム全体
がデッドロック状態(ストール状態)になることがある
。
構成する複数タスク間での排他制御および同期化制御が
頻繁に行われる。排他制御および同期化制御にプログラ
ムミスがあると、そのマルチタスク処理プログラム全体
がデッドロック状態(ストール状態)になることがある
。
【0003】従来のマルチタスク制御方式は、マルチタ
スク処理プログラムの排他制御や同期化制御のプログラ
ムミスにより発生するデッドロックを検出する手段を備
えていなかった。このため、デッドロックが発生してい
るかどうかをオペレータが判断し、オペレータの入力す
るコマンドによりデッドロックが発生したマルチタスク
処理プログラム全体を強制終了させていた。
スク処理プログラムの排他制御や同期化制御のプログラ
ムミスにより発生するデッドロックを検出する手段を備
えていなかった。このため、デッドロックが発生してい
るかどうかをオペレータが判断し、オペレータの入力す
るコマンドによりデッドロックが発生したマルチタスク
処理プログラム全体を強制終了させていた。
【0004】
【発明が解決しようとする課題】上述の従来のマルチタ
スク制御方式は、マルチタスク処理プログラムのデッド
ロック状態を検出する手段を備えていないため、オペレ
ータがデッドロック状態かどうかを判断しなければなら
ずオペレータの能力によっては発明が遅れてしまうとい
う問題点がある。
スク制御方式は、マルチタスク処理プログラムのデッド
ロック状態を検出する手段を備えていないため、オペレ
ータがデッドロック状態かどうかを判断しなければなら
ずオペレータの能力によっては発明が遅れてしまうとい
う問題点がある。
【0005】本発明の目的は、デッドロックを確実に検
出できるマルチタスク制御方式を提供することにある。
出できるマルチタスク制御方式を提供することにある。
【0006】
【課題を解決するための手段】本発明のマルチタスク制
御方式は、マルチタスクジョブを構成する各々のタスク
の実行状態から待機状態および待機状態から実行状態へ
の状態遷移が前記マルチタスクジョブ内の他のタスクの
実行に起因して発生する事象にのみ依存するマルチタス
クジョブにおいて、存在するタスク数をジョブ単位に保
持するタスクカウンタと、各々のタスクが実行可能ある
いは実行状態であることをタスク単位に表示するデッド
ロック検出フラグとを主記憶装置のユーザ領域内に有し
、タスク生成時およびタスク実行終了時に前記タスクカ
ウンタを更新する手段と、前記タスク生成時およびタス
ク実行終了時と各々のタスクが待機状態から実行可能状
態に遷移するときおよび実行状態から待機状態に遷移す
るときとに前記デッドロック検出フラグを更新する更新
手段と、前記更新手段による更新結果によって存在する
全タスクが待機状態に遷移したことを認識する手段とを
設けることにより、デッドロック状態を検出する構成で
ある。
御方式は、マルチタスクジョブを構成する各々のタスク
の実行状態から待機状態および待機状態から実行状態へ
の状態遷移が前記マルチタスクジョブ内の他のタスクの
実行に起因して発生する事象にのみ依存するマルチタス
クジョブにおいて、存在するタスク数をジョブ単位に保
持するタスクカウンタと、各々のタスクが実行可能ある
いは実行状態であることをタスク単位に表示するデッド
ロック検出フラグとを主記憶装置のユーザ領域内に有し
、タスク生成時およびタスク実行終了時に前記タスクカ
ウンタを更新する手段と、前記タスク生成時およびタス
ク実行終了時と各々のタスクが待機状態から実行可能状
態に遷移するときおよび実行状態から待機状態に遷移す
るときとに前記デッドロック検出フラグを更新する更新
手段と、前記更新手段による更新結果によって存在する
全タスクが待機状態に遷移したことを認識する手段とを
設けることにより、デッドロック状態を検出する構成で
ある。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。なお、本明細書で使用する『タスクの待機
状態』とは、このタスクが実行可能状態になるために他
のタスクの実行に依存するような状態をいう。(I/O
待ち等は含まない)図3は本発明の一実施例の主記憶装
置内の構成を説明する説明図である。
て説明する。なお、本明細書で使用する『タスクの待機
状態』とは、このタスクが実行可能状態になるために他
のタスクの実行に依存するような状態をいう。(I/O
待ち等は含まない)図3は本発明の一実施例の主記憶装
置内の構成を説明する説明図である。
【0008】主記憶装置1はシステム領域11とユーザ
領域12に分けられる。
領域12に分けられる。
【0009】システム領域11には、タスクの実行を管
理するための実行待行列111と待機状態のタスクを管
理する待機中待行列112とがある。又、実行待行列1
11と待機中待行列112とには、それぞれタスクの識
別を表わすタスク識別番号1111,1121がセット
される。
理するための実行待行列111と待機状態のタスクを管
理する待機中待行列112とがある。又、実行待行列1
11と待機中待行列112とには、それぞれタスクの識
別を表わすタスク識別番号1111,1121がセット
される。
【0010】ユーザ領域12はさらに、同一マルチタス
クグループから共通にアクセスされるタスクグループ共
通領域とタスクごとに用意されるタスク個別領域に分け
られる。タスクグループ共通領域には、マルチタスクプ
ログラムの制御情報の集りであるTGCB(TASK
GROUP CONTROL BLOCK)12
1、タスク間の同期を取るためのセマフォ123がある
。TGCB121には起動後、まだ実行を終了していな
いタスクの数を表わすタスクカウンタ1211とタスク
毎に実行可能状態または実行状態であることを示すデッ
ドロック検出フラグ1212とが含まれる。TGCB1
21は、マルチタスクプログラムの実行開始前にオペレ
ーティングシステムにより初期設定され、特にタスクカ
ウンタ1211およびデッドロック検出フラグ1212
には「0」がセットされる。セマフォ123には、イベ
ントの状態を表わすステータスワード1231と待機中
待行列ポインタ1232とが含まれる。イベント状態に
は、イベント通知状態(=1)とイベントが存在しない
状態(=0)の2種類が存在する。待機中待行列ポイン
タ1232には、イベント待ちタスクが存在しないとき
「0」、イベント待ちタスクが存在するとき待機中待行
列112内の先頭タスクへのポインタが設定される。タ
スク個別領域には、タスクに関する制御情報の集りであ
るTCB(TASKCONTROL BLOCK)1
22がある。TCB122内には、TGCB121への
ポインタ1221がセットされている。
クグループから共通にアクセスされるタスクグループ共
通領域とタスクごとに用意されるタスク個別領域に分け
られる。タスクグループ共通領域には、マルチタスクプ
ログラムの制御情報の集りであるTGCB(TASK
GROUP CONTROL BLOCK)12
1、タスク間の同期を取るためのセマフォ123がある
。TGCB121には起動後、まだ実行を終了していな
いタスクの数を表わすタスクカウンタ1211とタスク
毎に実行可能状態または実行状態であることを示すデッ
ドロック検出フラグ1212とが含まれる。TGCB1
21は、マルチタスクプログラムの実行開始前にオペレ
ーティングシステムにより初期設定され、特にタスクカ
ウンタ1211およびデッドロック検出フラグ1212
には「0」がセットされる。セマフォ123には、イベ
ントの状態を表わすステータスワード1231と待機中
待行列ポインタ1232とが含まれる。イベント状態に
は、イベント通知状態(=1)とイベントが存在しない
状態(=0)の2種類が存在する。待機中待行列ポイン
タ1232には、イベント待ちタスクが存在しないとき
「0」、イベント待ちタスクが存在するとき待機中待行
列112内の先頭タスクへのポインタが設定される。タ
スク個別領域には、タスクに関する制御情報の集りであ
るTCB(TASKCONTROL BLOCK)1
22がある。TCB122内には、TGCB121への
ポインタ1221がセットされている。
【0011】図4は実行待行列および待機中待行列につ
ながれているタスクとTGCBに含まれるデッドロック
検出フラグとの関係を示す対応図である。
ながれているタスクとTGCBに含まれるデッドロック
検出フラグとの関係を示す対応図である。
【0012】実行待行列111および待機中待行列11
2につながれているタスクは、タスク識別番号1111
および1121ごとに、デッドロック検出フラグ121
2の各ビットに対応している。このタスクが待機状態で
あれば、デッドロック検出フラグ1212の対応するビ
ットは「0」を、実行可能状態または実行状態であれば
「1」を保持する。又、存在しないタスクに対応するビ
ットは、初期設定された値「0」のままである。
2につながれているタスクは、タスク識別番号1111
および1121ごとに、デッドロック検出フラグ121
2の各ビットに対応している。このタスクが待機状態で
あれば、デッドロック検出フラグ1212の対応するビ
ットは「0」を、実行可能状態または実行状態であれば
「1」を保持する。又、存在しないタスクに対応するビ
ットは、初期設定された値「0」のままである。
【0013】図5はタスク起動処理の流れ図である。
【0014】タスク起動時に、タスクカウンタ1211
を「+1」し(ステップ31以下S31と記す)、タス
ク識別番号1111に対応するデッドロック検出フラグ
1212に「1」をセットする(S32)。 図6は
タスク実行終了処理の流れ図である。
を「+1」し(ステップ31以下S31と記す)、タス
ク識別番号1111に対応するデッドロック検出フラグ
1212に「1」をセットする(S32)。 図6は
タスク実行終了処理の流れ図である。
【0015】タスク実行終了処理時に、タスクカウンタ
1211を「−1」し(S41)、該タスク識別番号1
111に対応するデッドロック検出フラグ1212をリ
セットする(S42)。S41での更新の結果、タスク
カウンタ1211が「0」であるか判定し(S43)、
「0」であればプログラム全体の終了処理を行なう。 「0」でなければS42での更新の結果、デッドロック
検出フラグ1212が「0」であるか判定し(S44)
、「0」であれば待機状態で実行を終了していないタス
クが存在することを意味し、デッドロック状態に陥った
ことを検出する。この場合、待機状態のタスクは再び実
行可能状態となることはないので、オペレーティングシ
ステムによりこのマルチタスクグループ全体を強制終了
させる(S45)。デッドロック検出フラグ1212が
「0」でなければ、このタスクのみの終了処理を行う。
1211を「−1」し(S41)、該タスク識別番号1
111に対応するデッドロック検出フラグ1212をリ
セットする(S42)。S41での更新の結果、タスク
カウンタ1211が「0」であるか判定し(S43)、
「0」であればプログラム全体の終了処理を行なう。 「0」でなければS42での更新の結果、デッドロック
検出フラグ1212が「0」であるか判定し(S44)
、「0」であれば待機状態で実行を終了していないタス
クが存在することを意味し、デッドロック状態に陥った
ことを検出する。この場合、待機状態のタスクは再び実
行可能状態となることはないので、オペレーティングシ
ステムによりこのマルチタスクグループ全体を強制終了
させる(S45)。デッドロック検出フラグ1212が
「0」でなければ、このタスクのみの終了処理を行う。
【0016】図7はイベント待ち処理の流れ図である。
【0017】イベント待ち処理では、セマフォ123の
ステータスワード1231を読取り(S51)、ステー
タスワード1231の状態を判定する(S52)。イベ
ントが通知されていなければ、すなわちステータスワー
ド1231が「0」であれば、このタスクは実行状態か
ら待機状態に遷移し、待機中待行列112にエンキュさ
れる。このとき、セマフォ123内の待機中待行列ポイ
ンタ1232が「0」であれば、該ポインタが前記タス
クを指すように設定される。該ポインタが「0」でなけ
れば、待機中待行列112の最終タスクとして前記タス
クがエンキュされる(S53)。さらに、前述のタスク
のタスク識別番号1121に対応するデッドロック検出
フラグ1212をリセットする(S54)。次にS54
での更新結果によりデッドロック検出フラグ1212が
「0」あるか判定し(S55)、「0」であれば実行を
終了していないタスクが全て待機状態に遷移したことを
意味し、デッドロック状態に陥ったことを検出する。こ
の場合、待機状態のタスクは再び実行可能状態となるこ
とはないので、オペレーティングシステムによりこのマ
ルチタスクグループ全体を強制終了させる(S56)。 デッドロック検出フラグ1212が「0」でなければ、
イベント待ち処理を終了し別タスクを起動する。又、S
52においてイベントが通知されている状態、すなわち
セマフォ123のステータスワード1231が「0」で
なければ、このタスクはイベント待ち処理を終了し、継
続実行する。
ステータスワード1231を読取り(S51)、ステー
タスワード1231の状態を判定する(S52)。イベ
ントが通知されていなければ、すなわちステータスワー
ド1231が「0」であれば、このタスクは実行状態か
ら待機状態に遷移し、待機中待行列112にエンキュさ
れる。このとき、セマフォ123内の待機中待行列ポイ
ンタ1232が「0」であれば、該ポインタが前記タス
クを指すように設定される。該ポインタが「0」でなけ
れば、待機中待行列112の最終タスクとして前記タス
クがエンキュされる(S53)。さらに、前述のタスク
のタスク識別番号1121に対応するデッドロック検出
フラグ1212をリセットする(S54)。次にS54
での更新結果によりデッドロック検出フラグ1212が
「0」あるか判定し(S55)、「0」であれば実行を
終了していないタスクが全て待機状態に遷移したことを
意味し、デッドロック状態に陥ったことを検出する。こ
の場合、待機状態のタスクは再び実行可能状態となるこ
とはないので、オペレーティングシステムによりこのマ
ルチタスクグループ全体を強制終了させる(S56)。 デッドロック検出フラグ1212が「0」でなければ、
イベント待ち処理を終了し別タスクを起動する。又、S
52においてイベントが通知されている状態、すなわち
セマフォ123のステータスワード1231が「0」で
なければ、このタスクはイベント待ち処理を終了し、継
続実行する。
【0018】図8はイベント通知処理の流れ図である。
【0019】イベント通知処理では、セマフォ123の
ステータスワード1231をイベント通知状態にし(S
61)、イベント待ちのタスクがあるかを判断し(S6
2)、このイベントを待ち合わせているタスクがあれば
実行可能状態にする。すなわち、セマフォ123内の待
機中待行列ポインタ1232が「0」でなければ、ポイ
ンタ1232が指すタスクを含むイベント待ち状態の全
タスクを待機中待行列112からデキュし、実行待行列
111にエンキュする(S63)。さらに、ステップ6
3で実行可能状態にした全タスクについて、各々のタス
ク識別番号1111に対応するデッドロック検出フラグ
1212を「1」をセットする(S64)。さらに、前
記待機中待行列ポインタ1232を「0」にする(S6
5)。一方、S62においてイベント待ちタスクが存在
しなければ、すなわちセマフォ123内の待機中待行列
ポインタ1232が「0」であれば、イベント通知処理
を終了する。
ステータスワード1231をイベント通知状態にし(S
61)、イベント待ちのタスクがあるかを判断し(S6
2)、このイベントを待ち合わせているタスクがあれば
実行可能状態にする。すなわち、セマフォ123内の待
機中待行列ポインタ1232が「0」でなければ、ポイ
ンタ1232が指すタスクを含むイベント待ち状態の全
タスクを待機中待行列112からデキュし、実行待行列
111にエンキュする(S63)。さらに、ステップ6
3で実行可能状態にした全タスクについて、各々のタス
ク識別番号1111に対応するデッドロック検出フラグ
1212を「1」をセットする(S64)。さらに、前
記待機中待行列ポインタ1232を「0」にする(S6
5)。一方、S62においてイベント待ちタスクが存在
しなければ、すなわちセマフォ123内の待機中待行列
ポインタ1232が「0」であれば、イベント通知処理
を終了する。
【0020】図1および図2はマルチタスキングプログ
ラムを実行した時のタスクカウンタ1211およびデッ
ドロック検出フラグ1212の変化を示した一実施例の
説明図である。
ラムを実行した時のタスクカウンタ1211およびデッ
ドロック検出フラグ1212の変化を示した一実施例の
説明図である。
【0021】次に図3および図5ないし図8を参照し、
図2に示すデッドロックが検出されない場合の例につい
て説明する。
図2に示すデッドロックが検出されない場合の例につい
て説明する。
【0022】タスク1(タスク識別番号1)が起動され
ると、タスク起動処理(図5)により(S71)、タス
クカウンタ1211が「+1」され、タスク識別番号1
111に対応するデッドロック検出フラグ1212には
「1」がセットされる。
ると、タスク起動処理(図5)により(S71)、タス
クカウンタ1211が「+1」され、タスク識別番号1
111に対応するデッドロック検出フラグ1212には
「1」がセットされる。
【0023】タスク2(タスク識別番号2)が起動され
ると、同様にタスク起動処理(図5)により(S72)
、タスクカウンタ1211が「+1」される。この結果
、タスクカウンタ1211は「2」となる。又、タスク
識別番号1111に対応するデッドロック検出フラグ1
212には「1」がセットされる。
ると、同様にタスク起動処理(図5)により(S72)
、タスクカウンタ1211が「+1」される。この結果
、タスクカウンタ1211は「2」となる。又、タスク
識別番号1111に対応するデッドロック検出フラグ1
212には「1」がセットされる。
【0024】タスク1がイベント要求を行なうと、イベ
ント待ち処理(図7)により(S73)、タスク識別番
号1121に対応するデッドロック検出フラグ1212
がリセットされる。この時、デッドロック検出フラグ1
212が「≠0」なのでデッドロックは検出されない。
ント待ち処理(図7)により(S73)、タスク識別番
号1121に対応するデッドロック検出フラグ1212
がリセットされる。この時、デッドロック検出フラグ1
212が「≠0」なのでデッドロックは検出されない。
【0025】タスク2がイベント通知を行なうと、イベ
ント通知処理(図8)により(S74)、タスク識別番
号1111に対応するデッドロック検出フラグ1212
に「1」がセットされる。タスク1は、実行可能状態と
なり実行が再開される。
ント通知処理(図8)により(S74)、タスク識別番
号1111に対応するデッドロック検出フラグ1212
に「1」がセットされる。タスク1は、実行可能状態と
なり実行が再開される。
【0026】タスク2の実行が終了すると、タスク実行
終了処理(図6)により(S75)、タスクカウンタ1
211が「−1」され、又、タスク識別番号1111に
対応するデッドロック検出フラグ1212がリセットさ
れる。この時、デッドロック検出フラグ1212が「≠
0」なので、デッドロックは検出されない。
終了処理(図6)により(S75)、タスクカウンタ1
211が「−1」され、又、タスク識別番号1111に
対応するデッドロック検出フラグ1212がリセットさ
れる。この時、デッドロック検出フラグ1212が「≠
0」なので、デッドロックは検出されない。
【0027】タスク1の実行が終了すると、タスク実行
終了処理(図6)により(S76)、タスクカウンタ1
211が「−1」され、又、タスク識別番号1111に
対応するデッドロック検出フラグ1212がリセットさ
れる。この時、タスクカウンタ1211が「0」なので
、プログラム全体の終了となりデッドロックは検出され
ない。
終了処理(図6)により(S76)、タスクカウンタ1
211が「−1」され、又、タスク識別番号1111に
対応するデッドロック検出フラグ1212がリセットさ
れる。この時、タスクカウンタ1211が「0」なので
、プログラム全体の終了となりデッドロックは検出され
ない。
【0028】次に図3および図5ないし図8を参照し、
図1に示すデッドロックが検出される場合の例について
説明する。
図1に示すデッドロックが検出される場合の例について
説明する。
【0029】タスク1(タスク識別番号1)が起動され
ると、タスク起動処理(図5)により(S81)、タス
クカウンタ1211が「+1」され、タスク識別番号1
111に対応するデッドロック検出フラグ1212には
「1」がセットされる。
ると、タスク起動処理(図5)により(S81)、タス
クカウンタ1211が「+1」され、タスク識別番号1
111に対応するデッドロック検出フラグ1212には
「1」がセットされる。
【0030】タスク2(タスク識別番号2)が起動され
ると、同様にタスク起動処理(図5)により(S82)
、タスクカウンタ1211が「+1」される。この結果
、タスクカウンタ1211は「2」となる。又、タスク
識別番号1111に対応するデッドロック検出フラグ1
212には「1」がセットされる。
ると、同様にタスク起動処理(図5)により(S82)
、タスクカウンタ1211が「+1」される。この結果
、タスクカウンタ1211は「2」となる。又、タスク
識別番号1111に対応するデッドロック検出フラグ1
212には「1」がセットされる。
【0031】タスク1がイベント待ち要求を行なうと、
イベント待ち処理(図7)により(S83)、タスク識
別番号1121に対応するデッドロック検出フラグ12
12がリセットされる。この時、デッドロック検出フラ
グ1212が「≠0」なので、デッドロックは検出され
ない。
イベント待ち処理(図7)により(S83)、タスク識
別番号1121に対応するデッドロック検出フラグ12
12がリセットされる。この時、デッドロック検出フラ
グ1212が「≠0」なので、デッドロックは検出され
ない。
【0032】この状態でもしタスク2もイベント待ち要
求を行なったとすると、イベント待ち処理(図7)によ
り(S84)、タスク識別番号1121に対応するデッ
ドロック検出フラグ1212がリセットされ、この結果
、デッドロック検出フラグ1212は「0」となりデッ
ドロックが検出される。デッドロックが検出されると、
このマルチタスクグループの全タスク(この場合、タス
ク1およびタスク2)が強制終了される(S85)。
求を行なったとすると、イベント待ち処理(図7)によ
り(S84)、タスク識別番号1121に対応するデッ
ドロック検出フラグ1212がリセットされ、この結果
、デッドロック検出フラグ1212は「0」となりデッ
ドロックが検出される。デッドロックが検出されると、
このマルチタスクグループの全タスク(この場合、タス
ク1およびタスク2)が強制終了される(S85)。
【0033】タスクカウンタ1211,デッドロック検
出フラグ1212、およびセマフォ123へのアクセス
は、マルチプロセッサ間で排他制御される。
出フラグ1212、およびセマフォ123へのアクセス
は、マルチプロセッサ間で排他制御される。
【0034】
【発明の効果】以上説明したように本発明は、オペレー
ティングシステムのタスク管理機能にデッドロック検出
機能を設けることにより、デッドロックを確実に検出で
きるという効果がある。
ティングシステムのタスク管理機能にデッドロック検出
機能を設けることにより、デッドロックを確実に検出で
きるという効果がある。
【図1】マルチタスキングプログラムの実行でデッドロ
ックが検出された場合の一実施例の説明図である。
ックが検出された場合の一実施例の説明図である。
【図2】マルチタスキングプログラムの実行でデッドロ
ックが検出されなかった場合の一実施例の説明図である
。
ックが検出されなかった場合の一実施例の説明図である
。
【図3】本発明の一実施例の主記憶装置内の構成を説明
する説明図である。
する説明図である。
【図4】タスク識別番号とデッドロック検出フラグの対
応図である。
応図である。
【図5】タスク起動処理の流れ図である。
【図6】タスク実行終了処理の流れ図である。
【図7】イベント待ち処理の流れ図である。
【図8】イベント通知処理の流れ図である。
1 主記憶装置
11 システム領域
12 ユーザ領域
111 実行待行列
112 待機中待行列
121 TGCB(TASK GROUP
CONTROL BLOCK) 122 TCB(TASK CONTROL
BLOCK) 123 セマフォ 1111 実行タスク識別番号 1121 待機中タスク識別番号1211
タスクカウンタ 1212 デッドロック検出フラグ1221
TGCBポインタ 1231 ステータスワード
CONTROL BLOCK) 122 TCB(TASK CONTROL
BLOCK) 123 セマフォ 1111 実行タスク識別番号 1121 待機中タスク識別番号1211
タスクカウンタ 1212 デッドロック検出フラグ1221
TGCBポインタ 1231 ステータスワード
Claims (1)
- 【請求項1】 マルチタスクジョブを構成する各々の
タスクの実行状態から待機状態および待機状態から実行
状態への状態遷移が前記マルチタスクジョブ内の他のタ
スクの実行に起因して発生する事象にのみ依存するマル
チタスクジョブにおいて、存在するタスク数をジョブ単
位に保持するタスクカウンタと、各々のタスクが実行可
能あるいは実行状態であることをタスク単位に表示する
デッドロック検出フラグとを主記憶装置のユーザ領域内
に有し、タスク生成時およびタスク実行終了時に前記タ
スクカウンタを更新する手段と、前記タスク生成時およ
びタスク実行終了時と各々のタスクが待機状態から実行
可能状態に遷移するときおよび実行状態から待機状態に
遷移するときとに前記デッドロック検出フラグを更新す
る更新手段と、前記更新手段による更新結果によって存
在する全タスクが待機状態に遷移したことを認識する手
段とを設けることにより、デッドロック状態を検出する
ことを特徴とするマルチタスク制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3387791A JPH04273535A (ja) | 1991-02-28 | 1991-02-28 | マルチタスク制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3387791A JPH04273535A (ja) | 1991-02-28 | 1991-02-28 | マルチタスク制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04273535A true JPH04273535A (ja) | 1992-09-29 |
Family
ID=12398749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3387791A Pending JPH04273535A (ja) | 1991-02-28 | 1991-02-28 | マルチタスク制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04273535A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002530737A (ja) * | 1998-11-16 | 2002-09-17 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | イベントベースシステムの同時処理 |
-
1991
- 1991-02-28 JP JP3387791A patent/JPH04273535A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002530737A (ja) * | 1998-11-16 | 2002-09-17 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | イベントベースシステムの同時処理 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5923833A (en) | Restart and recovery of OMG-compliant transaction systems | |
US7089561B2 (en) | Methods and systems for creating and communicating with computer processes | |
US9229789B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US7797706B2 (en) | Method and apparatus for thread-safe handlers for checkpoints and restarts | |
US6101524A (en) | Deterministic replay of multithreaded applications | |
JP5270268B2 (ja) | 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体 | |
US6212578B1 (en) | Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls | |
US6000046A (en) | Common error handling system | |
US20030233485A1 (en) | Event queue | |
US20090328041A1 (en) | Shared User-Mode Locks | |
JPH1049381A (ja) | 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム | |
JPH0644195A (ja) | 結合式データ処理システム用の方法および装置 | |
JP2001514778A (ja) | メッセージ・キューイング・ファシリティを含むネットワーク・トランザクションをメインフレームからインテリジェントな入出力装置にオフロードするシステム及び方法 | |
US7219348B2 (en) | Detecting and causing latent deadlocks in multi-threaded programs | |
US7275247B2 (en) | Method and apparatus for handling threads in a data processing system | |
CN110716793A (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
US20100262972A1 (en) | Deadlock avoidance | |
US6857085B1 (en) | Method and system for handling an unexpected exception generated by an application | |
US7950014B2 (en) | Detecting the ready state of a user interface element | |
WO2024027057A1 (zh) | 一种数据回滚方法、装置、设备及其存储介质 | |
JPH04273535A (ja) | マルチタスク制御方式 | |
CN111475300A (zh) | 一种多线程多任务管理方法及终端 | |
JPH0922369A (ja) | マルチタスキング方式のカーネルにおける不正動作検出方法 | |
KR19980049353A (ko) | 분산 트랜잭션의 회복방법 | |
JP2713218B2 (ja) | チェックポイント/リスタート処理方式 |