JP2000010800A - 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法 - Google Patents

計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法

Info

Publication number
JP2000010800A
JP2000010800A JP10172832A JP17283298A JP2000010800A JP 2000010800 A JP2000010800 A JP 2000010800A JP 10172832 A JP10172832 A JP 10172832A JP 17283298 A JP17283298 A JP 17283298A JP 2000010800 A JP2000010800 A JP 2000010800A
Authority
JP
Japan
Prior art keywords
thread
priority
cpu
abnormal operation
value
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
JP10172832A
Other languages
English (en)
Inventor
Takeshi Watakabe
健 渡壁
Yoshiro Hasegawa
義朗 長谷川
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 JP10172832A priority Critical patent/JP2000010800A/ja
Priority to US09/334,949 priority patent/US6434591B1/en
Publication of JP2000010800A publication Critical patent/JP2000010800A/ja
Priority to US10/173,624 priority patent/US6662204B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 OSの動作を阻害する可能性のある程高い優
先度を使用した際、万が一のプログラムの不備によりC
PU占有が生じ、OSの動作を阻害される事態が発生し
ても、定期的にスレッド動作を監視し、異常動作をする
スレッドを検出し、当該スレッドの優先度を下げること
でシステム保護を行うこと。 【解決手段】 所定範囲内のランダム間隔で割り込み処
理部109〜112により、CPU100〜103で実
行中のスレッドを調査し、当該調査結果を実行中スレッ
ド記憶領域113〜116に記憶すると共に、実行中の
スレッドに対応するカウンタ117〜120の値を増や
す。カウンタ117〜120の値が所定値を超えた場
合、当該スレッドが異常動作をしていると判断し、優先
度操作部322により当該スレッドの優先度を低くして
スレッドの異常動作を防止する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、割り込み処理以外
のオペレーティングシステム(OS)の処理を妨げる程
高い優先度を使用する計算機システムに於けるスレッド
制御装置、及び計算機システムに於けるスレッド制御方
法に関する。
【0002】
【従来の技術】従来、計算機システムでは、高い優先度
を必要とする処理を割り込み処理以外のOSの処理を妨
げる程高い優先度で行うと、万が一のプログラムの不備
によりOSの動作が阻害され、計算機システムが動作不
能に陥る危険性があった。この為、次のような対策、即
ち消極的対策が成されていた。
【0003】1.あまり高すぎる優先度は使用しない。
【0004】2.危険を承知で使用する。
【0005】しかしながら、上記1では応答時間を短く
したい場合等、目的が達成できない虞がある。一方、上
記2では、万一の場合に、計算機システムにインストー
ルされている他のアプリケーション・ソフトウェア(以
下、アプリケーション)も含め、システムの動作が続行
できないため危険性が高すぎるものであった。
【0006】
【発明が解決しようとする課題】上述したように従来の
計算機システムでは、あまり高すぎる優先度は使用しな
い、或いは危険を承知で使用する、というものであっ
た。従って、応答時間を短くしたい場合等、目的が達成
できない虞がある。或いは、万一の場合に、計算機シス
テムにインストールされている他のアプリケーションも
含め、システムの動作が続行できないため危険性が高す
ぎるものであった。
【0007】そこで、本発明は上記事情を考慮して成さ
れたもので、上記不具合を解消し、本発明は、OSの動
作を阻害する可能性のある程高い優先度を使用した際、
万が一のプログラムの不備によりCPUの占有が起こ
り、OSの動作を阻害されることがあっても、定期的に
スレッド(アプリケーションの処理の基本単位:アプリ
ケーションは、一つ以上のスレッドから成る)の動作を
監視し、異常動作をするスレッドを検出して、当該スレ
ッドの優先度を下げることで、システム保護を行う。そ
の後、当該スレッドがイベント待ち等計算機システムの
CPUを放棄する処理を行う際に、当該スレッドの優先
度を元々アプリケーションで設定されていた値に戻すこ
とで異常動作によりCPUが占有された時に、システム
や他のアプリケーションを保護することを可能とした計
算機システムに於けるスレッド制御装置、及び計算機シ
ステムに於けるスレッド制御方法を提供することを目的
とする。
【0008】
【課題を解決するための手段】本発明は上記目的を達成
する為、本発明のスレッド制御装置は、一つ又は複数の
CPUを設けた計算機システムのオペレーティングシス
テムに於けるスレッド制御装置であって、所定の範囲内
のランダムな間隔で割り込みを発生させる割り込み発生
手段と、上記割り込み発生手段が発生した割り込みによ
りスレッドの優先度に関係なくスレッドの通常処理より
も優先的に上記CPUで実行中のスレッドを調べ且つ任
意のスレッドのコンテキストの延長で処理をする割り込
み処理手段と、上記割り込み処理手段により調査した際
上記CPUで実行中だったスレッドを記憶する実行中ス
レッド記憶手段と、上記割り込み処理手段により調査し
た際上記CPUで実行中だったスレッドが前回調査時と
同じスレッドである場合は当該スレッドに対応するカウ
ンタの値を増やし当該スレッド以外のスレッドに対応す
るカウンタの値を初期化するスレッドカウンタ手段と、
上記スレッドカウンタ手段の任意のスレッドに対応する
カウンタの値が所定の値を超えた場合当該スレッドが異
常動作をしていると判断する異常動作判定手段とを設け
たことを特徴とする。
【0009】このような構成によれば、実行中のスレッ
ドを所定の範囲内のランダムな間隔で調査し、この調査
結果についてスレッド毎にカウントし、あるスレッドに
対応するカウンタの値が所定の値を超えた場合、そのス
レッドが異常動作をしていると判断することができる。
これにより、異常動作をしているスレッドに対して、正
常動作をするように対応可能となる。又、カウント方法
については、上記CPUで実行中だったスレッドが前回
調査時と同じスレッドであっても、このスレッドの優先
度が上記オペレーティングシステムに影響しない程低い
場合は、カウンタの値を増やさないようにしても良い。
このようにすれば、オペレーティングシステムに影響し
ない様な優先度のスレッドについては、異常動作の監視
を無視することができる。
【0010】更に、上記構成に加えて、スレッドの優先
度を変更する優先度変更手段と、予めスレッドに対して
設定された優先度を格納する設定優先度記憶手段と、上
記優先度変更手段により変更されたスレッドの優先度を
格納する変更優先度記憶手段とを設けることにより上記
異常動作判定手段により異常動作をしているスレッドが
あると判断した場合、上記優先度変更手段により上記異
常動作をしているスレッドの優先度を低くして上記異常
動作をしているスレッドの上記CPUの占有を防止する
ことができる。即ち、このような構成によれば、スレッ
ドの異常動作を検知したあと、異常動作を阻止するため
の具体的な対応をすることができる。
【0011】更に、上記設定優先度記憶手段と上記変更
優先度記憶手段に格納されている優先度を比較してスレ
ッドの優先度が予め設定された優先度から変更されてい
るか否かを調べる優先度変更判定手段と、スレッドが上
記CPUを放棄する処理を行なおうとすることを検出す
るCPU放棄処理検出手段とを設けることにより、この
CPU放棄処理検出手段により任意のスレッドが上記C
PUを放棄することを検出した際、上記優先度変更判定
手段が当該スレッドの優先度が予め設定された優先度か
ら変更されたと判定した場合、上記優先度変更手段は、
上記設定優先度記憶手段に格納されている優先度に基づ
き、当該スレッドの優先度を予め設定された優先度に戻
すことができる。即ち、このような構成によれば、異常
動作により優先度を変更した後、このスレッドがCPU
を放棄する際にこのスレッドの優先度を元の優先度に戻
すことができる。
【0012】
【発明の実施の形態】以下、図面を参照して本発明の一
実施の形態を説明する。
【0013】(第1の実施形態)図1は、本発明の第1
の実施形態に係わるスレッドの動作例を示す概念図であ
る。図2は、同実施形態の概念を示す為の構成図であ
る。以下、本実施形態の説明に必要な構成を示し、他の
構成は省略している。
【0014】先ず、図1を参照して説明する。システム
の動作を妨げる程高い優先度で動作するスレッドは、通
常、図1に示すように、あるイベント(event:事
象)をトリガとして、システムに影響を与えない程度の
充分短い時間動作し、残りの大部分の時間は待ち状態で
ある。従って、システムの動作を妨げる程高い優先度で
動作するスレッドが、必要以上に長い時間動作するとい
うことは、このスレッドが異常動作をしていると判断で
きるものである。
【0015】イベントとは、アプリケーション・ソフト
ウェア(以下、アプリケーション)実行中に生ずる計算
機システムに接続された入力装置としてのマウスのクリ
ック操作やキーボードからのキー入力等の外部からの介
入のことである。イベントが発生した時点で、そのイベ
ントに対応するスレッドが実行される。
【0016】図2の計算機システムは、ハードウェア1
0として、4つのCPU0(100)、CPU1(10
1)、CPU2(102)CPU3(103)と、タイ
マ(Timer)104とを備える。CPU0〜3(1
00〜103)は、各構成の制御を司るものである。タ
イマ104は、タイマセット処理部121によりセット
(設定)された時間間隔が経過したら、割り込み処理部
109,110,111,112に通知する。
【0017】この計算機システムにインストールされて
いるソフトウェア11には、ユーザが使用する領域であ
るユーザ領域12と、オペレーティングシステム(O
S)の中核部分であり、メモリ管理や割り込み、プロセ
ス間通信等のシステムの基本的な制御を実行するカーネ
ル13等からなる。
【0018】ユーザの使用するアプリケーションは、簡
単の為スレッドA(ThreadA)(105)、スレ
ッドB(Thread B)(106)、スレッドC
(Thread C)(107)、スレッドD(Thr
ead D)(108)から成るものとし、夫々CPU
0(100)、CPU1(101)、CPU2(10
2)CPU3(103)に対応しているものとする。
【0019】スレッドA,B,C,D(105,10
6,107,108)は、ある瞬間に夫々図2中の括弧
内の数字により示した優先度で動作しているものとす
る。例えば、CPU0(100)で、スレッドA(10
5)が優先度26で動作している等。
【0020】本実施形態に於いては、優先度は数字で示
し、その数が大きいもの程優先度が高いものとする。こ
こでは、スレッドA(105)の優先度は26、スレッ
ドB(106)の優先度は16、スレッドC(107)
の優先度は10、スレッドD(108)の優先度は15
とする。
【0021】カーネル13は、割り込み処理部(Pro
c a)109、割り込み処理部(Proc b)11
0、割り込み処理部(Proc c)111、割り込み
処理部(Proc d)112と、実行中スレッド記憶
領域113、実行中スレッド記憶領域114、実行中ス
レッド記憶領域115、実行中スレッド記憶領域116
と、カウンタ117、カウンタ118、カウンタ11
9、カウンタ120と、タイマセット処理部(Time
r Set)121とを備える。
【0022】タイマセット処理部121は、毎回所定の
範囲内の時間間隔からランダムで時間間隔を決めてタイ
マ104にセットする。所定の時間が経過するとタイマ
104からの通知により、全CPUの割り込み処理部1
09,110,111,112により各CPUで実行中
のスレッドを調べる。
【0023】割り込み処理部109,110,111,
112に於ける処理は、任意のスレッドのコンテキスト
の延長で実行できる。その結果は、実行中スレッド記憶
領域113,114,115,116に記憶すると共
に、前回調査時と同じスレッドを実行中ならばカウンタ
117,118,119120の値を増やし、違うスレ
ッドであったらカウンタ値を初期化する。
【0024】ここでは、割り込み処理部109,11
0,111,112は、スレッドA,B,C,D(10
5,106,107,108)に夫々対応し、調査結果
を夫々に対応する実行中スレッド記憶領域113,11
4,115116に格納する。カウンタ117,11
8,119120も、夫々順にスレッドA,B,C,D
(105,106,107,108)に対応しており、
結果によりカウンタの値を変更する。
【0025】例えば、割り込み処理部109は、スレッ
ドA(105)に対応しており、CPU0(100)で
スレッドA105が実行されているかどうかを調査し、
調査結果を対応している実行中スレッド記憶領域113
に格納し、カウンタ117の値を変更する。スレッドA
105が実行されていれば、カウンタ117の値を一つ
増やす。
【0026】但し、実行中スレッドの優先度がシステム
に影響しない程低い場合(例えば、この場合、スレッド
C(107)(優先度=10)、スレッドD(108)
(優先度=15))は、同じスレッドが続いてもカウン
タ値を増やさない。
【0027】CPU0,1,2,3(100,101,
102,103)は、カウンタの値が、一定値を超える
と非常に高い優先度のスレッドが長時間動作したと判断
する。上述のように、カウンタ117,118,11
9,120は、割り込み処理部109,110,11
1,112によりカウントされたスレッドの実行状態を
格納する。
【0028】実行中スレッド記憶領域113,114,
115,116は、上述のように、割り込み処理部10
9,110,111,112が調べた実行中のスレッド
についての情報が格納される。
【0029】図3のフローチャートを参照して、図2の
実施形態によるスレッド監視の処理動作を示す。
【0030】タイマセット処理部121が、ランダムで
時間間隔を決めてタイマ104にセットする(ステップ
A1)。この時間間隔は、毎回所定の範囲内の時間間隔
からランダムにて決定する。この時間間隔が経過したこ
とをタイマ104から通知されると、割り込み処理部1
09,110,111,112は、実行中のスレッドを
調査する(ステップA2)。
【0031】この調査結果を実行中スレッド記憶領域1
13,114,115,116に格納する(ステップA
3)。それと共に、前回調査時と同じスレッドか否かを
判定する(ステップA4)。
【0032】前回調査時と同じスレッドが実行中の場合
(ステップA4のYes)、実行中のスレッドの優先度
がシステムに影響しない程低いか否かを判定する(ステ
ップA5)。
【0033】前回調査時と同じスレッドが実行中で無い
場合(ステップA4のNo)、対応するカウンタ11
7,118,119,120の値を初期化する(ステッ
プA9)。
【0034】実行中のスレッドの優先度がシステムに影
響しない程低い場合(ステップA5のYes)、対応す
るカウンタ117,118,119,120の値は、そ
のままとする(ステップA10)。
【0035】実行中のスレッドの優先度がシステムに影
響しない程低く無い場合(ステップA5のNo)、即
ち、実行中のスレッドがシステムの動作を妨げる程高い
優先度で動作するスレッドである場合、対応するカウン
タ117,118,119,120の値を増やす(ステ
ップA6)。
【0036】次に、CPU0,1,2,3(100,1
01,102,103)は、カウンタ117,118,
119,120の値が、所定の値を超えたか否かを判定
する(ステップA7)。
【0037】所定の値を超えていない場合(ステップA
7のNo)、処理は終了する。
【0038】所定の値を超えている場合(ステップA7
のYes)は、実行中のスレッドが異常動作をしている
と判断する(ステップA8)。この判断後の処理動作
は、異常動作をしている実行中のスレッドの優先度を強
制的に下げて、当該スレッドによるCPUの占有状態を
止めさせる等の適切な処理を行う。
【0039】この例については、続く第2の実施形態と
して、図4及び図5を用いて詳述する。
【0040】(第2の実施形態)図4に非常に高い優先
度のスレッドが長時間動作したと判断した場合の優先度
操作の実施例である第2の実施形態を示す。
【0041】本実施形態は、第1の実施形態と略構成が
同じであり、優先度操作部322、優先度記憶領域32
1,325,328,331が加えられている。優先度
記憶領域は、予めそのスレッドに対して設定された優先
度を格納する設定優先度記憶領域323,326,32
9,332と、優先度操作処理により変更された優先度
を格納する変更優先度記憶領域324,327,33
0,333とから成る。この場合、優先度記憶領域もそ
れぞれスレッドA,B,C,D(105,106,10
7,108)に対応している。
【0042】CPU、タイマ、スレッド、割り込み処理
部、実行中スレッド記憶領域、カウンタ、タイマセット
処理部は、上述第1の実施形態と同一部分、同一機能で
あるので、同一符号を付して説明を省略する。
【0043】図5のフローチャートを参照して、図4の
本実施形態によるスレッドの優先度操作の処理動作を説
明する。
【0044】図5では、簡単の為処理動作を省略する
が、本実施形態でも、第1の実施形態と同一構成によ
り、実行中のスレッドが調査され対応するカウンタの値
が変更されているものとする。
【0045】実行中のスレッドの調査後、カウンタの値
を変更したら、CPU0,1,2,3(100,10
1,102,103)は、カウンタ117,118,1
19,120の値が、所定の値を超えたか否かを判定す
る(ステップB1)。
【0046】所定の値を超えていない場合(ステップB
1のNo)、処理は戻る。
【0047】所定の値を超えている場合(ステップB1
のYes)は、実行中のスレッドが異常動作をしている
と判断する(ステップB2)。この場合、スレッドA1
05が異常動作をし、CPU0(100)を占有したと
する。従って、CPU0(100)のカウンタ117の
値が一定値を超えたものとする。
【0048】次に、スレッドA105の割り込み処理1
09が優先度を下げる為に、優先度操作部322の優先
度操作処理を、異常動作をしたと判断されたスレッドA
105を指定してセットする(ステップB3)。
【0049】スレッドA105の現在の優先度は、優先
度記録領域321の変更優先度記憶領域324に記憶さ
れている。
【0050】優先度操作部322は、スレッドA105
の現在の優先度26から15に下げ(ステップB4)
(図4の変更優先度記憶領域324では、26→15と
表現した)、優先度の強制変更をした結果を変更優先度
記憶領域324に格納する(ステップB5)。この処理
動作により、上記の様にスレッドA105の優先度は1
5となる。
【0051】従って、このスレッドA105の実行中、
あるイベントが発生し、CPU0(100)が、このイ
ベントに対応するスレッドとしてスレッドB106(優
先度16)を実行する場合、スレッドA105(優先度
15)はスレッドB106(優先度16)より優先度が
低い為、CPU0(100)を放棄する。
【0052】(第3の実施の形態)図6に、強制変更し
た優先度を元に戻す方式の例である第3の実施の形態の
構成を示す。
【0053】本実施形態は、第2の実施形態と略構成が
同じであり、CPU放棄処理部422が加えられてい
る。CPU放棄処理部422は、CPUの放棄処理を行
う。
【0054】上述第1並びに第2の実施形態と同一部
分、同一機能については、同一符号を付して説明を省略
する。
【0055】優先度を強制変更されたスレッドA105
がCPU0(100)を放棄する場合を考える。
【0056】スレッドA105より優先度の高いスレッ
ドが実行される場合、スレッドA105がCPU0(1
00)を放棄する(例えば、スレッドB106(優先度
16)。
【0057】次に、図7のフローチャートを参照して、
CPU放棄処理の処理動作を説明する。
【0058】図7では、簡単のため処理動作を省略する
が、本実施形態でも、上述第2の実施形態と同一構成に
より、異常動作をしたスレッドの優先度が変更されてい
るものとする。
【0059】まず、CPU0(100)を放棄する直前
に、CPU放棄処理部422を呼び出す(ステップC
1)。これにより、スレッドがCPUを放棄することを
検出し、CPU放棄処理部422は、スレッドA105
の優先度記録領域321を調べる。ここで、設定優先度
記憶領域323と変更優先度記憶領域324の優先度の
値を比較し、本来設定された優先度26が15に変更さ
れていることがわかる(ステップC2)。
【0060】そこで、CPU放棄処理部422は、優先
度操作部322によりスレッドAの優先度を元の優先度
26に戻し、変更優先度記憶領域324に格納する(ス
テップC3)。
【0061】
【発明の効果】以上詳記したように本発明によれば、ス
レッドの異常動作によるCPUの占有を監視し、異常動
作によるCPUの占有が起こった際、当該スレッドの優
先度を低くすることにより、非常に高い優先度のスレッ
ドによるシステムや他のアプリケーション・ソフトの動
作の阻害を回避することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係わり、高い優先度
で動くスレッドの動作の一例を示す図。
【図2】同実施形態に係わる計算機システムの概略構成
を示すブロック図。
【図3】同実施形態に係わり、スレッド監視の処理動作
を示すフローチャート。
【図4】本発明の第2の実施形態に係わる計算機システ
ムの概略構成を示すブロック図。
【図5】同実施形態に係わり、スレッドの優先度操作の
処理動作を示すフローチャート。
【図6】本発明の第3の実施形態に係わる計算機システ
ムの概略構成を示すブロック図。
【図7】同実施形態に係わり、スレッドの優先度を元に
戻す操作の処理動作を示すフローチャート。
【符号の説明】
100…CPU0 101…CPU1 102…CPU2 103…CPU3 104…タイマ(Timer) 105…スレッドA(Thread A) 106…スレッドB(Thread B) 107…スレッドC(Thread C) 108…スレッドD(Thread D) 109…割り込み処理部(Proc a) 110…割り込み処理部(Proc b) 111…割り込み処理部(Proc c) 112…割り込み処理部(Proc d) 113、114、115、116…スレッド記憶領域 117、118、119、120…カウンタ 121…タイマセット処理部(Timer Set) 321、325、328、331…優先度記憶領域 323、326、329、332…設定優先度記憶領域 324、327、330、333…変更優先度記憶領域 322…優先度操作部 422…CPU放棄処理部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 一つ又は複数のCPUを設けた計算機シ
    ステムのオペレーティングシステムに於けるスレッド制
    御装置であって、 所定範囲内のランダムな間隔で割り込みを発生させる割
    り込み発生手段と、 この割り込み発生手段が発生した割り込みによりスレッ
    ドの優先度に関係なくスレッドの通常処理よりも優先的
    に上記CPUで実行中のスレッドを調べ、且つ任意のス
    レッドのコンテキストの延長で処理を実行する割り込み
    処理手段と、 この割り込み処理手段により調査した際、上記CPUで
    実行中だったスレッドを記憶する実行中スレッド記憶手
    段と、 上記割り込み処理手段により調査した際、上記CPUで
    実行中だったスレッドが前回調査時と同じスレッドであ
    る場合は当該スレッドに対応するカウンタの値を増加
    し、当該スレッド以外のスレッドに対応するカウンタの
    値を初期化するスレッドカウンタ手段と、 上記スレッドカウンタ手段の任意のスレッドに対応する
    カウンタの値が所定値を超えた場合、当該スレッドが異
    常動作をしていると判断する異常動作判定手段とを設け
    たことを特徴とする計算機システムに於けるスレッド制
    御装置。
  2. 【請求項2】 上記スレッドカウンタ手段は、上記割り
    込み処理手段により調査した際、上記CPUで実行中だ
    ったスレッドが前回調査時と同じスレッドであっても、
    このスレッドの優先度が上記オペレーティングシステム
    に影響しない程低い場合は、カウンタの値を増加させな
    いことを特徴とする請求項1記載の計算機システムに於
    けるスレッド制御装置。
  3. 【請求項3】 スレッドの優先度を変更する優先度変更
    手段と、 予めスレッドに対して設定された優先度を格納する設定
    優先度記憶手段と、 上記優先度変更手段により変更されたスレッドの優先度
    を格納する変更優先度記憶手段とを設け、 上記異常動作判定手段により異常動作を呈しているスレ
    ッドがあると判断した場合、 上記優先度変更手段により上記異常動作をしているスレ
    ッドの優先度を低くして上記異常動作をしているスレッ
    ドの上記CPUの占有を防止することを特徴とする請求
    項1又は請求項2記載の計算機システムに於けるスレッ
    ド制御装置。
  4. 【請求項4】 上記設定優先度記憶手段と上記変更優先
    度記憶手段に格納されている優先度を比較してスレッド
    の優先度が予め設定された優先度から変更されているか
    否かを調べる優先度変更判定手段と、 スレッドが上記CPUを放棄する処理を実行することを
    検出するCPU放棄処理検出手段とを設け、 このCPU放棄処理検出手段により任意のスレッドが上
    記CPUを放棄することを検出した際、上記優先度変更
    判定手段が当該スレッドの優先度が予め設定された優先
    度から変更されたと判定した場合、上記優先度変更手段
    は上記設定優先度記憶手段に格納されている優先度に基
    づき当該スレッドの優先度を予め設定された優先度に戻
    すことを特徴とする請求項3記載の計算機システムに於
    けるスレッド制御装置。
  5. 【請求項5】 一つ又は複数のCPUを設けた計算機シ
    ステムのオペレーティングシステムに於けるスレッド制
    御方法に於いて、 所定範囲内のランダムな間隔で割り込みを発生させ、 この発生した割り込みによりスレッドの優先度に関係な
    くスレッドの通常処理よりも優先的に上記CPUで実行
    中のスレッドを調べ、且つ任意のスレッドのコンテキス
    トの延長で処理を実行し、 上記実行中のスレッドを調査した際、上記CPUで実行
    中だったスレッドを記憶し、 上記実行中のスレッドを調査した際、上記CPUで実行
    中だったスレッドが前回調査時と同じスレッドである場
    合は当該スレッドに対応するカウンタの値を増加させ、
    当該スレッド以外のスレッドに対応するカウンタの値を
    初期化し、 上記任意のスレッドに対応するカウンタの値が所定値を
    超えた場合、当該スレッドが異常動作をしていると判断
    することを特徴とする計算機システムに於けるスレッド
    制御方法。
  6. 【請求項6】 上記カウンタは、上記実行中のスレッド
    を調査した際、上記CPUで実行中だったスレッドが前
    回調査時と同じスレッドであっても、このスレッドの優
    先度が上記オペレーティングシステムに影響しない程低
    い場合は、カウンタの値を増加させないことを特徴とす
    る請求項5記載の計算機システムに於けるスレッド制御
    方法。
  7. 【請求項7】 予めスレッドに対して設定された優先度
    を格納しておき、 上記異常動作をしているスレッドがあると判断した場
    合、上記異常動作をしているスレッドの優先度を低くし
    て上記異常動作をしているスレッドの上記CPUの占有
    を防止し、この優先度を変更したスレッドの優先度を上
    記予めスレッドに対して設定された優先度とは別に格納
    することを特徴とする請求項5又は請求項6記載の計算
    機システムに於けるスレッド制御方法。
  8. 【請求項8】 任意のスレッドが上記CPUを放棄する
    ことを検出し、 当該スレッドについて上記格納してあった予め設定され
    た優先度と、これとは別に上記格納した変更した優先度
    とを比較し、 当該スレッドの優先度が予め設定された優先度から変更
    されたと判定した場合、上記格納してあった予め設定さ
    れた優先度に基づき、当該スレッドの優先度を予め設定
    された優先度に戻すことを特徴とする請求項7記載の計
    算機システムに於けるスレッド制御方法。
JP10172832A 1998-06-19 1998-06-19 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法 Pending JP2000010800A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10172832A JP2000010800A (ja) 1998-06-19 1998-06-19 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法
US09/334,949 US6434591B1 (en) 1998-06-19 1999-06-17 Thread control system and method in a computer system
US10/173,624 US6662204B2 (en) 1998-06-19 2002-06-19 Thread control system and method in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10172832A JP2000010800A (ja) 1998-06-19 1998-06-19 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法

Publications (1)

Publication Number Publication Date
JP2000010800A true JP2000010800A (ja) 2000-01-14

Family

ID=15949185

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10172832A Pending JP2000010800A (ja) 1998-06-19 1998-06-19 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法

Country Status (2)

Country Link
US (2) US6434591B1 (ja)
JP (1) JP2000010800A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114525A1 (ja) * 2007-03-20 2008-09-25 Kabushiki Kaisha Toshiba 情報処理装置
US7574477B2 (en) 2002-12-19 2009-08-11 Canon Kabushiki Kaisha Electronic mail distributing apparatus with email address registration or authentication features, electronic mail distributing method therefor, and storage medium storing a program for the apparatus
US7958339B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
WO2012101759A1 (ja) * 2011-01-25 2012-08-02 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
JP2014089672A (ja) * 2012-10-31 2014-05-15 Keihin Corp 車両用車両電子制御装置
CN107066321A (zh) * 2016-01-21 2017-08-18 罗伯特·博世有限公司 用于准并行地执行多个线程的方法和装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748593B1 (en) 2000-02-17 2004-06-08 International Business Machines Corporation Apparatus and method for starvation load balancing using a global run queue in a multiple run queue system
US6658449B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Apparatus and method for periodic load balancing in a multiple run queue system
JP2002055833A (ja) * 2000-08-09 2002-02-20 Toshiba Corp リアルタイムシステム設計装置、リアルタイムシステム設計方法及びリアルタイムシステム設計プログラムを記録した記録媒体
US10347145B1 (en) * 2001-10-05 2019-07-09 Vision Works Ip Corporation Method and apparatus for periodically questioning a user using a computer system or other device to facilitate memorization and learning of information
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US7096470B2 (en) * 2002-09-19 2006-08-22 International Business Machines Corporation Method and apparatus for implementing thread replacement for optimal performance in a two-tiered multithreading structure
US6965986B2 (en) * 2002-09-19 2005-11-15 International Business Machines Corporation Method and apparatus for implementing two-tiered thread state multithreading support with high clock rate
US7152170B2 (en) * 2003-02-20 2006-12-19 Samsung Electronics Co., Ltd. Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US20040215937A1 (en) * 2003-04-23 2004-10-28 International Business Machines Corporation Dynamically share interrupt handling logic among multiple threads
US7278141B2 (en) * 2003-04-23 2007-10-02 International Business Machines Corporation System and method for adding priority change value corresponding with a lock to a thread during lock processing
US7000047B2 (en) * 2003-04-23 2006-02-14 International Business Machines Corporation Mechanism for effectively handling livelocks in a simultaneous multithreading processor
US7900092B2 (en) * 2003-07-11 2011-03-01 Computer Associates Think, Inc. Kernel-level method of flagging problems in applications
JP3962370B2 (ja) * 2003-11-28 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
US7487503B2 (en) 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US8135932B2 (en) * 2008-07-29 2012-03-13 International Business Machines Corporation Initializing of a memory area
US8458723B1 (en) * 2009-12-29 2013-06-04 Calm Energy Inc. Computer methods for business process management execution and systems thereof
US8365014B2 (en) * 2010-01-14 2013-01-29 Juniper Networks, Inc. Fast resource recovery after thread crash
US8826270B1 (en) * 2010-03-16 2014-09-02 Amazon Technologies, Inc. Regulating memory bandwidth via CPU scheduling
US8875144B2 (en) * 2011-03-07 2014-10-28 Red Hat, Inc. Using a yield indicator in a hierarchical scheduler
JP5440625B2 (ja) * 2012-02-06 2014-03-12 オンキヨー株式会社 コントローラ及びそのプログラム
US8694961B2 (en) 2012-04-03 2014-04-08 Microsoft Corporation Thread-agile execution of dynamic programming language programs
CN110291474B (zh) * 2017-09-26 2020-07-03 三菱电机株式会社 控制器
CN112346933B (zh) * 2020-11-09 2023-03-17 深信服科技股份有限公司 一种恶意文件扫描方法、装置、设备及介质
US11392442B1 (en) * 2021-04-19 2022-07-19 EMC IP Holding Company LLC Storage array error mitigation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2520544B2 (ja) * 1991-09-26 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
DE69429204T2 (de) * 1993-03-26 2002-07-25 Cabletron Systems Inc Ablaufssteuerungsverfahren und -gerät für ein Kommunikationsnetzwerk
DE69422743T2 (de) * 1993-03-30 2000-06-08 Fujitsu Ltd Endlosschleife-Erkennungsgerät
US5513319A (en) * 1993-07-02 1996-04-30 Dell Usa, L.P. Watchdog timer for computer system reset
DE19530483A1 (de) * 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US6006249A (en) * 1997-08-19 1999-12-21 The Chase Manhattan Bank Method and apparatus for concurrent data processing
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6298410B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Apparatus and method for initiating hardware priority management by software controlled register access
US6360243B1 (en) * 1998-03-10 2002-03-19 Motorola, Inc. Method, device and article of manufacture for implementing a real-time task scheduling accelerator
US6182238B1 (en) * 1998-05-14 2001-01-30 Intel Corporation Fault tolerant task dispatching

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574477B2 (en) 2002-12-19 2009-08-11 Canon Kabushiki Kaisha Electronic mail distributing apparatus with email address registration or authentication features, electronic mail distributing method therefor, and storage medium storing a program for the apparatus
WO2008114525A1 (ja) * 2007-03-20 2008-09-25 Kabushiki Kaisha Toshiba 情報処理装置
US7958339B2 (en) 2007-06-20 2011-06-07 Fujitsu Limited Instruction execution control device and instruction execution control method
WO2012101759A1 (ja) * 2011-01-25 2012-08-02 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
JPWO2012101759A1 (ja) * 2011-01-25 2014-06-30 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
JP5704176B2 (ja) * 2011-01-25 2015-04-22 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
JP2014089672A (ja) * 2012-10-31 2014-05-15 Keihin Corp 車両用車両電子制御装置
CN107066321A (zh) * 2016-01-21 2017-08-18 罗伯特·博世有限公司 用于准并行地执行多个线程的方法和装置

Also Published As

Publication number Publication date
US6662204B2 (en) 2003-12-09
US6434591B1 (en) 2002-08-13
US20020161818A1 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
JP2000010800A (ja) 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法
US20050240701A1 (en) Interrupt control apparatus
JPH05210517A (ja) コンピユータ・システムにおける時間監視方法及びコンピユータ・システム
US20020116670A1 (en) Failure supervising method and apparatus
JPH0844575A (ja) Cpuの監視及び負荷制御方式
JPH09198258A (ja) タスクスタックオーバーフロー検出回路
JPH0245838A (ja) プログラム実行状態監視方法
US9176806B2 (en) Computer and memory inspection method
JP2870250B2 (ja) マイクロプロセッサの暴走監視装置
JPH02293939A (ja) スタックオーバーフロー検出時処理方式
JPH10269110A (ja) 計算機システムのハングアップ回避方法並びにこの方法を用いた計算機システム。
JP2666732B2 (ja) コンピュータシステムにおける負荷制御方式
JP2659067B2 (ja) マイクロコンピュータのリセット回路
JPH076113A (ja) 事象報告ワード処理機能を持つデータ処理システム
JP4387863B2 (ja) 擾乱発生検出プログラムおよび擾乱発生検出方法
JPH05257748A (ja) マイクロプロセッサ装置
JPH04236637A (ja) マイクロプロセッサ障害検出回路
CN108415788A (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
KR860000793B1 (ko) 초기 프로그램 로오드방식
JP2578267B2 (ja) マイクロコンピュータ・システム
JPH08292901A (ja) ウォッチドッグタイマ及びこれを用いたコンピュータシステム
KR19980085727A (ko) 워치독 타이머의 라이팅 값을 이용한 스택 오버 플로우 방지 방법
JP2002251299A (ja) プログラムトレース装置
JPS63280345A (ja) プログラム異常検出方法
JP2002091826A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050610

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070529