JPH05210517A - コンピユータ・システムにおける時間監視方法及びコンピユータ・システム - Google Patents

コンピユータ・システムにおける時間監視方法及びコンピユータ・システム

Info

Publication number
JPH05210517A
JPH05210517A JP4199560A JP19956092A JPH05210517A JP H05210517 A JPH05210517 A JP H05210517A JP 4199560 A JP4199560 A JP 4199560A JP 19956092 A JP19956092 A JP 19956092A JP H05210517 A JPH05210517 A JP H05210517A
Authority
JP
Japan
Prior art keywords
instructions
interrupt
instruction
interrupt flag
computer system
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.)
Granted
Application number
JP4199560A
Other languages
English (en)
Other versions
JP2526352B2 (ja
Inventor
Jr Kenneth W Christopher
ケネス・ダブリュ・クリストファ、ジュニア
Khoa D Huynh
コーア・ディ・ハイン
Virginia M Roarabaugh
バージニア・エム・ロアラバウ
Iii Theodore C Waldron
テオドール・シィ・ワルドロン、Iii
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05210517A publication Critical patent/JPH05210517A/ja
Application granted granted Critical
Publication of JP2526352B2 publication Critical patent/JP2526352B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

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

Abstract

(57)【要約】 【目的】 コンピユータ・システムで実行する選択され
たプログラムにおいて、外部割込みがコンピユータ・シ
ステム内で禁止されている間の時間を監視する方法を与
える。 【構成】 本発明は、外部割込みを阻止する能力を持つ
複数個の第1のインストラクシヨンと、外部割込み禁止
を解除する能力を持つ複数個の第2のインストラクシヨ
ンとを含んでいる。これらのインストラクシヨンを識別
した後、特別バージヨンのプログラムを作成するため
に、複数個の第1のインストラクシヨンから選択された
インストラクシヨンと、複数個の第2のインストラクシ
ヨンから選択されたインストラクシヨンとに隣接して一
定の意図的な誤動作が挿入される。次に、この特別バー
ジヨンのプログラムはコンピユータ・システムにおいて
実行される。特別バージヨンのプログラムの実行の間で
発生する誤動作と、これに関連した割込み阻止時間が監
視される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウエアの動作を
監視し、ソフトウエアを改良する分野、より詳細に言え
ば、外部の割込みが禁止されている間の時間の長さを正
確に測定することを可能にした方法及び装置に関する。
更に具体的に言えば、本発明は、特別の測定用ハードウ
エアを必要とすることなく外部の割込みが禁止されてい
る間の時間の長さの測定ができるソフトウエアを監視す
るための方法及び装置に関する。
【0002】
【従来の技術】最近のコンピユータ・システムは、事
実、高速度で、かつ予期可能な態様で外部の事態に応答
する能力をもつものでなければならない。これらの外部
の事態、即ち、外部の事件に応答するための最もありふ
れた方法は、これら外部の事件を、システムの割込みと
して与えることである。然しながら、多くのオペレーテ
イング・システムは、これらの構成がアクセスされてい
る間、あるいは状態が遷移している間で、システムのデ
ータ構造の一貫性(integrity)を保護するために、あ
る場合には、外部割込みを禁止し、または不能にする。
また、或る種のアプリケーシヨンは、データ構造の一貫
性を保護するために割込みを禁止することができる。
【0003】その結果、割込み禁止時間の長さ、つま
り、システムが外部割込みに応答できない期間は、シス
テム全体の応答性に悪影響を与える。更に、割込み禁止
は、大きく、しかも、予測不能の割込みの潜在性を生じ
る主な原因である。ここで割込みの潜在性は、システム
が外部の事態に対して応答するのに要する時間の大きさ
で概算することができる。
【0004】代表的なコンピユータにおいて、優先度を
与えられた割込みの形式にあるすべての外的な事象は、
通常、先ず、割込みコントローラに与えられる。この割
込みコントローラは、同時に生じた割込みの優先度をも
つて、その順序等を決定する機能を持つている。従つ
て、最も高い優先度を持つている割込みがプロセツサを
動作する。プロセツサのハードウエアが、それに差し向
けられた割込みを検出した時、プロセツサのハードウエ
アは、先ず、割込みが処理されるべきか否かを決定しな
ければならない。
【0005】若し、プロセツサが、外部割込みを禁止す
る状態になければ、その割込みは実行されるが、1つの
割込みレベルが既に活動しているならばその割込みが実
行されるためにはその割込みは処理されるが、その入力
した割込みレベルは、現在のレベルより高い優先度を持
つていなければならない。これらの条件が満足された後
に、割込みベクトル・テーブル、即ち、インテル803
86マイクロプロセツサのアーキテクチヤ中の「割込み
記述子テーブル」(Interrupt Descriptor Table-IDT)
が、入力した割込みレベルのエントリのために取り出さ
れる。インテル80386及び80486マイクロプロ
セツサはインテル社(Intel Corporation)の製品であ
る。インテル80386及び80486に関する情報は
インテル社の刊行物I486「Microprocessor Program
mers Reference Manual」を参照されたい。このテーブ
ルのエントリは、割込みを処理する責任を持つている割
込みハンドラ、または割込みマネージヤと通常呼ばれて
いる或る種のコードへのベクトルを含んでいる。割込み
が発生した時のプロセツサの状態を示す現在のプログラ
ム状態(レジスタ、プログラム・カウンタ及び他の情
報)は、メモリ中の或る種のデータ構造中に保存され、
新しいプログラム状態がプロセツサのハードウエアの中
にロードされ、割込みハンドラに実行を開始させる。
【0006】割込みハンドラによる実行が完了すると、
プロセツサは以下の動作の内の1つを行なう。即ち
(1)割込みの時点で保存されたプログラム状態を再度
ロードすることによつて割り込まれた点にスイツチ・バ
ツクするか、(2)実行するシステム中で最も重要なタ
スクをスケジユールするためのスケジユーラに入るか、
(3)或る種のリアル・タイムのシステムにおいては、
割込みに「結合」されていると定義されているユーザの
タスクを実行する。割込みハンドラ及びスケジユーラの
高度な最適化を求めるものとすれば、カーネル及びアプ
リケーシヨンを含むシステムは長時間にわたつて割込み
を禁止してはならない。何故ならば、長時間にわたる割
込みの禁止は、外部割込みに応答するシステムの能力を
低下するからである。
【0007】多くのプロセツサは、それらのインストラ
クシヨンのセツトにおいて割込みを禁止し、または禁止
解除を行なう、特定のインストラクシヨンを持つてい
る。インテル80386及び80486マイクロプロセ
ツサはCLI(Clear Interrupt flag)及びSTI(Se
t Interrupt flag)インストラクシヨンを持つている。
割込み禁止のインストラクシヨンが実行された時、プロ
セツサは、すべての外部割込み(マスク不能な割込みを
除く)を禁止するために、プロセツサの中の或る種のシ
ステム・レジスタ中に通常ストアされる割込みフラグを
セツトする。プロセツサのハードウエアは、割込み禁止
を解除するインストラクシヨンが実行されるまで割込み
を禁止し続け、このようなインストラクシヨンの実行に
よつて、割込みフラグをリセツトする。
【0008】従つて、割込み禁止時間の長さを測定する
ための効果的な方法は、実行経路中にあるこれらのイン
ストラクシヨンに追従しなければならない。加えて、或
る種のプロセツサは、以下に示す間接的な手段を介して
外部割込みを禁止する。
【0009】(1)タスク・スイツチ: インテル80
386及び80486のような或る種のプロセツサは、
タスクの切り換えに関して割込みフラグを含んでシステ
ム・レジスタにロードする。この場合、システム・レジ
スタがロードされた後に、若し、割込みフラグが取り除
かれたならば、プロセツサは、この割込みフラグがセツ
トされるまで外部の割込みを禁止する。
【0010】(2) 割込みゲート: 或る種のプロセ
ツサは、割り込まれた後の直後に続く割込みを自動的に
不能にする。インテル80386及び80486におい
て、割込みゲートを通る外部割込みは割込みフラグを自
動的に取り除く。
【0011】(3) 割込み復帰(割込みプロシージヤ
からの復帰): 多くのオペレーテイング・システムに
おいて、システム・レジスタは、割込みハンドラ、即
ち、割込みプロシージヤから復帰する時に再度ロードさ
れる。システム・レジスタの再ロード動作は、プロセツ
サが割込みを不能にするか、または新しい状態ではなく
するかのいずれかに対して制御する割込みフラグを含ん
でいる。若し、システム・レジスタが割込みの点におい
て元の状態に復帰されたならば、割込みフラグはセツト
され、割込み可能となつたことを表わす。
【0012】従つて、割込み禁止時間の長さを測定する
効果的な方法は、割込みを禁止することを明示したイン
ストラクシヨン、または割込みを禁止しないことを明示
したインストラクシヨンに追従できるばかりでなく、例
えばタスク・スイツチ、割込みゲート及び割込みリター
ンのような、プロセツサの割込み状態(フラグ)が変更
されるすべての場合を検出できるものでなければならな
い。割込みが不能にされ、または可能にされるすべての
場合に追従することによつて、外部割込みが禁止される
間の時間の長さを計算することが可能である。最も長い
割込み禁止の持続時間が確実に測定することができ、そ
して、ソフトウエアの開発者は、この禁止継続時間の長
さを短縮するために、関係するコードを最適化すること
ができる。
【0013】オペレーテイング・システム及びアプリケ
ーシヨン・プログラムを開発する時に、ソフトウエアの
開発者は、外部割込みが禁止される時間の長さを計るこ
とがしばしば必要になる。これらの時間の長さは、外部
割込みに応答するためのシステムの能力の基準として評
価されるプログラムを最適化するために使用される。
【0014】現在、外部割込みの禁止時間の長さを計る
種々の方法がある。1つの方法は、タイマ割込みが発生
される速度でシステムがサンプルされるサンプル方式の
方法である。多くのコンピユータ・システムは、ソフト
ウエアでプログラム可能な少なくとも1つの速度タイマ
を持つている。このタイマは、予め決められた間隔でシ
ステムに割込みを発生するのに用いられる。通常、タイ
マは整数のカウントで初期化される。タイマがゼロに逓
減される時に、割込みが発生され、そして、若し、タイ
マが外部割込みの間で最も高い優先度を持つように構成
されたとすれば、割込みコントローラは、同時に発生し
た他の割込みと競合する場合でも、プロセツサに対し
て、先ずこのタイマによる割込みを与える。その間、タ
イマは負の方向に逓減を続ける。
【0015】割込みがプロセツサに与えられ、そして、
プロセツサが割込み禁止状態にはならなかつたならば、
現在のプログラム状態は保存され、そして、プロセツサ
は、特別なデバイス・ドライバの内部の或るエントリ点
から作動をさせる。この特別なデバイス・ドライバはタ
イマを読み取り、そして、0からタイマの結果を差し引
く。この減算の結果は、外部割込み(タイマの割込み)
に応答する間でシステムが費した時間を表わしている。
他方、タイマの割込みが到着した時に、若し、プロセツ
サが割込みを禁止したならば、割込み時間は、プロセツ
サが再度割込み可能になるまで、待機状態に保たれる。
割込みが可能になつた後、特別なデバイス・ドライバが
入れられ、そして、タイマが読み取られる。この場合、
読み取られた値は0から差し引かれた後、割込み禁止時
間におけるハードウエア応答の合計時間を表示する。デ
バイス・ドライバが必要な動作を完了した後、タイマを
初期化し、そして処理全体は反復する。
【0016】多くの反復動作の後、ダミー・ドライバに
よつて得られた最小の結果値は、ハードウエアの応答だ
けを表示する、つまり、プロセツサによる割込みは全く
ないことを表示することを意味する。然しながら、最大
の結果値はハードウエアの応答値と、割込み禁止時間の
両方を代表するものである。従つて、最小値と最大値と
の間の差は、割込み禁止時間の結果であると言うことが
できる。
【0017】他の従来システムにおいて、割込みのタイ
ミングは、割込みタイマ及び特別のデバイス・ドライバ
を使用して行なわれない。むしろ、割込みタイミング
は、パルス発生器及びタイミング装置で構成された或る
種のハードウエアを使用することによつて行なわれる
が、このアプローチは概念においてサンプル方式と非常
に似ており、そして、性質としてはサンプル動作であ
る。
【0018】このサンプル方式の方法は、以下に説明す
るような幾つかの弱点を含んでいる。即ち、(1)この
方法は、割込みが禁止された正確なロケーシヨン及び阻
止されない正確なロケーシヨンを報告しないこと、
(2)この方法は、割込み禁止の回数を正確に測定しな
いこと、(3)サンプル式の性質のために、この方法
は、割込みが禁止されているすべての時間を測定しない
こと、(4)この方法は、割込みが禁止される正確なロ
ケーシヨン及び阻止されない正確なロケーシヨンを与え
ないので、テストの範囲を決定することができない。
【0019】割込み禁止時間の長さを測定する場合にお
いて、ソース・コードの性能を評価するための他のシス
テムは、システムの中に「フツク(hook)」と呼ばれる
ものと、アプリケーシヨン・コードを挿入することを含
んでいる。割込みの禁止及び禁止解除の発生を記録する
ことにおいて、フツクが遭遇される毎に、時間記録をす
る特別のハードウエアと関連して監視システムが用いら
れる。
【0020】フツクを使用するシステムは以下のような
幾つかの弱点を持つている。それらの弱点とは(1)外
部割込みが禁止されている正確なロケーシヨン及び阻止
されていない正確なロケーシヨンを決定するために、オ
ペレーテイング・システムのコード、またはアプリケー
シヨン・プログラムのコードを、注意深く、そして時間
を掛けて検査することが必要であること、(2)割込み
が行なわれた直後のプロセツサの自動割込み禁止のよう
な間接手段により生じる割込み禁止時間が考慮に入れら
れないこと、(3)オペレーテイング・システムのコー
ド、またはアプリケーシヨン・プログラムのコードを通
じて多数のロケーシヨンに置かれた多数のフツクが将来
必要とされること、(4)オペレーテイング・システ
ム、またはアプリケーシヨン・プログラムの異なつたバ
ージヨンに対して別個のフツクの組が必要とされること
であり、その結果、このようなシステムは外部のユーザ
の使用には非常に不便である。
【0021】他の従来の方法において、割込み禁止時間
の期間においてソース・コードの性能を測定するため
に、識別マクロが用いられる。この方法において、識別
マクロは、割込みを禁止するインストラクシヨンの各タ
イプに対して与えられている。実行時間において、これ
らの識別マクロは、割込み禁止の可能性ある各インスト
ラクシヨンに関して識別番号を識別し付加する。この出
力に基づいて、可成り長い時間、割込みによる禁止を生
じるインストラクシヨンの対を識別するために、ポスト
処理ツールが使用される。その結果、これらすべてのイ
ンストラクシヨンの対を実行するために、テストを書き
込まれなければならない。然しながら、この方法は、例
えば、外部割込み処理の間のように割込みが禁止される
すべての場合を考慮していない。
【0022】従つて、プロセツサが外部割込みを禁止す
るすべての場合において、割込み禁止の時間を正確に測
定することのできるようなソフトウエアの監視及び開発
システムの必要性があることは明らかである。
【0023】
【発明が解決しようとする課題】本発明の目的は、ソフ
トウエアを監視し、そして、ソフトウエアを開発するた
めの改良された方法及び装置を提供することにある。
【0024】本発明の他の目的は、外部割込みが禁止さ
れている間の時間の長さを正確に測定するためのソフト
ウエア監視用及びソフトウエア開発用の改良された方法
及び装置を提供することにある。
【0025】本発明の他の目的は、測定用のハードウエ
アを必要とせずに、外部割込みが禁止されている間の時
間の長さを正確に測定するソフトウエア監視用及びソフ
トウエア開発用の改良された方法及び装置を提供するこ
とにある。
【0026】
【課題を解決するための手段】本発明の方法及び装置
は、コンピユータ・システム中で実行され選択されたプ
ログラムにおいて、外部割込みがコンピユータ・システ
ム内で禁止されている間の時間的な長さを監視するため
の方法及び装置を与える。本発明の方法及び装置は、外
部割込みを禁止する能力を持つ複数個の第1のインスト
ラクシヨンと、外部割込みを禁止解除する能力を持つ複
数個の第2のインストラクシヨンとを識別することを含
んでいる。本発明においては、これらのインストラクシ
ヨンを識別した後、特別バージヨンのプログラムを作成
するために、複数個の第1のインストラクシヨンから選
択されたインストラクシヨンと、複数個の第2のインス
トラクシヨンから選択されたインストラクシヨンとに隣
接して一定の意図的な誤動作が挿入される。次に、コン
ピユータ・システムにおいて、特別バージヨンのプログ
ラムが実行される。特別バージヨンのプログラムの実行
の間で発生する誤動作と、関連する外部割込み禁止時間
とが監視される。
【0027】
【実施例】図1を参照すると、本発明を適用することの
できるコンピユータ・システムの1例が示されている。
パーソナル・コンピユータ50は、システム・ユニツト
52、ビデオデイスプレイ54、キーボード56及びマ
ウス58を含んでいる。パーソナル・コンピユータ50
は、例えばIBMのPS/2コンピユータのような任意
のコンピユータを使用して実現することができる。
【0028】図2は図1に示したコンピユータ・システ
ムのコンポーネントを示すブロツク図である。システム
・ユニツト52は、システム52の中の種々のコンポー
ネントの間を接続し、そして、それらの間の通信を設定
するシステム・バス60を含むのが望ましい。マイクロ
プロセツサ62、読取専用メモリ(ROM)64及びラ
ンダム・アクセス・メモリ(RAM)66がシステム・
バス60に接続されている。本発明の良好な実施例にお
いて用いられたマイクロプロセツサは、インテル803
86、または、80486であるけれども、他のマイク
ロプロセツサを異なつたコンピユータ・システムに使用
することができる。
【0029】ROM64は、デイスク駆動装置及びキー
ボードなどのハードウエアの動作を制御する基本的入/
出力システム(Basic Input/Output System-「BIO
S」)を、他のコードと共に含んでいる。RAM66、
オペレーテイング・システム及びアプリケーシヨン・プ
ログラムがロードされるメモリである。RAM66はシ
ステム・メモリ68とユーザ用メモリ78とに仕切るこ
とができる。システム・メモリ68は、或る種のプログ
ラム、または装置だけでしかアクセスすることができな
い。これに反して、ユーザ用メモリ78は、システム・
メモリ68にアクセスすることができないアプリケーシ
ヨンと、システム・メモリ68にアクセスできる装置、
またはアプリケーシヨンの両方のアプリケーシヨンによ
つてアクセスすることができる。
【0030】また、システム・ユニツト52は入力/出
力(I/O)コントローラ、即ち、キーボード・コント
ローラ72、マウス・コントローラ74及びビデオ・コ
ントローラ76を含んでいる。これら3つのコントロー
ラはシステム・バス60に接続されている。キーボード
・コントローラ72は、キーボード56のためのハード
ウエア・インターフエースを与え、マウス・コントロー
ラ29はマウス58からのハードウエア・インターフエ
ースを与え、そして、ビデオ・コントローラ76は、ビ
デオ・デイスプレイ54のためのハードウエア・インタ
ーフエースを与える。
【0031】システム・バス60に接続されたメモリ管
理チツプ78は、RAMと、ハードデイスク駆動装置及
びフロツピ・デイスク駆動装置との間のデータをページ
付けすることを含んで直接メモリ・アクセス(direct m
emory access-DMA)動作を制御する。
【0032】図1及び図2に示したハードウエアは特定
のアプリケーシヨンによつて変更される。例えば、光学
デイスク媒体、プリンタ、モデム等のような他の周辺装
置は、図示したハードウエアに加えて、または、それら
の代りに使用することができる。
【0033】図3は外部割込みが禁止されている間の時
間の長さを測定するための本発明の良好な実施例を説明
するための高レベルのブロツク図である。コンピユータ
・システム118において、割込みを禁止する可能性が
あるプログラム、または、禁止解除するプログラムのす
べてのインストラクシヨンのソース・コードを走査し、
そして、無効オペレーシヨン・コードのようなビナイン
フオルト(意図的な誤動作)をこれらのインストラクシ
ヨンの各々の直前に挿入するために、走査プログラム1
20が使用される。ビナインフオルトとは、誤動作を生
じた後でも実行を続けることのできるプログラムの誤動
作のことである。本発明の良好な実施例において挿入さ
れた無効オペレーシヨン・コードはマイクロプロセツサ
によつて通常は使用されない特別の無効オペレーシヨン
・コードである。
【0034】走査プログラム120は、変更されたソー
ス・コードから特別なバージヨン・プログラム122を
発生する。特別なバージヨン・プログラム122が実行
され、そして、無効オペレーシヨン・コードによる誤動
作が発生したとき、特別デバイス・ドライバ124がこ
れらのオペレーシヨン・コードの誤動作に介入して、こ
のオペレーシヨン・コードの誤動作が、走査プログラム
120により挿入された無効オペレーシヨン・コードに
よつて発生されたのか否かを決定する。若し、無効オペ
レーシヨン・コードの誤動作が、走査プログラム120
によつて挿入された誤動作でないとすれば、特別デバイ
ス・ドライバ124の通常の無効オベレーシヨン・コー
ドの誤動作処理通路(図示せず)に制御を戻し、そし
て、誤動作は通常の態様で処理される。そうでなけれ
ば、特別デバイス・ドライバ124は幾つかの処理を行
い、誤動作用の無効オペレーシヨン・コードに続くイン
ストラクシヨンを指示するスタツクのリターン・アドレ
スを変更し、そして、特別バージヨン・プログラム12
2に戻る。
【0035】また、特別デバイス・ドライバ124は、
割込み禁止の回数を計算し、そして、それまでに測定さ
れた最大の割込み禁止時間か、または、ある制限時間を
越えた割込み禁止時間のような種々の統計値を維持す
る。特別装置ドライバ124はシステム・メモリにアク
セスし、そして、インターフエース・プログラム126
に属するメモリ・バツフアの中に種々の統計値を記録す
る。インターフエース・プログラム126は、これらの
メモリ・バツフア中のデータを読み取り、そして、それ
らのデータをデイスプレイ128に表示し、または、メ
モリ・バツフアの内容を大容量ストレージ装置130の
中にストアすることができる。ビデオ・デイスプレイ1
28にデータを表示することは、リアルタイムで行うこ
とができる。
【0036】特別バージヨンのソース・コードを作る方
法を実施する1つの方法は、インテル80386のアー
キテクチヤの中のCLI、STI、POPF、POPF
D、IRET及びIRETDインストラクシヨンのよう
な割込みを禁止し、または禁止解除するすべてのインス
トラクシヨンのためのソース・コードを走査することが
でき、そして、その後、これらのインストラクシヨンの
各々の直前に無効オペレーシヨン・コードを挿入するこ
とのできる走査プログラムが使用される。各ソース・フ
アイルに走査プログラムを実行し、そして、修正された
ソース・コードを特別バージヨンのソース・コードに再
構成するために、一組のコマンド・フアイルを使用する
ことができる。従つて、特別バージヨンのソース・コー
ドが実行された時、無効オペレーシヨン・コードによる
誤動作は、割込みを禁止し、または割込み禁止解除する
各インストラクシヨンが実行され、無効オペレーシヨン
・コードの誤動作処理コードが入力される直前に発生さ
れる。
【0037】図4は、本発明の良好な実施例に従つた割
込み禁止時間を測定するのに使用する特別バージヨンの
プログラムを作成するための処理を説明するための高レ
ベルの流れ図を示している。図示されているように、特
別バージヨン・プログラムの作成処理は、ブロツク13
1で開始し、次に、割込みを禁止し、または、割込み禁
止解除するインストラクシヨンであるかどうかに着目
し、ソース・コードを走査するブロツク133に進む。
ブロツク135は、これによつて発見・選択されたイン
ストラクシヨンの前に無効オペレーシヨン・コードを挿
入するステツプである。次に、処理は、ソース・コード
をテスト用の特別バージヨンのプログラムに再構成する
処理を示すブロツク137に進む。その後、この処理は
ブロツク139で終了する。
【0038】これらの無効オペレーシヨン・コードを監
視するために、無効オペレーシヨン・コードの誤動作用
の通常の誤動作処理通路に、或る種の専用(private)
コードを付加することができる。この専用コードはオペ
レーテイング・システムのカーネル(kernel)の通常の
無効オペレーシヨン・コードの誤動作ハンドラが挿入さ
れる前に、無効な誤動作毎に介入する能力を持つ特別デ
バイス・ドライバの一部として設置することができる。
この特別デバイス・ドライバの初期化ルーチンは、無効
オペレーシヨン・コードの誤動作のために割込みベクト
ル・テーブルのエントリを変更するので、これらの誤動
作の各々が発生すると、誤動作が発生した時に、プロセ
ツサは、この特別デバイス・ドライバの内側の或るエン
トリ・ポイントに直接に指し向けられる。
【0039】図5は、本発明の良好な実施例における誤
動作を監視するための特別デバイス・ドライバの高レベ
ルのブロツク図を示している。図示されているように、
処理は、誤動作が発生した時にブロツク140で開始
し、次に、誤動作用のインストラクシヨンが前述した走
査プログラムによつて挿入された無効オペレーシヨン・
コードか否かを決定するブロツク142に進む。若し、
誤動作用インストラクシヨンが走査プログラムによつて
挿入されたものでなければ、処理は、通常の無効オペレ
ーシヨン・コードの誤動作の処理通路に制御を戻すブロ
ツク144に進む。
【0040】ブロツク142に戻つて説明を続けると、
若し、誤動作用のインストラクシヨンが走査プログラム
によつて挿入された無効オペレーシヨン・コードであれ
ば、処理は、誤動作用の無効オペレーシヨン・コードに
続く次のインストラクシヨンを取り出すブロツク146
に進む。次に、処理は、無効オペレーシヨン・コードに
続くインストラクシヨンは明白な割込み禁止インストラ
クシヨン(禁止インストラクシヨン)であるか否かを決
定するブロツク148に進む。
【0041】若し、無効オペレーシヨン・コードに続く
インストラクシヨンが明白な割込み禁止インストラクシ
ヨンであれば、処理は、割込み変数が0であるか否かに
関する決定が行われるブロツク150に進む。割込み状
態の変数は、最初に0にセツトされる。若し、割込み変
数が0であれば、処理は、割込み変数を1にセツトする
ブロツク152に進む。次に、ブロツク154はタイマ
を始動し、そして、禁止インストラクシヨンのロケーシ
ヨンを記録するブロツク156に進む。その後、処理
は、誤動作用の無効オペレーシヨン・コードを通過させ
るために、リターン・アドレスを変更するブロツク15
8に進む。その後、ブロツク160で示したように終了
し、そして、特別バージヨンのプログラムに戻る。
【0042】ブロツク150に戻つて、若し、割込み変
数が0でなければ、処理は後続の禁止インストラクシヨ
ンの統計値を保存するブロツク151に進む。次に、処
理は、誤動作用の無効オペレーシヨン・コードを通過さ
せるためにリターン・アドレスを変更するブロツク15
8に進み、次に、処理の終了を表わすブロツク160に
進む。
【0043】ブロツク148に戻つて、若し、誤動作用
の無効オペレーシヨン・コードに続くインストラクシヨ
ンが明白な割込み禁止インストラクシヨンでなければ、
そのインストラクシヨンは明白な割込み禁止解除インス
トラクシヨン(禁止解除インストラクシヨン)であるか
否かに関しての決定が行われるブロツク162に進む。
そのインストラクシヨンが明白な割込み禁止解除インス
トラクシヨンであれば、処理は、割込み変数が1である
か否かに関して決定を行うブロツク164に進む。
【0044】若し、割込み変数が1であれば、これは、
コンピユータ・システムが割込み禁止状態にあることを
意味し、処理は、割込み変数を0にセツトするブロツク
166に進む。その後、ブロツク168はタイマを停止
し、そして、ブロツク170において、禁止解除インス
トラクシヨンのロケーシヨンを記録する。ブロツク17
2は割込み禁止時間を計算するステツプである。その
後、ブロツク174において、割込み禁止時間を含む統
計値を保持する。次に、処理は、誤動作用の無効オペレ
ーシヨン・コードを通過させるために、リターン・アド
レスを変更することを示すブロツク158に進む。その
後、この処理はブロツク160で終了して、特別バージ
ヨンのプログラムに戻る。
【0045】ブロツク164に戻つて、若し、割込み変
数が1でなければ、これは、コンピユータ・システムが
割込み禁止状態にはないことを意味し、従つて、処理は
後続する割込み禁止解除するインストラクシヨンに統計
値を保存するブロツク165に進む。その後、処理は、
誤動作無効オペレーシヨン・コードを通過させるために
リターン・アドレスを変更するブロツク158に進み、
次に、処理の終了のブロツク168に進む。
【0046】ブロツク162に戻つて、若し、インスト
ラクシヨンが明白な割込み禁止解除インストラクシヨン
でなければ、処理は、割込みフラグが変更されたか否か
に関する決定を行うブロツク176に進む。
【0047】若し、割込みフラグが変更されていれば、
つまり、現在の割込みフラグ及び割込みフラグのスタツ
ク・イメージが異なつていれば、処理は、割込み変数が
0であるか否かに関する決定を行なうブロツク178に
進む。若し、割込み変数が0であれば、処理は割込み変
数を1にセツトするステツプ152に進む。その後、ブ
ロツク154において、タイマを始動し、そして、ブロ
ツク156において、禁止インストラクシヨンのロケー
シヨンを記録する。次に、処理は誤動作用の無効オペレ
ーシヨン・コードを通過させるために、リターン・アド
レスを修正するブロツク158に進む。その後、ブロツ
ク160において、処理は終了する。
【0048】ブロツク178に戻つて、若し、割込み変
数が0でなければ、処理は、割込み変数を0にセツトす
るブロツク166に進む。その後、ブロツク168に示
したように、タイマを停止し、ブロツク170で示した
ように、禁止解除インストラクシヨンのロケーシヨンを
記録する。ブロツク172において、割込み禁止の時間
を計算する。次に、処理は割込み禁止の時間を含む統計
値を維持するブロツク174に進む。次に、処理は、誤
動作用の無効オペレーシヨン・コードを通過させるため
に、リターン・アドレスを修正するブロツク158に進
む。その後、ブロツク160で示したように、処理は終
了する。
【0049】再度、ブロツク176を参照して、若し、
割込みフラグが変化されていなければ、処理は、誤動作
用の無効オペレーシヨン・コードを通過させるために、
リターン・アドレスを変更するブロツク158に進み、
その後、処理は、ブロツク160で示したように終了す
る。
【0050】図5に示したように、外部割込みを禁止す
る例と、禁止解除する例とを入れ子にした場合、割込み
禁止している時間の計測は、禁止する場合の直後から開
始して、禁止解除する場合の直前までである。これは、
図5に示された割込み変数を用いて達成される。
【0051】要約すると、走査プログラムによつて挿入
された無効オペレーシヨン・コードに続く各インストラ
クシヨンは、特別の装置ドライバによつて検査される。
若し、インストラクシヨンが明白な禁止インストラクシ
ヨンであれば、、タイマが始動される。加えて、若し、
インストラクシヨンが外部割込みを一定条件で禁止する
ものであるならば、割込みフラグの現在の状態が割込み
フラグのスタツク・イメージと比較される。若し、割込
みフラグの現在の状態と、割込みフラグのイメージとが
異なつており、現在の割込みフラグがセツトされていれ
ば、タイマもまた始動される。
【0052】若し、検査されたインストラクシヨンが明
白な禁止解除インストラクシヨンであれば、タイマは停
止される。更に、若し、インストラクシヨンが外部割込
みを一定条件で禁止するものならば、割込みフラグの現
在の状態は、割込みフラグのスタツク・イメージと比較
され、そして、若し、割込みフラグ及び割込みフラグの
スタツク・イメージが異なつており、そして、現在の割
込みフラグがセツトされていなければ、タイマは停止さ
れる。
【0053】ブロツク178を参照して、割込み変数が
0である時、これは、インテル80486マイクロプロ
セツサ中のCLIインストラクシヨンと等価である。他
方、若し、ブロツク178中の割込み変数が0でなけれ
ば、これは、STIインストラクシヨンと等価である。
具体的に言えば、ブロツク176は、割込みフラグと、
スタツク中に保持されたイメージとが同じであるか否か
を決定し、ブロツク178中の割込み変数は、現在の割
込みフラグがセツトされたか否かをチエツクするための
ものである。
【0054】その結果、本発明の方法及び装置は、用い
られた無効オペレーシヨン・コードに基づいてタイマを
始動するか、または、停止しないかを決めるために、つ
まり、タイマを始動するか、または停止するか否かを決
定するために、動的なベースで無効オペレーシヨン・コ
ードに続くインストラクシヨンを検査する。本発明の1
つの特徴は、外部割込みを禁止する例と、禁止解除例と
を入れ子にした場合において、禁止時間は、図5に示し
たように、禁止する場合の直後から始まり禁止解除する
場合の最も直前までであるということである。
【0055】更に、実行されたコードによる割込みが禁
止された正確なロケーシヨン、または禁止解除した正確
なロケーシヨンを、特別デバイス・ドライバによつて決
定することが好ましい。誤動作用の無効オペレーシヨン
・コードのロケーシヨンは、通常、殆どのプロセツサの
ソフトウエアで入手可能である。無効オペレーシヨン・
コードの長さをこれらのロケーシヨンにオフセツトする
ことにより、割込みハンドラは、割込みを実際に付勢
し、または滅勢したインストラクシヨンの正確なロケー
シヨンを見出すことができる。外部割込みをフイールデ
イングする場合、対応する割込みハンドラの開始ロケー
シヨンは割込みゲート中のベクトル・アドレスを読み取
ることによつて記録される。
【0056】特別デバイス・ドライバは、割込みを禁止
する能力を持つインストラクシヨン、または、禁止解除
する能力を持つインストラクシヨンに経過的なデータを
維持させることを必要とする。また、特別デバイス・ド
ライバは、それまでに測定された最大割込み時間とか、
或る制限時間を超過した割込み禁止時間とかのような統
計値を計算し、そして維持することを必要とする。この
データと、割込みが禁止されたロケーシヨン及び禁止解
除されたロケーシヨンとは、特権を持たないアプリケー
シヨン・プログラムでアクセス可能なデータ・バツフア
・メモリの中に保持することができる。割込みハンドラ
は、ごく最近の割込み禁止時間、即ち、割込み禁止の最
大動作時間の循環バツフアを付加的に保持することがで
きる。本発明の下において、連続した禁止及び禁止解除
インストラクシヨンの最大数は、これらの連続した禁止
及び禁止解除インストラクシヨンのロケーシヨンと共に
決めることができる。基本的には、マイクロプロセツサ
が既に禁止状態にあり、他のインストラクシヨンが割込
みを禁止するための呼び出しに遭遇した時に、連続した
割込み禁止が生じる。再言すると、このデータはデータ
・バツフア・メモリ、または大容量ストレージ装置中に
保存し、維持することができる。
【0057】本発明の方法及び装置は従来のシステムに
比べて幾つかの長所を持つている。例えば、サンプル式
の方法とは異なつて、本発明は、インストラクシヨンが
その割込みを禁止し、または禁止解除する直前に、無効
オペレーシヨン・コードで誤動作を生じるので、割込み
を禁止され、または禁止解除する正確なロケーシヨンを
決定することができる。加えて、本発明はサンプル用の
ツールではないから、実行されたコード中のすべての割
込み禁止時間を追跡することができる。また、本発明の
特別デバイス・ドライバは、外部割込みが禁止されてい
る間の時間の非常に正確なタイミングを生じる誤動作用
の無効オペレーシヨン・コードの直後に続くインストラ
クシヨンのタイプに基づいて始動し、または停止するタ
イマを使用している。
【0058】また、本発明は監視システム中にソフトウ
エア・フツクを使用するシステムを越えた幾つかの長所
を持つている。システムにフツクを置く方法とは異なつ
て、本発明は割込みがどこで禁止され、または禁止解除
されたを見出すために、ソース・コードを注意深く検査
する必要がない。つまり、本発明においては、走査プロ
グラムが、プロセツサの割込みフラグを変更することが
できる少数のインストラクシヨンのソース・コードを走
査し、そして、それらの前に無効オペレーシヨン・コー
ドを挿入している。本発明の特別デバイス・ドライバ
は、インストラクシヨンが動的なベースで動作時間にお
いて割込みフラグを実際に変更したか否かを決定する。
【0059】例えば、割込みの直後にプロセツサが自動
的に割込みを禁止するような間接的な手段によつて生じ
る割込み禁止時間を考慮しないフツクを用いるのとは異
なつて、本発明の方法及び装置は、割込みゲートからタ
イマを開始するのに使用される或る種の専用コードにベ
クトルを持たせることによつて、上述の状態をカバーす
ることができる。加えて、本発明の方法及び装置は、オ
ペレーテイング・システム、または、評価されるアプリ
ケーシヨン・コード内に複雑なフツクを使用する必要が
ない。フツクを置く方法とは異なつて、本発明において
は、ソース・コードに無効オペレーシヨン・コードを挿
入することだけが、走査プログラムによつて自動的に行
なわれる。
【0060】マクロ・システムを識別する方法と比較し
た場合、本発明の方法及び装置は、マクロを識別するこ
ととは異なつて、割込みが禁止されるすべての場合を考
慮することができる。
【0061】本発明の良好な実施例の説明は、無効オペ
レーシヨン・コードに向けられているが、本発明の方法
及び装置は、特定のマイクロプロセツサ・システムによ
つて検知されるビナイン・フオルト、つまり意図的な誤
動作、または無効インストラクシヨンを使用して実施す
ることができる。例えば、無効オペレーシヨン・コード
の代りに、インテル80386、または80486マイ
クロプロセツサには利用できないデバグ例外(debug ex
ception)、ブレークポイント、オーバフロー、ボンド
・チエツク(bounds check)装置、または浮動小数点エ
ラー誤動作もインテル80386、または80486マ
イクロプロセツサと共に使用することができる。他のマ
イクロプロセツサ・システムにおいてサポートされてい
る任意のタイプのビナインフオルト、意図的な誤動作、
または無効インストラクシヨンを本発明の方法及び装置
に使用することができる。
【0062】
【発明の効果】ソフトウエアを監視し、ソフトウエアを
開発する場合、本発明の装置及び方法は、測定用のハー
ドウエアを特に設けることなく、プロセツサに外部割込
みが禁止されている間の時間、外部割込みが禁止されて
いる正確なロケーシヨンなどを正確に測定することがで
きる。
【図面の簡単な説明】
【図1】本発明を適用することのできるコンピユータ・
システムの例を示す図である。
【図2】図1のコンピユータ・システムのコンポーネン
トを示すブロツク図である。
【図3】外部割込みが禁止されている間の時間を測定す
るための本発明の良好な実施例の動作を説明するための
高レベルのブロツク図である。
【図4】本発明の良好な実施例に従つて、特別バージヨ
ンのプログラムを作成するために用いられる処理を説明
するための流れ図である。
【図5】誤動作を監視するのに使用される特別デバイス
・ドライバの実施例を説明するための高レベルのブロツ
ク図である。
【符号の説明】 50 パーソナル・コンピユータ 52 システム・ユニツト 54、128 デイスプレイ 56 キーボード 58 マウス 60 システム・バス 62 マイクロプロセツサ 64 ROM 66 RAM 72 キーボード・コントローラ 74 マウス・コントローラ 76 ビデオ・コントローラ 78 メモリ・マネージヤ 80 ハード・デイスク 82 フロツピ・デイスク 120 走査プログラム 122 特別バージヨン・プログラム 124 特別デバイス・ドライバ 126 インタリーフエース・プログラム 130 大容量ストレージ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス・ダブリュ・クリストファ、ジュニ ア アメリカ合衆国フロリダ州、ライトハウ ス・ポイント、エヌ・イー25アベニュー 4051番地 (72)発明者 コーア・ディ・ハイン アメリカ合衆国フロリダ州、マイアミ、エ ス・ダブリュ155アベニュー 6960番地 (72)発明者 バージニア・エム・ロアラバウ アメリカ合衆国フロリダ州、ポカラート ン、ウッドチャック・ドライブ 11296番 地 (72)発明者 テオドール・シィ・ワルドロン、III アメリカ合衆国フロリダ州、ランライズ、 エヌ・ダブリュ、フィフティナインス・ウ エイ 11295番地

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 意図的な誤動作をサポートするコンピユ
    ータ・システムにおいて実行され選択されたプログラム
    において、外部割込みが上記コンピユータ・システム内
    で禁止されている間の時間を監視する方法において、 外部割込みを禁止する能力を有する複数個の第1のイン
    ストラクシヨンを識別するステツプと、 外部割込みを禁止解除する能力を有する複数個の第2の
    インストラクシヨンを識別するステツプと、 上記複数個の第1のインストラクシヨンから選択された
    インストラクシヨンと、上記複数個の第2のインストラ
    クシヨンから選択されたインストラクシヨンとに隣接し
    て一定の誤動作を意図的に挿入し特別バージヨンのプロ
    グラムを作成するステツプと、 上記コンピユータ・システムにおいて上記特別バージヨ
    ンのプログラムを実行するステツプと、 上記特別バージヨンのプログラムの実行の間で発生した
    誤動作を監視するステツプと、 上記特別の良性の誤動作に応答して、上記複数個の第1
    のインストラクシヨンから選択された上記インストラク
    シヨンと、上記複数個の第2のインストラクシヨンから
    選択された上記インストラクシヨンとによつて識別され
    る外部割込み禁止時間を監視するステツプとを含むコン
    ピユータ・システムにおける時間監視方法。
  2. 【請求項2】 外部割込みを禁止する能力を有する連続
    したインストラクシヨンのアドレスを維持するステツプ
    と、外部割込みを禁止解除する能力を有する連続したイ
    ンストラクシヨンのアドレスを維持するステツプを含む
    請求項1に記載のコンピユータ・システムにおける時間
    監視方法。
  3. 【請求項3】 上記複数個の第1のインストラクシヨン
    から選択された上記インストラクシヨンと、上記複数個
    の第2のインストラクシヨンから選択された上記インス
    トラクシヨンとの直前に上記一定の誤動作を挿入するス
    テツプを含むことを特徴とする請求項1に記載のコンピ
    ユータ・システムにおける時間監視方法。
  4. 【請求項4】 上記複数個の第1のインストラクシヨン
    から選択された上記インストラクシヨンと、上記複数個
    の第2のインストラクシヨンから選択された上記インス
    トラクシヨンとによつて発生された外部割込み禁止時間
    を監視する上記ステツプは、 上記複数個の第1のインストラクシヨンから選択された
    上記インストラクシヨンと、上記複数個の第2のインス
    トラクシヨンから選択された上記インストラクシヨンと
    を検査するステツプと、 若し、上記複数個の第1のインストラクシヨンから選択
    された上記インストラクシヨンの内の特定のインストラ
    クシヨンが明白な禁止インストラクシヨンであれば、タ
    イマを始動するステツプと、 若し、上記複数個の第2のインストラクシヨンから選択
    された上記インストラクシヨンの内の特定のインストラ
    クシヨンが明白な禁止解除インストラクシヨンであれ
    ば、上記タイマを停止するステツプとを含むことを特徴
    とする請求項1に記載のコンピユータ・システムにおけ
    る時間監視方法。
  5. 【請求項5】 若し、上記複数個の第1のインストラク
    シヨンから選択された上記インストラクシヨンの内の上
    記特定のインストラクシヨンが外部割込みを一定条件下
    で禁止するならば、割込みフラグの現在の状態を特定
    し、上記割込みフラグの現在の状態と、上記割込みフラ
    グのスタツク・イメージとを比較するステツプと、 若し、上記複数個の第2のインストラクシヨンから選択
    された上記インストラクシヨンの内の上記特定のインス
    トラクシヨンが外部割込みを特定条件下で禁止解除する
    ならば、割込みフラグの現在の状態と、上記割込みフラ
    グのスタツク・イメージとを比較するステツプと、 若し、割込みフラグの上記現在の状態及び上記割込みフ
    ラグの上記イメージが異なつており、かつ、コンピユー
    タ・システムが割込み禁止状態でなければ、タイマを始
    動するステツプと、 若し、上記割込みフラグの上記現在の状態及び上記割込
    みフラグの上記スタツク・イメージが異なつており、か
    つ、上記コンピユータ・システムが割込み禁止状態であ
    れば、上記タイマを停止するステツプとを含むことを特
    徴とする請求項4に記載のコンピユータ・システムにお
    ける時間監視方法。
  6. 【請求項6】 意図的な誤動作をサポートするコンピユ
    ータ・システムにおいて実行され、選択されたプログラ
    ムにおいて、外部割込みが禁止されている間の時間を監
    視するコンピユータ・システムにおいて、 選択されたプログラムのソース・コードを走査して、外
    部割込みを禁止する能力を有する複数個の第1のインス
    トラクシヨンを識別し、外部割込みを禁止解除する能力
    を有する複数個の第2のインストラクシヨンを識別する
    ことによつて上記ソース・コードを変更し、かつ、上記
    複数個の第1のインストラクシヨンから選択されたイン
    ストラクシヨンと上記複数個の第2のインストラクシヨ
    ンから選択されたインストラクシヨンとに隣接して一定
    の誤動作を意図的に挿入し、特別バージヨンのプログラ
    ムを作成する手段と、 上記コンピユータ・システムにおいて実行するために、
    修正されたソース・コードから特別バージヨンのプログ
    ラムを作成する手段と、 上記特別バージヨンのプログラムの実行の間で発生され
    る誤動作を監視する手段と、 上記複数個の第1のインストラクシヨンから選択された
    インストラクシヨン及び上記複数個の第2のインストラ
    クシヨンから選択されたインストラクシヨンによつて発
    生された外部割込み禁止時間を監視する手段とからなる
    コンピユータ・システム。
  7. 【請求項7】 上記複数個の第1のインストラクシヨン
    から選択された上記インストラクシヨン及び上記複数個
    の第2のインストラクシヨンから選択された上記第2の
    インストラクシヨンによつて発生された外部割込み禁止
    時間を監視する上記手段は、 上記複数個の第1のインストラクシヨンから選択された
    インストラクシヨンと、上記複数個の第2のインストラ
    クシヨンから選択された上記インストラクシヨンとの各
    々を検査し、 若し、上記複数個の第1のインストラクシヨンから選択
    された上記インストラクシヨンが明白な禁止インストラ
    クシヨンであれば、タイマを始動し、 若し、上記複数個の第2のインストラクシヨンが明白な
    禁止解除インストラクシヨンであれば、上記タイマを停
    止し、 若し、上記複数個の第1のインストラクシヨンから選択
    された上記インストラクシヨンの内の上記特定のインス
    トラクシヨンが外部割込みを一定条件下で禁止するなら
    ば、割込みフラグの現在の状態を決定し、そして、上記
    割込みフラグの上記現在の状態と、上記割込みフラグの
    スタツク・イメージとを比較し、 若し、上記複数個の第2のインストラクシヨンから選択
    された上記インストラクシヨンの内の上記特定のインス
    トラクシヨンが外部割込みを一定条件下で禁止解除する
    ならば、割込みフラグの現在の状態を決定し、そして、
    上記割込みフラグの上記現在の状態と、上記割込みフラ
    グのスタツク・イメージとを比較し、 若し、割込みフラグの上記現在の状態及び上記割込みフ
    ラグの上記イメージが異なつており、かつ、上記コンピ
    ユータ・システムが割込み禁止状態になければ、タイマ
    を始動し、 若し、割込みフラグの上記現在の状態及び上記割込みフ
    ラグの上記イメージが異なつており、かつ、上記コンピ
    ユータ・システムが割込み禁止状態にあれば、タイマを
    停止することを特徴とする請求項6に記載のコンピユー
    タ・システム。
JP4199560A 1991-08-21 1992-07-27 コンピュ―タ・システムにおける外部割込み禁止時間監視方法及びデ―タ処理装置 Expired - Lifetime JP2526352B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/748,149 US5301312A (en) 1991-08-21 1991-08-21 Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
US748149 1996-11-12

Publications (2)

Publication Number Publication Date
JPH05210517A true JPH05210517A (ja) 1993-08-20
JP2526352B2 JP2526352B2 (ja) 1996-08-21

Family

ID=25008233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4199560A Expired - Lifetime JP2526352B2 (ja) 1991-08-21 1992-07-27 コンピュ―タ・システムにおける外部割込み禁止時間監視方法及びデ―タ処理装置

Country Status (2)

Country Link
US (1) US5301312A (ja)
JP (1) JP2526352B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5323828B2 (ja) * 2008-06-24 2013-10-23 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461720A (en) * 1992-09-23 1995-10-24 International Business Machines Corporation System for increasing the efficiency of communications between controller and plurality of host computers by prohibiting retransmission of the same message for predetermined period of time
US5592674A (en) * 1994-12-20 1997-01-07 International Business Machines Corporation Automatic verification of external interrupts
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5748959A (en) * 1996-05-24 1998-05-05 International Business Machines Corporation Method of conducting asynchronous distributed collective operations
US5983310A (en) 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
US5870582A (en) * 1997-03-31 1999-02-09 International Business Machines Corporation Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US6098167A (en) * 1997-03-31 2000-08-01 International Business Machines Corporation Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5944840A (en) * 1997-09-10 1999-08-31 Bluewater Systems, Inc. Continuous monitor for interrupt latency in real time systems
US6000029A (en) * 1997-11-03 1999-12-07 Motorola, Inc. Method and apparatus for affecting subsequent instruction processing in a data processor
US7805724B1 (en) 1998-05-27 2010-09-28 Arc International I.P., Inc. Apparatus, method and computer program for dynamic slip control in real-time scheduling
US7451447B1 (en) 1998-08-07 2008-11-11 Arc International Ip, Inc. Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US6370607B1 (en) * 1999-04-13 2002-04-09 Advanced Micro Devices, Inc. Automatic disabling of interrupts upon entry into interrupt service routine
US6405268B1 (en) * 1999-08-30 2002-06-11 Pc-Tel, Inc. Dynamic block processing in a host signal processing modem
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
US6546359B1 (en) 2000-04-24 2003-04-08 Sun Microsystems, Inc. Method and apparatus for multiplexing hardware performance indicators
US6647546B1 (en) 2000-05-03 2003-11-11 Sun Microsystems, Inc. Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US6691250B1 (en) 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
WO2002031657A2 (en) * 2000-10-12 2002-04-18 Sun Microsystems, Inc. Automatic performance test generation
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US7039772B1 (en) 2002-02-22 2006-05-02 Teja Technologies, Inc. System, method, and computer program product for processing reflective state machines
US7320044B1 (en) 2002-02-22 2008-01-15 Arc International I.P., Inc. System, method, and computer program product for interrupt scheduling in processing communication
US6985976B1 (en) 2002-02-22 2006-01-10 Teja Technologies, Inc. System, method, and computer program product for memory management for defining class lists and node lists for allocation and deallocation of memory blocks
US7130936B1 (en) 2002-02-22 2006-10-31 Teja Technologies, Inc. System, methods, and computer program product for shared memory queue
US20070079077A1 (en) * 2002-04-29 2007-04-05 Baines Mandeep S System, method, and computer program product for shared memory queue
TWI299468B (en) * 2004-09-06 2008-08-01 Matsushita Electric Ind Co Ltd Debug system for debugging multi-task system and a circuit device connected with a host computer
US20070006166A1 (en) * 2005-06-20 2007-01-04 Seagate Technology Llc Code coverage for an embedded processor system
US8019914B1 (en) 2005-10-07 2011-09-13 Western Digital Technologies, Inc. Disk drive implementing shared buffer memory with reduced interrupt latency
US9087219B2 (en) * 2008-06-16 2015-07-21 Infineon Technologies Ag Circuit with a plurality of modes of operation
EP2757468A1 (en) * 2013-01-22 2014-07-23 Siemens Aktiengesellschaft Apparatus and method for managing a software development and maintenance system
US9389989B2 (en) 2014-03-19 2016-07-12 International Business Machines Corporation Self verifying device driver for multi-version compatible data manipulation devices
US10102037B2 (en) * 2016-06-30 2018-10-16 International Business Machines Corporation Averting lock contention associated with core-based hardware threading in a split core environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54162940A (en) * 1978-06-14 1979-12-25 Mitsubishi Electric Corp Computer supervisory device
JPS63282539A (ja) * 1987-05-13 1988-11-18 Nec Corp プログラム任意区間のcpu時間測定方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3813531A (en) * 1973-01-02 1974-05-28 Honeywell Inf Systems Diagnostic checking apparatus
US4314329A (en) * 1980-02-04 1982-02-02 Cincinnati Milacron Inc. Method and apparatus for using a computer numerical control to control a machine cycle of operation
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
US4590550A (en) * 1983-06-29 1986-05-20 International Business Machines Corporation Internally distributed monitoring system
US4638452A (en) * 1984-02-27 1987-01-20 Allen-Bradley Company, Inc. Programmable controller with dynamically altered programmable real time interrupt interval
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
JPS62157953A (ja) * 1985-12-28 1987-07-13 Honda Motor Co Ltd 異常検知機能を備えたマイクロコンピユ−タ
US5047919A (en) * 1986-04-03 1991-09-10 Harris Corporation Method and apparatus for monitoring software execution in a parallel multiprocessor computer system
US4910663A (en) * 1987-07-10 1990-03-20 Tandem Computers Incorporated System for measuring program execution by replacing an executable instruction with interrupt causing instruction
US4974159A (en) * 1988-09-13 1990-11-27 Microsoft Corporation Method of transferring control in a multitasking computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54162940A (en) * 1978-06-14 1979-12-25 Mitsubishi Electric Corp Computer supervisory device
JPS63282539A (ja) * 1987-05-13 1988-11-18 Nec Corp プログラム任意区間のcpu時間測定方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5323828B2 (ja) * 2008-06-24 2013-10-23 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路

Also Published As

Publication number Publication date
US5301312A (en) 1994-04-05
JP2526352B2 (ja) 1996-08-21

Similar Documents

Publication Publication Date Title
JP2526352B2 (ja) コンピュ―タ・システムにおける外部割込み禁止時間監視方法及びデ―タ処理装置
US6708326B1 (en) Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
US7594143B2 (en) Analysis engine for analyzing a computer system condition
US7287135B2 (en) Adapting RCU for real-time operating system usage
KR101019209B1 (ko) 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법
JP4077815B2 (ja) 発明者JohnW.Curryによる、オペレーティングシステムと共に使用される改良された診断モニタおよびその方法
US6282601B1 (en) Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
JP5905904B2 (ja) デバッグ例外生成の制御
US20070028240A1 (en) Information processing method and information processing apparatus for processing a plurality of threads
US20080276129A1 (en) Software tracing
US8307246B2 (en) Real time monitoring of computer for determining speed of various processes
US8972794B2 (en) Method and apparatus for diagnostic recording using transactional memory
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
JP5452336B2 (ja) 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム
US6785883B1 (en) Software system for tracing data
US7100027B1 (en) System and method for reproducing system executions using a replay handler
JPH02294739A (ja) 障害検出方式
CN115576734A (zh) 一种多核异构日志存储方法和系统
CN114253825A (zh) 内存泄漏检测方法、装置、计算机设备和存储介质
WO2023169289A1 (zh) 一种进程的执行状态切换方法及装置
JP2006185365A (ja) 半導体装置およびデバッグ方法
US20140229646A1 (en) Information processing system, method and computer-readable recording medium
JP4387863B2 (ja) 擾乱発生検出プログラムおよび擾乱発生検出方法
CN110795333A (zh) 一种使程序不间断运行的方法、装置和存储设备
JP2998793B2 (ja) 情報処理装置の試験方式