JPH0877039A - テスト方法 - Google Patents

テスト方法

Info

Publication number
JPH0877039A
JPH0877039A JP6210915A JP21091594A JPH0877039A JP H0877039 A JPH0877039 A JP H0877039A JP 6210915 A JP6210915 A JP 6210915A JP 21091594 A JP21091594 A JP 21091594A JP H0877039 A JPH0877039 A JP H0877039A
Authority
JP
Japan
Prior art keywords
program
execution
programs
test method
test
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
JP6210915A
Other languages
English (en)
Inventor
Yoshio Wada
嘉夫 和田
Hajime Fujimoto
肇 藤本
Naoko Kumazawa
尚子 熊澤
Kohei Seki
光平 関
Shigeru Ogawa
茂 小川
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
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 Hitachi Ltd, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP6210915A priority Critical patent/JPH0877039A/ja
Publication of JPH0877039A publication Critical patent/JPH0877039A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】本発明は、複数プログラムの中から、競合を期
待するプログラムでの競合発生確率を向上させることに
ある。 【構成】マルチプロセッサの一方のプロセッサ側の特定
プログラムが動作中に、別の周期起動プログラムを起動
し(104)、前述の特定プログラムの動作終了後、周
期起動プログラムを停止すること(107)。さらに、
上記の周期起動プログラムを起動する処理をサブプログ
ラム化すること(102)。 【効果】競合を期待するプログラム内での競合発生確率
が向上し、従来困難であったりソースの競合テストを容
易に行うことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、テスト方法に係り、特
に実行時間の遅延をはかってなるプログラムのテスト方
法に関する。
【0002】
【従来の技術】電子計算機のOSにおいて、2以上のプ
ログラムが時分割に作動するマルチプログラミングは一
般的である。これに加え、CPU性能の定期的な拡張を
可能とするマルチプロセッサシステムが登場している。
マルチプロセッサシステムは、2以上のCPUが同一の
主メモリを共有し、複数のプログラムが同時に作動する
システムである。
【0003】従来のマルチプログラミング下での技術と
しては、特開平3−158936 号公報のようにプログラムの
一部分の区間にトレース割り込みを発生させ、見かけ上
プログラムの命令の実行を遅くし、複数プログラムから
の共有リソース操作部分を競合させることにより、共有
リソース操作におけるテストを行う方法がある。
【0004】
【発明が解決しようとする課題】マルチプログラミング
OS下で並行に処理されるプログラム同士が、相互に協
調して仕事をするためには、2つ以上のプログラムが主
メモリ上の共通のデータ領域(共用データ)をアクセス
することが必要であり、これはマルチプロセッサシステ
ムにおいても同様である。
【0005】さらに、複数のプログラムは同時に共用デ
ータを更新すると、データの不整合を生じることがあ
る。この場合の不整合とは、例えばあるプログラムが更
新したはずのデータが、実際には更新されていないこと
である。これもマルチプロセッサシステムにおいても同
様である。
【0006】競合管理処理プログラムのテストは、意図
的に共用データの競合を発生させることが必要であるた
め、一つのプログラムが共用データの更新処理を実行中
に他のプログラムの共用データの更新処理を実行しなけ
ればならない。
【0007】実際の共用データの更新処理の実行時間を
もとに、一つのプログラムが共用データの更新処理を実
行しようとしたとき、他のプログラムが共用データの更
新処理を実行中である可能性を考えると、マルチプログ
ラミング下では、現実に不都合が発生するのは、24時
間稼働するオンラインシステムで数年に一度程度であ
る。しかし、複数プログラムの同時実行が可能となるマ
ルチプロセッサシステムでは、更新処理の競合確率が高
くなると考えられ、また競合管理処理プログラムの作成
誤りは、システムダウンにつながる可能性が高いことを
考慮すると、テストで確実に発見することが必要であ
る。
【0008】上記競合管理処理プログラムのテストを確
実に行うためには、命令を遅く実行することにより、共
用データの更新処理の実行時間を長くすることで、共用
データの競合が発生する可能性を大きくする必要があ
る。
【0009】従来例の特開平3−158936 号公報では、更
新処理の実行時間を長くするため、更新処理を行うプロ
グラム自身に処理を追加し、ハード命令をソフトウエア
でシミュレーションして、1命令毎の実行時間を長くす
る方法をとっている。
【0010】しかし本発明は、更新処理を行うプログラ
ムを改造せずに、共用データの競合が発生する可能性を
大きくするものである。本発明は、マルチプロセッサシ
ステムでは複数プログラムが時分割でなく、同時実行さ
れることを利用し、更新処理を行うプログラム間での更
新処理プログラムに実行速度差をつけ、競合管理処理の
テストを行うものである。
【0011】
【課題を解決するための手段】図1が本発明の原理図で
ある。本発明は、(1)まず、テスト対象プログラム及
びそのプログラムが遅延対象か否かを指定し(10
2)、テスト対象プログラム起動用のサブプログラムを
実行させる(103)。
【0012】(2)テスト対象プログラム起動用のサブ
プログラムは、テスト対象プログラムの遅延対象か否か
を判定し(104)、遅延対象であれば、負荷用プログ
ラムを起動した後(105)、テスト対象プログラムを
実行させ(106)、遅延対象でなければテスト対象プ
ログラムのみを実行させる(106)。(3)テスト対
象プログラムが遅延対象の場合、同プログラムの実行終
了後、負荷用プログラムの実行を停止する(108)。
(4)この負荷用プログラムは、テスト対象プログラム
より優先レベルが高く、また実行時間を任意に設定可能
なプログラムである。
【0013】尚、この負荷用プログラムは、ある時間を
周期として起動される周期起動プログラムであり、周期
は任意に指定可能である。
【0014】
【作用】例としてプロセッサ1を遅延対象、プロセッサ
2を通常速度での実行用とする。
【0015】テストプログラムは起動されると、動作プ
ロセッサ番号とテスト対象プログラム名を対で指定し、
サブプログラムを呼び出す。サブプログラムでは、テス
ト対象プログラムが遅延対象で尚かつプロセッサ1であ
れば、負荷用プログラムが起動され、その後テスト対象
プログラムが呼び出される。
【0016】負荷用プログラムは起動されると、まず一
定時間動作後、一定時間休止する。その間、テスト対象
プログラムが実行される。テスト対象プログラム実行
中、負荷用プログラムの休止期間が過ぎると、再度負荷
用プログラムに起動がかかり、割り込みが発生して負荷
用プログラムが再度実行される。
【0017】このように、実行速度遅延用のテスト対象
プログラムは、負荷用プログラムにより一定周期で割り
込まれるため、時間的に小刻みに実行されることにな
り、見かけ上実行速度が遅延する。これに対し、遅延対
象でないプロセッサ上では、テスト対象プログラムが遅
延すること無く動作する。その結果、共有データをアク
セスする2つのテスト対象プログラム間に実行速度差が
生まれる。
【0018】
【実施例】以下、本発明をリソースの競合テストに用い
た実施例で図2,図3,図4,図5,図6により説明す
る。
【0019】リソースの競合テストとは、複数のプログ
ラム間で共有する資源へのアクセスの競合を発生させる
ことによる、競合管理処理部分の相互排除についてのテ
ストである。本実施例では、処理装置が2台のマルチプ
ロセッサシステムの場合を説明する。図2が計算機シス
テムのブロック図であり、2台の処理装置201,主メ
モリ202,周辺装置203より成る。処理装置(プロ
セッサ)は命令制御部204,実行ユニット205から
成る。
【0020】図3を用いてマルチプロセッサシステムで
のプログラムの実行形態を説明する。3本のプログラム
がプログラム1(301),プログラム2(302),
プログラム3(303)の順に起動されると、OSのス
ケジューラ304が各々のプログラムをプロセッサ1
(305),プロセッサ2(306)のどちらに割り付
けるかを決定する。例えば、プロセッサ1(305)が
プログラムを実行中でなければ、プログラム1(30
1)にプロセッサ1(305)を割り付けて実行する。
次にプログラム2(302)が起動されると、プロセッ
サ1(305)は実行中であり、プロセッサ2(306)
は実行中でないため、プロセッサ2(306)を割り付け
実行する。さらに、プログラム3(303)が起動された
とき、プロセッサ1(305)はプログラムの実行を終了
しているため、プログラム3(303)が割り付けられ、
実行される。このように、マルチプロセッサシステムで
は、プログラムの並行実行が可能である。尚、上記はプ
ログラムの実行が待たされない場合である。
【0021】図4により、プログラムの実行中、待ちが
発生する場合を説明する。3本のプログラムがプログラ
ム1,プログラム2,プログラム3の順に起動され、プ
ログラム3はプログラム1より優先レベルが高いものと
する。まず、プログラム1には空いているプロセッサ1
を割り付け、実行する。その後、プログラム2が起動さ
れると空いているプロセッサ2が実行する。さらにプロ
グラム3が起動された時、プロセッサ1,プロセッサ2
共にプログラム実行中の場合、プログラム3にはプロセ
ッサ1を割り付けるが、プログラムの優先レベルはプロ
グラム1よりプログラム3の方が高いため、割り込みが
発生しプログラムの実行は中断され、プログラム3が実
行される。プログラム3の実行が終了後、プログラム1
の実行が再開される。このように、割り付けるべきプロ
セッサの空きがない場合、プロセッサの優先レベルの高
いプログラムが優先して実行される。
【0022】図5を用いて競合管理処理プログラムの動
作を説明する。一般に、競合管理プログラムは、共有リ
ソースのアクセスの前後に動作する。動作の形態として
は、アプリケーションプログラムからOSのマクロや標
準ソフトのサブルーチンとして呼び出されることが多
い。図5で、UPがアプリケーションプログラム,競合
管理プログラムがSP1,SP2である。各プログラム
の処理時間はアプリケーションプログラムを500〜5
000msecとすると、競合管理処理プログラムは、0.
02〜0.5msecであり、全体時間における競合管理処
理プログラムの占める割合は極めて小さい。
【0023】競合管理処理プログラムのテストを効率良
く行うには、アプリケーションプログラム中で、競合管
理プログラム以外の処理部分をなるべく少なく設計した
テストプログラムを使用することが前提である。次にテ
ストプログラム全体の処理時間に対して、競合管理処理
プログラムの実行速度を遅くする方法を図6を用いて説
明する。図6でTS1,TS2はテストプログラム、P
1,P2は競合管理処理プログラム、SがP1,P2呼
び出し用のサブルーチン、Lが負荷用プログラムであ
る。例として、プロセッサ1上で動作するP1の実行速
度を遅延する場合を示す。
【0024】まず、プロセッサ1ではテストプログラム
TS1が動作し、テスト対象をP2としてSを呼び出
す。P2は遅延対象でないため、Sは負荷用プログラム
を呼び出さず、P2のみを呼び出す。P2の実行終了
後、しばらくして再度Sがテスト対象をP1として動作
する。Sは、P1が遅延対象であるため、まず負荷用プ
ログラムLを周期起動する。周期起動は、OSの機能を
利用し、周期Tとプログラム名を指定して行う。
【0025】負荷用プログラムLは、テストプログラム
TS1より優先レベルが高いため、TS1の実行(実際
にはサブルーチンSの実行)が中断され、Lが動作す
る。Lの動作終了後、Sが動作を再開するが、その直後
に周期起動プログラムであるLが2度目の動作を開始す
る。このようにP1はLの動作の合間を縫って小刻みに
動作し、動作終了後Sに戻る。Sは周期起動の負荷用プ
ログラムSを停止し処理を終了する。この結果、P1の
処理時間はT21となり、実行速度を意図的に遅延する
ことができる。
【0026】競合管理処理プログラムのテストとして
は、図6のプロセッサ1の状態に対し、プロセッサ2で
TS1を遅延なしとしたテストプログラムTS2を作成
し、同時に動作させることにより、競合管理処理プログ
ラムP1どうし、あるいはP1とP2の競合発生確率を
向上させる。尚、負荷プログラムLの処理は、見かけ上
のテスト対象プログラムの実行速度を遅くするための時
間稼ぎが目的であるため、ループ回数を決定してループ
させるだけで十分である。また、このループ回数とLの
起動周期を変更することにより、テストプログラムの競
合タイミングを容易に変更することが可能である。
【0027】さて、図6において、プロセッサ2のTS
2については、プログラムの実行速度差遅延手段を用い
ていないので、P1の実行時間はT22=0.2 となる。
プログラムTS2の全体の実行時間はt=10であり、
実行中は他のプログラムが一様に実行できると仮定する
と、競合が発生する確率は競合管理部分の実行時間/全
体の実行時間で表され、0.02 となる。しかし本発明
を用いているプログラムTS1では、P1の実行時間は
21=3となり、本発明を用いていない場合の15倍に
なる。さらに、TS1の全体の実行時間はt=13.5
であるので、上記仮定の上で競合が発生する確率は0.
22 となり、本発明を用いない場合の11倍になる。
このように本発明により、競合が発生する確率を高くす
ることができる。
【0028】本発明の特徴を例示すると以下のとおりで
ある。
【0029】1.特別に遅延回路を挿入せずに、実行速
度遅延手段を提供する。
【0030】2.複数プログラムが共有する資源へのア
クセスの競合発生を行い、並列処理させるプログラムは
同一である必要はなく、タスクレベルの高い負荷用プロ
グラムを断続的に動作させる。
【0031】3.共有資源操作におけるテストを行い、
対象プログラムは通常どおり起動実行し、速度調節は別
プログラムである負荷用周期起動プログラムを用い、対
象プログラムとの優先レベル差による割り込みによって
行う。
【0032】4.複数プログラムの中から共有リソース
のアクセスの競合を期待するプログラム同士の競合発生
確率を向上させるため、負荷用プログラムを高レベルで
周期起動させる。
【0033】
【発明の効果】本発明によれば、特定プログラムの動作
時間を任意の値まで遅くし、プログラムの実行速度に差
をつけることにより複数プログラムで共有されている資
源に対し競合が発生する確率を高くすることができる。
したがって、従来困難だったリソースの競合テストをテ
スト対象プログラムを改造することなく容易に実施する
ことができる。
【図面の簡単な説明】
【図1】本発明の原理図を示したものである。
【図2】本発明の計算機システム図を示したものであ
る。
【図3】マルチプロセッサシステムでのプログラムの各
プロセッサへの割当てを示すフローチャートを示したも
のである。
【図4】マルチプロセッサシステムでの優先レベルによ
るプログラム実行形態を示すタイムチャート。
【図5】アプリケーションプログラムと競合管理処理プ
ログラムの関係を示すタイムチャートである。
【図6】本発明をリソースの競合テストに用いた時のタ
イムチャートを示したものである。
【符号の説明】
201…処理装置(プロセッサ)、202…主メモリ装
置、203…周辺装置、204…命令制御部、205…
実行ユニット、301…プログラム1、302…プログ
ラム2、303…プログラム3、304…スケジュー
ラ、305…プロセッサ1、306…プロセッサ2。
フロントページの続き (72)発明者 藤本 肇 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 熊澤 尚子 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 関 光平 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 小川 茂 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】プログラムの実行速度を見かけ上遅くする
    操作を行うプログラムのテスト方法において、上記操作
    は、プログラムの実行中に別のプログラムを断続的に実
    行させることにより、当初のプログラムの実行時間に別
    のプログラムの実行時間を付加することを特徴とするテ
    スト方法。
  2. 【請求項2】プログラムの実行速度を見かけ上遅くする
    操作を行うプログラムのテスト方法において、上記操作
    は別のプログラムの優先レベルを遅延対象のプログラム
    より高く設定することにより、別のプログラムを実行さ
    せることを特徴とするテスト方法。
  3. 【請求項3】請求項1のテスト方法において、プログラ
    ムを呼び出す処理の前に別プログラムを起動し、呼出し
    たプログラムが終了後、上記の別プログラムを停止する
    ことで、任意のプログラムの実行速度を遅くすることを
    特徴とするテスト方法。
  4. 【請求項4】請求項1のテスト方法において、別プログ
    ラムを起動するか否かにより、プログラムの速度を遅延
    させるか否かを容易に制御することを特徴とするテスト
    方法。
  5. 【請求項5】請求項1〜4のいずれかのテスト方法にお
    いて、複数プログラム中から実行速度遅延の対象となる
    プログラムを指定することを特徴とするテスト方法。
  6. 【請求項6】請求項1〜5のいずれかのテスト方法にお
    いて、複数のプログラムが並列に実行可能なマルチプロ
    セッサシステムにおいてテストを行うことを特徴とする
    テスト方法。
  7. 【請求項7】請求項6のテスト方法において、一方のプ
    ログラム上で動作中のプログラムの実行速度を遅延する
    ことにより、プログラムが共有するハードウエア質源の
    使用時間を遅くすることを特徴とするテスト方法。
  8. 【請求項8】請求項7のテスト方法において、排他制御
    が必要なプログラム間で共有する資源を、複数のプログ
    ラムが操作時に、一部のプログラムを実行遅延すること
    で、各プログラム毎の実行速度に差を付け、共有する資
    源の競合の発生確率を高くすることを特徴とするテスト
    方法。
JP6210915A 1994-09-05 1994-09-05 テスト方法 Pending JPH0877039A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6210915A JPH0877039A (ja) 1994-09-05 1994-09-05 テスト方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6210915A JPH0877039A (ja) 1994-09-05 1994-09-05 テスト方法

Publications (1)

Publication Number Publication Date
JPH0877039A true JPH0877039A (ja) 1996-03-22

Family

ID=16597176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6210915A Pending JPH0877039A (ja) 1994-09-05 1994-09-05 テスト方法

Country Status (1)

Country Link
JP (1) JPH0877039A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005243A (en) * 1997-03-03 1999-12-21 Ricoh Company, Ltd. Synchronous adjustment method, apparatus, and computer program product in a multiple beam optical system
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
WO2013057769A1 (ja) * 2011-10-20 2013-04-25 富士通株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2013200593A (ja) * 2012-03-23 2013-10-03 Fujitsu Ltd 試験装置,試験方法および試験プログラム
JPWO2013057769A1 (ja) * 2011-10-20 2015-04-02 富士通株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
US9760421B2 (en) 2015-03-18 2017-09-12 Fujitsu Limited Information processing device, method, and computer readable medium

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005243A (en) * 1997-03-03 1999-12-21 Ricoh Company, Ltd. Synchronous adjustment method, apparatus, and computer program product in a multiple beam optical system
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
WO2013057769A1 (ja) * 2011-10-20 2013-04-25 富士通株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
JPWO2013057769A1 (ja) * 2011-10-20 2015-04-02 富士通株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2013200593A (ja) * 2012-03-23 2013-10-03 Fujitsu Ltd 試験装置,試験方法および試験プログラム
US9760421B2 (en) 2015-03-18 2017-09-12 Fujitsu Limited Information processing device, method, and computer readable medium

Similar Documents

Publication Publication Date Title
JP4170227B2 (ja) 多重処理環境における処理の実行
US6795873B1 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
JPH07104791B2 (ja) タスク状態構築方法
JPH0877039A (ja) テスト方法
JPH0468461A (ja) 資源管理方式
JP2006146758A (ja) コンピュータシステム
WO2001097020A1 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
JP2597283B2 (ja) 割込みにおけるスケジューリング方式
JPH05257902A (ja) 処理プログラム・モードにおけるロック獲得処理方式
JP2866410B2 (ja) プログラムのテスト方法
JPH07319716A (ja) 計算機システムの資源の排他制御方式
JPH11327921A (ja) 計算機システムに於けるスレッド優先度制御装置、及びスレッド優先度制御方法
JPH02244371A (ja) マルチプロセツサシステムの排他制御方法
JP3169316B2 (ja) タスクスケジューリング方法
JP2000029850A (ja) オペレーティングシステムのプロセッサ間通信を使用したタスク制御方法
KR20230167901A (ko) 멀티 스레드 프로그램의 실행 주기 보정 방법
JP2001184326A (ja) マルチプロセッサスケジューリング方法およびマルチプロセッサスケジューリングを行う計算機システム
JPH08305607A (ja) マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ
JPH0934729A (ja) ディスパッチャ制御方式
JPH0344742A (ja) マルチプロセッサにおけるタスク割り当て制御方法
JPS61259362A (ja) マルチプロセツサ制御方法
JPS61226839A (ja) イベント処理方式
JPH03257634A (ja) プログラム並列実行方法とその装置
JPH061466B2 (ja) ロック排他制御方式
JP2000148712A (ja) マルチプロセッサシステム