JPH0374730A - 計算機システムのデッドロック防止装置 - Google Patents

計算機システムのデッドロック防止装置

Info

Publication number
JPH0374730A
JPH0374730A JP21063789A JP21063789A JPH0374730A JP H0374730 A JPH0374730 A JP H0374730A JP 21063789 A JP21063789 A JP 21063789A JP 21063789 A JP21063789 A JP 21063789A JP H0374730 A JPH0374730 A JP H0374730A
Authority
JP
Japan
Prior art keywords
task
time
tasks
required time
deadlock
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
JP21063789A
Other languages
English (en)
Inventor
Kazuaki Onchi
恩地 和明
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP21063789A priority Critical patent/JPH0374730A/ja
Publication of JPH0374730A publication Critical patent/JPH0374730A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、複数のタスクを優先順に従って実行していく
計算機システムに係わり、特に、タスク実行時にデッド
ロック状態が発生しそうになると、タスクの重用度に応
じて次のタスクを実行したり直ちに該当タスクを強制終
了させることを可能とした計算機システムのデッドロッ
ク防止装置に関する。
(従来の技術) 一般に計算機システムにおいては、一連の処理を複数の
タスク(業務)に分割して、この複数のタスクの中で実
行条件の整ったタスクを優先順に実行していくようにし
ている。
この各タスクの優先順位を決定する手法としては、予め
各タスクに割付けられた優先度に従って、実行していく
優先度管理手法や、CPU(中央処理装置)を占有する
時間をタスク毎に設定しておくタイムスライス制御(ラ
ウントロピン方式又は多重ラウントロピン方式)等が考
えられる。
また、前記各タスクの実行条件には上述した優先順位の
他に、各種処理データを記憶するファイルや共用知識ベ
ースに対する割当てや排他的アクセス権の獲得等の条件
も含まれる。
そして、このような条件でもって各タスクを順次実行し
ていく過程で、ファイルや各タスクに共通した共通知識
ベースに対する排他的制御等の実行条件が満たされなく
なるとその時点で該当タスクの実行が中断(停止)する
。−旦一つのタスクに対する実行停止状態が発生すると
、上記排他的制御による他のタスクの待ち状態を誘発し
、その結果、被害が他のタスクにも拡大し、システム全
体が停止し、簡単に復旧できない状態に陥るデッドロッ
ク状態が発生する懸念がある。
このようなデッドロック状態が発生するのを未然に防止
する手段としては、前述したファイルに対する排他的制
御の開始および終了の順序を各タスクに亘って間違いな
くプログラム設計すればよい。また、共通知識ベースに
対する各タスク間でアクセス権の競合状態が発生しない
ようにプログラム設計すればよい。
しかし、各タスクのプログラム設計段階で各タスクのプ
ログラム設計者がシステム全体の挙動を正確に理解して
プログラム設計することは非常に困難である。すなわち
、最初から完全なプログラムを設計することは極めて困
難であり、通常、試験稼働した時点でプログラムの不都
点を改良していくようにしている。
しかし、上述したように、各タスク相互間で複雑な実行
条件が設定されている場合は、例えば実際のオンライン
稼働において一旦デッドロック状態が発生するε、問題
が生じたタスクのみならず、前述した排他的制御による
他のタスクも停止する。
よって、正しいデッドロック発生の原因を究明するのに
多大の時間と労力を必要とした。また、システム全体に
精通した者でないと、正確な要因を究明することは困難
であった。
(発明が解決しようとする課題) このように、各タスク間で複雑な実行条件が設定されて
いる複数のタスクが優先順に従って実行される計算機シ
ステムにおいては、各タスクを実行している過程で実行
条件が満たされずに、旦−つのタスクの実行が停止する
と、関連する他のタスクの動作も停止され、システム全
体がデッドロック状態に陥る懸念があった。
本発明は、各タスクの所要時間における許容所要時間を
設定して、タスク実行時にタスク実行が停止して許容所
要時間が経過すると、あまり重要でないタスクは次のタ
スクを実行させることによって、さらに、重要なタスク
が停止すると直ちに該当タスクを強制終了させて、デッ
ドロック現象の発生を未然に防止でき、被害を最小限に
抑制できると共に要因解析が容易に実行できる計算機シ
ステムのデッドロック防止装置を提供することを目的と
する。
[発明の構成] (課題を解決するための手段、) 上記課題を解消するために本発明の計算機システムのデ
ッドロック防止装置は、複数のタスクを有し、これらの
タスクの中で実行条件が整ったタスクを優先順に従って
実行していき、実行不能となった時点で中断させて次の
タスクを実行する計算機システムにおいて、 各タスクの実行終了毎に該当タスクを実行するに要した
所要時間を計時する所要時間計時手段と、この所要時間
計時手段にて計時されたタスク毎の所要時間の平均所要
時間を算出する平均所要時間算出手段と、この平均所要
時間算出手段にて得られた平均所要時間に基づいて各タ
スク毎の許容所要時間を求めて登録する許容所要時間登
録手段と、この許容所要時間経過後においても終了して
いないタスクを強制終了させるか否かを示す強制終了可
否情報をタスク毎に記憶する強制終了可否情報記憶手段
と、新たなタスク起動要求発生に応動して、現在実行中
のタスクの起動時刻からの経過時間が許容所要時間を越
えていたときで、かつ該当タスクの強制終了可否情報が
・強制終了を示したき現在実行中のタスクを強制終了さ
せる強制終了手段とを備えたものである。
(作 用) このように構成された計算機システムのデッドロック防
止機構であれば、例えば各タスクは停止した場合の他の
タスクに与える影響の重要度合いに応じて強制終了可否
情報が設定されている。
すなわち、タスク実行動作が停止した場合に他のタスク
に与える影響が大きいタスクに対しては強制終了が設定
され、他のタスクに与える影響が小さいタスクに対して
は強制終了が設定されていない。
そして、各タスクの平均所要時間は該当タスクが実行終
了時に新しい平均値に更新される。この平均所要時間を
用いて各タスク毎に許容所要時間が求められて登録され
る。そして、新たなタスク実行要求が発生すると、現在
実行中のタスクの起動時刻からの経過時間が許容所要時
間を゛越えていた場合には、該当タスクの強制終了可否
情報が強制終了を示していないときには、新たタスク起
動要求を許可する。すなわち、この場合は、現在実行中
のタスクが停止したままであっても、他のタスクに与え
る影響度は少ない。
また、該当タスクの強制終了可否情報が強制終了を示し
ているときは、現在実行中のタスクを強制終了させる。
すなわち、該当タスクを強制終了させることによって、
例えば該当タスクが排他制御しているファイルや共通知
識ベースを他のタスクに解放する。よって、他のタスク
の実行条件が緩和されるので、デッドロック現象を未然
に防止できる。
(実施例) 以下本発明の一実施例を図面を用いて説明する。
第1図は実施例の計算機システムのデッドロック防止装
置を示すブロック図である。図中1は計算機システムに
おける実時間オペレーティングシステム(以下O8と略
記する)であり、このO81はデッドロック制御部2を
介して複数のタスク3を制御する。すなわち、O8l内
には各タスク3を実行するための各タスク相互間の優先
度や各タスク相互間の前述した各種占有制御条件等の実
行条件が記憶されており、O81はその実行条件に従っ
て各タスク3を起動して実行させる。
そして、この場合、各タスク3は実行条件が整えば、順
番にまた同時に起動される。よって、ある時点において
は複数のタスク3が例えば時分割制御でもって並行して
同時に実行される場合もある。
逆に、複数のタスク3のうちで実行途中で、実行不可能
の条件が例えば他のタスク3により設定されるタスク3
が発生すると、このタスク3の実行を中断(停止)して
、実行条件の整っているタスク2を先行して実行させる
(タスクディスパッチング)。
また、タスク3の処理をCPUへ移動させるリンケージ
・ユーティリティ機能も有している。
テッドロック制御部2はこの計算機システムにデッドロ
ック現象が発生しないように、また、発生したとしても
その影響を最小限に抑制する機能を有した一種のタスク
で構成されている。そして、デッドロック制御部2は各
タスク3毎にそれぞれ独立したタスク制御情報ブロック
(以下TCBと略記する)4およびタスク3の実行が停
止した場合における各種状態および停止条件を記憶する
例えばフロッピーディスクドライブ装置等からなる補助
記憶装置5を制御する。
そして、デッドロック制御部2は図示するように、各タ
スク3を実行するに要した所要時間T5を計時する所要
時間計時手段2 a s各タスク3毎の所要時間Tsの
平均所要時間TMを算出する平均所要時間算出手段2b
、各タスク3毎に平均所要時間TMに基づいて許容所要
時間T、を算出して対応するTCB4の許容所要時間メ
モリ4aへ登録する許容所要時間登録手段2C,現在停
止中のタスク3を強制終了させる強制終了手段2d等の
機能を有している。
また、各タスク3に対応した各TCBJ内には、前記許
容所要時間メモリ4aの他に、対応するタスク3の起動
時刻を記憶する起動時刻メモリ4b。
前記平均所要時間算出手段2bにて算出された平均所要
時間TMを記憶する平均所要時間メモリ4c、前記許容
所要時間TL経過後においても該当タスク3が終了しし
ていない場合に、このタスク3を強制終了させるか否か
を示す強制終了可否情報を記憶する強制終了可否情報メ
モリ4dが形成されている。
しかして、デッドロック制御部2は、O81から、前述
したタスクディスバッチ処理により実行条件が整ったタ
スク3を指定したタスク実行通知が入力すると第2図に
示す流れ図に従って、デッドロック防止処理を実行する
ようにプログラム構成されている。
すなわち、OS 1’−からタスク3の実行通知が人力
すると、S(ステップ)1にて、前回に実行通知したタ
スク3で実行終了済のタスク3が存在するか否かを調べ
る。存在すれば、S2へ進み、現在時刻tlと該当タス
ク3のTCB4の起動時刻メモリ4bの起動時刻t。と
から該当タスク3の今回の所要時間T、を算出して、該
当タスク3のTCB4へ記憶する。同時に83にて今回
以前に実行終了時記憶された各所時間T、とから平均所
要時間TMを算出して平均所要時間メモリ4cへ格納す
る。すなわち、平均所要時間TMを更新する。
次に84にて、許容主所要時間メモリ4aの許容所要時
間TLを算出して見直す。具体的には、平均所要時間T
Mに例えば10%等の一定比率の時間を加算した時間が
設定される。そして、S5にて今回実行するタスク3の
TCB4の起動時刻メモリ4bへ現在時刻tlを起動時
刻t。として設定する。そして、この流れ図を終了する
Slにて前回終了済みのタスク3が存在しなければ、S
6へ進み、現在中断(停止)中のタスク3が存在するか
否かを調べる。存在しなければ、S5へ進み、今回実行
するタスク3の起動時刻toを設定する。
S6にて、中断(停止〉中のタスク3が存在すれば、S
7にて該当タスク3の起動時刻メモリ4bの起動時刻t
。から現在時刻t、までの経過時間Tを求め、S8にて
、該当タスク3のTCB4の許容所要時間メモリ4aか
ら許容所要時間TLを読出す。S9にて経過時間Tが許
容所要時間TLを越えていなければ、特に問題ないので
、S5へ進み、今回実行するタスク3の起動時刻t。を
設定する。
S9にて、経過時間Tが許容所要時間TLを越えると実
行条件が整わない等の何等かの異常が生じたのでSIO
へ進み、該当タスクを特定するためのタスク情報、cp
uの空き待ちや他のタスク3による排他制御解除待ち等
の現在の中断(停止)理由、および排他制御中又は排他
制御要求中の場合におけるファイル名や共通知識ベース
名、さらに該当共通知識ベースを使用している他のタス
ク名等を編集して補助記憶装置5へ格納する。
次に、S11にて該当タスク3のTCB4の強制終了可
否情報メモリ4dに記憶されている強制終了可否情報が
強制終了を示していなければ、このタスク3の中断(停
止)状態を無視して、S5へ進み、今回実行するタスク
3の起動時刻toを設定する。
さらに、S11にて強制終了可否情報が強制終了を示し
ていれば、S12へ進み、該当タスク3に対する強制終
了要求をO81へ送出して、該当タスク3を強制終了さ
せる。
このように構成された計算機システムのデッドロック防
止装置によれば、O81にて起動された各タスク3の起
動からの経過時間Tがデッドロック制御部2で常時監視
されている。そして、各タスク3毎に平均所要時間TM
に基づいて決定された許容所要時間TLを越えると、他
のタスク3に対する影響の少ないタスクの場合には、そ
のまま無視して次のタスクが起動され、計算機システム
の処理業務はそのまま継続できる。
また、他のタスク3に対する影響が大きい場合は、直ち
に該当タスク3が強制終了され、該当タスク3が排他制
御していたファイルやCPUや共通知識ベースが解除さ
れ、他のタスク3における実行条件が大幅に緩和される
。よって、計算機システム全体こしては正常動作状態を
維持でき、大規模なシステムデッドロック状態に陥るの
が未然に防止される。また、最悪でもシステムハングア
ップ状態を避けることができる。
また、たとえデッドロック現象が生じたとしても大規模
なデッドロック現象に至る事はないので、要因究明が容
易になる。
さらに、この実施例においては、各タスク3の起動開始
時刻からの経過時間Tが許容所要時間TLを越えると、
異常と判断され、その異常状態発生時の実行条件等の各
種異常データが補助記憶装置5に記憶される。したがっ
て、たとえその時点で計算機システム全体を停止しなく
ても、後からそのその異常データを解析することによっ
て、異常要因を容易に究明することが可能となり、シス
テム開発の作業能率を大幅に向上できる。
[発明の効果] 以上説明したように本発明の計算機システムのデッドロ
ック防止装置によれば、各タスクの所要時間における許
容所要時間を設定して、タスク実行途中で例えばタスク
実行が停止して、起動時刻からの経過時間がその許容所
要時間を経過すると、あまり重要でないタスクは無視し
て次のタスクを実行させることによって、さらに、重要
なタスクが停止すると直ちに該当タスクを強制終了させ
て他のタスクの実行条件を緩和させている。よって、計
算機システムにおけるデッドロック現象の発生を未然に
防止でき、たとえデッドロック現象が生じたとしてもそ
の被害を最小限に抑制できるとともに要因解析が容易に
行える。
【図面の簡単な説明】
第1図は本発明の一実施例に係わる計算機システムのデ
ッドロック防止装置の概略構成を示すブロック図、第2
図は同実施例装置の動作を示す流れ図である。 1・・・実時間オペレーティングシステム(OS)、2
・・・デッドロック制御部、2a・・・所要時間計時手
段、2b・・・平均所要時間算出手段、2C・・・許容
所要時間登録手段、2d・・・強制終了手段、3・・・
タスク、4・・・TCB、4d・・・強制終了可否情報
メモリ、5・・・補助記憶装置。

Claims (1)

    【特許請求の範囲】
  1.  複数のタスクを有し、これらのタスクの中で実行条件
    が整ったタスクを優先順に従って実行していき、実行不
    能となった時点で中断させて次のタスクを実行する計算
    機システムにおいて、前記各タスクの実行終了毎に該当
    タスクを実行するに要した所要時間を計時する所要時間
    計時手段と、この所要時間計時手段にて計時されたタス
    ク毎の所要時間の平均所要時間を算出する平均所要時間
    算出手段と、この平均所要時間算出手段にて得られた平
    均所要時間に基づいて各タスク毎の許容所要時間を求め
    て登録する許容所要時間登録手段と、この許容所要時間
    経過後においても終了していないタスクを強制終了させ
    るか否かを示す強制終了可否情報をタスク毎に記憶する
    強制終了可否情報記憶手段と、新たなタスク起動要求発
    生に応動して、現在実行中のタスクの起動時刻からの経
    過時間が前記許容所要時間を越えていたときで、かつ該
    当タスクの強制終了可否情報が強制終了を示したき前記
    現在実行中のタスクを強制終了させる強制終了手段とを
    備えた計算機システムのデッドロック防止装置。
JP21063789A 1989-08-17 1989-08-17 計算機システムのデッドロック防止装置 Pending JPH0374730A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21063789A JPH0374730A (ja) 1989-08-17 1989-08-17 計算機システムのデッドロック防止装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21063789A JPH0374730A (ja) 1989-08-17 1989-08-17 計算機システムのデッドロック防止装置

Publications (1)

Publication Number Publication Date
JPH0374730A true JPH0374730A (ja) 1991-03-29

Family

ID=16592609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21063789A Pending JPH0374730A (ja) 1989-08-17 1989-08-17 計算機システムのデッドロック防止装置

Country Status (1)

Country Link
JP (1) JPH0374730A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103727A1 (ja) * 2009-03-11 2010-09-16 パナソニック株式会社 マルチタスクシステムにおけるシステム起動方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103727A1 (ja) * 2009-03-11 2010-09-16 パナソニック株式会社 マルチタスクシステムにおけるシステム起動方法

Similar Documents

Publication Publication Date Title
JP3392320B2 (ja) マルチマスタバスシステムのバス回復装置及び方法
TWI267782B (en) Deallocation of computer data in a multithreaded computer
US7093262B2 (en) Detecting deadlocks in multithreaded programs
JP2006277115A (ja) 異常検出プログラムおよび異常検出方法
JP2004504667A (ja) 実時間システム内のタスクのラン時間の測定方法及び装置
WO2009123343A1 (ja) 競合分析装置、競合分析方法、及びプログラム
JPH0374730A (ja) 計算機システムのデッドロック防止装置
US20190121327A1 (en) Numerical controller
TW200416605A (en) Method for meeting SMI duration limits by time slicing SMI handlers
JPH0245838A (ja) プログラム実行状態監視方法
JPH07191863A (ja) マルチタスク実行管理方式
JPH05324418A (ja) Cpu使用時間監視方式
JP2882859B2 (ja) オンライン中イベント処理時間分析方式
JP2002251299A (ja) プログラムトレース装置
JPH0334037A (ja) システム異常の検出処理方式
JP2006185365A (ja) 半導体装置およびデバッグ方法
JPS6072039A (ja) マルチタスクプログラムの正常動作監視方法
JPH0324637A (ja) プログラムデバッグ時の資源管理方法
JP2550708B2 (ja) デバッグ方式
WO2010038280A1 (ja) 仮想計算機システム及びデッドロック解除方法
JPS62194549A (ja) Cpu―io並列動作シミュレーション方法
JPH11143824A (ja) バス・アービトレーション方式
JPH0581051A (ja) リソース破壊監視方式
JPH0149975B2 (ja)
JPH0477931A (ja) 計算機システムのデッドロック防止装置