JP4037079B2 - 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム - Google Patents

画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム Download PDF

Info

Publication number
JP4037079B2
JP4037079B2 JP2001313154A JP2001313154A JP4037079B2 JP 4037079 B2 JP4037079 B2 JP 4037079B2 JP 2001313154 A JP2001313154 A JP 2001313154A JP 2001313154 A JP2001313154 A JP 2001313154A JP 4037079 B2 JP4037079 B2 JP 4037079B2
Authority
JP
Japan
Prior art keywords
monitoring
program
information
application
operation information
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.)
Expired - Fee Related
Application number
JP2001313154A
Other languages
English (en)
Other versions
JP2002215420A (ja
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2001313154A priority Critical patent/JP4037079B2/ja
Publication of JP2002215420A publication Critical patent/JP2002215420A/ja
Application granted granted Critical
Publication of JP4037079B2 publication Critical patent/JP4037079B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを、複数プロセスの並列実行により提供し、各プロセスの動作情報を監視することができる画像形成装置、このようなプロセス監視方法およびこの方法をコンピュータに実行させるプログラムに関するものである。
【0002】
【従来の技術】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が一般的に知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する3種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【0003】
このような複合機では、プリンタ、コピー、ファクシミリ、スキャナなどの各機能単位でアプリケーションプログラムを開発して複合機上で動作させているため、複合機で動作するプロセス数も機能単位ごとに存在し、比較的小さいプロセス数となっている。このため、かかる従来の複合機の開発段階では、各機能単位のプロセスが正常に動作しているか否かを監視するデバッグ作業が重要な位置づけとなってくる。
【0004】
ここで、近年、計算機システムにおいて利用するソフトウェア開発が広く行われている。このソフトウェア開発の過程で発生するエラーの検出テストには、静的なものと動的なものの2分類がある。静的なテストとは、プログラムを実行せずに検出テストを行う方法である。また、動的なテストとは、プログラムにある種のプローブを埋め込んでプログラムの振る舞いを監視する方法である。
【0005】
通常、プローブの埋め込み技術を「タグ付け」と呼び、「1.プログラムのソースコードレベルで命令を追加する」、「2.実際の変換プロセスを変更して、ソースコードによる表現のないオブジェクトコードを追加する」、「3.静的なリンクプロセスの特性を利用して選択されたライブラリ関数の呼出しを横取りし、それと同等な「タグ付け」された関数の呼出しに置き換える」、「4.そのまま実行できる状態の実行モジュールにプログラムの流れをオブジェクトコードレベルで分析した結果に基づいて追加コードを挿入する」、というような4種類のタグ付けが一般的に知られている。
【0006】
タグとは、ファイルやファイル内のデータの一部に付加する属性情報のことをいい、ユーザやプログラムがこのタグを参照することで、様々な判断や処理ができるようになっている。タグ付けは、検証対象のソフトウェアに検証作業専用のコードを挿入することによって、ソフトウェア検証を客観的かつ正確に行う手法である。この機能を使用して並列に動作するソフトウェアの並列動作を識別するタグ関数を挿入する。タグ付けによるマルチタスク(同時に異なる2つ以上の処理(アプリケーション)を実行できる利用環境のこと)の検証すなわち、並列動作するソフトウェア動作(ソフトウェアシステム)の検証は、ソフトウェア機能を識別するタグ関数を挿入し、同時刻に動作する各タスクの処理をトレースすることによってエラーとなる箇所を検出する方法で行う。
【0007】
【発明が解決しようとする課題】
しかしながら、並列動作するソフトウェアシステムにおいて協調動作を行う処理やリアルタイム性が要求されるような処理では、エラーの起因が並列動作によるものである場合、エラー、バグなどの検出は困難である。
【0008】
ここで、上述の従来の複合機では、コピー、プリンタ、スキャナおよびファクシミリなどの大きな機能単位でプロセスが実行されているため、プロセス間のデータの送受信などはさほど発生せず、従来のデバッグ方法でも障害原因を容易に検出することが可能であった。
【0009】
しかしながら、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。この複合機によれば、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【0010】
このような新規な複合機では、アプリケーションのプロセスが機能ごとに複数存在するばかりか、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスのプロセスが存在し、複合機内部には、従来の複合機に比べて非常に多くのプロセスが動作している。しかも、かかる複合機では、コントロールサービスのプロセスは、複数のアプリケーションが共通に必要とするサービスを提供するという位置づけにあるため、各コントロールサービスは多数のアプリケーションのプロセスとの間でデータ送受信が発生する。また、アプリケーションのプロセスとの間ばかりではなく、コントロールサービス同士のプロセス間においてもデータの送受信が生じる。
【0011】
このように、出願人が発明をした新規な複合機は、多数のプロセスが複雑に絡み合って協働するという特徴的な構成となっているため、従来の複合機のように、各プロセスごとにデバッグ作業を行うだけでは、並列に実行される複数のプロセスの動作を正確に把握することができず、デバッグ作業が困難になるという問題がある。
【0012】
また、かかる複合機は、アプリケーションとコントロールサービスとを別個に設けており、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して複合機に搭載可能な構成となっている。このため、新規アプリケーションの開発段階で、新規アプリケーションのプロセスが正常に動作しているか否か、および新規アプリケーションのプロセスと既存のアプリケーションおよびコントロールサービスの各プロセスとの間のデータ送受信が正常に行われているか否かを正確かつ容易に判断しなければならないという、従来の複合機開発では問題にならなかった新規な課題が生じている。
【0013】
この発明は上記に鑑みてなされたもので、多数のプロセスが並列実行される環境で並列動作するプロセスの動作状態を監視して、デバッグ作業を正確かつ容易に行うことができる画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラムを得ることを目的とする。
【0014】
【課題を解決するための手段】
上記目的を達成するため、請求項1にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備え、前記プログラムまたは前記アプリケーションが各プロセスの動作情報を出力する検証コードを含んでいる画像形成装置であって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信するプロセス監視手段を備え、前記プログラムまたは前記アプリケーションの各プロセスは、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス監視手段にプロセス間通信により受け渡し、前記プロセス監視手段は、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする。
【0015】
この請求項1の発明によれば、プロセス監視手段によって、プログラムまたはアプリケーションの並列実行されている2以上のプロセスから、検証コードの実行による各プロセスの動作情報をプロセス間通信によって取得することで、画像形成装置上で並列実行されるプログラムまたはアプリケーションのプロセスの検証を確実に行うことができ、並列ソフトウェアの特性分析などのデバッグ作業の効率化を図ることができる。
また、この請求項1の発明によれば、プロセス監視手段が監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した監視情報に基づいてプロセスの動作情報を取得することで、所望の並列プロセスのみの検証を行うことができ、デバッグ作業を効率的に行うことができる。
本発明における監視情報とは、監視対象のプロセスに対する監視内容を指定したものであればよく、例えば、監視対象のプロセス識別情報、監視開始位置、監視終了位置、監視項目など任意に設定することができる。また、監視情報は、プロセス監視手段が受信するものであればよく、例えばデバッグ作業を行うユーザがオペレーションパネルなどの操作部から入力した情報や、デバッグ作業を行うユーザがネットワーク経由で、PCなどから入力して送信した情報、あるいはネットワーク上の他の画像形成装置やネットワーク上の画像形成装置開発元のホストコンピュータなどから送信された情報も含まれる。
【0016】
本発明におけるプロセス監視手段は、並列実行されるプロセスの動作情報をプロセス間通信によって取得するものであればよく、プロセス間通信の手法については特に限定されるものではない。例えば、プロセス間通信の例として、各プロセスからプロセスの動作情報をメッセージ送受信により取得したり、関数呼び出しにより取得したり、あるいはプロセス間で共有の共有メモリを介して動作情報を取得することは任意である。
【0017】
また、本発明におけるコントロールサービス、アプリケーションのプログラムには、プロセス監視手段による監視処理を行う時点で検証コードが含まれていればよく、あらかじめ各プログラムのソースコードに検証コードを付加しておき、検証コードごと実行ファイルを生成しておく他、監視処理を開始する段階で、検証コードをコントロールサービスまたはアプリケーションの実行形式のプログラムに付加する場合も含まれる。従って、本発明における検証コードにはソースコード形式の他、実行可能コード形式も含まれる。
【0018】
また、請求項2にかかる発明は、請求項1に記載の画像形成装置において、前記プロセス監視手段は、さらに前記プログラムのプロセスまたは前記アプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することを特徴とする。
【0019】
この請求項2の発明によれば、プロセス監視手段がプログラムのプロセスまたはアプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することで、並列実行される複数プロセスの動作情報だけでなく、プロセス間通信によってプロセス内部で並列実行される複数のスレッドの動作情報を取得できるので、ソフトウェア特性分析などのデバッグ作業のさらなる効率化を図ることができる。
【0020】
特に、本発明における画像形成装置を、複数のプロセスの他、多種多様な機能を実現するために複数のスレッドを生成して実行させるような特徴的な構成とした場合には、複雑なスレッド間の協調動作により画像形成処理にかかるユーザサービス(例えば、コピー、プリント、スキャナ、ファクシミリなど)が正常に動作しているか否かを、正確かつ容易に検証することができ、従来の画像形成装置におけるデバッグ作業に比べて検証作業の確実性および効率化を向上させることができる。
【0021】
また、請求項3にかかる発明は、請求項1または2に記載の画像形成装置において、前記プログラムのプロセスまたは前記アプリケーションのプロセス、および前記プロセス監視手段のプロセスから共通にアクセス可能な共有メモリをさらに備え、前記プロセス監視手段は、前記共有メモリを介して前記プログラムのプロセスまたは前記アプリケーションのプロセスから前記動作情報を取得することを特徴とする。
【0022】
この請求項3の発明によれば、プロセス監視手段が共有メモリを介してプログラムのプロセスまたはアプリケーションのプロセスからプロセスの動作情報を取得することで、共有メモリを利用したプロセス間通信によってプロセスの動作情報を取得することができ、画像形成装置上で並列実行されるプロセスの検証を確実に実現することができる。
【0023】
また、請求項4にかかる発明は、請求項3に記載の画像形成装置において、前記共有メモリは、前記動作情報を格納順に取出し可能なFIFOキューを備え、前記プログラムのプロセスまたは前記アプリケーションのプロセスは、前記動作情報を前記FIFOキューに格納し、前記プロセス監視手段は、前記FIFOキューから前記動作情報を取得することを特徴とする。
【0024】
この請求項4の発明によれば、プログラムのプロセスまたはアプリケーションのプロセスがプロセスの動作情報を共有メモリ内の格納順に取出し可能なFIFOキューに格納し、プロセス監視手段がFIFOキューからプロセスの動作情報を取得することで、並列実行されるプロセスの動作情報を時系列に取得することができ、並列実行されるプロセスの検証が複雑になることを回避して、デバッグ作業を効率的に行うことができる。
【0025】
また、請求項5にかかる発明は、請求項3または4に記載の画像形成装置において、前記プログラムのプロセスまたは前記アプリケーションのプロセスは、現在の実行位置を示す現在位置情報を、前記共有メモリに格納し、前記プロセス監視手段は、前記共有メモリに格納された前記現在位置情報に基づいて、前記動作情報を取得することを特徴とする。
【0026】
この請求項5の発明によれば、プロセス監視手段が共有メモリに格納された、プログラムのプロセスまたはアプリケーションのプロセスの現在の実行位置を示す現在位置情報に基づいてプロセスの動作情報を取得することで、プロセスの実行状況を常に把握しながらプロセスの検証を行うことができる。
【0030】
また、請求項にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備えた画像形成装置であって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信し、並列実行される複数のプロセスを監視するプロセス監視手段を有し、前記プロセス監視手段は、プロセス監視要求があったときに、前記プログラムまたは前記アプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加する検証コード付加手段と、監視対象の前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、前記動作情報を、プロセス間通信によって取得するプロセス情報取得手段と、を備え、前記プログラムまたは前記アプリケーションの各プロセスは、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス情報取得手段にプロセス間通信により受け渡し、前記プロセス情報取得手段は、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする。
【0031】
この請求項の発明によれば、プロセス監視要求があったときに、検証コード付加手段によってプログラムまたはアプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加し、プロセス情報取得手段によって監視対象の前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスからプロセスの動作情報をプロセス間通信によって取得することで、監視要求のあった時点で監視対象のプログラムのみに検証コードを付加すればよいため、プログラム開発段階で、デバッグ用に検証コードをすべてのプログラムに付加する必要がなくなり、全体としてデバッグ作業の効率化を図ることができる。
【0032】
本発明における検証コード付加手段は、プロセス監視要求があったときに、監視対象のプログラムに検証コードを付加するものであればよく、その付加方法については特に限定されるものではない。例えば、プログラム開発時に作成される関数名および変数名とアドレスとを対応付けたリンクマップや、ソースコードと実行プログラムコードのアドレスを対応付けた表などのアドレス解決情報を用いて、検証コードを所望の位置に付加することができる。
【0033】
また、検証コード付加手段は、各プログラムごとに検証コードを付加するために各プログラムごとに存在しても、一つの検証コード付加手段によって各プログラムに対し検証コードを付加するように構成することは任意である。
【0034】
また、請求項にかかる発明は、請求項に記載の画像形成装置において、前記検証コード付加手段は、前記プログラムまたは前記アプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて、前記検証コードを前記プログラムまたは前記アプリケーションのプログラムに付加することを特徴とする。
【0035】
この請求項の発明によれば、検証コード付加手段によって、プログラムまたはアプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて検証コードをプログラムまたはアプリケーションのプログラムに付加することで、アドレス解決情報に従って監視位置が明確になるので、確実に検証コードを任意の位置に付加することができる。
【0036】
また、請求項にかかる発明は、請求項6または7に記載の画像形成装置において、前記検証コード付加手段は、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて前記監視対象のプロセスに前記検証コードを付加することを特徴とする。
【0037】
この請求項の発明によれば、検証コード付加手段によって、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて監視対象のプロセスに検証コードを付加することで、監視情報で指定されたプログラムのみに検証コードを付加すれば良く、さらにデバッグ作業の効率化を図ることができる。
【0038】
また、請求項にかかる発明は、請求項1〜8のいずれか一つに記載の画像形成装置において、前記アプリケーションに含まれ、前記プロセス監視手段として動作するプロセス監視アプリを備えたことを特徴とする。
【0039】
この請求項の発明によれば、プロセス監視手段としてアプリケーション層で動作するプロセス監視アプリを備えたことで、プロセス監視アプリとプログラムとの間のプロセス間通信をアプリケーションプログラムインタフェースを利用して実現することができ、プログラム開発の効率化を図ることができる。
【0040】
また、請求項10にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備え、前記プログラムまたは前記アプリケーションが各プロセスの動作情報を出力する検証コードを含んでいる画像形成装置で実行されるプロセスの動作情報を取得するプロセス監視方法であって、プロセス監視手段によって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信するプロセス監視ステップと、プロセッサによって実行される前記プログラムまたは前記アプリケーションの各プロセスによって、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス監視手段にプロセス間通信により受け渡す受け渡しステップと、を含み、前記プロセス監視ステップは、前記プロセス監視手段によって、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする。
【0041】
この請求項10の発明によれば、プロセス監視ステップによって、プログラムまたはアプリケーションの並列実行されている2以上のプロセスから、検証コードの実行による各プロセスの動作情報をプロセス間通信によって取得することで、画像形成装置上で並列実行されるプログラムまたはアプリケーションのプロセスの検証を確実に行うことができ、並列ソフトウェアの特性分析などのデバッグ作業の効率化を図ることができる。
この請求項10の発明によれば、プロセス監視ステップが監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した監視情報に基づいてプロセスの動作情報を取得することで、所望の並列プロセスのみの検証を行うことができ、デバッグ作業を効率的に行うことができる。
【0042】
また、請求項11にかかる発明は、請求項10に記載のプロセス監視方法において、前記プロセス監視ステップは、さらに、前記プロセス監視手段によって、前記プログラムのプロセスまたは前記アプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することを特徴とする。
【0043】
この請求項11の発明によれば、プロセス監視ステップがさらにプログラムのプロセスまたはアプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することで、並列実行される複数プロセスの動作情報だけでなく、プロセス間通信によってプロセス内部で並列実行される複数のスレッドの動作情報を取得できるので、ソフトウェア特性分析などのデバッグ作業のさらなる効率化を図ることができる。
【0044】
特に、本発明におけるプロセス監視方法を、複数のプロセスの他、多種多様な機能を実現するために複数のスレッドを生成して実行させるような特徴的な画像形成装置で使用した場合には、複雑なスレッド間の協調動作により画像形成処理にかかるユーザサービス(例えば、コピー、プリント、スキャナ、ファクシミリなど)が正常に動作しているか否かを、正確かつ容易に検証することができ、従来の画像形成装置におけるデバッグ作業に比べて検証作業の確実性および効率化を向上させることができる。
【0045】
また、請求項12にかかる発明は、請求項10または11に記載のプロセス監視方法において、前記プロセス監視ステップは、前記プロセス監視手段によって、前記プログラムのプロセスまたは前記アプリケーションのプロセス、およびプロセス監視を実行するプロセスから共通にアクセス可能な共有メモリを介して前記プログラムのプロセスまたは前記アプリケーションのプロセスから前記動作情報を取得することを特徴とする。
【0046】
この請求項12の発明によれば、プロセス監視ステップが共有メモリを介してプログラムのプロセスまたはアプリケーションのプロセスからプロセスの動作情報を取得することで、共有メモリを利用したプロセス間通信によってプロセスの動作情報を取得することができ、画像形成装置上で並列実行されるプロセスの検証を確実に実現することができる。
【0047】
また、請求項13にかかる発明は、請求項12に記載のプロセス監視方法において、前記プロセッサにより実行される前記プログラムのプロセスまたは前記アプリケーションのプロセスは、前記動作情報を、前記共有メモリに確保された前記動作情報を格納順に取出し可能なFIFOキューに格納し、前記プロセス監視ステップは、前記プロセス監視手段によって、前記FIFOキューから前記動作情報を取得することを特徴とする。
【0048】
この請求項13の発明によれば、プログラムのプロセスまたはアプリケーションのプロセスがプロセスの動作情報を共有メモリ内の格納順に取出し可能なFIFOキューに格納し、プロセス監視ステップがFIFOキューからプロセスの動作情報を取得することで、並列実行されるプロセスの動作情報を時系列に取得することができ、並列実行されるプロセスの検証が複雑になることを回避して、デバッグ作業を効率的に行うことができる。
【0049】
また、請求項14にかかる発明は、請求項12または13に記載のプロセス監視方法において、前記プロセッサによって実行される前記プログラムのプロセスまたは前記アプリケーションのプロセスは、現在の実行位置を示す現在位置情報を、前記共有メモリに格納し、前記プロセス監視ステップは、前記プロセス監視手段によって、前記共有メモリに格納された前記現在位置情報に基づいて、前記動作情報を取得することを特徴とする。
【0050】
この請求項14の発明によれば、プロセス監視ステップが共有メモリに格納された、プログラムのプロセスまたはアプリケーションのプロセスの現在の実行位置を示す現在位置情報に基づいてプロセスの動作情報を取得することで、プロセスの実行状況を常に把握しながらプロセスの検証を行うことができる。
【0053】
また、請求項15にかかる発明は、印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備えた画像形成装置で並列実行される複数のプロセスからプロセスの動作情報を取得するプロセス監視方法であって、検証コード付加手段によって、プロセス監視要求があったときに、前記プログラムまたは前記アプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加する検証コード付加ステップと、送信手段によって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信する送信ステップと、プロセス情報取得手段によって、監視対象の前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、前記動作情報を、プロセス間通信によって取得するプロセス情報取得ステップと、を含み、前記プロセッサによって実行される前記プログラムまたは前記アプリケーションの各プロセスによって、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス情報取得手段にプロセス間通信により受け渡す受け渡しステップと、前記プロセス情報取得ステップは、前記プロセス情報取得手段によって、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする。
【0054】
この請求項15の発明によれば、プロセス監視要求があったときに、検証コード付加ステップによってプログラムまたはアプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加し、プロセス情報取得ステップによって監視対象のプログラムまたはアプリケーションの並列実行されている2以上のプロセスからプロセスの動作情報をプロセス間通信によって取得することで、監視要求のあった時点で監視対象のプログラムのみに検証コードを付加すればよいため、プログラム開発段階で、デバッグ用に検証コードをすべてのプログラムに付加する必要がなくなり、全体としてデバッグ作業の効率化を図ることができる。
【0055】
また、請求項16にかかる発明は、請求項15に記載のプロセス監視方法において、前記検証コード付加ステップは、前記検証コード付加手段によって、前記プログラムまたは前記アプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて、前記検証コードを前記プログラムまたは前記アプリケーションのプログラムに付加することを特徴とする。
【0056】
この請求項16の発明によれば、検証コード付加ステップによって、プログラムまたはアプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて検証コードをプログラムまたはアプリケーションのプログラムに付加することで、アドレス解決情報に従って監視位置が明確になるので、確実に検証コードを任意の位置に付加することができる。
【0057】
また、請求項17にかかる発明は、請求項15または16に記載のプロセス監視方法において、前記検証コード付加ステップは、前記検証コード付加手段によって、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて前記監視対象のプロセスに前記検証コードを付加することを特徴とする。
【0058】
この請求項17の発明によれば、検証コード付加ステップによって、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて監視対象のプロセスに検証コードを付加することで、監視情報で指定されたプログラムのみに検証コードを付加すれば良く、さらにデバッグ作業の効率化を図ることができる。
【0065】
また、請求項18にかかる発明は、請求項10〜17のいずれか一つに記載された方法をコンピュータに実行させるプログラムであるので、請求項10〜17のいずれか一つの動作をコンピュータによって実行することができる。
【0066】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。
【0067】
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の構成を示すブロック図である。図1に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、スキャナ、ファクシミリ、ハードディスク、メモリ、ネットワークインタフェースなどのハードウェアリソース103を有するとともに、プラットホーム120とアプリケーション130とから構成されるソフトウェア群110とを備えている。
【0068】
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
【0069】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
【0070】
汎用OS121は、UNIXなどの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
【0071】
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【0072】
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0073】
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
【0074】
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース103のエンジンの制御を行う。
【0075】
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
【0076】
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0077】
NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。
【0078】
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)210の制御を行う。なお、実施の形態1にかかる複合機100では、OCS126はプロセスとして複合機100の内部で動作しているが、この他、上述のOCS126の機能を関数として実装したOCS関数ライブラリを、各アプリケーション130にリンク(結合)することにより、上記OCS126の機能を実現する構成としても良い。
【0079】
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とプロセス監視アプリ117とを有している。
【0080】
プロセス監視アプリ117は、本発明におけるプロセス監視手段を構成するものであり、アプリケーション層で動作するプロセスである。このプロセス監視アプリ117は、監視情報の指定に従って、複合機100で動作するプロセスのロギング情報を取得する。ここで、ロギング情報とは、プログラムの処理内容やプロセス情報を時間の流れに沿って記録したものであり、本発明におけるプロセスの動作情報を構成する。
【0081】
プロセス監視アプリ117は、具体的には、オペレーションパネル210からのデバッグ作業を行うユーザの操作あるいはネットワークに接続されたリモートPC(Personal Computer)でデバッグ作業を行うユーザから監視情報を受信し、監視情報に設定された情報を後述する共有メモリのロギング管理テーブルに設定し、このロギング管理テーブルの設定情報に従って各プロセスから共有メモリのFIFOキューに出力したロギング情報を取得する。
【0082】
ここで、監視情報とは、監視対象のプロセス(例えば、プリンタアプリ111、コピーアプリ112、ECS124、MCS125など)、監視位置(コピー開始から終了まで、特定の関数の開始から終了まで、上位10個のスレッドなど)、監視内容(関数など)を設定したものである。
【0083】
そして、プロセス監視アプリ117は、取得したロギング情報からログファイルを生成して、プリンタやオペレーションパネル210の表示部に出力したり、あるいはロギング情報をネットワークに接続されたリモートPCに送信する。なお、プロセス監視アプリ117の詳細な動作については後述する。
【0084】
図2は、図1に示した実施の形態1の複合機100のハードウェア構成図である。図2に示すように、この複合機100は、CPU202、SDRAM203、SRAM208、フラッシュメモリ204、およびHD205などをASIC201に接続したコントローラボード200と、オペレーションパネル210と、ファックスコントロールユニット(FCU)220と、USB230と、IEEE1394 240と、プリンタ250とから構成されている。オペレーションパネル210はASIC201に直接接続され、FCU220、USB230、IEEE1394 240およびプリンタ250はPCIバスを介してASIC201に接続されている。フラッシュメモリ204には、上述の各アプリ、プラットホーム120を構成する各コントロールサービスやSRM123の各プログラムが格納されている。
【0085】
オペレーションパネル210は、ユーザが複合機100に対して機能選択などの指示を与える操作パネルである。複合機100のデバッグ作業を行うユーザは、このオペレーションパネル210から監視対象のプロセスや監視位置、監視内容などを指定した監視情報を入力するようになっている。ユーザ操作により入力された監視情報は、SCS122およびOCS126を介してプロセス監視アプリ117に送信される。
【0086】
SDRAM203には、プロセス監視アプリ117のプロセス、他のアプリケーション130のプロセスおよび各コントロールサービスのプロセスで共有され、共通にアクセス可能な共有メモリ領域(以下、「共有メモリ」という。)が確保されている。
【0087】
実施の形態1にかかる複合機100で実行されるプロセス監視プログラム(プロセス監視アプリ117のプログラム)は、ソフトウェア開発キット(SDK:Software Depelopment Kit)の一部または全部として、CD−ROMまたはFDなどの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のファイルを、ネットワーク経由でNCS128を介して(あるいはNCS128を介さずに直接ダウンロードするなど)取得可能な方法で提供するようにしても良い。
【0088】
図3は、実施の形態1にかかる複合機100で行われるプロセス監視方法において、監視対象プロセスの実行状況、プロセス監視アプリ117の動作状況および共有メモリの状態の模式図である。
【0089】
図3に示すように、複合機100は、プロセス監視アプリ117とアプリケーション130およびコントロールサービス(図3の例では、コピーアプリ112のプロセス、MCS125のプロセス)が共有し共にアクセス可能な共有メモリ300を有しており、プロセス監視アプリ117はこの共有メモリ300を利用したプロセス間通信によって、アプリケーション130およびコントロールサービスの各プロセスの動作状況を監視している。
【0090】
この共有メモリ300には、ロギング管理テーブル301と、現在位置テーブル302と、ロギング出力FIFOキュー303の各領域が確保されている。ロギング管理テーブル301は、オペレーションパネル210またはリモートPC320からの監視情報の設定内容がプロセス監視アプリ117によって書き込まれる。監視対象のプロセス(図3の場合、コピーアプリ112およびMCS125の各プロセス)は、共有メモリ300のロギング管理テーブル301を参照して、ロギングすべき状態か否かを判断する。
【0091】
現在位置テーブル302は、各プロセスが実行するタグ関数によって、現在のプロセスID(PID)、スレッドID(thrID)、タグIDが書き込まれる。ロギング出力FIFOキュー303は、格納順に取り出すことが可能ないわゆるFIFO(First−In First−Out)形式のキューであり、監視対象の各プロセスにおけるタグ関数によりロギング情報が格納され、格納されたロギング情報が格納順にプロセス監視アプリ117から取り出せるようになっている。
【0092】
プロセス監視アプリ117は、監視情報設定部304とロギング情報取得部305とを備えている。監視情報設定部304は、オペレーションパネル210またはリモートPC320から監視情報を受信し、監視情報の設定内容を共有メモリ300のロギング管理テーブル301に設定するものである。ロギング情報取得部305は、共有メモリ300のロギング出力FIFOキュー303を一定間隔でポーリングし、ロギング出力FIFOキュー303に格納されているロギング情報を格納順に取得し、取得したロギング情報をオペレーションパネル210にOCS126経由で出力したり、プリンタに出力する。あるいは取得したロギング情報をリモートPC320にNCS128経由で送信する。
【0093】
プロセス監視処理実行時には、コピーアプリ112およびMCS125のプログラムの中にタグ関数が挿入されているものとする。ここで、タグ関数とは本発明における検証コードを構成するものである。このタグ関数は、コピーアプリ112やMCS125のプログラム作成段階において各プログラムに挿入したり、あるいはプロセス監視アプリ117によって動的に各プログラムに挿入されるが、実施の形態1ではタグ関数の挿入方法については特に限定せず、プロセス監視アプリ117によるプロセス監視時にタグ関数が監視対象のプロセスのプログラムに付加された状態となっていれば良い。なお、図3に示す各タグ関数の関数名に続く括弧内の番号はタグ関数を識別するためのタグIDである。
【0094】
図3に示すタグ関数tag_setupは、プログラムの起動開始箇所に挿入され、プロセス起動時に実行するタグ関数である。図3の例では、コピーアプリ112およびMCS125の開始時の位置に挿入されている。このタグ関数tag_setupは、共有メモリ300にアクセスするための初期設定を行う。
【0095】
タグ関数tag_inは、関数の入口に挿入するタグ関数であり、プロセス監視アプリ117が制御するロギング管理テーブル301および現在位置テーブル302を参照し、ロギングすべき状態であれば、例えば汎用OS121から提供されるシステムコールなどによって、プロセスID、プロセス占有時間、プロセス優先順位などのプロセス情報を取得し、取得したプロセス情報をロギング情報として共有メモリのロギング出力FIFOキュー303に出力する。
【0096】
タグ関数tag_outは、関数の出口に挿入するタグ関数であり、プロセス監視アプリ117が制御するロギング管理テーブル301および現在位置テーブル302を参照し、ロギングすべき状態であれば上述のプロセス情報を取得し、取得したプロセス情報をロギング情報として共有メモリのロギング出力FIFOキュー303に出力する。
【0097】
タグ関数tag_closeは、プログラムの終了箇所に挿入され、プロセス終了時に実行され、ロギング情報出力の後処理などを行う。図3の例では、コピーアプリ112およびMCS125の開始時の位置に挿入されている。
【0098】
図3に示すように、コピーアプリ112のプロセス(プロセスID(PID)=100)は、メインスレッド(スレッドID(thrID)=1)からthread_create関数によってサブスレッド(スレッドID(thrID)=2)が生成されて、両スレッドは並列実行されている。また、このコピーアプリ112のプロセスと、MCS125のプロセスも並列に実行されている。このようにプロセス監視アプリ117は、コピーアプリ112のプロセス内の並列実行される2つのスレッドと、コピーアプリ112のプロセスと並列実行されるMCS125のプロセスの動作を監視して、ロギング情報を取得するようになっている。
【0099】
つぎに、このように構成された実施の形態1にかかる複合機100によるプロセス監視方法について説明する。図4は、実施の形態1の複合機100におけるプロセス監視アプリ117によるプロセス監視処理の手順を示すフローチャートである。
【0100】
図4に示すように、プロセス監視アプリ117の監視情報設定部304では、オペレーションパネル210またはリモートPC320から監視情報を受信すると(ステップS401)、監視情報に設定されているロギング対象、ロギング開始位置、ロギング終了位置、ロギング項目などを、共有メモリ300のロギング管理テーブル301に書き込む(ステップS402)。図3の例では、監視情報として、ロギング対象が「コピーアプリ、MCS」、ロギング開始位置が「コピースタート」、ロギング終了位置が「コピーエンド」、ロギング項目が「関数」とされており、ロギング管理テーブル301に、これらの内容がそのまま設定される。
【0101】
なお、図3に示すロギング管理テーブル301(および監視情報)の設定内容は一例であり、他の内容を設定することも可能である。たとえば、ロギング開始位置やロギング終了位置をタグ関数のタグIDで指定してもよく、またロギング対象を、「top10のスレッド」のように指定することもできる。
【0102】
つぎに、ロギング情報を取得するため、ロギング情報取得部305は、一定時間ごとに共有メモリ300のロギング出力FIFOキュー303を参照し、データが格納されているか否かを調べる(ステップS403)。そして、データが格納されている場合には、ロギング出力FIFOキュー303から格納順にロギング情報を取得する(ステップS404)。取得したロギング情報は、プリンタに出力あるいはオペレーションパネル210への表示、もしくはリモートPC320に送信される(ステップS405)。
【0103】
図5は、コピーアプリ112、MCS125の各プロセスにおけるタグ関数tag_inおよびtag_outで実行される処理手順を示すフローチャートである。タグ関数は、まず共有メモリ300のロギング管理テーブル301を参照し(ステップS501)、その設定内容からロギングすべき状態か否かを判断する(ステップS502)。かかる判断は、現在のタグ関数がロギング対象、ロギング開始位置およびロギング終了位置の条件に含まれているか否かをチェックすることにより行う。
【0104】
たとえば、図3の例において、現在位置であるタグ関数tag_in(5)の場合には、かかる関数はコピーアプリ112のプロセスで実行されるため、ロギング対象の条件を満たし、またコピーアプリ112のプロセスの開始から終了前に実行されるので、ロギング開始位置およびロギング終了位置の条件を満たす。従って、この場合、ロギングすべき状態であると判断する。
【0105】
そして、ロギングすべき状態の場合には、自プロセスのプロセスID、自スレッドのスレッドID、タグ関数のタグIDなどの情報を現在位置テーブル302に書き込む(ステップS503)。
【0106】
ついで、汎用OS121で提供されるシステムコールなどを利用して、プロセス情報を取得する(ステップS504)。このプロセス情報には、プロセスの開始時間、実行時間、優先順位などプロセスに関する種々の情報があげられる。そして、取得したプロセス情報をタグIDとともにロギング情報として、共有メモリ300のロギング出力FIFOキュー303に書き込む(ステップS505)。ロギング出力FIFOキュー303に書き込まれたロギング情報は、上述のようにプロセス監視アプリ117によって読み出される。
【0107】
このように、実施の形態1にかかる複合機100では、プロセス監視アプリ117によって、コントロールサービスまたはアプリケーション130の並列実行されている2以上のプロセスから、タグ関数の実行による各プロセスの動作情報であるロギング情報を、共有メモリ300を利用したプロセス間通信によって取得しているので、複合機100で並列実行されるコントロールサービスまたはアプリケーションのプロセスの検証を確実に行うことができ、並列ソフトウェアの特性分析などのデバッグ作業の効率化を図ることができる。
【0108】
また、実施の形態1にかかる複合機100では、プロセス監視アプリ117によって、プロセス内で並列実行される複数のスレッドの動作情報であるロギング情報を、共有メモリ300を利用したプロセス間通信により取得することができるので、複雑なスレッド間の協調動作により、コピー、プリント、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスが正常に動作しているか否かを、正確かつ容易に検証することができ、検証作業の確実性および効率化を向上させることができる。
【0109】
(実施の形態2)
実施の形態1の複合機100では、監視対象のプロセスのプログラムに検証コードとしてのタグ関数を付加する点については特に限定していなかったが、この実施の形態2にかかる複合機100は、タグ関数を監視対象のプログラムに動的に付加するものである。
【0110】
実施の形態2にかかる複合機の構成、ハードウェア構成については、図1および図2に示した実施の形態1の複合機100と同様であるので、詳細な説明を省略する。実施の形態2にかかる複合機100は、プロセス監視アプリ117が監視対象のプロセスのプログラムに本発明の検証コードとしてのタグ関数を付加する点が実施の形態1の複合機100と異なる。
【0111】
図6は、実施の形態2の複合機100におけるプロセス監視アプリ117の構成図である。図6に示すように、実施の形態2のプロセス監視アプリ117は、実施の形態1と同様に監視情報設定部304とロギング情報取得部305の他、さらにタグ関数を監視対象プロセスのプログラムに付加するタグ関数付加部306を備えている。ここで、ロギング情報取得部305は本発明におけるプロセス情報取得手段を構成し、タグ関数付加部306は本発明における検証コード付加手段を構成する。
【0112】
タグ関数付加部306は、プログラムのリンク時に生成されたリンクマップをハードディスクから読み出して、監視情報の監視対象プロセスおよび監視する関数名などの指定から監視位置のアドレスを決定する。そして、決定されたアドレスにある命令を、タグ関数を付加した命令に置換する処理を行うことにより、動的にタグ関数を監視対象のプログラムに付加する。
【0113】
図7は、プロセス監視アプリ117によるタグ関数の付加およびプロセス監視の処理手順を示すフローチャートである。プロセス監視アプリ117は、まず監視情報設定部304によって、監視情報を、オペレーションパネル210またはリモートPC320から受信する(ステップS701)。そして、タグ関数付加部306によって受信した監視情報に設定されている監視対象プロセスのプログラムをフラッシュメモリ204から読み出すとともに、ハードディスクからリンクマップを読み出し、監視情報に監視対象位置として指定された関数などのアドレスを決定する(ステップS702)。
【0114】
つぎに、タグ関数付加部306は、決定されたアドレスにあるプログラムの命令を、タグ関数を付加した命令に置換する(ステップS703)。そして、タグ関数付加部306は、SCS122に対して監視対象のプロセスの再起動の依頼メッセージを送信する(ステップS704)。これにより、監視対象のプロセスはSCS122によって、タグ関数が付加されたプロセスとして再起動される。
【0115】
監視情報設定部304は、監視対象プロセスが再起動したか否かをチェックし(ステップS705)、再起動した場合には、実施の形態1のプロセス監視アプリ117と同様に監視処理を実行する(ステップS706)。
【0116】
監視処理の実行が終了した場合には、タグ関数付加部306によって監視対象のプログラムにおいてタグ関数に置換した命令を元に戻し(ステップS707)、再度監視対象プロセスの再起動依頼メッセージをSCS122に送信する(ステップS708)。これにより、監視対象プロセスは元の状態に戻り監視処理が完了する。
【0117】
このように実施の形態2にかかる複合機100では、監視情報を受信したときに、タグ関数付加部306によって、コントロールサービスまたはアプリケーション130の監視要求のあったプログラムに、タグ関数を動的に付加し、プロセス情報取得手段によって監視対象の前記コントロールサービスまたは前記アプリケーションの並列実行されている2以上のプロセスからプロセスのロギング情報を共有メモリ300を利用したプロセス間通信によって取得しているので、監視要求のあった時点で監視対象のプログラムのみに検証コードを付加すればよい。このため、プログラム開発段階で、デバッグ用にタグ関数などの検証コードをすべてのプログラムに付加する必要がなくなり、全体としてデバッグ作業の効率化を図ることができる。
【0118】
なお、実施の形態1および2の複合機100では、本発明のプロセス監視手段をプロセス監視アプリ117としてアプリケーション層に設けているが、例えば、プロセス監視コントロールサービスとして、コントロールサービス層に設けることも可能である。また、アプリケーション層やコントロールサービス層とは別個にプロセス監視手段のプロセスを設けても良い。
【0119】
(実施の形態3)
実施の形態2の複合機100では、タグ関数をプロセス監視の際に動的にプログラムに付加していたが、この実施の形態3では、プログラムの開発段階でタグ関数を付加している。図8は、ソフトウェア機能を識別するタグ関数を挿入するサンプルプログラムを示した説明図である。ここでは、一例としてCソースコードレベルで命令を追加する方法でタグ関数を挿入する場合について説明する。
【0120】
まず、関数の入口801に入口用のタグ関数(tag_in(1))を、関数の出口802、803に出口用のタグ関数(tag_out(1))を挿入する。タグ関数の引数番号(()内の番号)はタグ関数を識別するためのタグIDであり、関数単位で任意のID番号を割り付ける。関数の入口は必ず一箇所であるが、出口に関しては複数存在する場合があるので、全ての出口に出口用のタグ関数を挿入する。なお、タグ関数の挿入は関数単位だけでなく、必要に応じてソフトウェア機能単位で挿入するようにしてもよい。
【0121】
図9は、並列実行されるマルチスレッドのCソースプログラムの動作シーケンスを示した説明図である。図9に示すように、タグ関数は関数単位で挿入されており、tag_setup(1)、tag_in(3)、tag_out(4)、tag_close(2)などの各タグ関数内において、タグID番号を保持することにより、並列動作の関数を識別することができる。タグ関数では、実施の形態1と同様に、プロセス情報および関数識別のためのタグID番号をロギング情報として、共有メモリ300のロギング出力FIFOキュー303に出力している。なお、各タグ関数の機能は、実施の形態1で説明した各タグ関数の機能と同様であるため説明を省略する。
【0122】
図10は、実施の形態3にかかるデバッグ方法で使用するデバッグシステムの構成およびかかるデバッグシステムによる並列プロセスの監視手順を示した説明図である。図10に示すように、実施の形態3にかかるデバッグシステムは、タグ付け自動装置1018と、プロファイル装置1017(以下、「プロセス・プロファイル1017」という)と、共有メモリ300とを備えている。
【0123】
タグ付け自動装置1018は、プログラムやソフトウェア機能に対して、本発明における検証コードとしてのタグ付けを自動的に行う装置である。このタグ付け自動装置1018は、ソースコードプログラムにタグ関数を付加するタグ付けツール1019と、監視情報となるロギング設定ファイルを生成するロギング設定ツール1020と、さらにプリプロセッサ、コンパイラおよびリンカなど通常のプログラム開発を行うために必要なコンポーネントを備えている。
【0124】
プロセス・プロファイル1017は、タグ付け関数が出力するロギング管理テーブルへの監視情報の設定およびプログラムの処理内容やプロセス情報を時間の流れに沿って記録したロギング情報を取得して、一括管理したりプリンタなどに出力を行うものである。このプロセス・プロファイル1017は、ロギング設定ファイルの設定内容を監視情報として共有メモリ300のロギング管理テーブル301に設定する監視情報設定部304と、共有メモリ300のロギング出力FIFOキュー303からロギング情報を取得して、プリンタなどにロギング出力ファイルとして出力するロギング情報取得部305とを備えている。監視情報設定部304は、監視情報をロギング設定ファイル1007から生成する点が実施の形態1で説明したプロセス監視アプリ117の監視情報設定部304と異なっており、他の処理内容は実施の形態1と同様である。また、ロギング情報設定部305の処理内容は、実施の形態1で説明したプロセス監視アプリ117におけるロギング情報取得部305と同様である。
【0125】
共有メモリ300は、監視対象のプロセスと、プロセス・プロファイル1017のプロセスから共有してアクセスされるものであり、実施の形態1と同様に、ロギング管理テーブル301とロギング出力FIFOキュー303の領域が確保されている。
【0126】
つぎに、以上のように構成された実施の形態3のデバッグシステムによるソフトウェアのデバッグ方法について説明する。実施の形態3に係るデバッグ方法では、エラーを検出するために検証するプロセスに検証コードとしてのタグ関数が挿入されており、共有メモリ300を介して各プロセスのロギング情報を取得するようになっている。
【0127】
まず、一例としてC言語ソースプログラムコード(以下、「Cプログラムコード」という。)にタグ関数を挿入する処理手順について説明する。実施の形態3のタグ付け自動装置1018では、図10に示すように、ユーザのCプログラムコードにタグ付け関数を挿入しやすいようにCプログラムコードに対してプリプロセッサ処理を行い、#include、#defineの定義マクロを展開する(ステップS1001)。そして、タグ付け自動装置1018のタグ付けツールによって関数の出入り口にタグ関数を自動挿入する(ステップS1002)。このタグ付けツールは、タグ関数名とタグID番号の対応関係であるタグID辞書ファイル1006を出力する。このタグID辞書ファイル1006は、監視情報のロギング管理テーブル301への設定時にタグ関数名からタグID番号を検索する場合の辞書ファイルとして使用される。そして、タグ付け自動装置1018は、タグ付けされたCプログラムコート1005をコンパイルしてリンクすることによって、タグ付きプログラムの実行ファイル1021を作成する(ステップS1003)。
【0128】
ロギング設定ツール1020は、プロセス・プロファイル1017がロギング管理テーブル301に設定する監視情報の項目を設定したロギング設定ファイル1007を生成する(ステップS1004)。プロセス・プロファイル1017は、ロギング設定ファイル1007の設定内容を解析して、ロギング対象プロセスやロギング開始位置および終了位置などの監視対象位置、ロギング項目などの監視情報をロギング管理テーブル301に設定する。
【0129】
図10の例では、ロギング管理テーブル301に、ロギング対象として「top10のスレッド」が設定されているので、プロセスproc1およびproc2で生成される最初の10個のスレッドが監視対象となる。
【0130】
また、図10の例では、ロギング開始位置がタグIDが3であるタグ関数であり、ロギング終了位置がタグIDが4であるタグ関数となっており、このため図10の矢印で示したロギング開始からロギング終了までのプロセスproc1およびproc2で生成される最初の10個のスレッドの処理がロギング情報として出力されることになる。
【0131】
そして、ロギング対象およびロギング開始位置から終了位置までのタグ関数によってプロセス情報とタグIDが共有メモリ300のロギング出力FIFOキュー303に格納される。そして、プロセス・プロファイル1017のロギング情報取得部305によってロギング情報がロギング出力FIFOキュー303から格納順に取得され、プリンタなどにロギング出力ファイルとして出力される。このようなプロセス監視処理の詳細な手順は、実施の形態1において図4および図5を用いて説明した処理と同様である。
【0132】
以上のように、実施の形態3にかかるデバッグシステムを利用したデバッグ方法では、複数のプロセスおよび複数のスレッドを並列実行可能な計算機システムにおいて、並列動作のソフトウェアシステムの各ソースプログラムに自動的にタグ付けを行っているので、プログラム実行の際に変数などの状態を記録しながら動作を調べるという、ロギング情報を取得することができ、並列動作するソフトウェアシステムの特性分析が容易になり、ソフトウェアシステムの処理速度を向上することができる。
【0133】
また、実施の形態3にかかるデバッグシステムを利用したデバッグ方法では、プログラムにタグ付けを自動的に行うタグ付け自動装置1018と、タグ付けによる実行プログラムのロギング情報を取得し、一括管理するプロファイル装置1017とによって、プログラムのロギング情報を管理するので、タグID番号をユーザに対して隠すことができ、デバッグ方法の操作性、検出効率を向上することができる。
【0134】
さらに、実施の形態3に係るデバッグシステムによる方法は、単一の計算機システム内で独立したアドレス空間を持つマルチプロセスの処理の並列動作ソフトウェアシステムでもエラー、バグの検出をすることができる。
【0135】
なお、実施の形態1〜3において説明したタグ関数は検証コードの一例を示すものであり、取得するプロセスの情報により任意の関数、検証用プログラムを検証コードとして使用することができる。
【0136】
また、実施の形態1〜3において説明した監視情報およびロギング情報も一例を示すものであり、他の情報を監視情報またはロギング情報に含めることも可能である。
【0137】
また、実施の形態1〜3では、共有メモリを利用したプロセス間通信によってロギング情報をプロセス間で送受信しているが、この他メッセージ送受信や関数呼び出しとその戻り値送信などの他のプロセス間通信の手法によって、ロギング情報をプロセス間で送受信するように構成することも可能である。
【0138】
【発明の効果】
以上説明したように、請求項1にかかる発明によれば、画像形成装置上で並列実行されるプログラムまたはアプリケーションのプロセスの検証を確実に行うことができ、並列ソフトウェアの特性分析などのデバッグ作業の効率化を図ることができるという効果を奏する。
また、請求項1にかかる発明によれば、所望の並列プロセスのみの検証を行うことができ、デバッグ作業を効率的に行うことができるという効果を奏する。
【0139】
また、請求項2にかかる発明によれば、並列実行される複数プロセスの動作情報だけでなく、プロセス間通信によってプロセス内部で並列実行される複数のスレッドの動作情報を取得できるので、ソフトウェア特性分析などのデバッグ作業のさらなる効率化を図ることができるという効果を奏する。特に、この発明によれば、画像形成装置を複数のプロセスの他、多種多様な機能を実現するために複数のスレッドを生成して実行させるような特徴的な構成とした場合において、複雑なスレッド間の協調動作により画像形成処理にかかるユーザサービスが正常に動作しているか否かを、正確かつ容易に検証することができ、検証作業の確実性および効率化を向上させることができるという効果を奏する。
【0140】
また、請求項3にかかる発明によれば、共有メモリを利用したプロセス間通信によってプロセスの動作情報を取得することができ、画像形成装置上で並列実行されるプロセスの検証を確実に実現することができるという効果を奏する。
【0141】
また、請求項4にかかる発明によれば、並列実行されるプロセスの動作情報を時系列に取得することができ、並列実行されるプロセスの検証が複雑になることを回避して、デバッグ作業を効率的に行うことができるという効果を奏する。
【0142】
また、請求項5にかかる発明によれば、プロセスの実行状況を常に把握しながらプロセスの検証を行うことができるという効果を奏する。
【0144】
また、請求項にかかる発明によれば、プログラム開発段階で、デバッグ用に検証コードをすべてのプログラムに付加する必要がなくなり、全体としてデバッグ作業の効率化を図ることができるという効果を奏する。
【0145】
また、請求項にかかる発明によれば、アドレス解決情報に従って監視位置が明確になるので、確実に検証コードを任意の位置に付加することができるという効果を奏する。
【0146】
また、請求項にかかる発明によれば、監視情報で指定されたプログラムのみに検証コードを付加すれば良く、さらにデバッグ作業の効率化を図ることができるという効果を奏する。
【0147】
また、請求項にかかる発明によれば、プロセス監視アプリとプログラムとの間のプロセス間通信をアプリケーションプログラムインタフェースを利用して実現することができ、プログラム開発の効率化を図ることができるという効果を奏する。
【0148】
また、請求項10にかかる発明によれば、画像形成装置上で並列実行されるプログラムまたはアプリケーションのプロセスの検証を確実に行うことができ、並列ソフトウェアの特性分析などのデバッグ作業の効率化を図ることができるという効果を奏する。
また、請求項10にかかる発明によれば、所望の並列プロセスのみの検証を行うことができ、デバッグ作業を効率的に行うことができるという効果を奏する。
【0149】
また、請求項11にかかる発明によれば、並列実行される複数プロセスの動作情報だけでなく、プロセス間通信によってプロセス内部で並列実行される複数のスレッドの動作情報を取得できるので、ソフトウェア特性分析などのデバッグ作業のさらなる効率化を図ることができるという効果を奏する。特に、複数のプロセスの他、多種多様な機能を実現するために複数のスレッドを生成して実行させるような特徴的な構成の画像形成装置で本発明のプロセス監視方法を使用することで、複雑なスレッド間の協調動作により画像形成処理にかかるユーザサービスが正常に動作しているか否かを、正確かつ容易に検証することができ、検証作業の確実性および効率化を向上させることができるという効果を奏する。
【0150】
また、請求項12にかかる発明によれば、共有メモリを利用したプロセス間通信によってプロセスの動作情報を取得することができ、画像形成装置上で並列実行されるプロセスの検証を確実に実現することができるという効果を奏する。
【0151】
また、請求項13にかかる発明によれば、並列実行されるプロセスの動作情報を時系列に取得することができ、並列実行されるプロセスの検証が複雑になることを回避して、デバッグ作業を効率的に行うことができるという効果を奏する。
【0152】
また、請求項14にかかる発明によれば、プロセスの実行状況を常に把握しながらプロセスの検証を行うことができるという効果を奏する。
【0154】
また、請求項16にかかる発明によれば、プログラム開発段階で、デバッグ用に検証コードをすべてのプログラムに付加する必要がなくなり、全体としてデバッグ作業の効率化を図ることができるという効果を奏する。
【0155】
また、請求項17にかかる発明によれば、アドレス解決情報に従って監視位置が明確になるので、確実に検証コードを任意の位置に付加することができるという効果を奏する。
【0160】
また、請求項18にかかる発明は、請求項10〜17のいずれか一つに記載された方法をコンピュータに実行させるプログラムであるので、請求項10〜17のいずれか一つの動作をコンピュータによって実行することができるという効果を奏する。
【図面の簡単な説明】
【図1】実施の形態1にかかる複合機の構成を示すブロック図である。
【図2】実施の形態1の複合機のハードウェア構成図である。
【図3】実施の形態1にかかる複合機で行われるプロセス監視方法において、監視対象プロセスの実行状況、プロセス監視アプリの動作状況および共有メモリの状態を示す模式図である。
【図4】実施の形態1の複合機におけるプロセス監視アプリによるプロセス監視処理の手順を示すフローチャートである。
【図5】実施の形態1の複合機において、コピーアプリ、MCSの各プロセスにおけるタグ関数tag_inおよびtag_outで実行される処理手順を示すフローチャートである。
【図6】実施の形態2の複合機におけるプロセス監視アプリの構成図である。
【図7】実施の形態2の複合機におけるプロセス監視アプリによるタグ関数の付加およびプロセス監視の処理手順を示すフローチャートである。
【図8】実施の形態3のデバッグシステムにおいて、ソフトウェア機能を識別するタグ関数を挿入するサンプルプログラムを示した説明図である。
【図9】実施の形態3のデバッグシステムにおいて、並列実行されるマルチスレッドのCソースプログラムの動作シーケンスを示した説明図である。
【図10】実施の形態3にかかるデバッグ方法で使用するデバッグシステムの構成およびかかるデバッグシステムによる並列プロセスの監視手順を示した説明図である。
【符号の説明】
100 複合機
101 白黒ラインプリンタ
102 カラーラインプリンタ
103 ハードウェアリソース
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
117 プロセス監視アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
130 アプリケーション
200 コントローラボード
201 ASIC
202 CPU
203 SDRAM(RAM)
204 フラッシュメモリ(ROM)
205 HD
208 SRAM
210 オペレーションパネル
230 USB
240 IEEE1394
250 プリンタ
300 共有メモリ
301 ロギング管理テーブル
302 現在位置テーブル
303 ロギング出力FIFOキュー
304 監視情報設定部
305 ロギング情報取得部
306 タグ関数付加部
320 リモートPC
330 ネットワーク
1006 タグID辞書ファイル
1007 ロギング設定ファイル
1008 プロセス
1009〜1016 タグ関数
1017 プロセス・プロファイル
1018 タグ付け自動装置
1019 タグ付けツール
1020 ロギング設定ツール
1021 実行ファイル

Claims (18)

  1. 印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備え、前記プログラムまたは前記アプリケーションが各プロセスの動作情報を出力する検証コードを含んでいる画像形成装置であって、
    監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信するプロセス監視手段を備え、
    前記プログラムまたは前記アプリケーションの各プロセスは、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス監視手段にプロセス間通信により受け渡し、
    前記プロセス監視手段は、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする画像形成装置。
  2. 前記プロセス監視手段は、さらに前記プログラムのプロセスまたは前記アプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することを特徴とする請求項1に記載の画像形成装置。
  3. 前記プログラムのプロセスまたは前記アプリケーションのプロセス、および前記プロセス監視手段のプロセスから共通にアクセス可能な共有メモリをさらに備え、
    前記プロセス監視手段は、前記共有メモリを介して前記プログラムのプロセスまたは前記アプリケーションのプロセスから前記動作情報を取得することを特徴とする請求項1または2に記載の画像形成装置。
  4. 前記共有メモリは、前記動作情報を格納順に取出し可能なFIFOキューを備え、
    前記プログラムのプロセスまたは前記アプリケーションのプロセスは、前記動作情報を前記FIFOキューに格納し、
    前記プロセス監視手段は、前記FIFOキューから前記動作情報を取得することを特徴とする請求項3に記載の画像形成装置。
  5. 前記プログラムのプロセスまたは前記アプリケーションのプロセスは、現在の実行位置を示す現在位置情報を、前記共有メモリに格納し、
    前記プロセス監視手段は、前記共有メモリに格納された前記現在位置情報に基づいて、前記動作情報を取得することを特徴とする請求項3または4に記載の画像形成装置。
  6. 印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備えた画像形成装置であって、
    監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信し、並列実行される複数のプロセスを監視するプロセス監視手段を有し、
    前記プロセス監視手段は、プロセス監視要求があったときに、前記プログラムまたは前記アプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加する検証コード付加手段と、監視対象の前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、前記動作情報を、プロセス間通信によって取得するプロセス情報取得手段と、を備え、
    前記プログラムまたは前記アプリケーションの各プロセスは、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前 記プロセス情報取得手段にプロセス間通信により受け渡し、
    前記プロセス情報取得手段は、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とする画像形成装置。
  7. 前記検証コード付加手段は、前記プログラムまたは前記アプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて、前記検証コードを前記プログラムまたは前記アプリケーションのプログラムに付加することを特徴とする請求項に記載の画像形成装置。
  8. 前記検証コード付加手段は、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて前記監視対象のプロセスに前記検証コードを付加することを特徴とする請求項6または7に記載の画像形成装置。
  9. 前記アプリケーションに含まれ、前記プロセス監視手段として動作するプロセス監視アプリを備えたことを特徴とする請求項1〜8のいずれか一つに記載の画像形成装置。
  10. 印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備え、前記プログラムまたは前記アプリケーションが各プロセスの動作情報を出力する検証コードを含んでいる画像形成装置で実行されるプロセスの動作情報を取得するプロセス監視方法であって、
    プロセス監視手段によって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信するプロセス監視ステップと、
    プロセッサによって実行される前記プログラムまたは前記アプリケーションの各プロセスによって、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス監視手段にプロセス間通信により受け渡す受け渡しステップと、を含み、
    前記プロセス監視ステップは、前記プロセス監視手段によって、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とするプロセス監視方法。
  11. 前記プロセス監視ステップは、さらに、前記プロセス監視手段によって、前記プログラムのプロセスまたは前記アプリケーションのプロセスの内部で並列に実行される2以上のスレッドの各動作情報を取得することを特徴とする請求項10に記載のプロセス監視方法。
  12. 前記プロセス監視ステップは、前記プロセス監視手段によって、前記プログラムのプロセスまたは前記アプリケーションのプロセス、およびプロセス監視を実行するプロセスから共通にアクセス可能な共有メモリを介して前記プログラムのプロセスまたは前記アプリケーションのプロセスから前記動作情報を取得することを特徴とする請求項10または11に記載のプロセス監視方法。
  13. 前記プロセッサにより実行される前記プログラムのプロセスまたは前記アプリケーションのプロセスは、前記動作情報を、前記共有メモリに確保された前記動作情報を格納順に取出し可能なFIFOキューに格納し、
    前記プロセス監視ステップは、前記プロセス監視手段によって、前記FIFOキューから前記動作情報を取得することを特徴とする請求項12に記載のプロセス監視方法。
  14. 前記プロセッサによって実行される前記プログラムのプロセスまたは前記アプリケーションのプロセスは、現在の実行位置を示す現在位置情報を、前記共有メモリに格納し、
    前記プロセス監視ステップは、前記プロセス監視手段によって、前記共有メモリに格納された前記現在位置情報に基づいて、前記動作情報を取得することを特徴とする請求項12または13に記載のプロセス監視方法。
  15. 印刷部または撮像部を有するハードウェア資源を利用して画像情報処理にかかるアプリケーションのプロセスを複数搭載可能とし、オペレーティングシステムと、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うプログラムのプロセスとを備えた画像形成装置で並列実行される複数のプロセスからプロセスの動作情報を取得するプロセス監視方法であって、
    検証コード付加手段によって、プロセス監視要求があったときに、前記プログラムまたは前記アプリケーションの監視要求のあったプログラムに、各プロセスの動作情報を出力する検証コードを付加する検証コード付加ステップと、
    送信手段によって、監視対象のプロセスに対する監視内容を指定した監視情報を受信し、受信した前記監視情報を前記プログラムまたは前記アプリケーションにプロセス間通信により送信する送信ステップと、
    プロセス情報取得手段によって、監視対象の前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、前記動作情報を、プロセス間通信によって取得するプロセス情報取得ステップと、を含み、
    前記プロセッサによって実行される前記プログラムまたは前記アプリケーションの各プロセスによって、前記監視情報に基づいて自プロセスが監視対象であるか否かを判断し、監視対象である場合に、前記動作情報を前記プロセス情報取得手段にプロセス間通信により受け渡す受け渡しステップと、
    前記プロセス情報取得ステップは、前記プロセス情報取得手段によって、前記プログラムまたは前記アプリケーションの並列実行されている2以上のプロセスから、受信した前記監視情報に基づいて前記動作情報をプロセス間通信によって取得することを特徴とするプロセス監視方法。
  16. 前記検証コード付加ステップは、前記検証コード付加手段によって、前記プログラムまたは前記アプリケーションのプログラムのアドレス解決情報が記述されたマップ情報に基づいて、前記検証コードを前記プログラムまたは前記アプリケーションのプログラムに付加することを特徴とする請求項15に記載のプロセス監視方法。
  17. 前記検証コード付加ステップは、前記検証コード付加手段によって、監視対象のプロセスに対する監視内容を指定した監視情報に基づいて前記監視対象のプロセスに前記検証コードを付加することを特徴とする請求項15または16に記載のプロセス監視方法。
  18. 請求項10〜17のいずれか一つに記載された方法をコンピュータに実行させるプログラム。
JP2001313154A 2000-10-10 2001-10-10 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム Expired - Fee Related JP4037079B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001313154A JP4037079B2 (ja) 2000-10-10 2001-10-10 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000309725 2000-10-10
JP2000-309725 2000-10-10
JP2001313154A JP4037079B2 (ja) 2000-10-10 2001-10-10 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム

Publications (2)

Publication Number Publication Date
JP2002215420A JP2002215420A (ja) 2002-08-02
JP4037079B2 true JP4037079B2 (ja) 2008-01-23

Family

ID=26601816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001313154A Expired - Fee Related JP4037079B2 (ja) 2000-10-10 2001-10-10 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム

Country Status (1)

Country Link
JP (1) JP4037079B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4691197B2 (ja) * 2004-02-17 2011-06-01 株式会社リコー 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4625343B2 (ja) * 2004-02-17 2011-02-02 株式会社リコー 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4725955B2 (ja) 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
JP2011028458A (ja) * 2009-07-23 2011-02-10 Panasonic Corp 実行状態監視装置および実行状態監視方法
JP7494664B2 (ja) 2020-09-02 2024-06-04 セイコーエプソン株式会社 印刷制御プログラム、印刷制御装置の制御方法、及び印刷制御装置
JP7049509B2 (ja) * 2021-05-19 2022-04-06 株式会社ユニバーサルエンターテインメント 遊技機
JP7356173B2 (ja) * 2021-05-19 2023-10-04 株式会社ユニバーサルエンターテインメント 遊技機
JP7356172B2 (ja) * 2021-05-19 2023-10-04 株式会社ユニバーサルエンターテインメント 遊技機
JP2022187887A (ja) 2021-06-08 2022-12-20 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03225535A (ja) * 1990-01-31 1991-10-04 Nec Corp プログラムトレース方式
JPH05127945A (ja) * 1991-10-31 1993-05-25 Nec Corp プログラム実行状況解析方式
US6002872A (en) * 1998-03-31 1999-12-14 International Machines Corporation Method and apparatus for structured profiling of data processing systems and applications
JP3199013B2 (ja) * 1998-01-26 2001-08-13 日本電気株式会社 言語処理方法及び言語処理装置並びに言語処理プログラムを記録した記憶媒体
JPH11282684A (ja) * 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
JP3139459B2 (ja) * 1998-06-22 2001-02-26 日本電気株式会社 並列分散システムのデバッグ装置及びデバッグ方法
JP2000056625A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd 画像形成システム
JP2000267898A (ja) * 1999-03-19 2000-09-29 Denso Corp プログラムの実行履歴記録装置及び記録媒体
JP3358585B2 (ja) * 1999-05-10 2002-12-24 日本電気株式会社 ネットワーク分散プログラムデバッグ方法およびネットワーク分散プログラムデバッグ用システム
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置

Also Published As

Publication number Publication date
JP2002215420A (ja) 2002-08-02

Similar Documents

Publication Publication Date Title
US8094330B2 (en) Image forming apparatus that can launch external applications selectively after shipment of the apparatus
EP1398948B1 (en) Image forming apparatus, methods used therein and a computer readable storage medium
US8115943B2 (en) Image forming apparatus and print process method
US9792159B2 (en) Program determining apparatus and program determining method
US20030072023A1 (en) Key operation monitoring method, drawing information obtaining method and key operation reproducing method in image forming apparatus
JP4037079B2 (ja) 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム
JP2004118237A (ja) 画像形成装置およびアプリケーションインストール方法
US20030133136A1 (en) Method for generating and launching application for information processing apparatus and image forming apparatus
US20030140174A1 (en) Method for generating application for information processing apparatus and image forming apparatus
JP4128506B2 (ja) 画像形成装置およびアプリケーション情報取得方法
JP2003167715A (ja) プロセス間通信履歴表示方法、その方法をコンピュータに実行させるプログラム、画像形成装置および画像形成システム
JP3920893B2 (ja) 情報処理装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラム
JP4676977B2 (ja) 画像形成装置、アプリケーション情報取得方法、及びプログラム
JP3677474B2 (ja) 画像形成装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラム
JP4334214B2 (ja) 画像形成装置、アプリケーションプログラム及び記録媒体
JP4080739B2 (ja) 画像形成装置用アプリケーション生成方法およびその方法をコンピュータに実行させるプログラム
JP4133085B2 (ja) 画像形成装置およびカスタマイズプログラム試験方法
JP2004127253A (ja) 情報処理装置およびバージョンチェック方法
JP2002342119A (ja) 画像形成装置用プログラム生成方法、画像形成装置用カバレージ測定方法、これらの方法をコンピュータに実行させるプログラム、カバレージ測定装置、カバレージ測定プログラムおよび情報記録媒体
JP2004005505A (ja) プログラム生成処理をコンピュータに行わせるためのコンピュータ読み取り可能なプログラム
JP2004164582A (ja) 情報処理装置およびプログラム生成方法
US20040036904A1 (en) Image forming apparatus and method of activating a program
JP3798710B2 (ja) 画像情報処理装置、プロセス情報取得方法およびその方法をコンピュータに実行させるプログラム
JP4334213B2 (ja) 情報処理装置、アプリケーションプログラム及び記録媒体
JP4677054B2 (ja) 画像形成装置、プログラム、記録媒体、及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071031

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees