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

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

Info

Publication number
JP2002215420A
JP2002215420A JP2001313154A JP2001313154A JP2002215420A JP 2002215420 A JP2002215420 A JP 2002215420A JP 2001313154 A JP2001313154 A JP 2001313154A JP 2001313154 A JP2001313154 A JP 2001313154A JP 2002215420 A JP2002215420 A JP 2002215420A
Authority
JP
Japan
Prior art keywords
monitoring
application
information
image forming
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.)
Granted
Application number
JP2001313154A
Other languages
English (en)
Other versions
JP4037079B2 (ja
Inventor
Mitsuo Ando
光男 安藤
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

Abstract

(57)【要約】 【課題】 多数のプロセスが並列実行される環境でデバ
ッグ作業の効率化を図ること。 【解決手段】 画像形成装置において、コントロールサ
ービスまたはアプリケーション130の並列実行されて
いる2以上のプロセスから、プロセスの動作情報を示す
ロギング情報を、共有メモリ300を利用したプロセス
間通信によって取得するプロセス監視アプリ117を備
えた。

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つが共通的に必要とす
る前記ハードウェア資源の獲得要求、管理、実行制御並
びに画像形成処理を行うコントロールサービスのプロセ
スとを備え、前記コントロールサービスまたは前記アプ
リケーションの各プログラムが各プロセスの動作情報を
出力する検証コードを含んでいる画像形成装置であっ
て、前記コントロールサービスまたは前記アプリケーシ
ョンの並列実行されている2以上のプロセスから、前記
動作情報をプロセス間通信によって取得するプロセス監
視手段を備えたことを特徴とする。
【0015】この請求項1の発明によれば、プロセス監
視手段によって、コントロールサービスまたはアプリケ
ーションの並列実行されている2以上のプロセスから、
検証コードの実行による各プロセスの動作情報をプロセ
ス間通信によって取得することで、画像形成装置上で並
列実行されるコントロールサービスまたはアプリケーシ
ョンのプロセスの検証を確実に行うことができ、並列ソ
フトウェアの特性分析などのデバッグ作業の効率化を図
ることができる。
【0016】本発明におけるプロセス監視手段は、並列
実行されるプロセスの動作情報をプロセス間通信によっ
て取得するものであればよく、プロセス間通信の手法に
ついては特に限定されるものではない。例えば、プロセ
ス間通信の例として、各プロセスからプロセスの動作情
報をメッセージ送受信により取得したり、関数呼び出し
により取得したり、あるいはプロセス間で共有の共有メ
モリを介して動作情報を取得することは任意である。
【0017】また、本発明におけるコントロールサービ
ス、アプリケーションのプログラムには、プロセス監視
手段による監視処理を行う時点で検証コードが含まれて
いればよく、あらかじめ各プログラムのソースコードに
検証コードを付加しておき、検証コードごと実行ファイ
ルを生成しておく他、監視処理を開始する段階で、検証
コードをコントロールサービスまたはアプリケーション
の実行形式のプログラムに付加する場合も含まれる。従
って、本発明における検証コードにはソースコード形式
の他、実行可能コード形式も含まれる。
【0018】また、請求項2にかかる発明は、請求項1
に記載の画像形成装置において、前記プロセス監視手段
は、さらに前記コントロールサービスのプロセスまたは
前記アプリケーションのプロセスの内部で並列に実行さ
れる2以上のスレッドの各動作情報を取得することを特
徴とする。
【0019】この請求項2の発明によれば、プロセス監
視手段がコントロールサービスのプロセスまたはアプリ
ケーションのプロセスの内部で並列に実行される2以上
のスレッドの各動作情報を取得することで、並列実行さ
れる複数プロセスの動作情報だけでなく、プロセス間通
信によってプロセス内部で並列実行される複数のスレッ
ドの動作情報を取得できるので、ソフトウェア特性分析
などのデバッグ作業のさらなる効率化を図ることができ
る。
【0020】特に、本発明における画像形成装置を、複
数のプロセスの他、多種多様な機能を実現するために複
数のスレッドを生成して実行させるような特徴的な構成
とした場合には、複雑なスレッド間の協調動作により画
像形成処理にかかるユーザサービス(例えば、コピー、
プリント、スキャナ、ファクシミリなど)が正常に動作
しているか否かを、正確かつ容易に検証することがで
き、従来の画像形成装置におけるデバッグ作業に比べて
検証作業の確実性および効率化を向上させることができ
る。
【0021】また、請求項3にかかる発明は、請求項1
または2に記載の画像形成装置において、前記コントロ
ールサービスのプロセスまたは前記アプリケーションの
プロセス、および前記プロセス監視手段のプロセスから
共通にアクセス可能な共有メモリをさらに備え、前記プ
ロセス監視手段は、前記共有メモリを介して前記コント
ロールサービスのプロセスまたは前記アプリケーション
のプロセスから前記動作情報を取得することを特徴とす
る。
【0022】この請求項3の発明によれば、プロセス監
視手段が共有メモリを介してコントロールサービスのプ
ロセスまたはアプリケーションのプロセスからプロセス
の動作情報を取得することで、共有メモリを利用したプ
ロセス間通信によってプロセスの動作情報を取得するこ
とができ、画像形成装置上で並列実行されるプロセスの
検証を確実に実現することができる。
【0023】また、請求項4にかかる発明は、請求項3
に記載の画像形成装置において、前記共有メモリは、前
記動作情報を格納順に取出し可能なFIFOキューを備
え、前記コントロールサービスのプロセスまたは前記ア
プリケーションのプロセスは、前記動作情報を前記FI
FOキューに格納し、前記プロセス監視手段は、前記F
IFOキューから前記動作情報を取得することを特徴と
する。
【0024】この請求項4の発明によれば、コントロー
ルサービスのプロセスまたはアプリケーションのプロセ
スがプロセスの動作情報を共有メモリ内の格納順に取出
し可能なFIFOキューに格納し、プロセス監視手段が
FIFOキューからプロセスの動作情報を取得すること
で、並列実行されるプロセスの動作情報を時系列に取得
することができ、並列実行されるプロセスの検証が複雑
になることを回避して、デバッグ作業を効率的に行うこ
とができる。
【0025】また、請求項5にかかる発明は、請求項3
または4に記載の画像形成装置において、前記コントロ
ールサービスのプロセスまたは前記アプリケーションの
プロセスは、現在の実行位置を示す現在位置情報を、前
記共有メモリに格納し、前記プロセス監視手段は、前記
共有メモリに格納された前記現在位置情報に基づいて、
前記動作情報を取得することを特徴とする。
【0026】この請求項5の発明によれば、プロセス監
視手段が共有メモリに格納された、コントロールサービ
スのプロセスまたはアプリケーションのプロセスの現在
の実行位置を示す現在位置情報に基づいてプロセスの動
作情報を取得することで、プロセスの実行状況を常に把
握しながらプロセスの検証を行うことができる。
【0027】また、請求項6にかかる発明は、請求項1
〜5のいずれか一つに記載の画像形成装置において、前
記プロセス監視手段は、監視対象のプロセスに対する監
視内容を指定した監視情報を受信し、受信した前記監視
情報に基づいて前記動作情報を取得することを特徴とす
る。
【0028】この請求項6の発明によれば、プロセス監
視手段が監視対象のプロセスに対する監視内容を指定し
た監視情報を受信し、受信した監視情報に基づいてプロ
セスの動作情報を取得することで、所望の並列プロセス
のみの検証を行うことができ、デバッグ作業を効率的に
行うことができる。
【0029】本発明における監視情報とは、監視対象の
プロセスに対する監視内容を指定したものであればよ
く、例えば、監視対象のプロセス識別情報、監視開始位
置、監視終了位置、監視項目など任意に設定することが
できる。また、監視情報は、プロセス監視手段が受信す
るものであればよく、例えばデバッグ作業を行うユーザ
がオペレーションパネルなどの操作部から入力した情報
や、デバッグ作業を行うユーザがネットワーク経由で、
PCなどから入力して送信した情報、あるいはネットワ
ーク上の他の画像形成装置やネットワーク上の画像形成
装置開発元のホストコンピュータなどから送信された情
報も含まれる。
【0030】また、請求項7にかかる発明は、画像形成
処理で使用されるハードウェア資源と、画像形成処理に
かかるユーザサービスにそれぞれ固有の処理を行うアプ
リケーションのプロセスと、前記アプリケーションと前
記ハードウェア資源との間に介在し、ユーザサービスを
提供する際に、アプリケーションの少なくとも2つが共
通的に必要とする前記ハードウェア資源の獲得要求、管
理、実行制御並びに画像形成処理を行うコントロールサ
ービスのプロセスとを備えた画像形成装置であって、並
列実行される複数のプロセスを監視するプロセス監視手
段を有し、前記プロセス監視手段は、プロセス監視要求
があったときに、前記コントロールサービスまたは前記
アプリケーションの監視要求のあったプログラムに、各
プロセスの動作情報を出力する検証コードを付加する検
証コード付加手段と、監視対象の前記コントロールサー
ビスまたは前記アプリケーションの並列実行されている
2以上のプロセスから、前記動作情報を、プロセス間通
信によって取得するプロセス情報取得手段と、を備えた
ことを特徴とする。
【0031】この請求項7の発明によれば、プロセス監
視要求があったときに、検証コード付加手段によってコ
ントロールサービスまたはアプリケーションの監視要求
のあったプログラムに、各プロセスの動作情報を出力す
る検証コードを付加し、プロセス情報取得手段によって
監視対象の前記コントロールサービスまたは前記アプリ
ケーションの並列実行されている2以上のプロセスから
プロセスの動作情報をプロセス間通信によって取得する
ことで、監視要求のあった時点で監視対象のプログラム
のみに検証コードを付加すればよいため、プログラム開
発段階で、デバッグ用に検証コードをすべてのプログラ
ムに付加する必要がなくなり、全体としてデバッグ作業
の効率化を図ることができる。
【0032】本発明における検証コード付加手段は、プ
ロセス監視要求があったときに、監視対象のプログラム
に検証コードを付加するものであればよく、その付加方
法については特に限定されるものではない。例えば、プ
ログラム開発時に作成される関数名および変数名とアド
レスとを対応付けたリンクマップや、ソースコードと実
行プログラムコードのアドレスを対応付けた表などのア
ドレス解決情報を用いて、検証コードを所望の位置に付
加することができる。
【0033】また、検証コード付加手段は、各プログラ
ムごとに検証コードを付加するために各プログラムごと
に存在しても、一つの検証コード付加手段によって各プ
ログラムに対し検証コードを付加するように構成するこ
とは任意である。
【0034】また、請求項8にかかる発明は、請求項7
に記載の画像形成装置において、前記検証コード付加手
段は、前記コントロールサービスまたは前記アプリケー
ションのプログラムのアドレス解決情報が記述されたマ
ップ情報に基づいて、前記検証コードを前記コントロー
ルサービスまたは前記アプリケーションのプログラムに
付加することを特徴とする。
【0035】この請求項8の発明によれば、検証コード
付加手段によって、コントロールサービスまたはアプリ
ケーションのプログラムのアドレス解決情報が記述され
たマップ情報に基づいて検証コードをコントロールサー
ビスまたはアプリケーションのプログラムに付加するこ
とで、アドレス解決情報に従って監視位置が明確になる
ので、確実に検証コードを任意の位置に付加することが
できる。
【0036】また、請求項9にかかる発明は、請求項7
または8に記載の画像形成装置において、前記検証コー
ド付加手段は、監視対象のプロセスに対する監視内容を
指定した監視情報に基づいて前記監視対象のプロセスに
前記検証コードを付加することを特徴とする。
【0037】この請求項9の発明によれば、検証コード
付加手段によって、監視対象のプロセスに対する監視内
容を指定した監視情報に基づいて監視対象のプロセスに
検証コードを付加することで、監視情報で指定されたプ
ログラムのみに検証コードを付加すれば良く、さらにデ
バッグ作業の効率化を図ることができる。
【0038】また、請求項10にかかる発明は、請求項
1〜9のいずれか一つに記載の画像形成装置において、
前記アプリケーションに含まれ、前記プロセス監視手段
として動作するプロセス監視アプリを備えたことを特徴
とする。
【0039】この請求項10の発明によれば、プロセス
監視手段としてアプリケーション層で動作するプロセス
監視アプリを備えたことで、プロセス監視アプリとコン
トロールサービスとの間のプロセス間通信をアプリケー
ションプログラムインタフェースを利用して実現するこ
とができ、プログラム開発の効率化を図ることができ
る。
【0040】また、請求項11にかかる発明は、画像形
成処理で使用されるハードウェア資源と、画像形成処理
にかかるユーザサービスにそれぞれ固有の処理を行うア
プリケーションのプロセスと、前記アプリケーションと
前記ハードウェア資源との間に介在し、ユーザサービス
を提供する際に、アプリケーションの少なくとも2つが
共通的に必要とする前記ハードウェア資源の獲得要求、
管理、実行制御並びに画像形成処理を行うコントロール
サービスのプロセスとを備え、前記コントロールサービ
スまたは前記アプリケーションの各プログラムが各プロ
セスの動作情報を出力する検証コードを含んでいる画像
形成装置で実行されるプロセスの動作情報を取得するプ
ロセス監視方法であって、前記コントロールサービスま
たは前記アプリケーションの並列実行されている2以上
のプロセスから、前記動作情報をプロセス間通信によっ
て取得するプロセス監視ステップを含んだことを特徴と
する。
【0041】この請求項11の発明によれば、プロセス
監視ステップによって、コントロールサービスまたはア
プリケーションの並列実行されている2以上のプロセス
から、検証コードの実行による各プロセスの動作情報を
プロセス間通信によって取得することで、画像形成装置
上で並列実行されるコントロールサービスまたはアプリ
ケーションのプロセスの検証を確実に行うことができ、
並列ソフトウェアの特性分析などのデバッグ作業の効率
化を図ることができる。
【0042】また、請求項12にかかる発明は、請求項
11に記載のプロセス監視方法において、前記プロセス
監視ステップは、さらに前記コントロールサービスのプ
ロセスまたは前記アプリケーションのプロセスの内部で
並列に実行される2以上のスレッドの各動作情報を取得
することを特徴とする。
【0043】この請求項12の発明によれば、プロセス
監視ステップがさらにコントロールサービスのプロセス
またはアプリケーションのプロセスの内部で並列に実行
される2以上のスレッドの各動作情報を取得すること
で、並列実行される複数プロセスの動作情報だけでな
く、プロセス間通信によってプロセス内部で並列実行さ
れる複数のスレッドの動作情報を取得できるので、ソフ
トウェア特性分析などのデバッグ作業のさらなる効率化
を図ることができる。
【0044】特に、本発明におけるプロセス監視方法
を、複数のプロセスの他、多種多様な機能を実現するた
めに複数のスレッドを生成して実行させるような特徴的
な画像形成装置で使用した場合には、複雑なスレッド間
の協調動作により画像形成処理にかかるユーザサービス
(例えば、コピー、プリント、スキャナ、ファクシミリ
など)が正常に動作しているか否かを、正確かつ容易に
検証することができ、従来の画像形成装置におけるデバ
ッグ作業に比べて検証作業の確実性および効率化を向上
させることができる。
【0045】また、請求項13にかかる発明は、請求項
11または12に記載のプロセス監視方法において、前
記プロセス監視ステップは、前記コントロールサービス
のプロセスまたは前記アプリケーションのプロセス、お
よびプロセス監視を実行するプロセスから共通にアクセ
ス可能な共有メモリを介して前記コントロールサービス
のプロセスまたは前記アプリケーションのプロセスから
前記動作情報を取得することを特徴とする。
【0046】この請求項13の発明によれば、プロセス
監視ステップが共有メモリを介してコントロールサービ
スのプロセスまたはアプリケーションのプロセスからプ
ロセスの動作情報を取得することで、共有メモリを利用
したプロセス間通信によってプロセスの動作情報を取得
することができ、画像形成装置上で並列実行されるプロ
セスの検証を確実に実現することができる。
【0047】また、請求項14にかかる発明は、請求項
13に記載のプロセス監視方法において、前記コントロ
ールサービスのプロセスまたは前記アプリケーションの
プロセスは、前記動作情報を、前記共有メモリに確保さ
れた前記動作情報を格納順に取出し可能なFIFOキュ
ーに格納し、前記プロセス監視ステップは、前記FIF
Oキューから前記動作情報を取得することを特徴とす
る。
【0048】この請求項14の発明によれば、コントロ
ールサービスのプロセスまたはアプリケーションのプロ
セスがプロセスの動作情報を共有メモリ内の格納順に取
出し可能なFIFOキューに格納し、プロセス監視ステ
ップがFIFOキューからプロセスの動作情報を取得す
ることで、並列実行されるプロセスの動作情報を時系列
に取得することができ、並列実行されるプロセスの検証
が複雑になることを回避して、デバッグ作業を効率的に
行うことができる。
【0049】また、請求項15にかかる発明は、請求項
13または14に記載のプロセス監視方法において、前
記コントロールサービスのプロセスまたは前記アプリケ
ーションのプロセスは、現在の実行位置を示す現在位置
情報を、前記共有メモリに格納し、前記プロセス監視ス
テップは、前記共有メモリに格納された前記現在位置情
報に基づいて、前記動作情報を取得することを特徴とす
る。
【0050】この請求項15の発明によれば、プロセス
監視ステップが共有メモリに格納された、コントロール
サービスのプロセスまたはアプリケーションのプロセス
の現在の実行位置を示す現在位置情報に基づいてプロセ
スの動作情報を取得することで、プロセスの実行状況を
常に把握しながらプロセスの検証を行うことができる。
【0051】また、請求項16にかかる発明は、請求項
11〜15のいずれか一つに記載のプロセス監視方法に
おいて、前記プロセス監視ステップは、監視対象のプロ
セスに対する監視内容を指定した監視情報を受信し、受
信した前記監視情報に基づいて前記動作情報を取得する
ことを特徴とする。
【0052】この請求項16の発明によれば、プロセス
監視ステップが監視対象のプロセスに対する監視内容を
指定した監視情報を受信し、受信した監視情報に基づい
てプロセスの動作情報を取得することで、所望の並列プ
ロセスのみの検証を行うことができ、デバッグ作業を効
率的に行うことができる。
【0053】また、請求項17にかかる発明は、画像形
成処理で使用されるハードウェア資源と、画像形成処理
にかかるユーザサービスにそれぞれ固有の処理を行うア
プリケーションのプロセスと、前記アプリケーションと
前記ハードウェア資源との間に介在し、ユーザサービス
を提供する際に、アプリケーションの少なくとも2つが
共通的に必要とする前記ハードウェア資源の獲得要求、
管理、実行制御並びに画像形成処理を行うコントロール
サービスのプロセスとを備えた画像形成装置で並列実行
される複数のプロセスからプロセスの動作情報を取得す
るプロセス監視方法であって、プロセス監視要求があっ
たときに、前記コントロールサービスまたは前記アプリ
ケーションの監視要求のあったプログラムに、各プロセ
スの動作情報を出力する検証コードを付加する検証コー
ド付加ステップと、監視対象の前記コントロールサービ
スまたは前記アプリケーションの並列実行されている2
以上のプロセスから、前記動作情報を、プロセス間通信
によって取得するプロセス情報取得ステップと、を含ん
だことを特徴とする。
【0054】この請求項17の発明によれば、プロセス
監視要求があったときに、検証コード付加ステップによ
ってコントロールサービスまたはアプリケーションの監
視要求のあったプログラムに、各プロセスの動作情報を
出力する検証コードを付加し、プロセス情報取得ステッ
プによって監視対象のコントロールサービスまたはアプ
リケーションの並列実行されている2以上のプロセスか
らプロセスの動作情報をプロセス間通信によって取得す
ることで、監視要求のあった時点で監視対象のプログラ
ムのみに検証コードを付加すればよいため、プログラム
開発段階で、デバッグ用に検証コードをすべてのプログ
ラムに付加する必要がなくなり、全体としてデバッグ作
業の効率化を図ることができる。
【0055】また、請求項18にかかる発明は、請求項
17に記載のプロセス監視方法において、前記検証コー
ド付加ステップは、前記コントロールサービスまたは前
記アプリケーションのプログラムのアドレス解決情報が
記述されたマップ情報に基づいて、前記検証コードを前
記コントロールサービスまたは前記アプリケーションの
プログラムに付加することを特徴とする。
【0056】この請求項18の発明によれば、検証コー
ド付加ステップによって、コントロールサービスまたは
アプリケーションのプログラムのアドレス解決情報が記
述されたマップ情報に基づいて検証コードをコントロー
ルサービスまたはアプリケーションのプログラムに付加
することで、アドレス解決情報に従って監視位置が明確
になるので、確実に検証コードを任意の位置に付加する
ことができる。
【0057】また、請求項19にかかる発明は、請求項
17または18に記載のプロセス監視方法において、前
記検証コード付加ステップは、監視対象のプロセスに対
する監視内容を指定した監視情報に基づいて前記監視対
象のプロセスに前記検証コードを付加することを特徴と
する。
【0058】この請求項19の発明によれば、検証コー
ド付加ステップによって、監視対象のプロセスに対する
監視内容を指定した監視情報に基づいて監視対象のプロ
セスに検証コードを付加することで、監視情報で指定さ
れたプログラムのみに検証コードを付加すれば良く、さ
らにデバッグ作業の効率化を図ることができる。
【0059】また、請求項20にかかる発明は、計算機
システム内で並列に実行されるプロセスのプログラムを
デバッグするデバッグ方法において、各プロセスの動作
情報を出力する検証コードを、前記プログラムのソース
コードに付加する検証コード付加ステップと、前記検証
コード付加ステップで付加された検証コードに基づい
て、並列実行される各プロセスの動作情報を取得するプ
ロセス監視ステップと、を含んだことを特徴とする。
【0060】この請求項20の発明によれば、検証コー
ド付加ステップによって、各プロセスの動作情報を出力
する検証コードをプログラムのソースコードに付加し、
プロセス監視ステップによって検証コード付加ステップ
で付加された検証コードに基づいて並列実行される各プ
ロセスの動作情報を取得することで、並列実行されるプ
ロセスの特性分析を容易に行うことができ、パフォーマ
ンスの向上を図ることができるとともに、デバッグ作業
の効率化を図ることができる。
【0061】また、請求項21にかかる発明は、請求項
20に記載のデバッグ方法において、前記検証コード付
加ステップは、前記検証コードを前記プログラムのソー
スコードに自動的に付加するものであり、前記プロセス
監視ステップは、さらに取得した前記動作情報を管理す
ることを特徴とする。
【0062】この請求項21の発明によれば、検証コー
ド付加ステップが検証コードを自動的にプログラムのソ
ースコードに付加し、プロセス監視ステップがさらに取
得した動作情報を管理することで、検証コードの識別情
報をユーザに対して隠すことができ、デバッグ方法の操
作性を向上させることができる。
【0063】また、請求項22にかかる発明は、単一の
計算機システム内で独立したアドレス空間を持ち、計算
機システム内で並列に実行されるプロセスのプログラム
をデバッグするデバッグ方法において、各プロセスの動
作情報を出力する検証コードを、前記プログラムのソー
スコードに付加する検証コード付加ステップと、前記検
証コード付加ステップで付加された検証コードに基づい
て、並列実行される各プロセスの動作情報を、並列実行
されるプロセスから共通にアクセス可能な共有メモリを
介して取得するプロセス監視ステップと、を含んだこと
を特徴とする。
【0064】この請求項22の発明によれば、各プロセ
スの動作情報を出力する検証コードを、前記プログラム
のソースコードに付加する検証コード付加ステップと、
前記検証コード付加ステップで付加された検証コードに
基づいて、並列実行される各プロセスの動作情報を、並
列実行されるプロセスから共通にアクセス可能な共有メ
モリを介して取得するプロセス監視ステップと、を含ん
だことで、独立したアドレス空間で動作する並列処理に
おいても、並列動作するソフトウェアシステムの特性分
析が容易になり、パフォーマンス向上を図ることができ
るとともに、デバッグ作業の効率化を図ることができ
る。
【0065】また、請求項23にかかる発明は、請求項
11〜22のいずれか一つに記載された方法をコンピュ
ータに実行させるプログラムであるので、請求項11〜
22のいずれか一つの動作をコンピュータによって実行
することができる。
【0066】
【発明の実施の形態】以下に添付図面を参照して、この
発明にかかる画像形成装置、プロセス監視方法、デバッ
グ方法およびこれらの方法をコンピュータに実行させる
プログラムの好適な実施の形態を詳細に説明する。
【0067】(実施の形態1)図1は、この発明の実施
の形態1である画像形成装置(以下、「複合機」とい
う)の構成を示すブロック図である。図1に示すよう
に、複合機100は、白黒ラインプリンタ(B&W LP)1
01と、カラーラインプリンタ(Color LP)102と、
スキャナ、ファクシミリ、ハードディスク、メモリ、ネ
ットワークインタフェースなどのハードウェアリソース
103を有するとともに、プラットホーム120とアプ
リケーション130とから構成されるソフトウェア群1
10とを備えている。
【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、I
EEE1394 I/F、RS232C I/Fなど)
のハードウェア資源を利用する上位層からの要求にした
がって調停を行い、実行制御する。
【0072】具体的には、このSRM123は、要求さ
れたハードウェア資源が利用可能であるか(他の要求に
より利用されていないかどうか)を判断し、利用可能で
あれば要求されたハードウェア資源が利用可能である旨
を上位層に伝える。また、SRM123は、上位層から
の要求に対してハードウェア資源の利用スケジューリン
グを行い、要求内容(例えば、プリンタエンジンにより
紙搬送と作像動作、メモリ確保、ファイル生成など)を
直接実施している。
【0073】SCS122のプロセスは、アプリ管理、
操作部制御、システム画面表示、LED表示、リソース
管理、割り込みアプリ制御などを行う。
【0074】ECS124のプロセスは、白黒ラインプ
リンタ(B&W LP)101、カラーラインプリンタ(Colo
r LP)102、スキャナ、ファクシミリなどからなるハ
ードウェアリソース103のエンジンの制御を行う。
【0075】MCS125のプロセスは、画像メモリの
取得および解放、ハードディスク装置(HDD)の利
用、画像データの圧縮および伸張などを行う。
【0076】FCS127のプロセスは、システムコン
トローラの各アプリ層からPSTN/ISDN網を利用
したファクシミリ送受信、BKM(バックアップSRA
M)で管理されている各種ファクシミリデータの登録/
引用、ファクシミリ読みとり、ファクシミリ受信印刷、
融合送受信を行うためのAPIを提供する。
【0077】NCS128のプロセスは、ネットワーク
I/Oを必要とするアプリケーションに対して共通に利
用できるサービスを提供するためのプロセスであり、ネ
ットワーク側から各プロトコルによって受信したデータ
を各アプリケーションに振り分けたり、アプリケーショ
ンからデータをネットワーク側に送信する際の仲介を行
う。
【0078】OCS126のプロセスは、オペレータ
(ユーザ)と本体制御間の情報伝達手段となるオペレー
ションパネル(操作パネル)210の制御を行う。な
お、実施の形態1にかかる複合機100では、OCS1
26はプロセスとして複合機100の内部で動作してい
るが、この他、上述のOCS126の機能を関数として
実装したOCS関数ライブラリを、各アプリケーション
130にリンク(結合)することにより、上記OCS1
26の機能を実現する構成としても良い。
【0079】アプリケーション130は、ページ記述言
語(PDL)、PCLおよびポストスクリプト(PS)
を有するプリンタ用のアプリケーションであるプリンタ
アプリ111と、コピー用アプリケーションであるコピ
ーアプリ112と、ファクシミリ用アプリケーションで
あるファックスアプリ113と、スキャナ用アプリケー
ションであるスキャナアプリ114と、ネットワークフ
ァイル用アプリケーションであるネットファイルアプリ
115と、工程検査用アプリケーションである工程検査
アプリ116とプロセス監視アプリ117とを有してい
る。
【0080】プロセス監視アプリ117は、本発明にお
けるプロセス監視手段を構成するものであり、アプリケ
ーション層で動作するプロセスである。このプロセス監
視アプリ117は、監視情報の指定に従って、複合機1
00で動作するプロセスのロギング情報を取得する。こ
こで、ロギング情報とは、プログラムの処理内容やプロ
セス情報を時間の流れに沿って記録したものであり、本
発明におけるプロセスの動作情報を構成する。
【0081】プロセス監視アプリ117は、具体的に
は、オペレーションパネル210からのデバッグ作業を
行うユーザの操作あるいはネットワークに接続されたリ
モートPC(Personal Computer)で
デバッグ作業を行うユーザから監視情報を受信し、監視
情報に設定された情報を後述する共有メモリのロギング
管理テーブルに設定し、このロギング管理テーブルの設
定情報に従って各プロセスから共有メモリのFIFOキ
ューに出力したロギング情報を取得する。
【0082】ここで、監視情報とは、監視対象のプロセ
ス(例えば、プリンタアプリ111、コピーアプリ11
2、ECS124、MCS125など)、監視位置(コ
ピー開始から終了まで、特定の関数の開始から終了ま
で、上位10個のスレッドなど)、監視内容(関数な
ど)を設定したものである。
【0083】そして、プロセス監視アプリ117は、取
得したロギング情報からログファイルを生成して、プリ
ンタやオペレーションパネル210の表示部に出力した
り、あるいはロギング情報をネットワークに接続された
リモートPCに送信する。なお、プロセス監視アプリ1
17の詳細な動作については後述する。
【0084】図2は、図1に示した実施の形態1の複合
機100のハードウェア構成図である。図2に示すよう
に、この複合機100は、CPU202、SDRAM2
03、SRAM208、フラッシュメモリ204、およ
びHD205などをASIC201に接続したコントロ
ーラボード200と、オペレーションパネル210と、
ファックスコントロールユニット(FCU)220と、
USB230と、IEEE1394 240と、プリンタ2
50とから構成されている。オペレーションパネル21
0はASIC201に直接接続され、FCU220、U
SB230、IEEE1394 240およびプリンタ25
0はPCIバスを介してASIC201に接続されてい
る。フラッシュメモリ204には、上述の各アプリ、プ
ラットホーム120を構成する各コントロールサービス
やSRM123の各プログラムが格納されている。
【0085】オペレーションパネル210は、ユーザが
複合機100に対して機能選択などの指示を与える操作
パネルである。複合機100のデバッグ作業を行うユー
ザは、このオペレーションパネル210から監視対象の
プロセスや監視位置、監視内容などを指定した監視情報
を入力するようになっている。ユーザ操作により入力さ
れた監視情報は、SCS122およびOCS126を介
してプロセス監視アプリ117に送信される。
【0086】SDRAM203には、プロセス監視アプ
リ117のプロセス、他のアプリケーション130のプ
ロセスおよび各コントロールサービスのプロセスで共有
され、共通にアクセス可能な共有メモリ領域(以下、
「共有メモリ」という。)が確保されている。
【0087】実施の形態1にかかる複合機100で実行
されるプロセス監視プログラム(プロセス監視アプリ1
17のプログラム)は、ソフトウェア開発キット(SD
K:Software Depelopment Ki
t)の一部または全部として、CD−ROMまたはFD
などの記憶媒体に実行可能な形式またはインストール可
能な形式のファイルで提供される。また、このような実
行可能な形式またはインストール可能な形式のファイル
を、ネットワーク経由でNCS128を介して(あるい
はNCS128を介さずに直接ダウンロードするなど)
取得可能な方法で提供するようにしても良い。
【0088】図3は、実施の形態1にかかる複合機10
0で行われるプロセス監視方法において、監視対象プロ
セスの実行状況、プロセス監視アプリ117の動作状況
および共有メモリの状態の模式図である。
【0089】図3に示すように、複合機100は、プロ
セス監視アプリ117とアプリケーション130および
コントロールサービス(図3の例では、コピーアプリ1
12のプロセス、MCS125のプロセス)が共有し共
にアクセス可能な共有メモリ300を有しており、プロ
セス監視アプリ117はこの共有メモリ300を利用し
たプロセス間通信によって、アプリケーション130お
よびコントロールサービスの各プロセスの動作状況を監
視している。
【0090】この共有メモリ300には、ロギング管理
テーブル301と、現在位置テーブル302と、ロギン
グ出力FIFOキュー303の各領域が確保されてい
る。ロギング管理テーブル301は、オペレーションパ
ネル210またはリモートPC320からの監視情報の
設定内容がプロセス監視アプリ117によって書き込ま
れる。監視対象のプロセス(図3の場合、コピーアプリ
112およびMCS125の各プロセス)は、共有メモ
リ300のロギング管理テーブル301を参照して、ロ
ギングすべき状態か否かを判断する。
【0091】現在位置テーブル302は、各プロセスが
実行するタグ関数によって、現在のプロセスID(PI
D)、スレッドID(thrID)、タグIDが書き込
まれる。ロギング出力FIFOキュー303は、格納順
に取り出すことが可能ないわゆるFIFO(First
−In First−Out)形式のキューであり、監
視対象の各プロセスにおけるタグ関数によりロギング情
報が格納され、格納されたロギング情報が格納順にプロ
セス監視アプリ117から取り出せるようになってい
る。
【0092】プロセス監視アプリ117は、監視情報設
定部304とロギング情報取得部305とを備えてい
る。監視情報設定部304は、オペレーションパネル2
10またはリモートPC320から監視情報を受信し、
監視情報の設定内容を共有メモリ300のロギング管理
テーブル301に設定するものである。ロギング情報取
得部305は、共有メモリ300のロギング出力FIF
Oキュー303を一定間隔でポーリングし、ロギング出
力FIFOキュー303に格納されているロギング情報
を格納順に取得し、取得したロギング情報をオペレーシ
ョンパネル210にOCS126経由で出力したり、プ
リンタに出力する。あるいは取得したロギング情報をリ
モートPC320にNCS128経由で送信する。
【0093】プロセス監視処理実行時には、コピーアプ
リ112およびMCS125のプログラムの中にタグ関
数が挿入されているものとする。ここで、タグ関数とは
本発明における検証コードを構成するものである。この
タグ関数は、コピーアプリ112やMCS125のプロ
グラム作成段階において各プログラムに挿入したり、あ
るいはプロセス監視アプリ117によって動的に各プロ
グラムに挿入されるが、実施の形態1ではタグ関数の挿
入方法については特に限定せず、プロセス監視アプリ1
17によるプロセス監視時にタグ関数が監視対象のプロ
セスのプログラムに付加された状態となっていれば良
い。なお、図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)からt
hread_create関数によってサブスレッド
(スレッドID(thrID)=2)が生成されて、両
スレッドは並列実行されている。また、このコピーアプ
リ112のプロセスと、MCS125のプロセスも並列
に実行されている。このようにプロセス監視アプリ11
7は、コピーアプリ112のプロセス内の並列実行され
る2つのスレッドと、コピーアプリ112のプロセスと
並列実行されるMCS125のプロセスの動作を監視し
て、ロギング情報を取得するようになっている。
【0099】つぎに、このように構成された実施の形態
1にかかる複合機100によるプロセス監視方法につい
て説明する。図4は、実施の形態1の複合機100にお
けるプロセス監視アプリ117によるプロセス監視処理
の手順を示すフローチャートである。
【0100】図4に示すように、プロセス監視アプリ1
17の監視情報設定部304では、オペレーションパネ
ル210またはリモートPC320から監視情報を受信
すると(ステップS401)、監視情報に設定されてい
るロギング対象、ロギング開始位置、ロギング終了位
置、ロギング項目などを、共有メモリ300のロギング
管理テーブル301に書き込む(ステップS402)。
図3の例では、監視情報として、ロギング対象が「コピ
ーアプリ、MCS」、ロギング開始位置が「コピースタ
ート」、ロギング終了位置が「コピーエンド」、ロギン
グ項目が「関数」とされており、ロギング管理テーブル
301に、これらの内容がそのまま設定される。
【0101】なお、図3に示すロギング管理テーブル3
01(および監視情報)の設定内容は一例であり、他の
内容を設定することも可能である。たとえば、ロギング
開始位置やロギング終了位置をタグ関数のタグIDで指
定してもよく、またロギング対象を、「top10のス
レッド」のように指定することもできる。
【0102】つぎに、ロギング情報を取得するため、ロ
ギング情報取得部305は、一定時間ごとに共有メモリ
300のロギング出力FIFOキュー303を参照し、
データが格納されているか否かを調べる(ステップS4
03)。そして、データが格納されている場合には、ロ
ギング出力FIFOキュー303から格納順にロギング
情報を取得する(ステップS404)。取得したロギン
グ情報は、プリンタに出力あるいはオペレーションパネ
ル210への表示、もしくはリモートPC320に送信
される(ステップS405)。
【0103】図5は、コピーアプリ112、MCS12
5の各プロセスにおけるタグ関数tag_inおよびt
ag_outで実行される処理手順を示すフローチャー
トである。タグ関数は、まず共有メモリ300のロギン
グ管理テーブル301を参照し(ステップS501)、
その設定内容からロギングすべき状態か否かを判断する
(ステップS502)。かかる判断は、現在のタグ関数
がロギング対象、ロギング開始位置およびロギング終了
位置の条件に含まれているか否かをチェックすることに
より行う。
【0104】たとえば、図3の例において、現在位置で
あるタグ関数tag_in(5)の場合には、かかる関
数はコピーアプリ112のプロセスで実行されるため、
ロギング対象の条件を満たし、またコピーアプリ112
のプロセスの開始から終了前に実行されるので、ロギン
グ開始位置およびロギング終了位置の条件を満たす。従
って、この場合、ロギングすべき状態であると判断す
る。
【0105】そして、ロギングすべき状態の場合には、
自プロセスのプロセスID、自スレッドのスレッドI
D、タグ関数のタグ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の複合機1
00では、監視対象のプロセスのプログラムに検証コー
ドとしてのタグ関数を付加する点については特に限定し
ていなかったが、この実施の形態2にかかる複合機10
0は、タグ関数を監視対象のプログラムに動的に付加す
るものである。
【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は、監視対象プロセ
スが再起動したか否かをチェックし(ステップS70
5)、再起動した場合には、実施の形態1のプロセス監
視アプリ117と同様に監視処理を実行する(ステップ
S706)。
【0116】監視処理の実行が終了した場合には、タグ
関数付加部306によって監視対象のプログラムにおい
てタグ関数に置換した命令を元に戻し(ステップS70
7)、再度監視対象プロセスの再起動依頼メッセージを
SCS122に送信する(ステップS708)。これに
より、監視対象プロセスは元の状態に戻り監視処理が完
了する。
【0117】このように実施の形態2にかかる複合機1
00では、監視情報を受信したときに、タグ関数付加部
306によって、コントロールサービスまたはアプリケ
ーション130の監視要求のあったプログラムに、タグ
関数を動的に付加し、プロセス情報取得手段によって監
視対象の前記コントロールサービスまたは前記アプリケ
ーションの並列実行されている2以上のプロセスからプ
ロセスのロギング情報を共有メモリ300を利用したプ
ロセス間通信によって取得しているので、監視要求のあ
った時点で監視対象のプログラムのみに検証コードを付
加すればよい。このため、プログラム開発段階で、デバ
ッグ用にタグ関数などの検証コードをすべてのプログラ
ムに付加する必要がなくなり、全体としてデバッグ作業
の効率化を図ることができる。
【0118】なお、実施の形態1および2の複合機10
0では、本発明のプロセス監視手段をプロセス監視アプ
リ117としてアプリケーション層に設けているが、例
えば、プロセス監視コントロールサービスとして、コン
トロールサービス層に設けることも可能である。また、
アプリケーション層やコントロールサービス層とは別個
にプロセス監視手段のプロセスを設けても良い。
【0119】(実施の形態3)実施の形態2の複合機1
00では、タグ関数をプロセス監視の際に動的にプログ
ラムに付加していたが、この実施の形態3では、プログ
ラムの開発段階でタグ関数を付加している。図8は、ソ
フトウェア機能を識別するタグ関数を挿入するサンプル
プログラムを示した説明図である。ここでは、一例とし
てCソースコードレベルで命令を追加する方法でタグ関
数を挿入する場合について説明する。
【0120】まず、関数の入口801に入口用のタグ関
数(tag_in(1))を、関数の出口802、80
3に出口用のタグ関数(tag_out(1))を挿入
する。タグ関数の引数番号(()内の番号)はタグ関数
を識別するためのタグIDであり、関数単位で任意のI
D番号を割り付ける。関数の入口は必ず一箇所である
が、出口に関しては複数存在する場合があるので、全て
の出口に出口用のタグ関数を挿入する。なお、タグ関数
の挿入は関数単位だけでなく、必要に応じてソフトウェ
ア機能単位で挿入するようにしてもよい。
【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とロギング出力FIF
Oキュー303の領域が確保されている。
【0126】つぎに、以上のように構成された実施の形
態3のデバッグシステムによるソフトウェアのデバッグ
方法について説明する。実施の形態3に係るデバッグ方
法では、エラーを検出するために検証するプロセスに検
証コードとしてのタグ関数が挿入されており、共有メモ
リ300を介して各プロセスのロギング情報を取得する
ようになっている。
【0127】まず、一例としてC言語ソースプログラム
コード(以下、「Cプログラムコード」という。)にタ
グ関数を挿入する処理手順について説明する。実施の形
態3のタグ付け自動装置1018では、図10に示すよ
うに、ユーザのCプログラムコードにタグ付け関数を挿
入しやすいようにCプログラムコードに対してプリプロ
セッサ処理を行い、#include、#define
の定義マクロを展開する(ステップS1001)。そし
て、タグ付け自動装置1018のタグ付けツールによっ
て関数の出入り口にタグ関数を自動挿入する(ステップ
S1002)。このタグ付けツールは、タグ関数名とタ
グID番号の対応関係であるタグID辞書ファイル10
06を出力する。このタグID辞書ファイル1006
は、監視情報のロギング管理テーブル301への設定時
にタグ関数名からタグID番号を検索する場合の辞書フ
ァイルとして使用される。そして、タグ付け自動装置1
018は、タグ付けされたCプログラムコート1005
をコンパイルしてリンクすることによって、タグ付きプ
ログラムの実行ファイル1021を作成する(ステップ
S1003)。
【0128】ロギング設定ツール1020は、プロセス
・プロファイル1017がロギング管理テーブル301
に設定する監視情報の項目を設定したロギング設定ファ
イル1007を生成する(ステップS1004)。プロ
セス・プロファイル1017は、ロギング設定ファイル
1007の設定内容を解析して、ロギング対象プロセス
やロギング開始位置および終了位置などの監視対象位
置、ロギング項目などの監視情報をロギング管理テーブ
ル301に設定する。
【0129】図10の例では、ロギング管理テーブル3
01に、ロギング対象として「top10のスレッド」
が設定されているので、プロセスproc1およびpr
oc2で生成される最初の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にかかる
発明によれば、画像形成装置上で並列実行されるコント
ロールサービスまたはアプリケーションのプロセスの検
証を確実に行うことができ、並列ソフトウェアの特性分
析などのデバッグ作業の効率化を図ることができるとい
う効果を奏する。
【0139】また、請求項2にかかる発明によれば、並
列実行される複数プロセスの動作情報だけでなく、プロ
セス間通信によってプロセス内部で並列実行される複数
のスレッドの動作情報を取得できるので、ソフトウェア
特性分析などのデバッグ作業のさらなる効率化を図るこ
とができるという効果を奏する。特に、この発明によれ
ば、画像形成装置を複数のプロセスの他、多種多様な機
能を実現するために複数のスレッドを生成して実行させ
るような特徴的な構成とした場合において、複雑なスレ
ッド間の協調動作により画像形成処理にかかるユーザサ
ービスが正常に動作しているか否かを、正確かつ容易に
検証することができ、検証作業の確実性および効率化を
向上させることができるという効果を奏する。
【0140】また、請求項3にかかる発明によれば、共
有メモリを利用したプロセス間通信によってプロセスの
動作情報を取得することができ、画像形成装置上で並列
実行されるプロセスの検証を確実に実現することができ
るという効果を奏する。
【0141】また、請求項4にかかる発明によれば、並
列実行されるプロセスの動作情報を時系列に取得するこ
とができ、並列実行されるプロセスの検証が複雑になる
ことを回避して、デバッグ作業を効率的に行うことがで
きるという効果を奏する。
【0142】また、請求項5にかかる発明によれば、プ
ロセスの実行状況を常に把握しながらプロセスの検証を
行うことができるという効果を奏する。
【0143】また、請求項6にかかる発明によれば、所
望の並列プロセスのみの検証を行うことができ、デバッ
グ作業を効率的に行うことができるという効果を奏す
る。
【0144】また、請求項7にかかる発明によれば、プ
ログラム開発段階で、デバッグ用に検証コードをすべて
のプログラムに付加する必要がなくなり、全体としてデ
バッグ作業の効率化を図ることができるという効果を奏
する。
【0145】また、請求項8にかかる発明によれば、ア
ドレス解決情報に従って監視位置が明確になるので、確
実に検証コードを任意の位置に付加することができると
いう効果を奏する。
【0146】また、請求項9にかかる発明によれば、監
視情報で指定されたプログラムのみに検証コードを付加
すれば良く、さらにデバッグ作業の効率化を図ることが
できるという効果を奏する。
【0147】また、請求項10にかかる発明によれば、
プロセス監視アプリとコントロールサービスとの間のプ
ロセス間通信をアプリケーションプログラムインタフェ
ースを利用して実現することができ、プログラム開発の
効率化を図ることができるという効果を奏する。
【0148】また、請求項11にかかる発明によれば、
画像形成装置上で並列実行されるコントロールサービス
またはアプリケーションのプロセスの検証を確実に行う
ことができ、並列ソフトウェアの特性分析などのデバッ
グ作業の効率化を図ることができるという効果を奏す
る。
【0149】また、請求項12にかかる発明によれば、
並列実行される複数プロセスの動作情報だけでなく、プ
ロセス間通信によってプロセス内部で並列実行される複
数のスレッドの動作情報を取得できるので、ソフトウェ
ア特性分析などのデバッグ作業のさらなる効率化を図る
ことができるという効果を奏する。特に、複数のプロセ
スの他、多種多様な機能を実現するために複数のスレッ
ドを生成して実行させるような特徴的な構成の画像形成
装置で本発明のプロセス監視方法を使用することで、複
雑なスレッド間の協調動作により画像形成処理にかかる
ユーザサービスが正常に動作しているか否かを、正確か
つ容易に検証することができ、検証作業の確実性および
効率化を向上させることができるという効果を奏する。
【0150】また、請求項13にかかる発明によれば、
共有メモリを利用したプロセス間通信によってプロセス
の動作情報を取得することができ、画像形成装置上で並
列実行されるプロセスの検証を確実に実現することがで
きるという効果を奏する。
【0151】また、請求項14にかかる発明によれば、
並列実行されるプロセスの動作情報を時系列に取得する
ことができ、並列実行されるプロセスの検証が複雑にな
ることを回避して、デバッグ作業を効率的に行うことが
できるという効果を奏する。
【0152】また、請求項15にかかる発明によれば、
プロセスの実行状況を常に把握しながらプロセスの検証
を行うことができるという効果を奏する。
【0153】また、請求項16にかかる発明によれば、
所望の並列プロセスのみの検証を行うことができ、デバ
ッグ作業を効率的に行うことができるという効果を奏す
る。
【0154】また、請求項17にかかる発明によれば、
プログラム開発段階で、デバッグ用に検証コードをすべ
てのプログラムに付加する必要がなくなり、全体として
デバッグ作業の効率化を図ることができるという効果を
奏する。
【0155】また、請求項18にかかる発明によれば、
アドレス解決情報に従って監視位置が明確になるので、
確実に検証コードを任意の位置に付加することができる
という効果を奏する。
【0156】また、請求項19にかかる発明によれば、
監視情報で指定されたプログラムのみに検証コードを付
加すれば良く、さらにデバッグ作業の効率化を図ること
ができるという効果を奏する。
【0157】また、請求項20にかかる発明によれば、
並列実行されるプロセスの特性分析を容易に行うことが
でき、パフォーマンスの向上を図ることができるととも
に、デバッグ作業の効率化を図ることができるという効
果を奏する。
【0158】また、請求項21にかかる発明によれば、
検証コード付加ステップが検証コードを自動的にプログ
ラムのソースコードに付加し、プロセス監視ステップが
さらに取得した動作情報を管理することで、検証コード
の識別情報をユーザに対して隠すことができ、デバッグ
方法の操作性を向上させることができるという効果を奏
する。
【0159】また、請求項22にかかる発明によれば、
独立したアドレス空間で動作する並列処理においても、
並列動作するソフトウェアシステムの特性分析が容易に
なり、パフォーマンス向上を図ることができるととも
に、デバッグ作業の効率化を図ることができるという効
果を奏する。
【0160】また、請求項23にかかる発明は、請求項
11〜22のいずれか一つに記載された方法をコンピュ
ータに実行させるプログラムであるので、請求項11〜
22のいずれか一つの動作をコンピュータによって実行
することができるという効果を奏する。
【図面の簡単な説明】
【図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 実行ファイル
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04N 1/00 106 H04N 1/00 106Z Fターム(参考) 2C061 AP01 AP03 AP04 AP07 HJ10 HK11 5B021 AA01 AA02 AA05 AA19 CC05 NN00 5B042 GA23 GA36 GC10 HH30 LA08 MC21 5B098 AA08 GA04 GA05 JJ07 5C062 AA02 AA05 AB41 AB42 AC21 AC22 AC48 AC55 AE07 AF00

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 画像形成処理で使用されるハードウェア
    資源と、画像形成処理にかかるユーザサービスにそれぞ
    れ固有の処理を行うアプリケーションのプロセスと、前
    記アプリケーションと前記ハードウェア資源との間に介
    在し、ユーザサービスを提供する際に、アプリケーショ
    ンの少なくとも2つが共通的に必要とする前記ハードウ
    ェア資源の獲得要求、管理、実行制御並びに画像形成処
    理を行うコントロールサービスのプロセスとを備え、前
    記コントロールサービスまたは前記アプリケーションの
    各プログラムが各プロセスの動作情報を出力する検証コ
    ードを含んでいる画像形成装置であって、 前記コントロールサービスまたは前記アプリケーション
    の並列実行されている2以上のプロセスから、前記動作
    情報をプロセス間通信によって取得するプロセス監視手
    段を備えたことを特徴とする画像形成装置。
  2. 【請求項2】 前記プロセス監視手段は、さらに前記コ
    ントロールサービスのプロセスまたは前記アプリケーシ
    ョンのプロセスの内部で並列に実行される2以上のスレ
    ッドの各動作情報を取得することを特徴とする請求項1
    に記載の画像形成装置。
  3. 【請求項3】 前記コントロールサービスのプロセスま
    たは前記アプリケーションのプロセス、および前記プロ
    セス監視手段のプロセスから共通にアクセス可能な共有
    メモリをさらに備え、 前記プロセス監視手段は、前記共有メモリを介して前記
    コントロールサービスのプロセスまたは前記アプリケー
    ションのプロセスから前記動作情報を取得することを特
    徴とする請求項1または2に記載の画像形成装置。
  4. 【請求項4】 前記共有メモリは、前記動作情報を格納
    順に取出し可能なFIFOキューを備え、 前記コントロールサービスのプロセスまたは前記アプリ
    ケーションのプロセスは、前記動作情報を前記FIFO
    キューに格納し、 前記プロセス監視手段は、前記FIFOキューから前記
    動作情報を取得することを特徴とする請求項3に記載の
    画像形成装置。
  5. 【請求項5】 前記コントロールサービスのプロセスま
    たは前記アプリケーションのプロセスは、現在の実行位
    置を示す現在位置情報を、前記共有メモリに格納し、 前記プロセス監視手段は、前記共有メモリに格納された
    前記現在位置情報に基づいて、前記動作情報を取得する
    ことを特徴とする請求項3または4に記載の画像形成装
    置。
  6. 【請求項6】 前記プロセス監視手段は、監視対象のプ
    ロセスに対する監視内容を指定した監視情報を受信し、
    受信した前記監視情報に基づいて前記動作情報を取得す
    ることを特徴とする請求項1〜5のいずれか一つに記載
    の画像形成装置。
  7. 【請求項7】 画像形成処理で使用されるハードウェア
    資源と、画像形成処理にかかるユーザサービスにそれぞ
    れ固有の処理を行うアプリケーションのプロセスと、前
    記アプリケーションと前記ハードウェア資源との間に介
    在し、ユーザサービスを提供する際に、アプリケーショ
    ンの少なくとも2つが共通的に必要とする前記ハードウ
    ェア資源の獲得要求、管理、実行制御並びに画像形成処
    理を行うコントロールサービスのプロセスとを備えた画
    像形成装置であって、 並列実行される複数のプロセスを監視するプロセス監視
    手段を有し、 前記プロセス監視手段は、プロセス監視要求があったと
    きに、前記コントロールサービスまたは前記アプリケー
    ションの監視要求のあったプログラムに、各プロセスの
    動作情報を出力する検証コードを付加する検証コード付
    加手段と、監視対象の前記コントロールサービスまたは
    前記アプリケーションの並列実行されている2以上のプ
    ロセスから、前記動作情報を、プロセス間通信によって
    取得するプロセス情報取得手段と、 を備えたことを特徴とする画像形成装置。
  8. 【請求項8】 前記検証コード付加手段は、前記コント
    ロールサービスまたは前記アプリケーションのプログラ
    ムのアドレス解決情報が記述されたマップ情報に基づい
    て、前記検証コードを前記コントロールサービスまたは
    前記アプリケーションのプログラムに付加することを特
    徴とする請求項7に記載の画像形成装置。
  9. 【請求項9】 前記検証コード付加手段は、監視対象の
    プロセスに対する監視内容を指定した監視情報に基づい
    て前記監視対象のプロセスに前記検証コードを付加する
    ことを特徴とする請求項7または8に記載の画像形成装
    置。
  10. 【請求項10】 前記アプリケーションに含まれ、前記
    プロセス監視手段として動作するプロセス監視アプリを
    備えたことを特徴とする請求項1〜9のいずれか一つに
    記載の画像形成装置。
  11. 【請求項11】 画像形成処理で使用されるハードウェ
    ア資源と、画像形成処理にかかるユーザサービスにそれ
    ぞれ固有の処理を行うアプリケーションのプロセスと、
    前記アプリケーションと前記ハードウェア資源との間に
    介在し、ユーザサービスを提供する際に、アプリケーシ
    ョンの少なくとも2つが共通的に必要とする前記ハード
    ウェア資源の獲得要求、管理、実行制御並びに画像形成
    処理を行うコントロールサービスのプロセスとを備え、
    前記コントロールサービスまたは前記アプリケーション
    の各プログラムが各プロセスの動作情報を出力する検証
    コードを含んでいる画像形成装置で実行されるプロセス
    の動作情報を取得するプロセス監視方法であって、 前記コントロールサービスまたは前記アプリケーション
    の並列実行されている2以上のプロセスから、前記動作
    情報をプロセス間通信によって取得するプロセス監視ス
    テップを含んだことを特徴とするプロセス監視方法。
  12. 【請求項12】 前記プロセス監視ステップは、さらに
    前記コントロールサービスのプロセスまたは前記アプリ
    ケーションのプロセスの内部で並列に実行される2以上
    のスレッドの各動作情報を取得することを特徴とする請
    求項11に記載のプロセス監視方法。
  13. 【請求項13】 前記プロセス監視ステップは、前記コ
    ントロールサービスのプロセスまたは前記アプリケーシ
    ョンのプロセス、およびプロセス監視を実行するプロセ
    スから共通にアクセス可能な共有メモリを介して前記コ
    ントロールサービスのプロセスまたは前記アプリケーシ
    ョンのプロセスから前記動作情報を取得することを特徴
    とする請求項11または12に記載のプロセス監視方
    法。
  14. 【請求項14】 前記コントロールサービスのプロセス
    または前記アプリケーションのプロセスは、前記動作情
    報を、前記共有メモリに確保された前記動作情報を格納
    順に取出し可能なFIFOキューに格納し、 前記プロセス監視ステップは、前記FIFOキューから
    前記動作情報を取得することを特徴とする請求項13に
    記載のプロセス監視方法。
  15. 【請求項15】 前記コントロールサービスのプロセス
    または前記アプリケーションのプロセスは、現在の実行
    位置を示す現在位置情報を、前記共有メモリに格納し、 前記プロセス監視ステップは、前記共有メモリに格納さ
    れた前記現在位置情報に基づいて、前記動作情報を取得
    することを特徴とする請求項13または14に記載のプ
    ロセス監視方法。
  16. 【請求項16】 前記プロセス監視ステップは、監視対
    象のプロセスに対する監視内容を指定した監視情報を受
    信し、受信した前記監視情報に基づいて前記動作情報を
    取得することを特徴とする請求項11〜15のいずれか
    一つに記載のプロセス監視方法。
  17. 【請求項17】 画像形成処理で使用されるハードウェ
    ア資源と、画像形成処理にかかるユーザサービスにそれ
    ぞれ固有の処理を行うアプリケーションのプロセスと、
    前記アプリケーションと前記ハードウェア資源との間に
    介在し、ユーザサービスを提供する際に、アプリケーシ
    ョンの少なくとも2つが共通的に必要とする前記ハード
    ウェア資源の獲得要求、管理、実行制御並びに画像形成
    処理を行うコントロールサービスのプロセスとを備えた
    画像形成装置で並列実行される複数のプロセスからプロ
    セスの動作情報を取得するプロセス監視方法であって、
    プロセス監視要求があったときに、前記コントロールサ
    ービスまたは前記アプリケーションの監視要求のあった
    プログラムに、各プロセスの動作情報を出力する検証コ
    ードを付加する検証コード付加ステップと、 監視対象の前記コントロールサービスまたは前記アプリ
    ケーションの並列実行されている2以上のプロセスか
    ら、前記動作情報を、プロセス間通信によって取得する
    プロセス情報取得ステップと、 を含んだことを特徴とするプロセス監視方法。
  18. 【請求項18】 前記検証コード付加ステップは、前記
    コントロールサービスまたは前記アプリケーションのプ
    ログラムのアドレス解決情報が記述されたマップ情報に
    基づいて、前記検証コードを前記コントロールサービス
    または前記アプリケーションのプログラムに付加するこ
    とを特徴とする請求項17に記載のプロセス監視方法。
  19. 【請求項19】 前記検証コード付加ステップは、監視
    対象のプロセスに対する監視内容を指定した監視情報に
    基づいて前記監視対象のプロセスに前記検証コードを付
    加することを特徴とする請求項17または18に記載の
    プロセス監視方法。
  20. 【請求項20】 計算機システム内で並列に実行される
    プロセスのプログラムをデバッグするデバッグ方法にお
    いて、 各プロセスの動作情報を出力する検証コードを、前記プ
    ログラムのソースコードに付加する検証コード付加ステ
    ップと、 前記検証コード付加ステップで付加された検証コードに
    基づいて、並列実行される各プロセスの動作情報を取得
    するプロセス監視ステップと、 を含んだことを特徴とするデバッグ方法。
  21. 【請求項21】 前記検証コード付加ステップは、前記
    検証コードを前記プログラムのソースコードに自動的に
    付加するものであり、 前記プロセス監視ステップは、さらに取得した前記動作
    情報を管理することを特徴とする請求項20に記載のデ
    バッグ方法。
  22. 【請求項22】 単一の計算機システム内で独立したア
    ドレス空間を持ち、 計算機システム内で並列に実行されるプロセスのプログ
    ラムをデバッグするデバッグ方法において、 各プロセスの動作情報を出力する検証コードを、前記プ
    ログラムのソースコードに付加する検証コード付加ステ
    ップと、 前記検証コード付加ステップで付加された検証コードに
    基づいて、並列実行される各プロセスの動作情報を、並
    列実行されるプロセスから共通にアクセス可能な共有メ
    モリを介して取得するプロセス監視ステップと、 を含んだことを特徴とするデバッグ方法。
  23. 【請求項23】 請求項11〜22のいずれか一つに記
    載された方法をコンピュータに実行させるプログラム。
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 true JP2002215420A (ja) 2002-08-02
JP4037079B2 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005269619A (ja) * 2004-02-17 2005-09-29 Ricoh Co Ltd 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2010233253A (ja) * 2004-02-17 2010-10-14 Ricoh Co Ltd 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
WO2011010427A1 (ja) * 2009-07-23 2011-01-27 パナソニック株式会社 実行状態監視装置および実行状態監視方法
US9037744B2 (en) 2005-06-30 2015-05-19 Ricoh Company, Ltd. Information processing apparatus, information processing system, message control method, and program product, storage medium
JP2021118961A (ja) * 2021-05-19 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177960A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177961A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
US11843747B2 (en) 2021-06-08 2023-12-12 Canon Kabushiki Kaisha Information processing apparatus for interprocess communication to perform processing without requiring completion of preparation for receiving a message

Citations (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 プログラム実行状況解析方式
JPH11212837A (ja) * 1998-01-26 1999-08-06 Nec Corp 言語処理方法及び言語処理装置並びに言語処理プログラムを記録した記憶媒体
JPH11282684A (ja) * 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
JPH11327951A (ja) * 1998-03-31 1999-11-30 Internatl Business Mach Corp <Ibm> プログラムの性能をモニタするための方法及び装置
JP2000010815A (ja) * 1998-06-22 2000-01-14 Nec Corp 並列分散システムのデバッグ装置及びデバッグ方法
JP2000056625A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd 画像形成システム
JP2000267898A (ja) * 1999-03-19 2000-09-29 Denso Corp プログラムの実行履歴記録装置及び記録媒体
JP2000322286A (ja) * 1999-05-10 2000-11-24 Nec Corp ネットワーク分散プログラムデバッグ方法およびネットワーク分散プログラムデバッグ用システム
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置

Patent Citations (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 プログラム実行状況解析方式
JPH11212837A (ja) * 1998-01-26 1999-08-06 Nec Corp 言語処理方法及び言語処理装置並びに言語処理プログラムを記録した記憶媒体
JPH11282684A (ja) * 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
JPH11327951A (ja) * 1998-03-31 1999-11-30 Internatl Business Mach Corp <Ibm> プログラムの性能をモニタするための方法及び装置
JP2000010815A (ja) * 1998-06-22 2000-01-14 Nec Corp 並列分散システムのデバッグ装置及びデバッグ方法
JP2000056625A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd 画像形成システム
JP2000267898A (ja) * 1999-03-19 2000-09-29 Denso Corp プログラムの実行履歴記録装置及び記録媒体
JP2000322286A (ja) * 1999-05-10 2000-11-24 Nec Corp ネットワーク分散プログラムデバッグ方法およびネットワーク分散プログラムデバッグ用システム
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4691197B2 (ja) * 2004-02-17 2011-06-01 株式会社リコー 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2010233253A (ja) * 2004-02-17 2010-10-14 Ricoh Co Ltd 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2005269619A (ja) * 2004-02-17 2005-09-29 Ricoh Co Ltd 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4625343B2 (ja) * 2004-02-17 2011-02-02 株式会社リコー 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2011087327A (ja) * 2004-02-17 2011-04-28 Ricoh Co Ltd 画像形成装置、端末装置、情報処理方法、情報処理プログラム、及び記録媒体
US9037744B2 (en) 2005-06-30 2015-05-19 Ricoh Company, Ltd. Information processing apparatus, information processing system, message control method, and program product, storage medium
WO2011010427A1 (ja) * 2009-07-23 2011-01-27 パナソニック株式会社 実行状態監視装置および実行状態監視方法
JP2021118961A (ja) * 2021-05-19 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP7049509B2 (ja) 2021-05-19 2022-04-06 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177960A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177961A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP7356173B2 (ja) 2021-05-19 2023-10-04 株式会社ユニバーサルエンターテインメント 遊技機
JP7356172B2 (ja) 2021-05-19 2023-10-04 株式会社ユニバーサルエンターテインメント 遊技機
US11843747B2 (en) 2021-06-08 2023-12-12 Canon Kabushiki Kaisha Information processing apparatus for interprocess communication to perform processing without requiring completion of preparation for receiving a message

Also Published As

Publication number Publication date
JP4037079B2 (ja) 2008-01-23

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
US7636172B2 (en) Image forming apparatus, information processing apparatus and version check method using an API from an application
US8115943B2 (en) Image forming apparatus and print process method
EP2017731B1 (en) Program determining apparatus and program determining method for memory consumption testing
EP1385089A2 (en) Image forming apparatus, information processing apparatus, program execution method and program producing method
EP2765525B1 (en) Apparatus, non-transitory computer readable information recording medium and information recording method
JP2004112785A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
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) 画像形成装置およびアプリケーション情報取得方法
JP3677474B2 (ja) 画像形成装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラム
JP3920893B2 (ja) 情報処理装置、プロセス間通信履歴表示方法およびその方法をコンピュータに実行させるプログラム
JP2002342119A (ja) 画像形成装置用プログラム生成方法、画像形成装置用カバレージ測定方法、これらの方法をコンピュータに実行させるプログラム、カバレージ測定装置、カバレージ測定プログラムおよび情報記録媒体
JP4080739B2 (ja) 画像形成装置用アプリケーション生成方法およびその方法をコンピュータに実行させるプログラム
JP2008118669A (ja) 画像形成装置およびアプリケーション情報取得方法
CN100535861C (zh) 成像装置
US20040036904A1 (en) Image forming apparatus and method of activating a program
JP2004127253A (ja) 情報処理装置およびバージョンチェック方法
JP2004062828A (ja) 画像形成装置およびカスタマイズプログラム試験方法
JP3798710B2 (ja) 画像情報処理装置、プロセス情報取得方法およびその方法をコンピュータに実行させるプログラム
JP4334213B2 (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