(57)【要約】【課題】同一の仮想記憶領域を複数のインタプリタによって適切に共用させることのできる画像形成装置、情報管理方法、及び情報管理プログラムの提供を目的とする。【解決手段】プリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置であって、前記インタプリタは、当該インタプリタのプロセスの終了時に前記仮想記憶領域における当該インタプリタの可変情報を記憶装置に保存し、当該インタプリタの起動時に前記記憶装置に保存されている前記可変情報を前記仮想記憶領域に復元することにより上記課題を解決する。【選択図】図５
2008197741.tif 000002
【特許請求の範囲】
【請求項１】
プリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置であって、
前記インタプリタは、当該インタプリタのプロセスの終了時に前記仮想記憶領域における当該インタプリタの可変情報を記憶装置に保存し、当該インタプリタの起動時に前記記憶装置に保存されている前記可変情報を前記仮想記憶領域に復元することを特徴とする画像形成装置。
【請求項２】
前記可変情報は、前記プロセスのヒープ領域に格納される情報を含むことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記可変情報は、前記プロセスのＢＳＳ領域に格納される情報を含むことを特徴とする請求項１又は２記載の画像形成装置。
【請求項４】
プリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置が実行する情報管理方法であって、
前インタプリタのプロセスの終了時に前記仮想記憶領域における当該インタプリタの可変情報を記憶装置に保存する手順と、
前記インタプリタの起動時に前記記憶装置に保存されている前記可変情報を前記仮想記憶領域に復元する手順とを有することを特徴とする情報管理方法。
【請求項５】
前記可変情報は、前記プロセスのヒープ領域に格納される情報を含むことを特徴とする請求項４記載の情報管理方法。
【請求項６】
前記可変情報は、前記プロセスのＢＳＳ領域に格納される情報を含むことを特徴とする請求項４又は５記載の情報管理方法。
【請求項７】
プリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置に、
前インタプリタのプロセスの終了時に前記仮想記憶領域における当該インタプリタの可変情報を記憶装置に保存する手順と、
前記インタプリタの起動時に前記記憶装置に保存されている前記可変情報を前記仮想記憶領域に復元する手順とを実行させるための情報管理プログラム。
【請求項８】
前記可変情報は、前記プロセスのヒープ領域に格納される情報を含むことを特徴とする請求項７記載の情報管理プログラム。
【請求項９】
前記可変情報は、前記プロセスのＢＳＳ領域に格納される情報を含むことを特徴とする請求項７又は８記載の情報管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報管理方法、及び情報管理プログラムに関し、特にプリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置、情報管理方法、及び情報管理プログラムに関する。
【背景技術】
【０００２】
一般的に、プリンタには、プリンタ言語を解釈するためのインタプリタと呼ばれるプログラムが実装されている。プリンタ言語は、各種存在し、プリンタ言語ごとにインタプリタが必要とされる。したがって、複数のプリンタ言語に対応するためには、複数のインタプリタがプリンタに実装されている必要がある。
【０００３】
各インタプリタがプロセスとして起動される場合、それぞれのプロセスを常住させるのは、メモリ消費量の抑制の観点から好ましくない。特に、プリンタは、汎用的なコンピュータに比べて搭載されるメモリ容量が少ないため、メモリ消費量を抑制させることは非常に重要な課題である。
【０００４】
そこで、従来、複数のインタプリタによって同一の仮想記憶領域を共用させ、同一の仮想記憶領域上において各インタプリタのプロセスを切り替えて起動させることにより、メモリ消費量の抑制が図られていた。
【特許文献１】特開２００３−３３７７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数のインタプリタによって同一の仮想記憶領域を共用させた場合、各インタプリタにおいて仮想記憶領域上に保持される可変情報は、他のインタプリタに切り替えられた際に当該他のインタプリタの情報によって上書きされてしまう。したがって、以前起動されていたインタプリタが改めて起動される際、当該可変情報は、再度設定等されなければ前回と同じ状態を再現できないという問題があった。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、同一の仮想記憶領域を複数のインタプリタによって適切に共用させることのできる画像形成装置、情報管理方法、及び情報管理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、プリンタ言語のインタプリタを複数有し、同一の仮想記憶領域を複数の前記インタプリタによって共用する画像形成装置であって、前記インタプリタは、当該インタプリタのプロセスの終了時に前記仮想記憶領域における当該インタプリタの可変情報を記憶装置に保存し、当該インタプリタの起動時に前記記憶装置に保存されている前記可変情報を前記仮想記憶領域に復元することを特徴とする。
【０００８】
このような画像形成装置では、同一の仮想記憶領域を複数のインタプリタによって適切に共用させることができる。
【発明の効果】
【０００９】
本発明によれば、同一の仮想記憶領域を複数のインタプリタによって適切に共用させることのできる画像形成装置、情報管理方法、及び情報管理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、ネットワークインタフェース１５、及び操作パネル１６等のハードウェアを有する。
【００１１】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等より構成される。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、後述される機能を実現する。ＨＤＤ１１４は、各種のデータの保存領域やプログラムの仮想メモリ（記憶）領域として用いられる。
【００１２】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、画像データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。ネットワークインタフェース１５は、ＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。操作パネル１６は、ユーザからの入力の受け付けや、ユーザに対する情報の通知等を行うめのボタン、液晶パネル等を備えたハードウェアである。
【００１３】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図２において、画像形成装置１０は、コントロールサービス１１０と、当該コントロールサービス１１０を利用して動作する各種のアプリケーションと等より構成される。
【００１４】
コントロールサービス１１０は、アプリケーションがそれぞれの機能を実現するために共通的に必要とされるサービスを提供するプログラムである。コントロールサービス１１０は、例えば、ネットワーク通信の仲介、ハードウェアの制御、メモリ（ＲＡＭ１１２、ＲＯＭ１１３）やＨＤＤ１１４の制御、操作パネル１６の制御、及びユーザ情報の管理等を行う。
【００１５】
図２には、各種のアプリケーションとして、プリンタアプリ１２０、ＦＡＸアプリ１３０、及びコピーアプリ１４０が示されている。プリンタアプリ１２０は、画像形成装置１０をプリンタとして機能させるためのアプリケーションである。ＦＡＸアプリ１３０は、画像形成装置１０をファクシミリとして機能させるためのアプリケーションである。コピーアプリ１４０は、画像形成装置１０をコピー機として機能させるためのアプリケーションである。
【００１６】
なお、コントロールサービス１１０、プリンタアプリ１２０、ＦＡＸアプリ１３０、コピーアプリ１４０は、ＯＳ（Operating System）１５０上においてそれぞれ異なるプロセスとして動作する。
【００１７】
ところで、プリンタアプリ１２０は、インタプリタ１２１及びプリンタシステム１２２より構成される。インタプリタ１２１は、プリンタ言語を解釈及び翻訳し、印刷画像を生成（描画）するプログラムである。本実施の形態における画像形成装置１０には、プリンタ言語の種類に対応させて複数のインタプリタ１２１が実装されている。図中では、Ａインタプリタ１２１ａ、Ｂインタプリタ１２１ｂ、及びＣインタプリタ１２１ｃが例示されている。各インタプリタ１２１は、解釈可能なプリンタ言語が異なる。例えば、Ａインタプリタ１２１ａは、ＰＳ（Post Script）用のインタプリタであり、Ｂインタプリタ１２１ｂは、ＰＣＬ（Printer Control Language）用のインタプリタであるといった具合である。なお、各インタプリタ１２１は、それぞれ異なるプロセスとして起動される。但し、画像形成装置１０では、メモリ消費量を抑制するため、同時に複数のインタプリタ１２１は起動されない。また、各インタプリタ１２１のプロセスは、同一の仮想メモリ領域にマッピングされる。すなわち、複数のインタプリタ１２１によって同一の仮想メモリ領域が共用される。
【００１８】
プリンタシステム１２２は、各インタプリタ１２１の管理を行う。例えば、ＰＣ（Personal Computer）等のホストコンピュータより、印刷データが受信された場合、当該印刷データが使用しているプリンタ言語の種類に応じて、対応するインタプリタ１２１を起動させる。
【００１９】
例えば、Ａインタプリタ１２１ａが起動されているとき、プリンタアプリ１２０の仮想メモリ（仮想記憶）領域は、次のように構成されている。
【００２０】
図３は、Ａインタプリタ起動時のプリンタアプリの仮想メモリ領域の構成例を示す図である。図３において、仮想メモリ領域２００は、プリンタアプリ１２０用の仮想メモ領域を示す。図中では、仮想メモ領域２００が、ＲＡＭ１１２及びＨＤＤ１１４によって構成される物理メモリ領域の一部を利用していることが示されている。
【００２１】
仮想メモリ領域２００において、領域２１０は、インタプリタ１２１のプロセスがマッピングされる領域である。Ａインタプリタ１２１ａが起動しているとき、領域２１０は、プログラムコード領域２１１ａ、プログラムデータ領域２１２ａ、及びヒープ領域２１３ａによって構成されている。
【００２２】
プログラムコード領域２１１ａは、Ａインタプリタ１２１ａのプログラムコード（実行コード）が格納される領域であり、テキスト領域とも呼ばれる。プログラムデータ領域２１２ａは、Ａインタプリタ１２１ａが利用するスタティック変数やグローバル変数が格納される領域である。ヒープ領域２１３ａは、Ａインタプリタ１２１ａの処理の実行に応じて動的に確保可能な領域である。
【００２３】
プログラムデータ領域２１２ａは、更に、次のような領域によって構成される。
【００２４】
図４は、プログラムデータ領域の構成例を示す図である。図４に示されるように、プログラムデータ領域２１２ａは、ＤＡＴＡ領域２１２ａ−１及びＢＳＳ領域２１２−２によって構成されている。ＤＡＴＡ領域２１２ａ−１は、宣言時に値がセットされているスタティック変数やグローバル変数が格納される領域である。ＢＳＳ領域２１２ａ−２は、宣言時に値がセットされていないスタティック変数やグローバル変数が格納される領域である。
【００２５】
ところで、図４に示される領域２００において、Ａインタプリタ１２１ａの処理の進行に応じて、書き換えられる可能性のある領域は、ＢＳＳ領域２１２ａ−２及びヒープ領域２１３ａである。以下、ＢＳＳ領域２１２ａ−２及びヒープ領域２１３ａに格納される情報を「可変情報」という。可変情報には、例えば、各種の設定情報等（例えば、使用するフォント等）が格納される。
【００２６】
以下、画像形成装置１０におけるプリンタアプリ１２０の処理手順について説明する。図５は、プリンタアプリにおけるインタプリタの切り替え処理を説明するためのシーケンス図である。図５では、Ａインタプリタ１２１ａが既にプロセスとして起動されている状態が初期状態とされている。したがって、領域２１０は、図４に示されるような状態となっている。この際、Ａインタプリタ１２１ａに対する各種の設定や、Ａインタプリタ１２１ａの処理の進行に応じ可変情報における変数の値が変更される。例えば、Ａインタプリタ１２１ａによって使用されるフォントの設定が可変情報に保持される。
【００２７】
Ａインタプリタ１２１ａの処理が完了すると、プリンタシステム１２２は、Ａインタプリタ１２１ａのプロセスの終了指示を行う（Ｓ１０１）、終了指示に応じ、Ａインタプリタ１２１ａは、可変情報をＨＤＤ１１４にファイル（以下「可変情報ファイル」という。）として保存し（Ｓ１０２）、プロセスが正常に終了したことをプリンタシステム１２２に通知する（Ｓ１０３）。
【００２８】
図６は、Ａインタプリタの可変情報が保存される様子を概念的に示す図である。図６では、ＢＳＳ領域２１２ａ−２に格納されている情報、及びヒープ領域２１３ａが格納されている情報がそのままＨＤＤ１１４に保存される様子が示されている。
【００２９】
続いて、Ｂインタプリタ１２１ｂが対応するプリンタ言語を使用した印刷データが受信されると、プリンタシステム１２２はＢインタプリタ１２１ｂをプロセスとして起動する（Ｓ１０４、Ｓ１０５）。このとき、仮想メモリ領域２００の領域２１０にはＢインタプリタ１２１ｂのプロセスがマッピングされる。
【００３０】
図７は、Ｂインタプリタ起動時のプリンタアプリの仮想メモリ領域の構成例を示す図である。図７に示されるように、Ｂインタプリタ１２１ｂが起動されると、領域２１０には、Ｂインタプリタ１２１ｂのプログラムコード領域２１１ｂ、ＤＡＴＡ領域２１２ｂ−１、ＢＳＳ領域２１２ｂ−２、及びヒープ領域２１３ｂがマッピングされる。なお、図７において、図４と同一部分には同一符号を付している。すなわち、図４における領域２１０と図７における領域２１０は同一領域である。したがって、Ｂインタプリタ１２１ｂの起動により、領域２１０の内容は、Ｂインタプリタ１２１ｂの情報によって上書きされてしまう。
【００３１】
Ｂインタプリタ１２１ｂが終了（Ｓ１０６、Ｓ１０７）した後、Ａインタプリタ１２１ａが対応するプリンタ言語を使用した印刷データが受信されると、プリンタシステム１２２はＡインタプリタ１２１ａをプロセスとして起動する（Ｓ１０７）。このとき、仮想メモリ領域２００の領域２１０にはＡインタプリタ１２１ａのプロセスが再びマッピングされる。但し、可変情報については初期状態がロードされるため、そのままでは前回の状態（例えば、フォントの設定等）を再現することができない。そこで、Ａインタプリタ１２１ａは、可変情報ファイルがＨＤＤ１１４内に保存されているか否かを確認し、保存されている場合は当該可変情報ファイルより可変情報を読み出す。Ａインタプリタ１２１ａは、当該可変情報をＢＳＳ領域２１２ａ−２及びヒープ領域２１３ａに書き込み（Ｓ１０８）、正常に起動されたことをプリタシステム１２１に通知する（Ｓ１０９）。
【００３２】
図８は、Ａインタプリタの可変情報が復元される様子を概念的に示す図である。図８では、領域２１０におけるＢＳＳ領域２１２ａ−２及びヒープ領域２１３ａが、ＨＤＤ１１４に保存されているプログラムデータ領域２１２ａ−２の情報及びヒープ領域２１３ａの情報によって上書きされる様子が示されている。これにより、前回の設定情報が復元される。したがって、改めて前回行ったフォントの設定等を改めて行わなくとも、前回と同様の設定内容によって処理が実行される。
【００３３】
なお、図５において、Ｂインタプリタ１２１ｂについても、その起動時に可変情報を復元し、終了時に可変情報をＨＤＤ１１４に保存する。各インタプリタ１２１の可変情報ファイルは、それぞれファイル名を変えることにより区別すればよい。
【００３４】
上述したように、本発明の実施の形態における画像形成装置によれば、インタプリタ１２１の終了時に可変情報が保存され、起動時に復元される。したがって、複数のインタプリタ１２１によって同一の仮想記憶領域を共用しつつ、各可変情報を適切に再現することができる。
【００３５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】Ａインタプリタ起動時のプリンタアプリの仮想メモリ領域の構成例を示す図である。
【図４】プログラムデータ領域の構成例を示す図である。
【図５】プリンタアプリにおけるインタプリタの切り替え処理を説明するためのシーケンス図である。
【図６】Ａインタプリタの可変情報が保存される様子を概念的に示す図である。
【図７】Ｂインタプリタ起動時のプリンタアプリの仮想メモリ領域の構成例を示す図である。
【図８】Ａインタプリタの可変情報が復元される様子を概念的に示す図である。
【符号の説明】
【００３７】
１０        画像形成装置
１１        コントローラ
１２        スキャナ
１３        プリンタ
１４        モデム
１５        ネットワークインタフェース
１６        操作パネル
１１０      コントロールサービス
１１１      ＣＰＵ
１１２      ＲＡＭ
１１３      ＲＯＭ
１１４      ＨＤＤ
１２０      プリンタアプリ
１２１      インタプリタ
１２１ａ    Ａインタプリタ
１２１ｂ    Ｂインタプリタ
１２１ｃ    Ｃインタプリタ
１２２      プリンタシステム
１３０      ＦＡＸアプリ
１４０      コピーアプリ
【図１】
2008197741.tif 000003
【図２】
2008197741.tif 000004
【図３】
2008197741.tif 000005
【図４】
2008197741.tif 000006
【図５】
2008197741.tif 000007
【図６】
2008197741.tif 000008
【図７】
2008197741.tif 000009
【図８】
2008197741.tif 000010