JPH0863371A - イベント駆動型シミュレータのプログラミング方法 - Google Patents
イベント駆動型シミュレータのプログラミング方法Info
- Publication number
- JPH0863371A JPH0863371A JP19511694A JP19511694A JPH0863371A JP H0863371 A JPH0863371 A JP H0863371A JP 19511694 A JP19511694 A JP 19511694A JP 19511694 A JP19511694 A JP 19511694A JP H0863371 A JPH0863371 A JP H0863371A
- Authority
- JP
- Japan
- Prior art keywords
- event
- time
- processing
- simulator
- target 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
(57)【要約】
【目的】 並行分散制御システムの構成要素間の情報も
やり取りを実世界と対応できるようにコミュニケートで
きる場合のシミュレータを提供する。さらに、割込み時
の一度出されたメッセージを取り消し処理に対応できる
シミュレータを提供する。 【構成】 プロセッサAの処理中にプロセッサBの処理
が割り込んだ場合のイベントリストを図7に示す。割り
込んだイベントには、自分の処理の為に中断し、イベン
ト処理が終了した時に、再開するイベント名称を登録す
る。割り込まれたイベントは、状態にwaitを登録
し、起動をかけられるまでは、そのままの状態にしてお
く。 【効果】 対象システムのモデルからシミュレータへの
インプリメントが容易になるため、シミュレータの拡張
性を向上でき、開発工程が短縮される。
やり取りを実世界と対応できるようにコミュニケートで
きる場合のシミュレータを提供する。さらに、割込み時
の一度出されたメッセージを取り消し処理に対応できる
シミュレータを提供する。 【構成】 プロセッサAの処理中にプロセッサBの処理
が割り込んだ場合のイベントリストを図7に示す。割り
込んだイベントには、自分の処理の為に中断し、イベン
ト処理が終了した時に、再開するイベント名称を登録す
る。割り込まれたイベントは、状態にwaitを登録
し、起動をかけられるまでは、そのままの状態にしてお
く。 【効果】 対象システムのモデルからシミュレータへの
インプリメントが容易になるため、シミュレータの拡張
性を向上でき、開発工程が短縮される。
Description
【0001】
【産業上の利用分野】本発明は、対象とするシステムの
オブジェクト指向型イベント駆動型シミュレーション方
法に関する。また、マルチプロセッサ構成の並行分散制
御システムのように、制御対象とするシステム構成要素
及び発生する各種イベントをトリガーとして、複数のプ
ロセッサがテーブル、データ転送パス等の各種リソース
を競合しながら、非同期に処理を進めるシミュレータ開
発方法に関する。
オブジェクト指向型イベント駆動型シミュレーション方
法に関する。また、マルチプロセッサ構成の並行分散制
御システムのように、制御対象とするシステム構成要素
及び発生する各種イベントをトリガーとして、複数のプ
ロセッサがテーブル、データ転送パス等の各種リソース
を競合しながら、非同期に処理を進めるシミュレータ開
発方法に関する。
【0002】
【従来の技術】一般に、システムを新規開発する時に
は、システムに要求されるスループット、レスポンスタ
イムの性能が、設計した制御システムにより実現できる
かどうか、確認するために事前性能評価を行う。性能評
価方法としては、シミュレーションによるアプローチが
有効で、利用することが多い。最近では、オブジェクト
指向によるプログラミングが注目され、シミュレータの
世界ではイベント駆動型シミュレータを用いるものが多
い。
は、システムに要求されるスループット、レスポンスタ
イムの性能が、設計した制御システムにより実現できる
かどうか、確認するために事前性能評価を行う。性能評
価方法としては、シミュレーションによるアプローチが
有効で、利用することが多い。最近では、オブジェクト
指向によるプログラミングが注目され、シミュレータの
世界ではイベント駆動型シミュレータを用いるものが多
い。
【0003】イベント駆動型シミュレータは、イベント
発生時にシステムがどのように変化するかを記述したイ
ベントルーチンと、将来発生予定のイベントを時刻順に
並べたイベントリストと、シミュレータ内の時刻を進め
るシミュレーションクロックと、イベントを時刻順に処
理し、シミュレーションの進行を司るイベント処理ロジ
ックとから構成される。イベント処理ロジックは次の処
理を行う。
発生時にシステムがどのように変化するかを記述したイ
ベントルーチンと、将来発生予定のイベントを時刻順に
並べたイベントリストと、シミュレータ内の時刻を進め
るシミュレーションクロックと、イベントを時刻順に処
理し、シミュレーションの進行を司るイベント処理ロジ
ックとから構成される。イベント処理ロジックは次の処
理を行う。
【0004】(1)シミュレーション・クロックをイベ
ントリストの先頭の(一番早い)事象の発生予定時刻に
更新する。 (2)イベントリストより、先頭のイベントをイベント
リストから抜取り、対応する事象ルーチンを実行してシ
ステムの状態を更新する。(1)に戻る。
ントリストの先頭の(一番早い)事象の発生予定時刻に
更新する。 (2)イベントリストより、先頭のイベントをイベント
リストから抜取り、対応する事象ルーチンを実行してシ
ステムの状態を更新する。(1)に戻る。
【0005】従来のイベント駆動型シミュレータでは、
あるイベントを実行する際、そのイベントにどのルーチ
ンが対応するかを認識する必要がある。各処理ルーチン
は、処理を実行するときに必要なデータの型を認識しな
ければならない。さらに、他の処理の進行状況をみるこ
とはなく、予め決まった処理順序で実行していく。
あるイベントを実行する際、そのイベントにどのルーチ
ンが対応するかを認識する必要がある。各処理ルーチン
は、処理を実行するときに必要なデータの型を認識しな
ければならない。さらに、他の処理の進行状況をみるこ
とはなく、予め決まった処理順序で実行していく。
【0006】
【発明が解決しようとする課題】従来のシミュレータ方
法では、対象システムが、上記生産過程のようにいくつ
かの処理A、B、Cを実行する際、例えば、A→B→C
の順序で、シミュレートするような処理をシーケンシャ
ルに実行していくものしかなかった。処理A、B、Cは
各々独立で、予め決められた順序(直列な順序)に処理
していき、一度処理を始めたら他にどんな処理が開始し
ようとも終了するまで変更はない。従って、磁気テープ
制御装置のように、他の処理が開始すると共に実行中の
処理を中断し、その処理が終了した後、中断した処理を
再開する動作を含むシステムに対応できない。磁気テー
プ制御装置のような並行分散制御システムにおいては、
割込み動作は不可欠である。
法では、対象システムが、上記生産過程のようにいくつ
かの処理A、B、Cを実行する際、例えば、A→B→C
の順序で、シミュレートするような処理をシーケンシャ
ルに実行していくものしかなかった。処理A、B、Cは
各々独立で、予め決められた順序(直列な順序)に処理
していき、一度処理を始めたら他にどんな処理が開始し
ようとも終了するまで変更はない。従って、磁気テープ
制御装置のように、他の処理が開始すると共に実行中の
処理を中断し、その処理が終了した後、中断した処理を
再開する動作を含むシステムに対応できない。磁気テー
プ制御装置のような並行分散制御システムにおいては、
割込み動作は不可欠である。
【0007】本発明の目的は、並行分散制御システムの
構成要素間の情報もやり取りを実世界と対応できるよう
にコミュニケートできる場合のシミュレータを提供する
ことにある。さらに、割込み時の一度出されたメッセー
ジを取り消し処理に対応できるシミュレータを提供する
ことにある。
構成要素間の情報もやり取りを実世界と対応できるよう
にコミュニケートできる場合のシミュレータを提供する
ことにある。さらに、割込み時の一度出されたメッセー
ジを取り消し処理に対応できるシミュレータを提供する
ことにある。
【0008】
【課題を解決するための手段】イベントを実行管理する
部分と対象とするシステムに対応する部分とを分離する
ように、オブジェクトを作成し、前者には、イベント名
称、イベント登録時刻、イベント送信予定時刻、発信者
名称、送信先名称、イベントの状態情報からなるイベン
トという名のレコード単位で定義するステップと、実際
のハード構成要素に対応した実行体オブジェクトが出す
将来発生予定のオブジェクト間メッセージを受け付け、
イベントを作成し、実行予定時刻順にイベントリストに
登録するステップと、シミュレータ内の時刻を進めるシ
ミュレーションクロックと、イベントリストから1つ取
り出し、実行体オブジェクトへ出す処理を行う、シミュ
レーションの進行を司るイベント処理ロジックと、イベ
ントリスト内に一旦登録したイベントを取り消すステッ
プと、処理を実行中に別の処理が割り込んできて後から
きた処理を実行する場合に、それまで実行中の処理を中
断し、割り込んできた処理が終了したら、中断中の処理
を再開させるステップを設ける。
部分と対象とするシステムに対応する部分とを分離する
ように、オブジェクトを作成し、前者には、イベント名
称、イベント登録時刻、イベント送信予定時刻、発信者
名称、送信先名称、イベントの状態情報からなるイベン
トという名のレコード単位で定義するステップと、実際
のハード構成要素に対応した実行体オブジェクトが出す
将来発生予定のオブジェクト間メッセージを受け付け、
イベントを作成し、実行予定時刻順にイベントリストに
登録するステップと、シミュレータ内の時刻を進めるシ
ミュレーションクロックと、イベントリストから1つ取
り出し、実行体オブジェクトへ出す処理を行う、シミュ
レーションの進行を司るイベント処理ロジックと、イベ
ントリスト内に一旦登録したイベントを取り消すステッ
プと、処理を実行中に別の処理が割り込んできて後から
きた処理を実行する場合に、それまで実行中の処理を中
断し、割り込んできた処理が終了したら、中断中の処理
を再開させるステップを設ける。
【0009】後者には、各イベントに対応する処理がど
れかを示すステップと、各イベントを受け取ったとき
に、前記の対応する処理を実行するか否かを判断する条
件を示すステップと、他のイベント処理の割込みによる
中断・再開による処理のバリエーション、及び、割込み
処理開始条件、再開条件を、対象とするシステムに対応
した実行体オブジェクト内の論理として記述することを
特徴とする。
れかを示すステップと、各イベントを受け取ったとき
に、前記の対応する処理を実行するか否かを判断する条
件を示すステップと、他のイベント処理の割込みによる
中断・再開による処理のバリエーション、及び、割込み
処理開始条件、再開条件を、対象とするシステムに対応
した実行体オブジェクト内の論理として記述することを
特徴とする。
【0010】
【作用】本発明によれば、イベント実行管理部と対象シ
ステム部とのインターフェースは、前記イベントという
共通のレコード単位の情報をやりとりするだけの簡単な
ものに統一される。さらに、イベント実行管理部は、イ
ベントを実行するか否かという対象システムに依存した
部分は、全く見る必要はない。対象システム側から見た
ら、ユーザは、例えば、処理の起動を掛け合うような処
理に対する情報を対象システム間でやり取りしているよ
うに記述するだけで、イベントがどの順番で実行される
のか等は、認識することなく実現できる。
ステム部とのインターフェースは、前記イベントという
共通のレコード単位の情報をやりとりするだけの簡単な
ものに統一される。さらに、イベント実行管理部は、イ
ベントを実行するか否かという対象システムに依存した
部分は、全く見る必要はない。対象システム側から見た
ら、ユーザは、例えば、処理の起動を掛け合うような処
理に対する情報を対象システム間でやり取りしているよ
うに記述するだけで、イベントがどの順番で実行される
のか等は、認識することなく実現できる。
【0011】また、割込み処理には次のように対処でき
る。処理が起動する時、他の実行中の処理を中断する
際、対象システム部から割込み中断の指示が来たら、中
断するイベントの状態情報を中断状態に変更し、前記イ
ベントを中断させたイベントには再開するイベント名と
してイベント名を記録しておき、割り込んで実行する。
その記録のあるイベントが終了したら割り込んで中断し
たイベントの状態を中断状態から実行状態へ戻し、再開
する。
る。処理が起動する時、他の実行中の処理を中断する
際、対象システム部から割込み中断の指示が来たら、中
断するイベントの状態情報を中断状態に変更し、前記イ
ベントを中断させたイベントには再開するイベント名と
してイベント名を記録しておき、割り込んで実行する。
その記録のあるイベントが終了したら割り込んで中断し
たイベントの状態を中断状態から実行状態へ戻し、再開
する。
【0012】
【実施例】本発明の実施例として、並行分散制御システ
ムの1つである磁気テープ制御装置を例に挙げて説明す
る。並行分散制御システムであれば、ここに挙げた磁気
テープ制御装置以外でも、同様にシミュレータを実現で
きる。
ムの1つである磁気テープ制御装置を例に挙げて説明す
る。並行分散制御システムであれば、ここに挙げた磁気
テープ制御装置以外でも、同様にシミュレータを実現で
きる。
【0013】図1は、本発明の一実施例に係るオブジェ
クト指向概念に基づく並行分散制御システムの時刻駆動
型シミュレータの全体構成図である。図1を説明する。
シミュレータは、シミュレータの基盤となる時刻管理オ
ブジェクト部101と対象システムの構成要素に対応す
るオブジェクト部102とからなる。
クト指向概念に基づく並行分散制御システムの時刻駆動
型シミュレータの全体構成図である。図1を説明する。
シミュレータは、シミュレータの基盤となる時刻管理オ
ブジェクト部101と対象システムの構成要素に対応す
るオブジェクト部102とからなる。
【0014】101は、イベント実行制御オブジェクト
103、イベントリスト104、時刻更新オブジェクト
105、シミュレーション条件設定オブジェクト10
7、入力パラメータファイル111からなる。101
は、シミュレータの開発、デバッグ、実行をサポートす
るための汎用オブジェクト群で機能的な基盤である。ま
た、103は、102のオブジェクト間で交信するメッ
セージを送信元から受け取り、送信先へ配送する。即
ち、102で個々の独立したオブジェクトのやり取りを
101で管理する。107は、対象となるアプリケーシ
ョンが変わると、部分的な変更は必要であるが、テーブ
ル初期化という面では、常に共通の役割なので、汎用的
であると考え、101内に設置する。シミュレーション
条件設定オブジェクト107は、シミュレーションの入
力データとするフォーマットにより、評価するジョブ数
やデータ転送速度、バッファ容量、プロセッサ構成を受
け付ける。以下、図2のフローチャートに従って103
のシミュレータ動作を説明する。
103、イベントリスト104、時刻更新オブジェクト
105、シミュレーション条件設定オブジェクト10
7、入力パラメータファイル111からなる。101
は、シミュレータの開発、デバッグ、実行をサポートす
るための汎用オブジェクト群で機能的な基盤である。ま
た、103は、102のオブジェクト間で交信するメッ
セージを送信元から受け取り、送信先へ配送する。即
ち、102で個々の独立したオブジェクトのやり取りを
101で管理する。107は、対象となるアプリケーシ
ョンが変わると、部分的な変更は必要であるが、テーブ
ル初期化という面では、常に共通の役割なので、汎用的
であると考え、101内に設置する。シミュレーション
条件設定オブジェクト107は、シミュレーションの入
力データとするフォーマットにより、評価するジョブ数
やデータ転送速度、バッファ容量、プロセッサ構成を受
け付ける。以下、図2のフローチャートに従って103
のシミュレータ動作を説明する。
【0015】ステップ201:シミュレータの入力条件
となる入力パラメータ111を作成する。本実施例で
は、対話型に行うものとして、コンソール121より、
プログラム作成者が値を入力する。
となる入力パラメータ111を作成する。本実施例で
は、対話型に行うものとして、コンソール121より、
プログラム作成者が値を入力する。
【0016】ステップ202:107は、イベント実行
制御オブジェクト103より、初期設定イベントを受け
取ることにより起動する。初期設定イベントは、あらか
じめ、登録しておき、シミュレーション開始時に、ま
ず、送信されるようにしておく。107は、入力データ
を111に格納し、テーブルを作成したり、変数に値を
セットしたりする。 ステップ203:103は、各ハード装置に対応する実
行体オブジェクトから、オブジェクト間メッセージを受
け付ける。
制御オブジェクト103より、初期設定イベントを受け
取ることにより起動する。初期設定イベントは、あらか
じめ、登録しておき、シミュレーション開始時に、ま
ず、送信されるようにしておく。107は、入力データ
を111に格納し、テーブルを作成したり、変数に値を
セットしたりする。 ステップ203:103は、各ハード装置に対応する実
行体オブジェクトから、オブジェクト間メッセージを受
け付ける。
【0017】ステップ204:103は、イベントを作
成し、将来発生する時刻順にイベントリスト104へ登
録する。イベントリストの1例を図3に示す。イベント
リストは、リスト先頭のポインタ301によって、示さ
れる。1つのイベントデータは、302から309の要
素によってレコード単位で定義される。イベント名称3
02、イベント登録時刻303、イベント送信予定時刻
304、イベント送信者名称305、イベント送信先名
称306、イベント状態307、該イベントが起動した
時に中断させたイベント名称308、次のイベントリス
トデータへのポインタ309からなる。通常、307
は、開始状態になっている。イベントが他の処理に割り
込まれたら、307は待ち状態になる。割り込んだイベ
ントの307には、割り込んだことにより中断されたイ
ベント名称が入る。 実際に実行する時刻、即ちイベント送信予定時刻以前に
イベントを登録し、イベント送信予定時刻になるまで格
納しておく。
成し、将来発生する時刻順にイベントリスト104へ登
録する。イベントリストの1例を図3に示す。イベント
リストは、リスト先頭のポインタ301によって、示さ
れる。1つのイベントデータは、302から309の要
素によってレコード単位で定義される。イベント名称3
02、イベント登録時刻303、イベント送信予定時刻
304、イベント送信者名称305、イベント送信先名
称306、イベント状態307、該イベントが起動した
時に中断させたイベント名称308、次のイベントリス
トデータへのポインタ309からなる。通常、307
は、開始状態になっている。イベントが他の処理に割り
込まれたら、307は待ち状態になる。割り込んだイベ
ントの307には、割り込んだことにより中断されたイ
ベント名称が入る。 実際に実行する時刻、即ちイベント送信予定時刻以前に
イベントを登録し、イベント送信予定時刻になるまで格
納しておく。
【0018】ステップ205:103は、イベントリス
ト先頭のイベントを1つ取り出し、ステップ206へ進
む。イベントリストにイベントが無い場合には、シミュ
レーションが終了したことを意味するため処理を終了す
る。
ト先頭のイベントを1つ取り出し、ステップ206へ進
む。イベントリストにイベントが無い場合には、シミュ
レーションが終了したことを意味するため処理を終了す
る。
【0019】ステップ206:103は、イベントの送
信先名称306で指定されている実行体オブジェクト
へ、イベントを送信する。全てのイベントは、103か
ら送信される。これにより、各オブジェクト間で交信す
るイベント群をトレースすることができ、イベントやり
取りに関するバグや論理的矛盾の発生を検出できる。ま
た、実際にイベントが実行されるかどうかは、発生した
イベントの種類と、イベント送信先オブジェクトの状態
との組合せにより決定する。オブジェクトの状態はアプ
リケーションに依存するため、イベント実行可否判断
は、受け取り側に分担させることにより、汎用性を持た
せた。
信先名称306で指定されている実行体オブジェクト
へ、イベントを送信する。全てのイベントは、103か
ら送信される。これにより、各オブジェクト間で交信す
るイベント群をトレースすることができ、イベントやり
取りに関するバグや論理的矛盾の発生を検出できる。ま
た、実際にイベントが実行されるかどうかは、発生した
イベントの種類と、イベント送信先オブジェクトの状態
との組合せにより決定する。オブジェクトの状態はアプ
リケーションに依存するため、イベント実行可否判断
は、受け取り側に分担させることにより、汎用性を持た
せた。
【0020】ステップ207:103は、イベントを送
信したことを時刻更新オブジェクト105に知らせる。
時刻更新オブジェクト105は、このイベント送信予定
時刻までシミュレーション内の現在時刻を更新する。
信したことを時刻更新オブジェクト105に知らせる。
時刻更新オブジェクト105は、このイベント送信予定
時刻までシミュレーション内の現在時刻を更新する。
【0021】ステップ208:103は、102が、処
理を終了するときに出すリターン値を受け取る。102
が処理中にオブジェクト間メッセージが発生したらステ
ップ203と同様な処理を行う。ステップ205へ戻
る。
理を終了するときに出すリターン値を受け取る。102
が処理中にオブジェクト間メッセージが発生したらステ
ップ203と同様な処理を行う。ステップ205へ戻
る。
【0022】102は、実行体オブジェクト部106と
出力結果112からなる。本実施例は磁気テープ制御装
置を対象とし、その転送処理の動作模擬を行うため、1
06はハード構成要素オブジェクト群109と共有情報
オブジェクト群110からなる。109は、例えば、プ
ロセッサオブジェクト131があり、データ部132と
メンバ部133からなる。データ部は、オブジェクトの
状態134等からなる。稼働率算出部135、データ転
送動作模擬部136等のプロセッサの転送動作を模擬す
るためのプログラムからなる。同様に、110は、バッ
ファ内データ量管理オブジェクト141がある。データ
部132は、データ量137、転送ドライブ番号138
等からなる。メンバ部133は、データ量更新部13
9、データ量参照部140等からなる。
出力結果112からなる。本実施例は磁気テープ制御装
置を対象とし、その転送処理の動作模擬を行うため、1
06はハード構成要素オブジェクト群109と共有情報
オブジェクト群110からなる。109は、例えば、プ
ロセッサオブジェクト131があり、データ部132と
メンバ部133からなる。データ部は、オブジェクトの
状態134等からなる。稼働率算出部135、データ転
送動作模擬部136等のプロセッサの転送動作を模擬す
るためのプログラムからなる。同様に、110は、バッ
ファ内データ量管理オブジェクト141がある。データ
部132は、データ量137、転送ドライブ番号138
等からなる。メンバ部133は、データ量更新部13
9、データ量参照部140等からなる。
【0023】次に、102を図4のフローチャートに従
って説明する。 ステップ401:実行体オブジェクトの処理内でオブジ
ェクト間メッセージが発生したら、104へ登録するよ
う103へ依頼する。処理を実行するときは、マルチプ
ロセッサ間で共有している情報(テーブル)を参照しな
がら実行する。
って説明する。 ステップ401:実行体オブジェクトの処理内でオブジ
ェクト間メッセージが発生したら、104へ登録するよ
う103へ依頼する。処理を実行するときは、マルチプ
ロセッサ間で共有している情報(テーブル)を参照しな
がら実行する。
【0024】ステップ402:103より、109は、
イベントを受け取り、対応する処理を行う。以下これを
繰り返す。 ステップ403:シミュレーション終了イベントを受け
取ると、シミュレーションが終了となる。103よりシ
ミュレーション終了イベントを受け取る。結果集計・解
析を行うために、109の持っている累積結果情報を参
照し、 スループット、ターンアラウンド等の性能
解析に必要な値を算出し、11 2内へ格納する。 ステップ404:112より、グラフ形式等に直し、コ
ンソール122へ出力する。
イベントを受け取り、対応する処理を行う。以下これを
繰り返す。 ステップ403:シミュレーション終了イベントを受け
取ると、シミュレーションが終了となる。103よりシ
ミュレーション終了イベントを受け取る。結果集計・解
析を行うために、109の持っている累積結果情報を参
照し、 スループット、ターンアラウンド等の性能
解析に必要な値を算出し、11 2内へ格納する。 ステップ404:112より、グラフ形式等に直し、コ
ンソール122へ出力する。
【0025】実行体オブジェクト群106は、基本的に
は、ハード要素に対応させてオブジェクトを作成する。
1つは、109のハード構成要素オブジェクト群であ
る。109は、プロセッサ等のハード構成要素1つ1つ
をオブジェクトで表現する。個々のオブジェクトは、ハ
ードウェアの動作をモデル化する。例えば、ドライブ装
置が、定速稼働するまでの立ち上げ時間、定速時の転送
速度、停止時間の速度曲線をモデル化する。システム構
成変更時のプロセッサ等の台数増減は、オブジェクト
(インスタンス)の追加削除すればよいため、インスタ
ンス生成箇所のみ変更すれば実現できる。プロセッサの
制御ソフト部分はメソッドとして記述し、ローカルメモ
リ上のデータはオブジェクトのデータ部として記述す
る。
は、ハード要素に対応させてオブジェクトを作成する。
1つは、109のハード構成要素オブジェクト群であ
る。109は、プロセッサ等のハード構成要素1つ1つ
をオブジェクトで表現する。個々のオブジェクトは、ハ
ードウェアの動作をモデル化する。例えば、ドライブ装
置が、定速稼働するまでの立ち上げ時間、定速時の転送
速度、停止時間の速度曲線をモデル化する。システム構
成変更時のプロセッサ等の台数増減は、オブジェクト
(インスタンス)の追加削除すればよいため、インスタ
ンス生成箇所のみ変更すれば実現できる。プロセッサの
制御ソフト部分はメソッドとして記述し、ローカルメモ
リ上のデータはオブジェクトのデータ部として記述す
る。
【0026】2つ目は、110の共有情報オブジェクト
群である。即ち、共有メモリを1オブジェクトとする。
データ量の更新や他オブジェクトへデータの値を渡すメ
ソッドを持つ。本実施例では、上記のように、ハード要
素ごとにオブジェクトを対応した構成としたが、例え
ば、転送処理に注目したオブジェクトを設けた構成でも
なんでも良い。
群である。即ち、共有メモリを1オブジェクトとする。
データ量の更新や他オブジェクトへデータの値を渡すメ
ソッドを持つ。本実施例では、上記のように、ハード要
素ごとにオブジェクトを対応した構成としたが、例え
ば、転送処理に注目したオブジェクトを設けた構成でも
なんでも良い。
【0027】結果集計・解析に関しては、各ハード要素
の動作の履歴から算出するため、履歴データのあるオブ
ジェクトのメソッドとして記述する。シミュレーション
終了後、履歴データより、各ジョブの実行時間の分布、
スループット、ターンアラウンドを算出する。スループ
ットは、単位時間当たりの実行ジョブ数なので、実行ジ
ョブ総数を全ジョブの実行開始してから終了するまでの
時間で割れば求まる。また、ターンアラウンドは、ジョ
ブを実行開始してから終了するまでの時間であるため、
各ジョブの実行時間を履歴として記録しておく。全ジョ
ブの実行時間の平均により求まる。
の動作の履歴から算出するため、履歴データのあるオブ
ジェクトのメソッドとして記述する。シミュレーション
終了後、履歴データより、各ジョブの実行時間の分布、
スループット、ターンアラウンドを算出する。スループ
ットは、単位時間当たりの実行ジョブ数なので、実行ジ
ョブ総数を全ジョブの実行開始してから終了するまでの
時間で割れば求まる。また、ターンアラウンドは、ジョ
ブを実行開始してから終了するまでの時間であるため、
各ジョブの実行時間を履歴として記録しておく。全ジョ
ブの実行時間の平均により求まる。
【0028】102は、対象とするシステムの各要素を
モデル化するためのオブジェクト群で対象毎の固有部で
ある。プログラム開発者は、上記システムオブジェクト
群を意識せずに対象システムのオブジェクトを作成でき
る。また、対象となるシステムが変わったら、102側
のオブジェクトだけ別途開発してはめこめば、開発期間
が短縮される。
モデル化するためのオブジェクト群で対象毎の固有部で
ある。プログラム開発者は、上記システムオブジェクト
群を意識せずに対象システムのオブジェクトを作成でき
る。また、対象となるシステムが変わったら、102側
のオブジェクトだけ別途開発してはめこめば、開発期間
が短縮される。
【0029】次に、割込み発生の流れを図5のタイムチ
ャートを使って説明する。縦軸は、ハード要素名、横軸
は、時間を示している。ハード要素として、プロセッサ
AとプロセッサBがあるとする。プロセッサAの処理5
01は、ta−st時刻からta−ed時刻まで処理に
かかることを示している。ta−st時刻におけるイベ
ントリスト状態は、図6に示す。プロセッサAがta−
st時に処理を開始した後、ti時にプロセッサBが処
理502を開始する。ti時刻におけるイベントリスト
の状態を図7に示す。この処理がプロセッサAの処理へ
の割込みとなり、プロセッサAは処理を中断する。プロ
セッサBはtb−ed時刻に処理を終了し、プロセッサ
Aの処理への割込みを終了する。プロセッサAのti時
刻以後の中断により未実行の処理503は、プロセッサ
Bの処理が終了した後、即ち、tb−ed時刻から始め
る。割込みにより遅延した分504(=303と同量)
は、t´a−ed時刻に終了する(図8に示す)。
ャートを使って説明する。縦軸は、ハード要素名、横軸
は、時間を示している。ハード要素として、プロセッサ
AとプロセッサBがあるとする。プロセッサAの処理5
01は、ta−st時刻からta−ed時刻まで処理に
かかることを示している。ta−st時刻におけるイベ
ントリスト状態は、図6に示す。プロセッサAがta−
st時に処理を開始した後、ti時にプロセッサBが処
理502を開始する。ti時刻におけるイベントリスト
の状態を図7に示す。この処理がプロセッサAの処理へ
の割込みとなり、プロセッサAは処理を中断する。プロ
セッサBはtb−ed時刻に処理を終了し、プロセッサ
Aの処理への割込みを終了する。プロセッサAのti時
刻以後の中断により未実行の処理503は、プロセッサ
Bの処理が終了した後、即ち、tb−ed時刻から始め
る。割込みにより遅延した分504(=303と同量)
は、t´a−ed時刻に終了する(図8に示す)。
【0030】割込み処理を図9のフローチャートに従っ
て説明する。 ステップ901:イベント送信オブジェクト103は、
ハード要素オブジェクト109へイベントを送信する。
これにより、時刻ta−stにプロセッサAの処理50
1が開始される。処理を開始したら、次のイベントを登
録する(図6に示す)。即ち、プロセッサAの将来終了
するイベントを作成し、 登録する。作成したイベ
ントの終了予定時刻は、実行体オブジェクト10
6の中のプロセッサAの処理内で算出される。
て説明する。 ステップ901:イベント送信オブジェクト103は、
ハード要素オブジェクト109へイベントを送信する。
これにより、時刻ta−stにプロセッサAの処理50
1が開始される。処理を開始したら、次のイベントを登
録する(図6に示す)。即ち、プロセッサAの将来終了
するイベントを作成し、 登録する。作成したイベ
ントの終了予定時刻は、実行体オブジェクト10
6の中のプロセッサAの処理内で算出される。
【0031】ステップ902:103は、イベントリス
トにある次のイベントを送信する。これにより、時刻t
iにプロセッサBが処理502を開始する。処理502
は、処理501を割り込むため、処理501を中断する
処置をとる。具体的には、図7に示すように、プロセッ
サBの処理に対するイベントの起動イベントのところ
に、自分が中断したイベント名称を記録する。一方、中
断されたプロセッサAの処理に対するイベントは、中断
されるため、登録時刻、送信予定時刻をクリアする。イ
ベントの状態を『待ち』にする。さらに、中断により遅
延する処理分503を算出し、プロセッサAオブジェク
ト内に格納しておく。
トにある次のイベントを送信する。これにより、時刻t
iにプロセッサBが処理502を開始する。処理502
は、処理501を割り込むため、処理501を中断する
処置をとる。具体的には、図7に示すように、プロセッ
サBの処理に対するイベントの起動イベントのところ
に、自分が中断したイベント名称を記録する。一方、中
断されたプロセッサAの処理に対するイベントは、中断
されるため、登録時刻、送信予定時刻をクリアする。イ
ベントの状態を『待ち』にする。さらに、中断により遅
延する処理分503を算出し、プロセッサAオブジェク
ト内に格納しておく。
【0032】ステップ903:時刻tb−edには、処
理502が終了するため、対応するイベントをリストか
ら削除する。そのイベントの起動イベント名称にイベン
ト名が登録されていれば、中断したイベントがあるとい
うことになり、中断していたイベントを再開しなければ
ならない。処理501に対応したイベントの登録時刻に
tb−ed、送信予定時刻にt´a−edを格納し、イ
ベントの状態に、『実行』を書き込む。送信予定時刻
は、アプリケーションオブジェクトで計算する。
理502が終了するため、対応するイベントをリストか
ら削除する。そのイベントの起動イベント名称にイベン
ト名が登録されていれば、中断したイベントがあるとい
うことになり、中断していたイベントを再開しなければ
ならない。処理501に対応したイベントの登録時刻に
tb−ed、送信予定時刻にt´a−edを格納し、イ
ベントの状態に、『実行』を書き込む。送信予定時刻
は、アプリケーションオブジェクトで計算する。
【0033】
【発明の効果】本発明によれば、イベント駆動型シミュ
レータのイベントを操作する部分と対象としたシステム
のアプリケーション部を分離することにより、情報のや
り取りのインターフェースが簡略化、統一される。ま
た、プログラム開発者は、対象システムのアプリケーシ
ョン部だけを開発すれば良いため、開発工程が短縮され
る。そのため、対象システムのモデルからシミュレータ
へのインプリメントが容易になる。シミュレータの拡張
性を向上できた。
レータのイベントを操作する部分と対象としたシステム
のアプリケーション部を分離することにより、情報のや
り取りのインターフェースが簡略化、統一される。ま
た、プログラム開発者は、対象システムのアプリケーシ
ョン部だけを開発すれば良いため、開発工程が短縮され
る。そのため、対象システムのモデルからシミュレータ
へのインプリメントが容易になる。シミュレータの拡張
性を向上できた。
【図1】シミュレータ全体構成である。
【図2】イベント時刻管理制御の動作フローチャートで
ある。
ある。
【図3】イベントリスト例である。
【図4】対象システムオブジェクトの動作フローチャー
トである。
トである。
【図5】割込み処理タイムチャートである。
【図6】時刻ta−stにおけるイベントリスト状態で
ある。
ある。
【図7】時刻tiにおけるイベントリスト状態である。
【図8】時刻tb−edにおけるイベントリスト状態で
ある。
ある。
【図9】割込み処理フローチャートである。
101:時刻管理オブジェクト部、102:対象システ
ムの構成要素に対応するオブジェクト部、103:イベ
ント時刻管理オブジェクト、104:イベントリスト、
105:時刻更新オブジェクト、106:実行体オブジ
ェクト部、107:シミュレ−ション条件設定オブジェ
クト。
ムの構成要素に対応するオブジェクト部、103:イベ
ント時刻管理オブジェクト、104:イベントリスト、
105:時刻更新オブジェクト、106:実行体オブジ
ェクト部、107:シミュレ−ション条件設定オブジェ
クト。
Claims (5)
- 【請求項1】イベント発生時に対象システムの構成要素
がどのように変化するかを記述したイベントルーチン
と、将来発生予定のイベントを時刻順に並べたイベント
リストと、シミュレータ内の時刻を進めるシミュレーシ
ョンクロックと、イベントを時刻順に処理し、シミュレ
ーションの進行を司るイベント実行管理の処理ロジック
のある時刻管理部とから構成されるイベント駆動型シミ
ュレータにおいて、 対象となるシステムの各ハード構成要素ごとに、該要素
の動作を模擬するマイクロプログラムに対応する処理記
述部と、前記動作を模擬する上で必要な装置の状態動作
開始時刻からなるデータを1つのまとまり(以下オブジ
ェクトと呼ぶ)とし、実世界では装置間で信号のやりと
りを行うことに対応させて、シミュレータ上では、次に
行うべき処理を明示した信号を、前記時刻管理部のイベ
ントリストに一旦登録し、時刻管理部がその信号を受信
すべきハード要素に対応するオブジェクトに出すという
処理を自動的に行い、該信号に対応する処理をオブジェ
クトが実行し、 ユーザ側からは、対象システムのオブジェクト間の信号
のどの要素が何の処理を行うかという情報をやり取りす
るように、イベントルーチン間のメッセージ交信により
記述するだけで実現し、あたかもオブジェクト間でやり
とりしているように思わせることを特徴とするイベント
駆動型シミュレータのプログラミング方法。 - 【請求項2】イベント発生時に対象システムの構成要素
がどのように変化するかを記述したイベントルーチン
と、将来発生予定のイベントを時刻順に並べたイベント
リストと、シミュレータ内の時刻を進めるシミュレーシ
ョンクロックと、イベントを時刻順に処理し、シミュレ
ーションの進行を司るイベント実行管理の処理ロジック
のある時刻管理部とから構成されるイベント駆動型シミ
ュレータにおいて、 前記のように、対象となるシステムの各ハード構成要素
ごとに、該要素の動作を模擬するマイクロプログラムに
対応する処理記述部と、前記動作を模擬する上で必要な
装置の状態動作開始時刻からなるデータを1つのオブジ
ェクトとし、対象システムオブジェクトは個々の独立な
まとまりとし、個々のオブジェクト間で直接信号のやり
取りを行わないでイベント時刻管理部を経由してやり取
りを行い、そのやり取りの際のイベント時刻管理部と対
象システムオブジェクト間のインターフェースを対象シ
ステムのオブジェクト毎に依存しないで統一することを
特徴とする請求項1記載のイベント駆動型シミュレータ
のプログラミング方法。 - 【請求項3】イベント発生時にシステムがどのように変
化するかを記述したイベントルーチンと、将来発生予定
のイベントを時刻順に並べたイベントリストと、シミュ
レータ内の時刻を進めるシミュレーションクロックと、
イベントを時刻順に処理し、シミュレーションの進行を
司るイベント実行管理の処理ロジックとから構成される
イベント駆動型シミュレータにおいて、 前記対象システムのオブジェクトがある処理の実行中
に、別の処理の実行要求が発生した時、予め定められた
処理の実行優先順位に従って処理を中断し、別の処理を
実行開始するという割込み処理を記述できることを特徴
とする請求項1記載のイベント駆動型シミュレータのプ
ログラミング方法。 - 【請求項4】前記イベント駆動型シミュレータにおい
て、 前記割込み処理によるイベントリスト内に一旦登録した
イベントの取消し、他のイベント処理の割込みによる中
断、再開による処理のバリエーション、及び、割込み処
理開始条件、再開条件を、対象システムのオブジェクト
内の処理記述部内に記述することを特徴とする請求項1
記載のイベント駆動型シミュレータのプログラミング方
法。 - 【請求項5】前記イベント駆動型シミュレータにおい
て、 イベントを、イベント名称、イベント登録時刻、イベン
ト送信予定時刻、発信者名称、送信先名称、イベントの
状態情報からなるレコード単位で定義し、 実行中のイベント処理が中断したら、イベントリスト中
のイベントの状態情報を中断状態に変更し、前記イベン
トを中断させたイベントには、処理が終了したときに再
開するイベントとして、中断したイベント名称を記録し
ておき、 前記イベントが終了したら、中断したイベントの状態を
中断状態から実行状態へ変更し、処理を再開し、処理を
行うことを特徴とする請求項4記載のイベント駆動型シ
ミュレータのプログラミング方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19511694A JPH0863371A (ja) | 1994-08-19 | 1994-08-19 | イベント駆動型シミュレータのプログラミング方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19511694A JPH0863371A (ja) | 1994-08-19 | 1994-08-19 | イベント駆動型シミュレータのプログラミング方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0863371A true JPH0863371A (ja) | 1996-03-08 |
Family
ID=16335766
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP19511694A Pending JPH0863371A (ja) | 1994-08-19 | 1994-08-19 | イベント駆動型シミュレータのプログラミング方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0863371A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1130948A (ja) * | 1997-07-11 | 1999-02-02 | Kubota Corp | プラント運転訓練用シミュレーションシステム |
-
1994
- 1994-08-19 JP JP19511694A patent/JPH0863371A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1130948A (ja) * | 1997-07-11 | 1999-02-02 | Kubota Corp | プラント運転訓練用シミュレーションシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR930000592B1 (ko) | 타스크 추적장치 | |
| Urunuela et al. | Storm a simulation tool for real-time multiprocessor scheduling evaluation | |
| EP3364296B1 (en) | Simulating execution-time variations and scheduling in a block-oriented simulation system | |
| JPH0895821A (ja) | マルチタスクのプログラムデバッグ方法とその装置 | |
| JP5270330B2 (ja) | マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置 | |
| JPH03230225A (ja) | プロセス分散方法 | |
| JP2009146404A (ja) | 動的コード更新 | |
| US20120310620A1 (en) | Method and system for simulation of real-time systems using access points | |
| JP2000066904A (ja) | マルチタスク制御方法及び記憶媒体 | |
| US20080270770A1 (en) | Method for Optimising the Logging and Replay of Mulit-Task Applications in a Mono-Processor or Multi-Processor Computer System | |
| Adelt et al. | Reusable formal models for concurrency and communication in custom real-time operating systems | |
| JP5542643B2 (ja) | シミュレーション装置及びシミュレーションプログラム | |
| JPS6073746A (ja) | 情報処理システムおよびプロセス実行制御方式 | |
| Zhu et al. | A timing verification framework for AUTOSAR OS component development based on real-time maude | |
| JPH0863371A (ja) | イベント駆動型シミュレータのプログラミング方法 | |
| de la Cámara et al. | Model extraction for arinc 653 based avionics software | |
| EP0445954A2 (en) | Synchronising concurrent processes in a computer system | |
| JP6510430B2 (ja) | トレースデータ編集装置及び方法 | |
| EP1011045B1 (en) | Object-oriented job scheduler | |
| Socci et al. | A timed-automata based middleware for time-critical multicore applications | |
| Alvarez et al. | An analyzable execution model for SDL for embedded real-time systems | |
| CN113127162A (zh) | 自动化任务执行方法、装置、电子设备及计算机存储介质 | |
| CN112528351B (zh) | 用于使驾驶功能自动化的方法和设备 | |
| Adelt et al. | Towards reusable formal models for custom real-time operating systems | |
| JPS58182766A (ja) | プログラムトレ−ス装置 |