JPWO2013057769A1 - 情報処理装置、情報処理装置の制御方法および制御プログラム - Google Patents

情報処理装置、情報処理装置の制御方法および制御プログラム Download PDF

Info

Publication number
JPWO2013057769A1
JPWO2013057769A1 JP2013539417A JP2013539417A JPWO2013057769A1 JP WO2013057769 A1 JPWO2013057769 A1 JP WO2013057769A1 JP 2013539417 A JP2013539417 A JP 2013539417A JP 2013539417 A JP2013539417 A JP 2013539417A JP WO2013057769 A1 JPWO2013057769 A1 JP WO2013057769A1
Authority
JP
Japan
Prior art keywords
program
unit
processor
interrupt
processing apparatus
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
JP2013539417A
Other languages
English (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013539417A priority Critical patent/JPWO2013057769A1/ja
Publication of JPWO2013057769A1 publication Critical patent/JPWO2013057769A1/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(課題)プログラムの実行タイミングを、他のプログラムに併せて制御できる情報処理装置および情報処理装置の制御方法を提供する。
(解決手段) 複数のプログラムを格納した格納部、格納部に格納された複数のプログラムを実行する複数のプロセッサ、および、複数のプロセッサが実行する命令をエミュレートするエミュレート部を有し、エミュレート部に対し、格納部に格納されている複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示する指示部と、エミュレート部によりエミュレートされた、複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する履歴蓄積部と、を有する。

Description

本発明は、情報処理装置、情報処理装置の制御方法および制御プログラムに関する。
複数のプロセッサを有し、複数のプロセッサによりアクセスされる共有メモリを有するマルチプロセッサシステムが存在する。複数のプロセッサのそれぞれは、マルチプロセッサシステムが有する格納部に記憶された複数のプログラムのうち、割り当てられたプログラムを実行する。
このようなマルチプロセッサシステムにおいては、個々のプロセッサに於いて、プログラムを実行することで、プログラムの並行実行を可能としている。このようなマルチプロセッサシステムに於いては、共有メモリを使用していることが多く、各プログラムには、あるプロセッサにより使用されている共有メモリ内の領域に対し、他のプロセッサがアクセスできないよう、排他制御が行われている。
このため、新たなプログラムをマルチプロセッサシステムで実行させるには、その新たなプログラム単体の実行テストだけでなく、既に導入済みのプログラムと新たなプログラムとを並行に実行させた際、排他制御が正常に行われ、処理が正常に行われるかを検証する必要がある。これに対応し、新たなプログラムが個々のプログラムと割込み制御または排他制御を行う確率を上げるために、新たなプログラムの特定区間でプログラムの実行速度を遅らせることが、検討されている。このような検証では、個々のプログラムおよび新たなプログラムを並行に実行させることにより、初めて上記排他制御が正常かを確認することが可能である。
ところで、上位のプログラムが、複数の下位のプログラムを複数のプロセッサに割り振り、各プロセッサで実行させるようになってきている。即ち、これらのプログラムの実行タイミングは、OSの制御に依存している。このため、上記のような新たなプログラムの検証を行う際に、ユーザは、いつどのようなプログラムが実行されるか、その実行タイミングを確認することができない。このため、ユーザは、新たなプログラムをシステムで導入する際、新たなプログラムを、各プログラムの実行状態が不明なまま、任意のタイミングで実行させて実行履歴を蓄積していき、プログラムの不具合が発生した場合、その履歴を追っていくことによって過去の実行履歴を閲覧する。
特開平09−330279号公報
上記したように、従来の技術では、ユーザが、新たなプログラムをシステムで導入する際、該新たなプログラムを、各プログラムの実行状態が不明なまま、任意のタイミングで実行させて実行履歴を蓄積していき、プログラムの不具合が発生した場合、その履歴を追っていくことによって過去の実行履歴を閲覧していたために、新たなプログラムと、既存の個々のプログラムとの並行処理は、偶然的に発生する事となり、不具合を効率的に検出できない。
1つの側面では、本発明は、プログラムの実行タイミングを、他のプログラムに併せて制御できる情報処理装置および情報処理装置の制御方法を提供することを目的とする。
本発明の課題を解決するため、開示の技術の第1の側面によれば、
複数のプログラムを格納した格納部、前記格納部に格納された前記複数のプログラムを実行する複数のプロセッサ、および、前記複数のプロセッサが実行する命令をエミュレートするエミュレート部を有し、
前記エミュレート部に対し、前記格納部に格納されている前記複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、前記指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示する指示部と、
前記エミュレート部によりエミュレートされた、前記複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する履歴蓄積部と、
を有することを特徴とする情報処理装置が提供される。
本発明の課題を解決するため、開示の技術の第2の側面によれば、
複数のプログラムを格納した格納部、前記格納部に格納された前記複数のプログラムを実行する複数のプロセッサ、および、前記複数のプロセッサが実行する命令をエミュレートするエミュレート部を有する情報処理装置の制御方法であって、
前記エミュレート部に対し、前記格納部に格納されている前記複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、前記指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示し、
前記エミュレート部によりエミュレートされた、前記複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する
ことを特徴とする情報処理装置の制御方法が提供される。
開示の技術は、個々のプログラムの実行タイミングを制御できない場合においても、プログラムの実行タイミングを、他のプログラムの動作に併せて制御できる情報処理装置および情報処理装置の制御方法を提供することを可能とする。
図1は、実施例1に係る情報処理装置のハードウェア構成を示す図である。 図2は、実施例1に係る情報処理装置の機能構成を示す図である。 図3は、実施例1に係る情報処理装置のソフトウェア構成を示す図である。 図4は、実施例1に係るプログラムの起動遅延機能を実現するソフトウェア構成を示す図である。 図5は、実施例1に係るプログラムの起動遅延機能の動作イメージを示す図である。 図6は、実施例1に係るユーザからのプログラムの起動遅延機能に関する指示内容と情報処理装置10の動作内容との関連を示す表である。 図7は、実施例1に係る実施例1に係るプログラムの起動遅延機能のフローチャートである。 図8は、実施例1に係る実施例1に係るプログラムの起動遅延機能のフローチャートである。 図9は、実施例1に係る遅延機能部のプログラム間の関連を示す図である。 図10は、各プロセッサ機能部と制御テーブル(プロセッサ機能部用データ域)との関連を示す図である。 図11は、実施例1に係る特定プログラム17の実行速度の遅延処理を実現するソフトウェア構成を示す図である。 図12は、プログラムの実行遅延機能の処理内容を示す図である。 図13は、特定プログラムにおける割込み禁止および解除の状態の推移と、特定プログラムの実行速度の遅延処理との関係を示す表である。 図14は、特定プログラムにおける排他制御の獲得および解放の状態の推移と、特定プログラムの実行速度の遅延処理との関係を示す表である。 図15は、プログラムの実行速度を遅らせる範囲を決める処理のフローチャートである。 図16は、プログラムの実行速度を遅らせる範囲を決める処理のフローチャートである。 図17は、実施例2に係る割込みの遅延機能を実現するソフトウェア構成を示す図である。 図18は、ユーザからの指示内容と入出力装置からの割込み遅延機能の処理内容の関係を示す表である。 図19は、入出力装置60からの割込み遅延機能の動作イメージを示す図である。 図20は、実施例2に係る情報処理装置の機能構成を示す図である。 図21は、プログラムの実行速度の遅延処理のフローチャートである。 図22は、プログラムの実行速度の遅延処理のフローチャートである。 図23は、入出力装置からの割込み遅延機能(第4遅延機能部42)のフローチャートである。 図24は、入出力装置からの割込み遅延機能(第4遅延機能部42)のフローチャートである。 図25は、再起動プロセス部43のフローチャートである。 図26は、実施例3に係る特定プログラム17の実行遅延機能を実現するソフトウェア構成を示す図である。 図27は、割込み制御(禁止・解除)を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を示す図である。 図28は、排他制御の獲得と解放の制御を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を示す図である。 図29は、割込み制御(禁止・解除)および、排他制御の獲得と解放の制御を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を示す図である。 図30は、割込み制御(禁止・解除)および、排他制御の獲得と解放の制御を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を示す図である。 図31は、プログラムの実行遅延機能の処理概要を示す表である。 図32は、プログラムの実行遅延機能の監視部44のフローチャートである。 図33は、プログラムの実行遅延機能の監視部44のフローチャートである。 図34は、プログラムの実行遅延機能の監視部44のフローチャートである。 図35は、プログラムの実行遅延機能の監視部44のフローチャートである。 図36は、プログラムの実行遅延機能の決定部45のフローチャートである。 図37は、プログラムの実行遅延機能の決定部45のフローチャートである。 図38は、ログ情報データの採取機能を構成するプログラム構造を示す図である。 図39は、ログ情報データの採取機能の採取部48のフローチャートである。 図40は、プログラムの起動遅延機能、プログラムの実行遅延機能、入出力装置からの割込み遅延機能およびログ情報データの採取機能が使用する作業領域に対するポインタテーブルの構成を示す図である。 図41は、プログラムの起動遅延機能、プログラムの実行遅延機能、入出力装置からの割込み遅延機能およびログ情報データの採取機能が使用する各プロセッサ機能部の動作状態の格納領域に対するポインタテーブル82の関連を示す図である。 図42は、情報処理装置のユーザから指示されたデータを格納する第1テーブル70の内容を示す図である。 図43は、情報処理装置のユーザから指示された内容を格納する第1テーブル70内のユーザから指示された機能の情報を示す第1メモリマップ71である。 図44は、情報処理装置のユーザから指示された内容を格納する第1テーブル70内の特定プログラム17に関する情報を示す第2メモリマップ72である。 図45は、各プロセッサ機能部に設けられた制御テーブルである第2テーブルである。第2テーブルは、プログラムの起動遅延機能、プログラムの実行遅延機能、入出力装置からの割込み遅延機能およびログ情報データの採取機能で、プログラムの状態を把握するために使用する。 図46は、各プロセッサ機能部に設けられた制御テーブルである第2テーブル73内の実行中の特定プログラム17の状態表示を示す第3メモリマップである。 図47は、各プロセッサ機能部に設けられた制御テーブルである第2テーブル73内の特定プログラム17に関する情報を示す第4メモリマップ75である。 図48は、入出力装置からの割込みの情報を格納する第3テーブル76である。第3テーブル76は、入出力装置からの割込み遅延機能が入出力装置からの割込みの情報を保管するために使用する。 図49は、排他制御の内容を示す第4テーブル77である。第4テーブル77は、プログラムの実行遅延機能が排他制御の状態を把握するために使用する。 図50は、ログ情報データの管理情報を示す第5テーブル78である。第5テーブル78は、ログ情報データの採取機能がログ情報データの格納域を管理するために使用する。 図51は、ログ情報データの採取機能が使用する第5テーブル78内のログ情報データを出力するプログラムの状態表示を示す第5メモリマップ79である。 図52は、ログ情報データの格納域の内容を示す第6テーブル80である。第6テーブル80は、ログ情報データの採取機能が採取したログ情報データの格納域として使用する。
(実施例1)
実施例1は、ハードウェアの構成、ソフトウェアの構成およびプログラムの起動遅延機能、およびプログラムの実行遅延機能を記載する。
図1と図2はハードウェアの構成、図3はソフトウェアの構成、図4〜図10はプログラムの起動遅延機能、図11〜図16はプログラムの実行遅延機能について、記載する。
図1は、実施例1における情報処理装置10のハードウェア構成を示す図である。情報処理装置10は、共有メモリ11、CPU(Central Processing Unit)13A、CPU13B、CPU13C、CPU13D、ディスク装置15、およびバス19を有する。
共有メモリ11は、CPU13A、CPU13B、CPU13CおよびCPU13Dが実行するOSプログラム、アプリケーションプログラム、エミュレートプログラム、および各プログラムが動作する際に使用するデータを格納する。
エミュレートプログラム12は、各プロセッサが実行する命令をエミュレートするプログラムである。
各々のCPU13A、CPU13B、CPU13CおよびCPU13Dは、共有メモリ11およびディスク装置15に接続している。
CPU13Aについて説明する。なお、CPU13B、CPU13CおよびCPU13Dは、CPU13Aと同じ構成であるので、説明を省略する。
CPU13Aは、バス19を介してディスク装置15と接続する。
CPU13Aは、エミュレート部14Aを有し、他のCPU13B、CPU13CおよびCPU13Dと共有メモリ11を共用する。
CPU13Aは、他のCPU13B、CPU13CおよびCPU13Dと協働して、情報処理装置10を制御する。
CPU13Aは、処理結果データなどをディスク装置15に出力する。
エミュレート部14Aは、各プロセッサにある機構であり、共有メモリ11に格納されたエミュレートプログラムを実行する。
ディスク装置15は、OSプログラム、アプリケーションプログラム、エミュレートプログラム、および各プログラムが動作する際に使用するデータなどを格納する。
OSプログラムには、特定プログラム(情報処理装置のユーザが指定したプログラム)、他のプログラム(情報処理装置のユーザが指定していないプログラム)、があり、格納するデータには、ログ情報ファイルなどがある。
入出力装置60は、バス19を介して情報処理装置10と接続する。
入出力装置には、ディスク装置、テープ装置、プリンタ装置などの機器がある。
図2は、実施例1に係る情報処理装置10内の機能構成を示す図である。図1で説明した構成物には同一符号を付し、説明を省略する。
格納機能部20は、特定プログラム17、他のプログラム18などのプログラムを格納する。
共有メモリ機能部21は、プロセッサ機能部22A、プロセッサ機能部22Bなどで実行されるOSプログラム、アプリケーションプログラム、エミュレートプログラム12などが実行するときに、必要とする各種データを格納する。
プロセッサ機能部22A、プロセッサ機能部22Bなどは、格納機能部20に格納されているOSプログラム、アプリケーションプログラム、エミュレートプログラム12などを実行する。
指示部23は、情報処理装置のユーザからの指示内容を解析して、情報処理装置のユーザからの指示内容を、共有メモリ機能部21に格納する。
ログ情報データ90は、特定のプログラムが起動または実行されるときに採取した他プロセッサの状態などを格納する。
図3は、実施例1に係る情報処理装置10のソフトウェア構成を示す図である。なお、図3において、図1および図2で説明した構成と同じ構成には同一符号を付し、説明を省略する。
共有メモリ機能部21は、アプリケーション層25、OS層27およびファーム層30を有する。
アプリケーション層25は、ユーザプログラム26を有する。ユーザプログラム26は、ユーザで使用される各種アプリケーションプログラムである。
ユーザプログラム26が、OSプログラムのサービスを要求する場合に、プログラム起動部29Aが介在する。(1)
OS層27は、OSプログラム28A、OSプログラム28B、OSプログラム28C、プログラム起動部29Aおよびプログラム起動部29Bなどを有する。
ユーザプログラム26からOSプログラムのサービスが要求された場合、プログラム起動部29Aおよび第1遅延機能部32を介在して、OSプログラム28Aを起動する。
(1)→(2)→(3)
OSプログラム28AからOSプログラム28Bを起動する場合も、プログラム起動部29Aおよび第1遅延機能部32を介在させる。
(4)→(5)→(6)
ディスク装置15へのアクセスは、ファーム層30のドライバプログラム36を経由してアクセスを行う。
(6)→(7)
ディスク装置15から通知されたアクセス結果は、ドライバプログラム36とOSプログラム28Cを介在させてユーザプログラム26に通知する。
(A)→(B)→(C)→(D)
ファーム層30は、エミュレータプログラム31、格納域35およびドライバプログラム36などを有する。
本技術によるプログラムの起動遅延機能、プログラムの実行遅延機能および入出力装置からの割込み遅延機能は、エミュレータプログラム31として動作する。
プログラムの起動遅延機能は、第1遅延機能部32で実現し、プログラムの実行遅延機能は、第3遅延機能部34で実現し、入出力装置からの割込み遅延機能は、第2遅延機能部33で実現する。
格納域35は、プログラムの起動遅延機能、プログラムの実行遅延機能および入出力装置からの割込み遅延機能を実行したときの、自プロセッサおよび他プロセッサで実行中のプログラムに関する情報を格納する領域である。
ドライバプログラム36は、ユーザプログラム26およびOSプログラム28Aなどからの依頼によりディスク装置15など各デバイスへのアクセスを行う。
ディスク装置15は、ログ情報ファイル24およびデータ格納部37などを有する。ログ情報ファイル24は、格納域35に採取された各プログラムの動作履歴情報を格納する。データ格納部37は、ユーザプログラム26が使用するデータなどを格納する。
図4は、実施例1に係る情報処理装置10のプログラム起動の遅延機能を実現するソフトウェア構成を示す図である。
図4は、特定プログラム17が起動された場合のソフトウェア構成図である。
図4では、図1〜図3で説明した構成と同じ構成には同一符号を付し、説明を省略する。
OS層27上で特定プログラム17を起動する命令が実行されることにより、ファーム層30上で第1遅延機能部32が動作する。
第1遅延機能部32は、プログラムの起動遅延機能が使用されている場合、第3遅延機能部34を呼び出し、第3遅延機能部34から復帰した後に、特定プログラム17を起動する。(1)→(2)→(3)の順に処理する。
プログラムの起動遅延機能が使用されていない場合、特定プログラム17を起動する。(1)→(3)の順に処理する。
(1)第1遅延機能部32による処理
起動元プログラム38で特定プログラム17を起動する命令が実行される。起動命令の実行により第1遅延機能部32が動作する。
第1遅延機能部32は、共有メモリ機能部21Aに格納されている情報処理装置10のユーザから指示された情報を参照して、特定プログラム17の起動を遅らせるか否か判断する。
特定プログラム17の起動を遅らせる場合、第3遅延機能部34を呼び出し、第3遅延機能部34で時間の経過を待つ。その後、第3遅延機能部34から復帰した後に、特定プログラム17を起動する(3)。
特定プログラム17の起動を遅らせない場合、特定プログラム17を起動する(3)。
なお、共有メモリ機能部21Aへの情報設定は、図1の指示部で処理する。
(2)第3遅延機能部34による処理
第1遅延機能部32から呼び出された場合、第3遅延機能部34は、ある時間の経過を待ち、時間が経過した後、第1遅延機能部32に復帰する。
第3遅延機能部34は、共有メモリ機能部21Bに格納されている情報を参照して、経過時間を認識する。詳しくは、図21または図22を参照。
(3)第1遅延機能部32による特定プログラム17の起動処理
プログラムの起動遅延機能が使用されていない場合、または、第3遅延機能部34が復帰した場合、第1遅延機能部32は、プログラムを起動する命令のエミュレートを行う。
上記(1)〜(3)の処理により情報処理装置10は、特定プログラム17の起動を遅らせられるため、特定プログラム17と他のプログラム18とを並行して動作させることが可能となる。
図5は、実施例1に係る情報処理装置10のプログラムの起動遅延機能の動作イメージを示す図である。図5の右方向の実線の矢印は、プロセッサ機能部22Aおよびプロセッサ機能部22Bの実行時間の流れを示す。
なお、図5では、プログラムの起動遅延機能を使用しており、プロセッサ機能部22Aで特定プログラム17が起動され、プロセッサ機能部22Bで他のプログラム17が起動されるものとして記載している。
(1)特定プログラム17の起動要因発生
情報処理装置10において、プロセッサ機能部22Aで特定プログラム17の起動要求が発生したとき、第1遅延機能部32は、他のプロセッサ機能部で他のプログラム18が実行中されているか否かを判断する。
図5の(1)の時点においては、他のプログラム18は実行されていないので、第1遅延機能部32は、特定プログラム17の起動を遅延させることになり、時間の経過を待つ。
(2)他のプログラム18の起動要因発生
情報処理装置10において、プロセッサ機能部22Bで他のプログラム18の起動要求が発生したとき、他のプログラム18が起動される。
(3)特定プログラム17の起動要因発生から時間が経過
時間が経過したとき、プロセッサ機能部22Aで第1遅延機能部32が起動される。第1遅延機能部32は、プロセッサ機能部22Bで他のプログラム18が実行されているか否かを判断する。
図5の(3)の時点においては、プロセッサ機能部22Bで他のプログラム18が実行されているために、第1遅延機能部32は、特定プログラム17を起動する。
(4)特定プログラム17の実行
第1遅延機能部32が特定プログラム17を起動することで、プロセッサ機能部22Aで、特定プログラム17が起動される。
上記(1)〜(4)の手順により情報処理装置10は、特定プログラム17と他のプログラム18を並行して動作させることが可能となる。
図6は、ユーザからのプログラムの起動遅延機能に関する指示内容と情報処理装置10の動作内容との関係を示す表である。
図6では、図1〜図5で説明した構成と同じ構成には同一符号を付し、説明を省略する。
情報処理装置10のユーザがプログラムの起動遅延機能を使用しない(特定プログラム17を指定しない)場合、プログラムの起動を遅らせない。
情報処理装置10のユーザがプログラムの起動遅延機能を使用して(特定プログラム17を指定する)、かつ、並行して動作させるプログラムを指定しない場合、特定プログラム17の起動を、ある時間遅らせる。(時間値は不定)
情報処理装置10のユーザがプログラムの起動遅延機能を使用して(特定プログラム17を指定する)、かつ、並行して動作させるプログラムを指定した場合、並行して動作させるプログラムが実行するまで、特定プログラム17の起動を遅らせる。
上記の処理は、共有メモリ機能部21Aと共有メモリ機能部21Bを参照して処理する。参照する制御テーブルの内容は、図42および図45を参照。
図7と図8は、情報処理装置10のプログラムの起動遅延機能のフローチャートである。図7と図8は、図2に記載した第1遅延機能部32に対応しており、図2に記載した用語を用いて記載する。
なお、説明を理解しやすくするために、遅延機能部32はプロセッサ機能部22Aで動作すると仮定して記載する。
≪OP11の処理≫
第1遅延機能部32は、情報処理装置10のユーザがプログラムの起動遅延機能の使用が指定されているかを判断する(OP11)。
プログラムの起動遅延機能の使用が指定されていない場合(OP11:NO)、何もせずにプログラムを起動(OP18)し、処理を終了する。
≪OP12の処理≫
プログラムの起動遅延機能の使用が指定されている(OP11:YES)、第1遅延機能部32は、起動するプログラムが指定された特定プログラム17かを判断する(OP12)。
指定された特定プログラム17でない場合(OP12:NO)、何もせずにプログラムを起動(OP18)し、処理を終了する。
≪OP13の処理≫
指定された特定プログラム17であった場合(OP12:YES)、第1遅延機能部32は、共有メモリ機能部21Bにあるプロセッサ機能部22A用の制御テーブルの実行中である特定プログラム17の状態表示の更新を行う(OP13)。
≪OP14の処理≫
第1遅延機能部32は、情報処理装置10のユーザから並行して動作するプログラムが指定されているかを判断する(OP14)。
並行して動作するプログラムが指定されていない場合(OP14:NO)、時間の経過を待つために、プログラムの起動遅延処理を呼び出す。
プログラムの起動遅延処理から復帰した後に、 ≪OP21の処理≫を行う。
≪OP15の処理≫
ユーザから並行して動作するプログラムが指定されている場合(OP14:YES)、第1遅延機能部32は、ユーザから指定された並行して動作するプログラムが実行中かを判断する(OP15)。
並行して動作するプログラムが実行中であった場合(OP14:YES)、 ≪OP21の処理≫を行う。
≪OP16の処理≫
ユーザから指定された並行して動作するプログラムが実行中でなかった場合(OP14:NO)、第1遅延機能部32は、時間の経過を待つために、プログラムの起動遅延処理を呼び出す(OP16)。
≪OP17の処理≫
プログラムの起動遅延処理から復帰した後、第1遅延機能部32は、遅延時間の限界値を超えたかを判断する(OP17)。
遅延時間の限界値を超えた場合(OP17:YES)、 ≪OP21の処理≫を行う。
遅延時間の限界値を超えていない場合(OP17:NO)、 ≪OP15の処理≫から繰り返す。
≪OP21の処理≫
第1遅延機能部32は、共有メモリ機能部21Bにあるプロセッサ機能部22A用の制御テーブルの実行中である特定プログラム17の状態表示の更新を行う(OP21)。
≪OP22の処理≫
第1遅延機能部32は、特定プログラム17を起動(OP22)し、処理を終了する。
なお、上記の処理は、共有メモリ機能部21Aと共有メモリ機能部21Bを参照して処理する。参照する制御テーブルの内容は、図42および図45を参照。
第1遅延機能部32とプログラムの起動遅延処理の関係は、図9を参照。
プログラムの起動遅延処理の詳細は、図21および図22を参照。
図9は、実施例1に係る遅延機能部のプログラム間の関連を示す図である。
第3遅延機能部34は、プログラムの起動遅延処理の第1遅延機能部32またはプログラムの実行遅延機能の第2遅延機能部33から呼び出されて動作する。
第3遅延機能部34は、他プロセッサ機能部の状態変化を元に時間の経過を認識し、他プロセッサ機能部の状態変化は、共有メモリ機能部40に格納された各プロセッサ機能部の制御テーブルを参照して判断する。
詳しい処理内容は、図21と図22を参照。
図10は、プログラムの実行遅延機能の制御に関わる各プロセッサ機能部と制御テーブル(プロセッサ機能部用データ域)との関連を示す図である。
第1データ域(プロセッサ機能部用)から第nデータ域(プロセッサ機能部用)は、プロセッサ機能部に対応して作成する。
プロセッサ機能部22Aは第1データ域40A、プロセッサ機能部22Bは第2データ域40B、プロセッサ機能部22nは第nデータ域40nのように対応し、各プロセッサ機能部は、対応する第nデータ域に動作状態情報を格納する。
他のプロセッサ機能部の状態を参照するときは、プロセッサ機能部22Aは第2データ域40B、プロセッサ機能部22Bは第3データ域40C、プロセッサ機能部22nは第1データ域40Aのように対応させて、各プロセッサ機能部は対応する第nデータ域を参照する。
なお、第1データ域(プロセッサ機能部用)から第nデータ域(プロセッサ機能部用)は、共有メモリ機能部40に作成する。
図11は、特定プログラム17の実行速度の遅延処理を実現するソフトウェア構成を示す図である。
OS層27上で実行中の特定プログラム17が命令を実行すると、ファーム層30上で動作する第2遅延機能部33が起動される。
第2遅延機能部33は、特定プログラム17の実行速度を遅らせるか否かを判断する。実行速度を遅らせる場合、時間の経過を待つために、第3遅延機能部34を呼び出す。
第3遅延機能部34から復帰した後に、エミュレート部47に制御を渡す。
(1)→(2)→(3)の手順で処理を行う。
実行速度を遅らせない場合、エミュレート部47に制御を渡す。
(1)→(3)の手順で処理を行う。
エミュレート部47は、特定プログラム17が実行した命令のエミュレートを行う。
図12は、プログラムの実行遅延機能の処理内容を示す図である。
情報処理装置10のユーザがプログラムの実行遅延機能を使用しない(第2遅延機能部33を使用しない)場合、プログラムの実行速度を遅らせない。
情報処理装置10のユーザがプログラムの実行遅延機能を使用して(第2遅延機能部33を使用する)場合、特定プログラム17が以下の状態にあるとき、プログラムの実行速度を遅らせる。
・割込み禁止の解除〜割込み禁止の設定
・割込み禁止の解除〜テスト対象プログラムの終了
・排他制御の解放〜排他制御の再獲得
・排他制御の解放〜テスト対象プログラムの終了
・割込み禁止の設定〜排他制御の獲得
・排他制御の解放〜割込み禁止の解除
・排他制御の解放〜排他制御の獲得(割込み禁止の区間内)
上記の処理は、共有メモリ機能部21Aと共有メモリ機能部21Bを参照して処理する。参照する制御テーブルの内容は、図42および図45を参照。
図13は、プログラムの実行遅延機能における、特定プログラムの割込み禁止および解除の状態の推移と、特定プログラムの実行速度の遅延処理との関係を示す表である。
特定プログラムの割込み禁止および解除の推移から、以下の状態にあるとき、プログラムの実行速度を遅らせる。
・割込み禁止の解除〜割込み禁止の設定
・割込み禁止の解除〜テスト対象プログラムの終了
・割込み禁止の設定〜排他制御の獲得
図14は、プログラムの実行遅延機能における、排他制御の獲得および解放の状態の推移と、特定プログラムの実行速度の遅延処理との関係を示す表である。
特定プログラムの排他制御の獲得および解放の推移から、以下の状態にあるとき、プログラムの実行速度を遅らせる。
・排他制御の解放〜排他制御の再獲得
・排他制御の解放〜テスト対象プログラムの終了
・排他制御の解放〜割込み禁止の解除
・排他制御の解放〜排他制御の獲得(割込み禁止の区間内)
図15と図16は、プログラムの実行速度を遅らせる範囲を決める処理のフローチャートであり、図11に記載した第2遅延処理部33の処理内容のフローチャートである。
なお、説明を理解しやすくするために、情報処理装置10のユーザがプログラムの実行遅延機能を使用していると仮定して記載する。
この処理で、参照する制御テーブルの内容は、図42および図45を参照。
≪OP31の処理≫
第2遅延機能部33は、実行中のプログラムがユーザから指定された特定プログラム17かをチェックする(OP31)。
実行中のプログラムが指定された特定プログラム17でない場合(OP31:NO)、何もせず、終了する。この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP32の処理≫
実行中のプログラムが指定された特定プログラム17であった場合(OP31:YES)、第2遅延機能部33は、特定プログラム17が、過去に割り込み禁止と解除を行ったかをチェックする(OP32)。
過去に割り込み禁止と解除を行っていた場合(OP32:YES)、 ≪OP38の処理≫を行う。
≪OP33の処理≫
過去に割り込み禁止と解除を行っていない場合(OP32:NO)、第2遅延機能部33は、現在、割り込み禁止を行っているかをチェックする(OP33)。
割り込み禁止を行っていない場合(OP33:NO)、第2遅延機能部33は、 ≪OP41の処理≫を行う。
≪OP34の処理≫
割り込み禁止を行っている場合(OP33:YES)、第2遅延機能部33は、現在、特定プログラム17が排他制御を獲得しているかをチェックする(OP34)。
排他制御を獲得している場合(OP34:YES)、終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP35の処理≫
排他制御を獲得していない場合(OP34:NO)、第2遅延機能部33は、特定プログラム17が排他制御を行う可能性のあるプログラムか否かをチェックする(OP35)。
排他制御を行う可能性がないプログラムの場合(OP35:YES)、終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP36の処理≫
排他制御を行う可能性があるプログラムの場合(OP35:NO)、第2遅延機能部33は、時間の経過を待つために、第3遅延機能部34(プログラムの実行速度の遅延処理)を呼び出す。第3遅延機能部34(プログラムの実行速度の遅延処理)から復帰した後で、終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP38の処理≫
過去に割り込み禁止と解除を行っていた場合(OP32:YES)、第2遅延機能部33は、現在、割り込み禁止を行っているかをチェックする(OP38)。
割り込み禁止を行っていない場合(OP38:NO)、第2遅延機能部33は、 ≪OP36の処理≫を行う。
割り込み禁止を行っていた場合(OP38:YES)、第2遅延機能部33は、 ≪OP34の処理≫を行う。
≪OP41の処理≫
特定プログラム17が、過去に排他制御の獲得と解放を行ったかをチェックする(OP41)。
排他制御の獲得と解放を行っていない場合(OP41:NO)、第2遅延機能部33は終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP42の処理≫
排他制御の獲得と解放を行っている場合(OP41:YES)、第2遅延機能部33は、現在、排他制御の獲得を行っているかをチェックする(OP42)。
排他制御の獲得を行っている場合(OP42:YES)、終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
≪OP43の処理≫
排他制御の獲得を行っていない場合(OP42:NO)、第2遅延機能部33は、時間の経過を待つために、第3遅延機能部34(プログラムの実行速度の遅延処理)を呼び出す。第3遅延機能部34(プログラムの実行速度の遅延処理)から復帰した後で、終了する。
この後、エミュレート部47が動作し、特定プログラム17が実行した命令のエミュレートが行われる。
実施例1に係る情報処理装置10の特定プログラム17によるプログラム起動の遅延機能によれば、第1遅延機能部32(プログラム起動遅延機能)、第2遅延機能部33(プログラムの実行遅延機能)および第3遅延機能部34により、特定プログラム17の起動または実行を意図して遅らせることができる。
この機能により、特定プログラム17と他のプログラム18を並行して動作させることが可能となり、2つ以上のプログラムが並行して動作した場合に顕在化する、割込み制御、排他制御などのプログラムの不具合を発生させやすくなる。
このようなシステム環境で、テストを実施することにより、テスト対象プログラムに潜在しているプログラムの不具合が検出しやすくなる。
(実施例2)
実施例2は、情報処理装置における入出力装置からの割込み遅延機能について、図17から図25を用いて説明する。
なお、図3に記載した第2遅延機能部33と第4遅延機能部42は、同じ機能である。
入出力装置60からの割込み遅延機能は、指定された入出力装置60または指定された装置種別を持つ入出力装置60の負荷が高くなった場合に、情報処理装置10に生じる現象を調査するときにも使用できる。
図17は、情報処理装置における割込み遅延機能を実現するソフトウェア構成を示す図である。
図17において、図1〜図16で説明したものは説明を省略する。
なお、入出力装置からの割込み遅延機能で参照および更新する制御テーブルの内容は、図42および図45を参照。
OS層27上で、特定プログラム17と割込み処理プログラム41が動作する。
ファーム層30上で、第4遅延機能部42と再起動プロセス部43が動作する。
(1)入出力装置60からの割込み処理
入出力装置60からの割込みが発生する(1)と、第4遅延機能部42が起動される。
第4遅延機能部42は、入出力装置60からの割込みを遅らせるか否か判断する。
割り込みを遅らせない場合、入出力装置60からの割り込みを発生させる(4)。この割り込みにより割込み処理プログラム41が起動される。
(1)→(4)の順に処理を行う。
(2)再起動プロセスの起動処理
割り込みを遅らせる場合、第4遅延機能部42は、時間の経過を待つために、再起動プロセス部43を起動する(2)。
再起動プロセス部43からの再起動(3)により第4遅延機能部42は、入出力装置60からの割り込みを発生させる(4)。この割り込みにより割込み処理プログラム41が起動される。
(1)→(2)→(3)→(4)の順に処理を行う。
(3)再起動プロセスの処理
再起動プロセス部43は、時間の経過を待ち、時間が経過した後に、第4遅延機能部42を再度、起動する(3)。
上記(1)〜(4)の処理で、情報処理装置10は、入出力装置60による割り込みを遅らせることができる。
図18は、ユーザからの指示内容と入出力装置からの割込み遅延機能の処理内容の関係を示す表である。
なお、図18において、図17で説明したものは説明を省略する。
情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示されなかった場合、なにもしない(入出力装置からの割り込みを遅延機能させない)。
情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示され、かつ、入出力装置が指定された場合、指定された入出力装置からの割り込みを遅延させる。
情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示され、かつ、入出力装置の機種名が指定された場合、指定された機種名を持つ入出力装置からの割り込みを遅延させる。
情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示され、入出力装置または機種名が指定され、かつ、動作中に割込みを発生させるプログラムが指定された場合、指定された入出力装置または機種名を持つ入出力装置からの割り込みを、指定したプログラムが実行されるまで遅延させる。
図19は、実施例2に係る入出力装置60からの割込み遅延機能の動作イメージを示す図である。入出力装置からの割込み遅延機能の動作イメージを説明する。
説明を理解しやすくするために、入出力装置60からの割り込みは、プロセッサ機能部22Bで動作し、特定プログラム17はプロセッサ機能部22Aで動作すると仮定して記載する。
図19の右方向の実線の矢印は、プロセッサ機能部22Aおよびプロセッサ機能部22Bの実行時間の流れを示す。
(1)入出力装置60からの割込み発生
入出力装置60からの割り込みがプロセッサ機能部22Bに発生し、第4遅延機能部42(入出力装置からの割込み遅延機能)が動作する。
この時点では、他のプロセッサ機能部(プロセッサ機能部22A)で動作しているプログラムは存在しないので、第4遅延機能部42は、入出力装置60からの割り込みを遅らせるために、遅延時間(所定時間)の経過を待つ。
その後、他のプロセッサ機能部(プロセッサ機能部22A)で、特定プログラム17の起動要求が発生し、特定プログラム17が起動される。
(2)遅延時間(所定時間)が経過
遅延時間が経過し、再度第4遅延機能部42が動作する。この時点では、他のプロセッサ機能部で特定プログラム17が実行しているので、第4遅延機能部42は、入出力装置60からの割り込みを発生させる。
(3)入出力装置60からの割り込みが発生
入出力装置60からの割り込みがプロセッサ機能部22Aで発生すると、プロセッサ機能部22Aは、特定プログラム17の処理を一時的に中断し、入出力装置60からの割込み処理プログラムを実行する。割込み処理プログラムが終了した後に、特定プログラム17の処理が再開される。
図20は、実施例2に係る情報処理装置10内の機能構成を示す図である。実施例2に係る情報処理装置10は、図2で説明した構成物と同一なので、説明を省略する。
図21と図22は、プログラムの実行速度の遅延処理のフローチャートである。
プログラムの起動遅延機能およびプログラムの実行遅延機能が使用するプログラムの実行速度の遅延処理を説明する。
プログラムの実行遅延機能は、プログラムの起動遅延機能:第1遅延機能部(図4参照)または、プログラムの実行遅延機能:第2遅延機能部(図26の決定部を参照)から呼び出される。
説明を理解しやすくするために、本処理はプロセッサ機能部22Aで動作すると仮定して記載する。
説明にあたって、用語は、図11に記載したものを使用する。
図21は、ハードウェア(CPU)からの時間割込みを利用した方法である。
≪OP71の処理≫
第3遅延機能部34は、当処理を開始した時点のプロセッサ機能部22Bの時間(時計)割込み回数を検出する(OP71)。
プロセッサ機能部22Bの時間割込み回数は、プロセッサ機能部22Bが共有メモリ機能部40に格納した時間割込み回数を参照する。
≪OP72の処理≫
第3遅延機能部34は、プロセッサ機能部22Bの時間が一定時間経過したかを判断するために、現時点(OP72)のプロセッサ機能部22Bの時間割込み回数を検出する。現時点で検出した時間割込み回数とOP71の時点で検出した時間割込み回数の差が、一定数以上となった場合、一定時間が経過したと判断する(OP72)。
経過時間が一定時間以上となった場合(OP72:YES)、第4遅延機能部42は、依頼元に復帰する(OP73)。
≪OP74の処理≫
経過時間が一定時間未満の場合(OP72:NO)、第4遅延機能部42は、プロセッサ機能部22Bがループ状態になっているかを判断する(OP74)。
プロセッサ機能部22Bがループ状態の場合(OP74:YES)、依頼元に復帰する(OP73)。
プロセッサ機能部22Bがループ状態でない場合(OP74:NO)、 ≪OP72の処理≫からの処理を繰り返す。
OP74の処理は、参照したプロセッサ機能部22Bがループ状態である場合、本処理も同様にループ状態になってしまうのを防ぐためのものである。
なお、参照するプロセッサ機能部の決定方法は、以下の方法が考えられる。
・プロセッサ機能部22AのCPU番号の±(プラスマイナス)1番のCPU番号を有するプロセッサ機能部
・CPU番号nを有するプロセッサ機能部
図22は、プロセッサ機能部で実行中命令アドレスを利用した方法である。
≪OP81の処理≫
第3遅延機能部34は、当処理を開始した時点の他プロセッサ機能部(プロセッサ機能部22B)の実行中命令アドレスを検出する(OP81)。
実行中命令アドレスは、他プロセッサ機能部が共有メモリ機能部40に格納した実行中命令アドレスとする。
≪OP82の処理≫
第3遅延機能部34は、本処理(OP82)の実行したときの、他プロセッサ機能部の実行中命令アドレスを検出する(OP82)。
本処理(OP82)で検出した他プロセッサ機能部の実行中命令アドレスと ≪OP81の処理≫で検出した他プロセッサ機能部の実行中命令アドレスとの差が、一定数以上になったかを判断する。
実行中命令アドレスの差が一定数以上となった場合(OP82:YES)、一定時間が経過したと判断し、呼び出し元プログラムに復帰する(OP83)。
≪OP84の処理≫
実行中命令アドレスの差が一定数未満となった場合(OP82:NO)、第3遅延機能部34は、一定時間が経過していないと判断し、他プロセッサ機能部がループ状態にあるかを判断する(OP84)。
ループ状態にある場合(OP84:YES)、一定時間が経過したと判断し、呼び出し元プログラムに復帰する(OP83)。
ループ状態にない場合(OP84:NO)、 ≪OP82の処理≫から繰り返す。
なお、他プロセッサ機能部がループ状態であるか判断は、以下の方法がある。
・プロセッサ機能部22B以外の状態をチェックする。または、
・本処理のループ回数をカウントする。
≪OP84の処理≫は、他プロセッサ機能部がループ状態になった場合、本処理も同様にループ状態になることを防ぐための処理である。
他プロセッサ機能部の決定方法は、以下の方法が考えられる。
・自プロセッサ機能部(本例では、プロセッサ機能部22A)のCPU番号の±(プラスマイナス)1番のCPU番号を有するプロセッサ機能部。
または、
・CPU番号nを有するプロセッサ機能部。
図23と図24は、入出力装置からの割込み遅延機能(第4遅延機能部42)のフローチャートである。
図23および図24に関係するプログラム間の構成は、図17を参照。
≪OP91の処理≫
図17に記載の第4遅延機能部42(入出力装置からの割込み遅延機能)は、情報処理装置のユーザから入出力装置からの割込み遅延機能が使用されているかを判断する(OP91)。
割込み遅延機能が使用されていない場合(OP91:NO)、入出力装置からの割り込みを発生させる(OP96)。
≪OP92の処理≫
割込み遅延機能が使用されている場合(OP91:YES)、第4遅延機能部42は、割り込みが発生した入出力装置を認識する(OP92)。
なお、入出力装置から通知された割込み情報内に、入出力装置の機番が存在する。
≪OP93の処理≫
第4遅延機能部42は、割り込みが発生した入出力装置の種別と情報処理装置のユーザから指示された入出力装置の種別を比較する(OP93)。
入出力装置の種別が等しい場合(OP93:YES)、 ≪OP95の処理≫を行う。
≪OP94の処理≫
入出力装置の種別が等しくない場合(OP93:NO)、第4遅延機能部42は、割り込みが発生した入出力装置の機番と情報処理装置のユーザから指示された入出力装置の機番を比較する。(OP94)
入出力装置の機番が等しくない場合(OP94:NO)、入出力装置からの割り込みを発生させる(OP96)。
≪OP95の処理≫
入出力装置の種別が等しい場合(OP93:YES)または、入出力装置の機番が等しい場合(OP94:YES)、第4遅延機能部42は、入出力装置からの割込み情報を格納する(OP95)。
格納するテーブルは、図48を参照。
≪OP111の処理≫
第4遅延機能部42は、情報処理装置10のユーザから動作中に入出力装置からの割り込みを発生させるプログラムが指示されているかを判断する(OP111)。
動作中に入出力装置からの割り込みを発生させるプログラムが指示されている場合(OP111:YES)、 ≪OP103の処理≫を行う。
動作中に入出力装置からの割り込みを発生させるプログラムが指示されていない場合(OP111:NO)、 ≪OP104の処理≫を行う。
≪OP101の処理≫
本処理は、再起動プロセス43の再起動により起動される。第4遅延機能部42は、 ≪OP105の処理≫で格納した入出力装置60からの割込み情報を復元する(OP101)。
≪OP102の処理≫
第4遅延機能部42は、情報処理装置10のユーザから動作中に入出力装置からの割り込みを発生させるプログラムが指示されているかを判断する(OP102)。
動作中に入出力装置からの割り込みを発生させるプログラムが指示されていない場合(OP102:NO)、 ≪OP108の処理≫を行う。
≪OP103の処理≫
動作中に入出力装置からの割り込みを発生させるプログラムが指示されている場合(OP111:YES)または(OP111:YES)の場合、第4遅延機能部42は、情報処理装置のユーザから指示された特定プログラムが実行中かを判断する(OP103)。
特定プログラム17が実行中の場合(OP103:YES)、 ≪OP108の処理≫を行う。
≪OP104の処理≫
特定プログラム17が実行中でない場合(OP103:NO)、第4遅延機能部42は、入出力装置の割込み遅延時間が限界値をオーバーしたかを判断する(OP104)。
割込み遅延時間が限界値をオーバーした場合(OP104:YES)、 ≪OP102の処理≫を行う。
OP104の処理は、以下のトラブル現象を防止するためのものである。
・システムの動作環境により、長時間、特定プログラムが動作しないケースも考えられる。
特定プログラムが長時間、動作しなかった場合、入出力装置からの割り込みが長時間、遅れることで、入出力装置のハードウェア障害と認識されることがある。
なお、限界値をオーバーしたかの判断方法は、以下のものがある。
・本処理の所用時間で判断する。
・本処理のループ回数で判断する。
≪OP105の処理≫
割込み遅延時間が限界値をオーバーしていない場合(OP104:NO)、第4遅延機能部42は、入出力装置からの割込み情報を図48に記載したテーブル(第3テーブル76)に格納し(OP105)、実行中である特定プログラム17の状態表示の入出力装置60からの割込みの遅延状態をオンにする。
≪OP106の処理≫
第4遅延機能部42は、遅延時間の経過を待つために、再起動プロセス部43を起動する(OP106)。
≪OP107の処理≫
第4遅延機能部42は、処理を終了する(OP107)。
第4遅延機能部42は、再起動プロセス部43からの再起動を待つ。再起動プロセス部43から再起動が行われたとき、第4遅延機能部42は、 ≪OP101の処理≫から再開する。
≪OP108の処理≫
OP108の処理は、情報処理装置10のユーザから動作中に入出力装置からの割り込みを発生させるプログラムが指示されていない場合(OP102:NO)、動作中に入出力装置からの割り込みを発生させるプログラムが実行中の場合(OP103:YES)、または、入出力装置からの割込み遅延時間が限界値をオーバーした場合(OP104:YES)に動作する。
第4遅延機能部42は、割込み遅延処理が完了したので、割込み遅延中の入出力装置60の数を減算(−1)する。
≪OP109の処理≫
割込み遅延中の入出力装置60の数が0になった場合、第4遅延機能部42は、実行中である特定プログラム17の状態表示の入出力装置60からの割込みの遅延状態をオフにする。
第4遅延機能部42は、入出力装置からの割り込みを発生させる(OP110)。
図25は、再起動プロセス部43のフローチャートである。
入出力装置からの割込み遅延機能の再起動プロセス(再起動プロセス部43)を説明する。図25に関係するプログラム間の構成は、図17を参照。
≪OP121の処理≫
再起動プロセス部43は、第4遅延機能部42から起動され、作業域の獲得、初期化処理などを行う(OP121)。
≪OP122の処理≫
再起動プロセス部43は、第4遅延機能部42からの要求内容を取り出す(OP122)。
≪OP123の処理≫
再起動プロセス部43は、取り出した要求内容に沿って休止時間を取る(OP123)。休止時間が経過したとき、再起動プロセス部43が再起動される。
なお、時間の経過を待つ方法は、以下の方法がある。
・プロセスの実行優先度から生じる時間差(起動要求発生〜起動されるまでの時間)を使用。
・OSから提供される経過時間の通知機能を使用。
≪OP124の処理≫
再起動プロセス部43は、第4遅延機能部42へ通知する情報を生成する(OP124)。
≪OP125の処理≫
再起動プロセス部43は、第4遅延機能部42を再起動する(OP125)。
≪OP164の処理≫
再起動プロセス部43は、獲得した作業域の返却などを行ったあとで、終了する(OP126)。
入出力装置からの割込み制御などを行うプログラムの不具合は、当該のプログラムが実行中に、入出力装置、ハードウェア(CPU)などの割り込みが発生した場合、顕在化する。入出力装置、ハードウェア(CPU)などの割り込みが発生しない場合は、顕在化しない。
実施例2に係る入出力装置からの割込み遅延機能は、意図として入出力装置からの割り込みを、当該のプログラムが実行するまで遅らせることができる。
そのため、当該のプログラムが実行中に、入出力装置からの割り込みが発生する状況を作り出せるので、プログラムに潜在しているプログラムの不具合(割込み制御に関する不具合)の検出が容易となる。
(実施例3)
実施例3は、情報処理装置におけるプログラムの実行遅延機能について、図26から図37を用いて説明する。
図26は、プログラムの実行遅延機能を実現するソフトウェア構成を示す図である。図26に記載した監視部44、決定部45、第5遅延機能部46および、エミュレート部47は、図3に記載した第3遅延機能部34をさらに分割したプログラムである。
OS層で、特定プログラム17が命令を実行したとき、プログラムの実行遅延機能を構成する各プログラムは、以下の順で動作する。
・プログラムの実行速度を遅らせない場合
(1)監視部44
(2)決定部45
(4)エミュレート部47
・プログラムの実行速度を遅らせる場合
(1)監視部44
(2)決定部45
(3)第5遅延機能部46
(4)エミュレート部47
プログラムの実行遅延機能を構成する各プログラムは、共有メモリ機能部21Bを使用して、データの受け渡しを行う。
情報処理装置10のユーザから指示された内容は、共有メモリ機能部21Aに設定される。
(1)監視部44
監視部44は、特定プログラム17が実行しているとき、プログラムの実行速度を遅らせる区間を決定するために必要な情報を生成するプログラムである。
特定プログラム17が実行する命令コードを監視して、特定プログラム17のプログラム論理の推移を把握する。
監視部44が生成した情報を決定部45が参照する。
(2)決定部45
決定部45は、監視部44が生成した情報を参照して、特定プログラム17が実行する命令の実行速度を遅らせるか否かを判断する。
特定プログラム17が、以下の状態にある場合、命令の実行速度を遅らせる。
・割込み禁止の解除〜割込み禁止の設定
・割込み禁止の解除〜テスト対象プログラムの終了
・排他制御の解放〜排他制御の再獲得
・排他制御の解放〜テスト対象プログラムの終了
・割込み禁止の設定〜排他制御の獲得
・排他制御の解放〜割込み禁止の解除
・排他制御の解放〜排他制御の獲得(割込み禁止の区間内)
命令の実行速度を遅らせない場合、決定部45は、エミュレート部47に制御を渡す。
命令の実行速度を遅らせる場合、決定部45は時間の経過を待つために、第5遅延機能部46を呼び出す。第5遅延機能部46から復帰したあと、エミュレート部47に制御を渡す。
(3)第5遅延機能部46
第5遅延機能部46は、決定部45から呼び出されて動作し、ある時間の経過を待ち、時間が経過した後に、呼び出し元に復帰する。
(4)エミュレート部47
エミュレート部47は、決定部45から制御が渡されて動作する。エミュレート部47は、従来から存在し、命令を実行する。
図27〜図30は、プログラムの実行遅延機能のプログラムの実行速度を遅らせる範囲を示す図である。
記号の意味は、以下のとおりである。
・実線の矢印: 時間の流れ
・白三角(△): 割り込みを禁止したとき。
・白の逆三角(▽): 割り込みを禁止を解除したとき。
・黒四角(■): プログラムが終了したとき。
・黒三角(▲): 排他制御を獲得をしたとき。
・黒の逆三角(▼): 排他制御の獲得を解放したとき。
図27は、割込み制御(禁止・解除)を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を図示する。
(イ)と(ロ)で示す範囲内で、プログラムの実行速度を遅らせる。
・(イ)割込み禁止の解除〜割込み禁止の設定
・(ロ)割込み禁止の解除〜テスト対象プログラムの終了
図28は、排他制御の獲得と解放を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を図示する。
(ハ)と(ニ)で示す範囲内で、プログラムの実行速度を遅らせる。
・(ハ)排他制御の解放〜排他制御の再獲得
・(ニ)排他制御の解放〜テスト対象プログラムの終了
図29と図30は、割込み制御(禁止・解除)と排他制御の獲得と解放を行うプログラムにおけるプログラムの実行速度を遅らせる範囲とプログラムの実行速度を遅らせない範囲を図示する。
(ホ)、(ヘ)、(ト)で示す範囲内で、プログラムの実行速度を遅らせる。
・(ホ)割込み禁止の設定〜排他制御の獲得
・(ヘ)排他制御の解放〜割込み禁止の解除
・(ト)排他制御の解放〜排他制御の獲得(割込み禁止の区間内)
図31は、プログラムの実行遅延機能の処理概要を示す表である。
図31では、図1〜図30で説明した構成と同じ構成には同一符号を付し、説明を省略する。
情報処理装置のユーザがプログラムの実行遅延機能を使用しない場合、プログラムは本来の実行速度で動作する。
情報処理装置のユーザがプログラムの実行遅延機能を使用した場合、指定したプログラムが以下に示す状態の、どれかになったときに実行速度を遅らせる。
・割込み禁止の解除〜割込み禁止の設定
・割込み禁止の解除〜テスト対象プログラムの終了
・排他制御の解放〜排他制御の再獲得
・排他制御の解放〜テスト対象プログラムの終了
・割込み禁止の設定〜排他制御の獲得
・排他制御の解放〜割込み禁止の解除
・排他制御の解放〜排他制御の獲得(割込み禁止の区間内)
なお、指定したプログラム以外のプログラムは、本来の実行速度で動作する。
図32〜図37は、プログラムの実行遅延機能を構成する各プログラムのフローチャートである。
図32〜図35は、監視部44のフローチャートである。
図36と図37は、決定部45のフローチャートである。
説明を理解しやすくするために、情報処理装置10のユーザからテスト対象プログラムとして、特定プログラム17が指定されていると仮定する。
プログラムの実行遅延機能は、図42〜図47と図49に記載したテーブルを参照および更新を行う。
≪OP151の処理≫
特定プログラム17が命令を実行したとき、監視部44(図26を参照)が動作する。監視部44は、情報処理装置のユーザがプログラムの起動遅延機能、入出力装置からの割込み遅延機能およびプログラムの実行遅延機能を、すべて使用していないかを判断する(OP151)。
すべての機能を使用していない場合(OP151:YES)、何もせずにエミュレート部47に制御を渡す。(OP155)
≪OP152の処理≫
どれかの機能を使用している場合(OP151:NO)、監視部44は、特定プログラム17が実行した命令コードを認識する。(OP153)。
≪OP153の処理≫
監視部44は、特定プログラム17が実行した命令コードがプログラムを起動する命令コードであるかを判断する(OP153)。
命令コードがプログラムを起動する命令コードでない場合(OP153:NO)、≪OP161の処理≫を行う。
≪OP154の処理≫
命令コードがプログラムを起動する命令コードの場合(OP153:YES)、監視部44は、図45に記載したテーブル(各プロセッサ機能部に設けられた制御テーブル)の初期設定を行う(OP155)。
初期化する領域は、以下のとおり。
・実行中である特定プログラム17の実行状態表示
・実行中である特定プログラム17の状態表示
・特定プログラム17に関する情報
・特定プログラム17の格納領域の先頭アドレス
・特定プログラム17の格納領域の終了アドレス
・並行動作する他のプログラム18の格納領域の先頭アドレス
・並行動作する他のプログラム18の格納領域の最終アドレス
・動作中に割込みを発生させるプログラムの格納領域の先頭アドレス
・動作中に割込みを発生させるプログラムの格納領域の最終アドレス
・使用中の排他制御用の情報退避域の数
起動するプログラムが、情報処理装置のユーザが指定したプログラムであった場合、監視部44は、以下の処理を行う。
・実行中である特定プログラム17の状態表示域の特定プログラム17の起動命令の実行状態をオンにする。
・特定プログラム17に関する情報
・特定プログラム17の格納領域の先頭アドレス
・特定プログラム17の格納領域の終了アドレス
・並行動作する他のプログラム18の格納領域の先頭アドレス
・並行動作する他のプログラム18の格納領域の最終アドレス
ユーザが指定したプログラムでなかった場合、監視部44は、何の処理も実施しない(特定プログラム17の起動命令の実行状態はオフを維持する)。
そのあとで、監視部44は、 ≪OP185の処理≫を行う。
≪OP161の処理≫
特定プログラム17が実行した命令コードがプログラムを起動する命令コードでない場合(OP153:NO)、監視部44は、情報処理装置のユーザがプログラムの実行遅延機能を使用しているかを判断する(OP161)。
プログラムの実行遅延機能を使用していない場合(OP161:NO)、 ≪OP182の処理≫を行う。
≪OP162の処理≫
プログラムの実行遅延機能を使用している場合(OP161:YES)、監視部44は、実行中のプログラムが情報処理装置のユーザが指定したプログラムであるか判断する(OP162)。
情報処理装置のユーザが指定したプログラムが実行中でない場合(OP162:NO)、監視部44は、 ≪OP182の処理≫を行う。
≪OP163の処理≫
情報処理装置のユーザが指定したプログラムが実行中の場合(OP162:YES)、監視部44は、特定プログラム17が実行した命令コードを認識する(OP163)。
≪OP164の処理≫
監視部44は、特定プログラム17が実行した命令コードが割込みを禁止または解除を行う命令コードであるかを判断する(OP164)。
割込みを禁止または解除を行わない命令コードの場合(OP164:NO)、 ≪OP171の処理≫を行う。
≪OP165の処理≫
割込みを禁止または解除を行う命令コードの場合(OP164:YES)、監視部44は、割込みを禁止または解除の命令コードに従って、図45に記載したテーブルの特定プログラム17の状態を更新する(OP165)。
割込みを禁止・解除の推移を過去の状態として記憶する。
≪OP166の処理≫
監視部44は、命令を実行したあとの割込みを禁止・解除の状態を現在の状態として記憶する(OP166)。図45に記載したテーブルの特定プログラム17の状態を更新する。
そのあとで、 ≪OP182の処理≫を行う。
≪OP171の処理≫
実行する命令コードが割込みを禁止または解除を行わない命令コードの場合(OP164:NO)、監視部44は、実行する命令コードが排他制御を獲得する命令コードであるかを判断する(OP171)。
命令コードが排他制御を獲得する命令コードでない場合(OP171:NO)、 ≪OP175の処理≫を行う。
≪OP172の処理≫
命令コードが排他制御を獲得する命令コードの場合(OP171:YES)、監視部44は、排他制御が獲得できる状態かを判断する(OP172)。
排他制御が獲得できない状態の場合(OP172:NO)、 ≪OP175の処理≫を行う。
≪OP173の処理≫
排他制御が獲得できる状態の場合(OP172:YES)、監視部44は、図45に記載したテーブルの特定プログラム17の状態を更新する。
図49に記載したテーブルを獲得し、以下に示すような排他制御を獲得したプログラムを識別するための情報を格納する(OP173)。
例:・排他制御を獲得する命令のアドレス
・排他制御用のテーブルのアドレス
≪OP174の処理≫
監視部44は、排他制御の推移を過去の状態として記憶する。
また、命令を実行したあとの排他制御の状態を、現在の状態として記憶する(OP174)。
図45に記載したテーブルの特定プログラム17の状態を更新する。
そのあとで、 ≪OP182の処理≫を行う。
≪OP175の処理≫
実行する命令コードが排他制御を獲得する命令コードでない場合(OP171:NO)、または、排他制御が獲得できない場合(OP172:NO)、監視部44は、排他制御の獲得を解放する命令コードであるかを判断するために、メモリの内容を書き換える命令かを判断する(OP175)。
メモリの内容を書き換える命令でない場合(OP175:NO)、 ≪OP182の処理≫を行う。
≪OP176の処理≫
メモリの内容を書き換える命令である場合(OP175:YES)、監視部44は、排他制御の獲得を解放する命令コードであるかを判断するために、書き換えるメモリは、排他制御用のテーブルかを判断する(OP176)。
排他制御用のテーブルでない場合(OP176:NO)、 ≪OP182の処理≫を行う。
≪OP177の処理≫
排他制御用のテーブルである場合(OP176:YES)、排他制御の獲得を解放する命令コードであるため、監視部44は、ログ情報データを採取するために、排他制御用のテーブルの内容をログ情報データに複写する(OP177)。
≪OP178の処理≫
監視部44は ≪OP173の処理≫で獲得した図49に記載したテーブルを解放する(OP178)。
≪OP181の処理≫
監視部44は、排他制御の獲得・解放の推移を過去の状態として記憶する。
また、命令を実行したあとの排他制御の状態を、現在の状態として記憶する(OP181)。
図45に記載したテーブルの特定プログラム17の状態を更新する。
そのあとで、 ≪OP182の処理≫を行う。
≪OP182の処理≫
監視部44は、自プロセッサの状態を他プロセッサで参照可能とするために、現在のPSWの内容を記録する(OP182)。
図45に記載したテーブルに格納する。
≪OP183の処理≫
決定部45への受け渡しパラメタを必要とする場合は、監視部44は、受け渡しパラメタを生成する(OP183)。
なお、現在は、監視部44から決定部45へ受け渡すパラメタはない。
≪OP184の処理≫
監視部44は、決定部45へ制御を受け渡す。
≪OP185の処理≫
プログラムにより、プログラムの起動時点から割込みを禁止した状態で動作するプログラムも存在する。このようなプログラムに対処するために、監視部44はプログラムの起動時のパラメタの内容に従って、以下の処理を行う(OP185)。
・プログラムの起動時から割込みを禁止した状態で動作するプログラムの場合、監視部44は、図45に記載したテーブルの実行中である特定プログラム17の状態表示の初期設定(注)を行う。
(注)実行中である特定プログラム17の状態表示に存在する現在の割込み禁止状態(1ビット目)はオンが初期値となる。
図36および図37は、プログラムの実行遅延機能の決定部45のフローチャートである。
プログラムの実行遅延機能のソフトウェア構成は、図26を参照。
説明を理解しやすくするために、情報処理装置10のユーザからテスト対象プログラムとして、特定プログラム17が指定されていると仮定する。
プログラムの実行遅延機能は、図42〜図47と図49に記載したテーブルを参照および更新を行う。
≪OP191の処理≫
決定部45は、監視部44から制御が受け渡されたときに動作し、1ステップごとに実行速度を遅らせるか否かを決定する。
決定部45は、特定プログラム17が、過去において割込み禁止と解除を行ったかを判断する(OP191)。
過去において割込み禁止と解除を行っている場合(OP191:YES)、 ≪OP197の処理≫を行う。
≪OP192の処理≫
過去において割込み禁止と解除を行っていない場合(OP191:NO)、決定部45は、現在、割込み禁止の状態かを判断する(OP192)。
割込み禁止の状態でない場合(OP192:NO)、決定部45は、 ≪OP201の処理≫を行う。
≪OP193の処理≫
割込み禁止の状態である場合(OP192:YESまたはOP197:YES)、決定部45は、現在、排他制御を獲得しているかを判断する(OP193)。
排他制御を獲得している場合(OP193:YES)、決定部45は、エミュレート部47に制御を渡す。
≪OP194の処理≫
排他制御を獲得していない場合(OP193:NO)、決定部45は、実行中のプログラムが排他制御処理を持つプログラムかを判断する(OP194)。
プログラムが排他制御処理を持たないプログラムである場合(OP194:NO)、決定部45は、エミュレート部47に制御を受け渡す。
≪OP195の処理≫
プログラムが排他制御処理を持つプログラム場合(OP194:YES)または、決定部45は命令の実行を遅らせるためにプログラムの実行速度の遅延処理を呼び出す(OP195)。
≪OP196の処理≫
プログラムの実行速度の遅延処理から復帰したとき、決定部45は、エミュレート部47に制御を受け渡す(OP196)。
≪OP197の処理≫
過去において割込み禁止と解除を行っている場合(OP191:YES)、決定部45は、現在、割込み禁止の状態かを判断する(OP197)。
割込み禁止の状態である場合(OP197:YES)、 ≪OP193の処理≫を行う。
割込み禁止の状態でない場合(OP197:NO)、命令の実行を遅らせるためにプログラムの実行速度の遅延処理を呼び出す(OP195)。
プログラムの実行速度の遅延処理から復帰したとき、決定部45は、エミュレート部47に制御を受け渡す(OP196)。
≪OP201の処理≫
過去に一度も割込み禁止が行われていない場合(OP192:NO)、決定部45は、過去に排他制御の獲得と解放が行われたかを判断する(OP201)。
排他制御の獲得と解放が行われていない場合(OP201:NO)、決定部45は、エミュレート部47に制御を渡す(OP204)。
≪OP202の処理≫
過去に排他制御の獲得と解放が行われている場合(OP201:YES)、決定部45は、現在、排他制御の獲得が行われているかを判断する(OP202)。
排他制御の獲得が行われている場合(OP202:YES)、決定部45は、エミュレート部47に制御を受け渡す(OP204)。
≪OP203の処理≫
排他制御の獲得が行われていない場合(OP202:NO)、決定部45は、命令の実行を遅らせるためにプログラムの実行速度の遅延処理を呼び出す(OP203)。
プログラムの実行速度の遅延処理から復帰したとき、決定部45は、エミュレート部47に制御を受け渡す(OP204)。
実施例3に係る情報処理装置10の特定プログラム17の実行速度を遅らせる範囲を決定する処理によれば、割込み禁止または割込み禁止の解除、および排他制御の獲得または排他制御の解除の制御における特定プログラム17の不具合は、割込み禁止を設定するタイミングが遅い、または割込み禁止解除するタイミングが早い。
排他制御の獲得するタイミングが遅い、または排他制御の解放するタイミングが早い。などのタイミングに関するものが多い。
そのため、割込み禁止または割込み禁止の解除、および排他制御の獲得または排他制御の解除の制御におけるプログラムの不具合は、複数のプログラムが並行して実行したときに、トラブル現象が顕在化する。
また、プログラムの不具合が顕在化する区間は非常に短いため、プログラムの不具合を検出することが難しい。
本処理は、図36〜図39に示す区間でプログラムの実行速度を遅くすることにより、特定プログラム17の不具合が顕在化する区間を引き延ばすことができる。そして、その区間内に他のプログラムを並行して実行して動作させることで、特定プログラム17に潜在している不具合が顕在化しやすくなる。
図38は、ログ情報データの採取機能を構成するプログラム構造を示す図である。
第1データ域〜第nデータ域は、各プロセッサ機能部に対応して、共有メモリ機能部40に作成する。第1データ域40A〜第nデータ域40−nは、各プロセッサ機能部の情報を格納する(図45を参照)。
採取部48は、第1データ域40A〜第nデータ域40−nから有効な情報を取り出し、取り出したデータをデータ格納域49へ複写する。
なお、有効な情報には、以下のような情報がある。
・トラブル現象が発生した場合の原因調査に使用できるデータ
例:テスト対象プログラムの状態が変化した時点における他のプロセッサ機能部(CPU)の状態
・テスト対象プログラムのテスト状況を確認できるデータ
格納データ域49は、採取したログ情報データの集約と、ディスク装置15に出力するための作業領域である。格納データ域49は、共有メモリ機能部40に作成される。
出力部50は、格納データ域49に採取されたログ情報データをディスク装置15に出力する。
図39は、ログ情報の採取機能の採取部48のフローチャートである。
採取部48は、各プロセッサ機能部の作業域(図38に記載の第1データ域40A〜第nデータ域40−n)から有効な情報を取り出すプログラムである。
ログ情報の採取機能は、図42〜図47と図49〜図52に記載したテーブルを参照および更新を行う。
≪OP221の処理≫
採取部48は、情報処理装置のユーザからログ情報データの採取機能の停止が指示されたかを判断する(OP221)。
ログ情報データの採取機能の停止が指示されていない場合(OP221:NO)、 ≪OP222の処理≫を行う。
≪OP227の処理≫
ログ情報データの採取機能の停止が指示されている場合(OP221:YES)、採取部48は、採取した残りのログ情報データを完成させる(OP227)。
≪OP228の処理≫
採取部48は、完成させたログ情報データをディスク装置15に出力するために、出力部50に通知する(OP228)。
≪OP222の処理≫
ログ情報データの採取機能の停止が指示されていない場合(OP221:NO)、採取部48は、特定プログラム17の状態が変化したかを判断する(OP222)。
特定プログラム17の状態が変化していない場合(OP222:NO)、 ≪OP221の処理≫を行う。
≪OP223の処理≫
特定プログラム17の状態が変化した場合(OP222:YES)、採取部48は、各プロセッサ機能部の作業域(図38の第1データ域40A〜第nデータ域40−n)から有効な情報を取り出す(OP223)。
≪OP224の処理≫
採取部48は、各プロセッサ機能部の作業域から取り出したデータを、格納データ域49に編集して格納する(OP224)。
≪OP225の処理≫
採取部48は、格納データ域49に格納したデータ量がディスク装置15に出力する単位量以上になったかを判断する(OP225)。
出力する単位量未満の場合(OP225:NO)、 ≪OP221の処理≫を行う。
≪OP226の処理≫
格納データ域49に格納したデータ量が、ディスク装置15に出力する単位量以上になった場合(OP225:YES)、採取部48は、ログ情報データをディスク装置15に出力するために、出力部50に通知する(OP226)。そのあと、 ≪OP221の処理≫を行う。
図40と図41は、本技術によるプログラムの起動遅延機能、プログラムの実行遅延機能および入出力装置からの割込み遅延機能で使用するテーブルのリンク関係を示す図である。
図40の作業域に対するポインタテーブル81は、ユーザから指示された機能の情報を示す第1メモリマップ71(図42)、ログ情報データの管理情報を示す第5テーブル78(図50)およびログ情報データの格納域49の内容を示す第6テーブル80(図52)のアドレスを格納する。
ポインタテーブル81を参照することで、各テーブルの存在場所を知ることができる。
なお、ログ情報データの管理情報を示す第5テーブル78(図50)とログ情報データの格納域49の内容を示す第6テーブル80(図52)は、複数個持つことができる。
図41のポインタテーブル82は、各プロセッサ機能部(CPU)と各プロセッサ機能部に設けられた制御テーブルである第2テーブル73の対応づけを行うテーブルである。
ポインタテーブル82は、プロセッサ番号(CPU番号)の順に作成する。
ポインタテーブル82を参照することで、各プロセッサ機能部に設けられた制御テーブルの存在場所を知ることができる。
各プロセッサ機能部に設けられた制御テーブルである第2テーブル73から割込みの遅延機能で使用される第3テーブル76(図48)および排他制御の内容を示す第4テーブル77をリンクする。
割込みの遅延機能で使用される第3テーブル76(図48)と排他制御の内容を示す第4テーブル77は、複数個、作成されることがある。
なお、割込みの遅延機能で使用される第3テーブル76(図48)は、入出力装置からの割込み遅延機能で作成し、排他制御の内容を示す第4テーブル77は、プログラムの起動遅延機能で作成する。
図42と図43は、ユーザから指示された機能の情報を示す第1メモリマップ71の内容を示す図である。未記載の部分は未使用である。
本テーブルは、情報処理装置10のユーザから指示されたデータを格納するテーブルである。主な内容を以下で説明する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の0ビット目>
本ビットは、情報処理装置10のユーザからプログラムの起動遅延機能の使用が指示された場合、オンにする。
本ビットは、情報処理装置10のユーザからプログラムの起動遅延機能の使用が指示されたか否かの判断に使用する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の1ビット目>
本ビットは、情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示された場合、オンにする。
本ビットは、情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用が指示されたか否かの判断に使用する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の2ビット目>
本ビットは、情報処理装置10のユーザからプログラムの実行遅延機能の使用が指示された場合、オンにする。
本ビットは、情報処理装置10のユーザからプログラムの実行遅延機能の使用が指示されたか否かの判断に使用する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の8ビット目>
本ビットは、情報処理装置10のユーザからプログラムの起動遅延機能の使用の指示で、並行して動作させるプログラムが指定された場合、オンにする。
本ビットは、プログラムの起動遅延機能で並行して動作させるプログラムが指定されたか否かの判断に使用する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の9ビット目>
本ビットは、情報処理装置10のユーザから入出力装置からの割込み遅延機能の使用の指示で、動作中に割込みを発生させるプログラムが指定された場合、オンにする。
本ビットは、入出力装置からの割込み遅延機能で動作中に割込みを発生させるプログラムが指定されたか否かの判断に使用する。
<ユーザから指示された機能の情報(オフセット位置:X’00’) の15ビット目>
本ビットは、情報処理装置10のユーザからログ情報データの採取が停止された場合、オンにする。
本ビットは、ログ情報データの採取機能で停止が指示されたか否かの判断に使用する。
図42と図44は、特定プログラム17に関する情報の内容を示す図である。未記載の部分は未使用である。
<特定プログラム17に関する情報(オフセット位置:X’02’) の0ビット目>
本ビットは、情報処理装置10のユーザからプログラムの実行遅延機能の使用の指示で、指定されたプログラムが排他制御を行うロジックを持っていた場合、オンにする。
本ビットは、プログラムの実行遅延機能で、プログラムが排他制御を行う可能性があるか否かの判断に使用する。
特定プログラム17が存在する領域の先頭アドレスと特定プログラム17が存在する領域の最終アドレスは、プログラムの実行遅延機能が対象とするプログラムか否かの判断で使用する。
並行して動作させる他のプログラム18が存在する領域の先頭アドレスと並行して動作させる他のプログラム18が存在する領域の最終アドレスは、プログラムの起動遅延機能が、プログラムの起動を遅らせるか否かの判断で使用する。
動作中に割込みを発生させるプログラムが存在する領域の先頭アドレスと動作中に割込みを発生させるプログラムが存在する領域の最終アドレスは、入出力装置からの割り込みが発生したとき、入出力装置からの割込み遅延機能が割り込みを発生させるか、遅らせるかの判断で使用する。
図45〜図47は、各プロセッサ機能部に設けられた制御テーブルの内容である。
本テーブルは、当該プロセッサ機能部の状態を格納したテーブルである。
主な内容を以下で説明する。
図45と図46は、実行中である特定プログラム17の状態表示の内容を示す図である。未記載の部分は未使用である。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の0ビット目>
本ビットは、対象プログラムが過去に割込み禁止・解除を行った場合、オンにする。
本ビットは、プログラムの実行遅延機能で、対象プログラムが過去に割込み禁止・解除を行ったか否かの判断に使用する。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の1ビット目>
本ビットは、現在、対象プログラムが割込み禁止を行った場合、オンにする。
本ビットは、プログラムの実行遅延機能で、対象プログラムが現在、割込み禁止を行っているか否かの判断に使用する。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の2ビット目>
本ビットは、過去に排他制御の獲得・解放を行った場合、オンにする。
本ビットは、プログラムの実行遅延機能で、対象プログラムが過去に排他制御の獲得・解放を行ったか否かの判断に使用する。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の3ビット目>
本ビットは、現在、対象プログラムが排他制御の獲得を行った場合、オンにする。
本ビットは、プログラムの実行遅延機能で、対象プログラムが現在、排他制御の獲得を行っているか否かの判断に使用する。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の8ビット目>
本ビットは、当プロセッサがプログラムの起動遅延機能を開始したとき、オンにする。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の9ビット目>
本ビットは、当プロセッサが入出力装置からの割込み遅延機能を開始したとき、オンにする。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の10ビット目>
本ビットは、当プロセッサがプログラムの実行遅延機能を開始したとき、オンにする。
<実行中である特定プログラム17の状態表示(オフセット位置:X’00’) の15ビット目>
本ビットは、当プロセッサでプログラムを起動する命令が実行されたとき、オンにする。
本ビットは、プロセッサ機能部に設けられた制御テーブルの初期化処理を行うときに、参照する。
図45と図47は、特定プログラム17に関する情報の内容を示す図である。未記載の部分は未使用である。
主な内容を以下で説明する。
<特定プログラム17に関する情報(オフセット位置:X’02’) の0ビット目>
本ビットは、図42の特定プログラム17に関する情報と同じ内容であり、特定プログラム17に関する情報を複写して使用する。
プロセッサ機能部の時間割込み回数は、ハードウェアからの時間割り込みの回数を格納する。プロセッサ機能部の時間割込み回数は時間の経過を認識するために使用する。
プロセッサ機能部のPSWの内容は、自プロセッサ機能部の状態を他プロセッサ機能部から参照させるために格納する。
他プロセッサ機能部の状態を参照するときに使用する。
他プロセッサ機能部の状態を認識するために使用する。
PSW: Program Statu Word(プログラム状態語)
特定プログラム17の格納領域の先頭アドレスと特定プログラム17の格納領域の最終アドレスは、自プロセッサ機能部が対象としているプログラムがローディングされている先頭アドレスと最終アドレスを格納する。
プログラムの実行遅延機能が自プロセッサ機能部で動作している対象プログラムを認識するために、使用する。
例:プロセッサ機能部のPSWの内容の中のアドレス部が、特定プログラム17の格納領域の先頭アドレスと特定プログラム17の格納領域の最終アドレスの範囲内にある場合、特定プログラム17が実行中と判断する。
並行動作する他のプログラム18の格納領域の先頭アドレスと並行動作する他のプログラム18の格納領域の最終アドレスは、プログラムの起動遅延機能が、他のプロセッサ機能部で並行動作する他のプログラム18が実行中か否かの判断で使用する。
動作中に割込みを発生させるプログラムの先頭アドレスと動作中に割込みを発生させるプログラムの最終アドレスは、入出力装置からの割り込みが発生したとき、他のプロセッサ機能部で割込みを発生させるプログラムが実行中か否かの判断で使用する。
割込み遅延中の入出力装置60の数は、当プロセッサ機能部で割り込みを遅らせている入出力装置の数を格納する。
使用中の排他制御用の情報退避域の数は、当プロセッサ機能部でプログラムの実行遅延機能が対象としているプログラムが獲得した排他制御の数を格納する。
入出力装置60からの割込み情報退避域のアドレスは、当プロセッサ機能部で割り込みを遅らせている入出力装置からの割込み情報を退避した領域(図48を参照)の位置を示す。割込み遅延中の入出力装置60の数だけ存在する。
排他制御用の情報退避域のアドレスは、当プロセッサ機能部でプログラムの実行遅延機能が対象としているプログラムが獲得した排他制御の情報退避域(図49を参照)の位置を示す。プログラムの実行遅延機能が対象としているプログラムが獲得した排他制御の数だけ存在する。
図48は、入出力装置からの割り込みが発生して、入出力装置からの割込み遅延機能が割り込みを遅らせるときの、入出力装置からの割込み情報の退避域である。
割り込みが発生した入出力装置の機番、入出力装置からの割込み情報および管理情報で構成する。管理情報には、本テーブルが使用中か否かの情報を設ける。
図49は、プログラムの実行遅延機能が対象とするプログラムが獲得した排他制御の情報の退避域である。
排他制御を獲得したプログラムを識別するための情報、排他制御用のテーブルアドレスおよび管理情報で構成する。管理情報には、本テーブルが使用中か否かの情報を設ける。
なお、排他制御を獲得したプログラムを識別するための情報は、OSの種類によって異なる。
図50と図51は、ログ情報データの採取機能が採取したログ情報データを管理するための、管理テーブルである。
図50は、全体図を記載し、図51は、ログ情報データを出力するプログラムの状態表示情報の内容を示す。
主な内容を以下で説明する。
ログ情報データを出力するプログラムの状態表示情報の内容を説明する。
<ログ情報データを出力するプログラムの状態表示情報(オフセット位置:X’00’) の0ビット目>
本ビットは、ログ情報データを出力するプログラムが起動済みの場合、ONにする。出力プログラムが起動されているか否かの判断に使用する。
<ログ情報データを出力するプログラムの状態表示情報(オフセット位置:X’00’) の8ビット目>
本ビットは、ログ情報データを出力するディスク装置に異常が発生した場合、ONにする。
ログ情報データを出力するディスク装置が正常か、異常かの判断に使用する。
図52は、ログ情報データの格納域の内容を示す図である。
本テーブルは、出力バッファ内の次のデータ格納アドレス、プロセッサ機能部の番号(CPU番号)、データを採取した時間、変化する前のプログラムの動作状態および変化した後のプログラムの動作状態を格納する。
開示の技術は、個々のプログラムの実行タイミングを制御できない場合においても、プログラムの実行タイミングを、他のプログラムの動作に併せて制御できる情報処理装置および情報処理装置の制御方法を提供することを可能とする。
10 情報処理装置
11 共有メモリ
12 エミュレートプログラム
13A〜13D CPU
14A〜14D エミュレート部
15 ディスク装置
16 ログ情報ファイル
17 特定プログラム
18 他のプログラム
19 バス
20 格納機能部
21 共有メモリ機能部
21A〜21C 共有メモリ機能部
22A、22B、22n プロセッサ機能部
23 指示部
24 ログ情報ファイル
25 アプリケーション層
26 ユーザプログラム
27 OS層
28A〜28C OSプログラム
29A、29B プログラム起動部
30 ファーム層
31 エミュレータプログラム
32 第1遅延機能部
33 第2遅延機能部
34 第3遅延機能部
35 格納域
36 ドライバプログラム
37 データ格納部
38 起動元プログラム
39 呼出し元プログラム
40 共有メモリ機能部
41 割込み処理プログラム
42 第4遅延機能部
43 再起動プロセス部
44 監視部
45 決定部
46 第5遅延機能部
47 エミュレート部
48 採取部
49 データ格納域
50 出力部
60 入出力装置

Claims (15)

  1. 複数のプログラムを格納した格納部、前記格納部に格納された前記複数のプログラムを実行する複数のプロセッサ、および、前記複数のプロセッサが実行する命令をエミュレートするエミュレート部を有し、
    前記エミュレート部に対し、前記格納部に格納されている前記複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、前記指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示する指示部と、
    前記エミュレート部によりエミュレートされた、前記複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する履歴蓄積部と、
    を有することを特徴とする情報処理装置。
  2. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、前記プロセッサの起動を遅延することを特徴とする請求項1記載の情報処理装置。
  3. 前記エミュレート部は、前記指定されたプログラムが割込み禁止設定または割込み禁止解除を行うとき、前記指定されたプログラムを実行する前記プロセッサの実行速度を遅延させることを特徴とする請求項1記載の情報処理装置。
  4. 前記エミュレート部は、前記指定されたプログラムが排他制御の獲得または排他制御の解放を行うとき、前記指定されたプログラムを実行するプロセッサの実行速度を遅延させることを特徴とする請求項1記載の情報処理装置。
  5. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、入出力装置からの割込みを遅延させることを特徴とする請求項1記載の情報処理装置。
  6. 複数のプログラムを格納した格納部、前記格納部に格納された前記複数のプログラムを実行する複数のプロセッサ、および、前記複数のプロセッサが実行する命令をエミュレートするエミュレート部を有する情報処理装置の制御方法であって、
    前記エミュレート部に対し、前記格納部に格納されている前記複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、前記指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示し、
    前記エミュレート部によりエミュレートされた、前記複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する
    ことを特徴とする情報処理装置の制御方法。
  7. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、前記プロセッサの起動を遅延することを特徴とする請求項6記載の情報処理装置の制御方法。
  8. 前記エミュレート部は、前記指定されたプログラムが割込み禁止設定または割込み禁止解除を行うとき、前記指定されたプログラムを実行する前記プロセッサの実行速度を遅延させることを特徴とする請求項6記載の情報処理装置の制御方法。
  9. 前記エミュレート部は、前記指定されたプログラムが排他制御の獲得または排他制御の解放を行うとき、前記指定されたプログラムを実行するプロセッサの実行速度を遅延させることを特徴とする請求項6記載の情報処理装置の制御方法。
  10. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、入出力装置からの割込みを遅延させることを特徴とする請求項6記載の情報処理装置の制御方法。
  11. 複数のプログラムを格納した格納部、前記格納部に格納された前記複数のプログラムを実行する複数のプロセッサ、および、前記複数のプロセッサが実行する命令をエミュレートするエミュレート部を有する情報処理装置の制御をコンピュータに実行させる情報処理装置の制御プログラムであって、
    コンピュータに、
    前記エミュレート部に対し、前記格納部に格納されている前記複数のプログラムのうち、プロセッサに実行させるプログラムを指定すると共に、前記指定されたプログラムが実行されるとき、実行するプロセッサの実行を遅延させるよう指示し、
    前記エミュレート部によりエミュレートされた、前記複数のプロセッサの各々が処理したプログラムの実行タイミングを含む実行履歴を蓄積する
    ことを特徴とする情報処理装置の制御プログラム。
  12. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、前記プロセッサの起動を遅延するように指示することを特徴とする請求項11記載の情報処理装置の制御プログラム。
  13. 前記エミュレート部は、前記指定されたプログラムが割込み禁止設定または割込み禁止解除を行うとき、前記指定されたプログラムを実行する前記プロセッサの実行速度を遅延させることを特徴とする請求項11記載の情報処理装置の制御プログラム。
  14. 前記エミュレート部は、前記指定されたプログラムが排他制御の獲得または排他制御の解放を行うとき、前記指定されたプログラムを実行する前記プロセッサの実行速度を遅延させることを特徴とする請求項11記載の情報処理装置の制御プログラム。
  15. 前記エミュレート部は、前記プロセッサが前記指定されたプログラムを実行するとき、入出力装置からの割込みを遅延させるように指示することを特徴とする請求項11記載の情報処理装置の制御プログラム。
JP2013539417A 2011-10-20 2011-10-20 情報処理装置、情報処理装置の制御方法および制御プログラム Pending JPWO2013057769A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013539417A JPWO2013057769A1 (ja) 2011-10-20 2011-10-20 情報処理装置、情報処理装置の制御方法および制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013539417A JPWO2013057769A1 (ja) 2011-10-20 2011-10-20 情報処理装置、情報処理装置の制御方法および制御プログラム

Publications (1)

Publication Number Publication Date
JPWO2013057769A1 true JPWO2013057769A1 (ja) 2015-04-02

Family

ID=52821521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013539417A Pending JPWO2013057769A1 (ja) 2011-10-20 2011-10-20 情報処理装置、情報処理装置の制御方法および制御プログラム

Country Status (1)

Country Link
JP (1) JPWO2013057769A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03158936A (ja) * 1989-11-17 1991-07-08 Hitachi Ltd プログラムのテスト方法
JPH0877039A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd テスト方法
JPH11238002A (ja) * 1998-02-23 1999-08-31 Hitachi Ltd シミュレーション方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03158936A (ja) * 1989-11-17 1991-07-08 Hitachi Ltd プログラムのテスト方法
JPH0877039A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd テスト方法
JPH11238002A (ja) * 1998-02-23 1999-08-31 Hitachi Ltd シミュレーション方式

Similar Documents

Publication Publication Date Title
JP4222370B2 (ja) デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US8930950B2 (en) Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
KR20070108060A (ko) 빠른 부팅 웨이크-업을 실행하는 시스템
KR101438990B1 (ko) 시스템 테스트 방법
JP5026494B2 (ja) 高速で起動するコンピュータ
CN108351840B (zh) 车辆控制装置
WO2015102875A1 (en) Checkpointing systems and methods of using data forwarding
JP2011164971A (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
US9606825B2 (en) Memory monitor emulation for virtual machines
Bovenzi et al. Towards fast OS rejuvenation: An experimental evaluation of fast OS reboot techniques
JP2011232986A (ja) 情報処理装置及びメモリダンプ採取方法
US20090217087A1 (en) Computer device, continuing operation method for computer device, and program
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
CN105474174B (zh) 控制时间密集的指令
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2016066139A (ja) 車両制御装置
WO2013057769A1 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP5452336B2 (ja) 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム
JPWO2013057769A1 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP5557612B2 (ja) 計算機及び転送プログラム
US9043654B2 (en) Avoiding processing flaws in a computer processor triggered by a predetermined sequence of hardware events
US9176806B2 (en) Computer and memory inspection method
JP5299681B2 (ja) プログラム検査方法
JP2010102441A (ja) 情報処理装置、情報処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160412