JP2004110731A - Image forming apparatus and memory storage area securing method - Google Patents

Image forming apparatus and memory storage area securing method Download PDF

Info

Publication number
JP2004110731A
JP2004110731A JP2002275974A JP2002275974A JP2004110731A JP 2004110731 A JP2004110731 A JP 2004110731A JP 2002275974 A JP2002275974 A JP 2002275974A JP 2002275974 A JP2002275974 A JP 2002275974A JP 2004110731 A JP2004110731 A JP 2004110731A
Authority
JP
Japan
Prior art keywords
storage area
image forming
forming apparatus
application
program
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
JP2002275974A
Other languages
Japanese (ja)
Other versions
JP4021289B2 (en
Inventor
Katsuhiko Sasaki
佐々木 勝彦
Satoru Sugishita
杉下 悟
Ryoichi Kato
加藤 良一
Yoshihiko Abe
阿部 良彦
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 JP2002275974A priority Critical patent/JP4021289B2/en
Publication of JP2004110731A publication Critical patent/JP2004110731A/en
Application granted granted Critical
Publication of JP4021289B2 publication Critical patent/JP4021289B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image forming apparatus and a storage area securing method which secure more memory areas in a memory area which is managed by application software. <P>SOLUTION: The image forming apparatus has a hardware resource to be used in image formation processing, a process for executing processing regarding image formation based on a program and an operating system which manages execution of the program and the hardware resource. The image forming apparatus has a storage area existing outside management of the operating system and a storage area releasing means which releases the storage area allocated to the process. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、画像形成装置、記憶領域確保方法に関する。
【0002】
【従来の技術】
近年、プリンタ、コピー、ファクシミリおよびスキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、融合機という)が知られるようになった。この融合機は、1つの筐体内に表示部、印刷部および撮像部などを設けると共に、プリンタ、コピー、ファクシミリおよびスキャナにそれぞれ対応する4種類のアプリケーションを設け、そのアプリケーションを切り替えることより、プリンタ、コピー、ファクシミリおよびスキャナとして動作させるものである。
【0003】
このような融合機には、プログラムが展開されたり、画像データが展開されたりするメモリが備えられている。そして、このメモリは、コストなどを抑えるために、なるべく必要最小限の記憶容量で搭載されるのが一般的である。
【0004】
また、メモリは、アプリケーションなどが処理を実行する際に確保したり、解放を行うことにより使用される。この確保や解放における記憶領域(以下、メモリ領域と記す)の管理は、オペレーティングシステム(以下、OSと記す)が行なっている。
【0005】
このように、従来は、必要最小限の記憶容量で、OSが管理しているメモリを使用していた。
【0006】
【発明が解決しようとする課題】
しかしながら、一般的に、メモリが多く確保可能であれば、より多くの処理を実行することが可能となる。特に、融合機において扱うデータは、比較的大きなデータである画像データであり、さらに融合機のプログラムを更新するために、ネットワークを介してダウンロードするプログラムなどの大きなデータもある。
【0007】
また、OSが提供するシステムコールは、メモリに関して基本的な処理を行うともに、OSの中核部分が提供するため、OS以外のソフトウェアであるアプリケーションやモジュールなどの応用ソフトウェアが独自に管理を行うには限界がある。
【0008】
本発明はこのような問題点に鑑み、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、前記オペレーティングシステムの管理外にある記憶領域と、前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段とを有することを特徴とする。
【0010】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、前記オペレーティングシステムの管理外にある記憶領域と、前記記憶領域を管理する記憶領域管理手段と、前記プロセスに対し、処理の実行を制限させるオフライン手段と、処理の実行が制限された前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段とを有することを特徴とする。
【0011】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、前記オペレーティングシステムの管理外にあり、前記プロセスに割り当てられた記憶領域を解放することを特徴とする。
【0012】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、前記プロセスに対し、処理の実行を制限させるオフライン段階と、前記オペレーティングシステムの管理外にあり、処理の実行が制限された前記プロセスに割り当てられた記憶領域を解放する記憶領域解放段階とを有することを特徴とする。
【0013】
以上のように、本発明によれば、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法が得られる。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。
【0015】
図1は、本発明による融合機の一実施例の構成図を示す。融合機1は、ソフトウェア群2と、融合機起動部3と、ハードウェア資源4とを含むように構成される。
【0016】
融合機起動部3は融合機1の電源投入時に最初に実行され、アプリケーション層5およびプラットフォーム6を起動する。例えば融合機起動部3は、アプリケーション層5およびプラットフォーム6のプログラムをハードディスク装置(以下、HDDという)などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源4は、白黒レーザプリンタ(B&W LP)11と、カラーレーザプリンタ(Color LP)12と、スキャナやファクシミリなどのハードウェアリソース13とを含む。
【0017】
また、ソフトウェア群2は、UNIX(登録商標)などのオペレーティングシステム(以下、OSという)上に起動されているアプリケーション層5とプラットフォーム6とを含む。アプリケーション層5は、プリンタ、コピー、ファックス、スキャナおよびネットファイルなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【0018】
アプリケーション層5は、プリンタ用のアプリケーションであるプリンタアプリ21と、コピー用アプリケーションであるコピーアプリ22と、ファックス用アプリケーションであるファックスアプリ23と、スキャナ用アプリケーションであるスキャナアプリ24と、ネットワークを用いて文書のサービスを行うネットファイルアプリ25を含む。
【0019】
また、プラットフォーム6は、アプリケーション層5からの処理要求を解釈してハードウェア資源4の獲得要求を発生するコントロールサービス層9と、1つ以上のハードウェア資源4の管理を行ってコントロールサービス層9からの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)39と、SRM39からの獲得要求に応じてハードウェア資源4の管理を行うハンドラ層10とを含む。
【0020】
コントロールサービス層9は、ネットワークコントロールサービス(以下、NCSという)31、デリバリーコントロールサービス(以下、DCSという)32、オペレーションパネルコントロールサービス(以下、OCSという)33、ファックスコントロールサービス(以下、FCSという)34、エンジンコントロールサービス(以下、ECSという)35、メモリコントロールサービス(以下、MCSという)36、ユーザインフォメーションコントロールサービス(以下、UCSという)37、システムコントロールサービス(以下、SCSという)38、リモートサービス(以下、RSという)42、オンデマンドアップデートサービス(以下、OUSという)33など、一つ以上のサービスモジュールを含むように構成されている。
【0021】
なお、プラットフォーム6は予め定義されている関数により、アプリケーション層5からの処理要求を受信可能とするAPI53を有するように構成されている。OSは、アプリケーション層5およびプラットフォーム6の各ソフトウェアをプロセスとして並列実行する。
【0022】
NCS31のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【0023】
例えばNCS31は、ネットワークを介して接続されるネットワーク機器とのデータ通信をhttpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)で制御する。
【0024】
また、NCS31は、更新プログラムをネットワークからダウンロードするためにも用いられる。
【0025】
DCS32のプロセスは、蓄積文書の配信などの制御を行う。OCS33のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。また、このオペレーションパネルは、オペレータが融合機1を操作するための入力手段でもある。FCS34のプロセスは、アプリケーション層5からPSTNまたはISDN網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録/引用、ファックス読み取り、ファックス受信印刷などを行うためのAPIを提供する。
【0026】
ECS35のプロセスは、白黒レーザプリンタ11、カラーレーザプリンタ12、ハードウェアリソース13などのエンジン部の制御を行う。MCS36のプロセスは、メモリの取得および解放、HDDの利用などのメモリ制御を行う。UCS37のプロセスは、ユーザ情報の管理を行うものである。RS42のプロセスは、リモートサービスの制御を行うものである。OUS33のプロセスは、ダウンロードした更新プログラムをメモリに展開するなど、ダウンロードに関する種々の処理を行うものである。
【0027】
SCS38のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【0028】
SRM39のプロセスは、SCS38と共にシステムの制御およびハードウェア資源4の管理を行うものである。例えばSRM39のプロセスは、白黒レーザプリンタ11やカラーレーザプリンタ12などのハードウェア資源4を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【0029】
具体的に、SRM39のプロセスは獲得要求されたハードウェア資源4が利用可能であるか(他の獲得要求により利用されていないかどうか)を判定し、利用可能であれば獲得要求されたハードウェア資源4が利用可能である旨を上位層に通知する。また、SRM39のプロセスは上位層からの獲得要求に対してハードウェア資源4を利用するためのスケジューリングを行い、要求内容(例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0030】
また、ハンドラ層10は後述するファックスコントロールユニット(以下、FCUという)の管理を行うファックスコントロールユニットハンドラ(以下、FCUHという)40と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行う記憶領域管理手段であるイメージメモリハンドラ(以下、IMHという)41とを含む。SRM39およびFCUH40は、予め定義されている関数によりハードウェア資源4に対する処理要求を送信可能とするエンジンI/F54を利用して、ハードウェア資源4に対する処理要求を行う。
【0031】
融合機1は、各アプリケーションで共通的に必要な処理をプラットフォーム6で一元的に処理することができる。次に、融合機1のハードウェア構成について説明する。
【0032】
図2は、本発明による融合機1の一実施例のハードウェア構成図を示す。融合機1は、コントローラ60と、オペレーションパネル70と、FCU80と、USBデバイス90と、IEEE1394デバイス100と、エンジン部110とを含む。
【0033】
また、コントローラ60は、CPU61と、システムメモリ(MEM−P)62と、ノースブリッジ(以下、NBという)63と、サウスブリッジ(以下、SBという)64と、ASIC66と、ローカルメモリ(MEM−C)67と、HDD68と、フラッシュメモリ69とを含む。
【0034】
オペレーションパネル70は、コントローラ60のASIC66に接続されている。また、FCU80、USBデバイス90、IEEE1394デバイス100およびエンジン部120は、コントローラ60のASIC66にPCIバスで接続されている。
【0035】
コントローラ60は、ASIC66にローカルメモリ67、HDD68などが接続されると共に、CPU61とASIC66とがCPUチップセットのNB63を介して接続されている。このように、NB63を介してCPU61とASIC66とを接続すれば、CPU61のインタフェースが公開されていない場合に対応できる。
【0036】
フラッシュメモリ69には、上記アプリケーションや、モジュールを実行させるプログラムが格納されており、ダウンロードした更新プログラムはこのフラッシュメモリ64に格納される。
【0037】
なお、ASIC66とNB63とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)65を介して接続されている。このように、図1のアプリケーション層5やプラットフォーム6を形成する一つ以上のプロセスを実行制御するため、ASIC66とNB63とを低速のPCIバスでなくAGP65を介して接続し、パフォーマンスの低下を防いでいる。
【0038】
CPU61は、融合機1の全体制御を行うものである。CPU61は、NCS31、DCS32、OCS33、FCS34、ECS35、MCS36、UCS37、SCS38、SRM39、FCUH40、RS42、OUS43およびIMH41をOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層5を形成するプリンタアプリ21、コピーアプリ22、ファックスアプリ23、スキャナアプリ24を起動して実行させる。
【0039】
NB63は、CPU61、システムメモリ62、SB64およびASIC66を接続するためのブリッジである。システムメモリ62は、融合機1の描画用メモリなどとして用いるメモリである。SB64は、NB63とROM、PCIバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ67はコピー用画像バッファ、符号バッファとして用いるメモリである。
【0040】
ASIC66は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD68は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル70は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。
【0041】
次に、メモリ領域を確保する処理を説明するために、融合機1のプログラムを更新する際に行われる更新プログラムをダウンロードする処理を例にして説明するが、その説明に先立ち、以下の説明で用いられるプロセスやアプリケーションなどの説明をしておく。
【0042】
本実施の形態においては、アプリケーション、モジュール、プロセスという表現が用いられている。このうちのプロセスは、一般的に実行中のプログラムを表すため、アプリケーションやモジュールはプロセスに含まれる。したがって、いずれの表現の場合も本質的な差はないが、本実施の形態では、説明内容に応じて適宜使い分ける。また、プロセス(アプリケーション、モジュール)を消滅することは、プロセスに割り当てられたメモリ領域を解放することを意味する。
【0043】
また、プロセスに割り当てられたメモリ領域には、プロセスが実行するプログラムと、プロセスが一時的に使用する情報など、プロセスが処理を実行するために必要な情報が展開される。
【0044】
また、本実施の形態において、ダウンロードして取得したプログラムを更新プログラムとしているが、この更新プログラムは、融合機1が有する従来からのプログラム全体を更新するプログラムだけではなく、従来のプログラムとマージするプログラムや従来のプログラムの一部を更新する差分プログラムを含む。
【0045】
以下、更新プログラムをダウンロードする処理の概要を説明する。
【0046】
融合機1は、例えば融合機1の開発元などが提供するサーバからプログラムの更新を開始する通知を受けると、プロセスに割り当てられたメモリ領域を解放することにより更新プログラムを展開するためのメモリ領域を確保し、そのメモリ領域に更新プログラムを展開するという処理を行う。そこでまず、メモリ領域についての説明をする。
【0047】
メモリ領域は、どの領域を何のプロセスに割り当てるのかが予め定められている。そのため、通常はメモリマップを用いてメモリ領域の内容が示される。
【0048】
このメモリマップを用いてメモリ領域について説明する。図3には、揮発性の記憶装置であるシステムメモリ62のメモリマップ71と、メモリマップ71に示されている共有メモリを拡大したメモリマップ72が示されている。また、メモリ領域VM75は、OSが管理するメモリ領域である。
【0049】
このようにOSの管理外にあるメモリ領域を用いることにより、融合機1を開発する側では、融合機1の仕様や特性に合わせたメモリ管理を行えるばかりではなく、メモリリークなどの不具合の発生原因を抑制することが可能となる。
【0050】
メモリマップ71では、共有メモリ、プリンタエミュレーション作業用メモリ、ページメモリ、印字データ用、その他、というようにメモリ領域が区分けされている。
【0051】
このうち、共有メモリは、実行しているプログラムが展開されるとともに、実行中のプログラムであるプロセスが処理を行うために使用するメモリである。図3に示されているメモリマップ72は、プログラムが展開する前の状態を示しているため、全て空き領域となっている。
【0052】
この状態から、プロセスが起動することによって図4のメモリマップ73に示されるように、それぞれのプロセスに割り当てられた共有メモリ内のメモリ領域を使用する。図5は、このときのプロセス稼動状況を示す図である。図5に示されるプロセスの稼動状況は、全てのプロセスが通常の処理を行なっている状況である。
【0053】
そこで、例えば、図6に示されるように、各アプリケーションや、サービス層モジュールの一部のプロセスに割り当てられたメモリ領域を解放させたとする。これにより、図7のメモリマップ74に示されるように、解放しなかったサービス層モジュールに割り当てられているメモリ領域以外は、全て空き領域となる。
【0054】
このようにすることにより、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保することが可能となる。
【0055】
そして、得られた空き領域は、ダウンロードした更新プログラムを展開するメモリ領域として用いられる。また、ダウンロードした更新プログラムは、新たなプログラムとしてフラッシュメモリ69に格納される。
【0056】
なお、図6において、NCS31とSCS38は、オフラインとなっているが、オフライン状態とは、プロセスが、処理の実行を制限された状態であることを示す。具体的には、エンジン状態通知や、異常発生の通知などを受信することは可能であるが、対外的なイベントに対する実行動作を禁止した状態である。そのため、図6に示されるように、処理の実行を制限されたプロセスは、他のプロセスからの実行要求を拒絶するようになっている。
【0057】
次に、プロセスの消滅について、SCS38とアプリケーションを例にして説明する。SCS38のプロセスと、アプリケーションを構成するプロセスは、図8に示されるように、起動時に互いにエラーハンドラを登録する。このエラーハンドラは、この場合、互いの存在を確認するものである。したがって、図9に示されるように、アプリケーションのプロセスが消滅すると、SCS38のエラーハンドラが、アプリケーションのプロセスが消滅したことを認識し、エラーが発生することになる。
【0058】
そこで、SCS38は、エラーを回避するため、図10に示されるように、予めアプリエラーハンドラを停止してからアプリケーションのプロセスを消滅する。このようにすることで、SCS38は、アプリケーションのプロセスが消滅しても、アプリエラーハンドラは停止しているため、エラーの発生を回避することができる。なお、図中に示される「KILL」は、プロセスを消滅させるコマンドを意味する。
【0059】
以上説明したダウンロードに関する処理の詳細を、シーケンス図とフローチャートを用いて説明する。
【0060】
図11は、融合機1が2つのアプリケーション(アプリA81、アプリB82)を消滅して更新プログラムをダウンロードし、フラッシュメモリ69に格納されたプログラムを更新する処理を示すシーケンス図である。この処理は、NCS31、データ展開手段に対応するOUS43、記憶領域解放手段とオフラン手段と再起動手段に対応するSCS38、エンジンファーム55により行われる。
【0061】
以下、シーケンス図の説明をする。ステップS101で、NCS31は、プログラム更新開始通知をネットワークから受信し、ステップS102で、OUS43に、プログラムの更新開始を示すプログラム更新開始通知を行う。プログラム更新開始を通知されたOUS43は、ステップS103で、SCS38にアプリオフライン要求を通知する。このアプリオフライン要求とは、アプリケーションを上述したオフライン状態にさせる要求である。なお、このシーケンス図でのオフライン要求は、オフライン状態にしたのちに、さらにアプリケーションを消滅させる要求も含んでいる。
【0062】
また、このアプリオフライン要求は、SCS38を介してアプリケーションに通知されるが、この要求を通知されたアプリケーションは、アプリケーションとしての動作を行なっていない限り、オフライン状態に移行しならなければならない。
【0063】
この「アプリケーションとしての動作」を具体的にコピーアプリ22を例にして説明すると、「アプリケーションとしての動作」とは、コピーアプリ22において、例えばコピーの処理を実行する動作をいう。
【0064】
したがって、コピーアプリ22がコピーアプリケーションとしての動作であるコピーの処理を実行していない限り、オフライン状態で動作しならなければならない。
【0065】
また、オフライン状態で動作しているプロセスは、対外的なイベントに対する実行動作の禁止という処理の実行の制限を解除されることにより、制限されていた処理を実行することが可能となる。したがって、アプリケーションは、オフライン状態で動作している際にも、他のアプリケーションなどから通知された内容は保持しておき、処理の実行の制限を解除されたときに、保持していた内容に基づき処理を再開することが可能となっている。
【0066】
シーケンス図の説明に戻り、アプリオフライン要求をOUS43から通知されたSCS38は、アプリA81と、アプリB82にステップS104とステップS105でアプリオフライン移行要求を通知する。
【0067】
アプリオフライン移行要求を通知されたアプリA81、アプリB82は、それぞれオフライン状態に移行することが可能である場合、SCS38に対し、アプリオフライン応答(OK)を通知する。このシーケンス図の場合、アプリA81、アプリB82ともにオフライン状態に移行することが可能であるため、アプリA81、アプリB82は、ステップS106、ステップS107で、それぞれアプリオフライン応答(OK)をSCS38に通知している。
【0068】
アプリオフライン応答(OK)を通知されたSCS38は、アプリA81、アプリB82の消滅を実行する。
【0069】
アプリケーションの消滅を実行したSCS38は、アプリケーションの消滅が完了したことを、ステップS108で、アプリオフライン確定(プロセスKILL完了)としてOUS43に通知する。アプリオフライン確定を通知されたOUS43は、更新プログラムをダウンロードし、アプリケーションの消滅により得られたメモリ領域に更新プログラムを展開する。
【0070】
次に、OUS43は、ステップS109で、プログラム更新開始要求であるリモートROM更新開始要求をSCS38に通知する。リモートROM更新開始要求を通知されたSCS38は、キーイベントのマスクを行う。このキーイベントのマスクとは、オペレーションパネル70に表示されるキーが押下されたことにより発生するイベントを受け付けないようにする処理である。
【0071】
次に、SCS38は、プログラムの更新処理を行うために、ステップS110で、ダウンロードした更新プログラムをエンジンファーム55に送信する。エンジンファーム55は、プログラムの更新を行い、その結果をステップS111でSCS38に通知する。
【0072】
SCS38は、プログラムを更新した結果が通知されると、ステップS112で、エンジンファーム55に対し、リブート準備要求を行う。そして、ステップS113で、エンジンファーム55からリブート準備完了を通知されると、SCS38は、強制リブートを行い、プログラム更新処理を終了する。
【0073】
以上のように、SCS38は、プロセスに割り当てられたメモリ領域を解放し、OUS43は、プログラムを更新する更新プログラムを、NCS31を用いてダウンロードし、SCS38により解放されたメモリ領域に展開する。
【0074】
次に、OUS43と、SCS38の処理の詳細を、フローチャートを用いて説明する。
【0075】
最初に、OUS43の処理について、図12のフローチャートを用いて説明する。ステップS201で、OUS43は、NCS31からプログラム更新開始を通知される。次のステップS202で、OUS43は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのSUM値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップS203で、プログラムの更新処理を終了する。
【0076】
ステップS202で、プログラム更新開始通知が正常なデータであると判定された場合、OUS43は、ステップS204で、SCS38にアプリケーションをオフライン状態にさせ、消滅させるためのアプリオフライン要求を通知する。アプリオフライン要求の応答であるアプリオフライン確定をステップS205で受信すると、OUS43は、ステップS206で、アプリオフラインが実行完了したかどうか判断する。このステップS206の処理は、アプリオフラインが確定しなかったことを通知された場合に、ステップS203で、プログラムの更新処理を終了するための処理である。
【0077】
ステップS206で、OUS43は、アプリオフラインの実行が完了したと判断すると、ステップS207で、アプリケーションを消滅することにより確保されたメモリ領域に、更新プログラムを展開することが可能かどうか判断する。
【0078】
更新プログラムを展開することが不可能な場合、OUS43は、ステップS209で、確保されたメモリ領域を、プログラムの更新を実行しない状態に設定する。そして、OUS43は、ステップS210でSCS38にプログラム更新開始要求であるリモートROM更新開始要求を通知し、処理を終了する。なお、この場合、メモリ領域がプログラムの更新を実行しない状態に設定されているため、プログラムの更新処理は実行されない。
【0079】
ステップS207で、OUS43は、更新プログラムを展開することが可能であると判断すると、ステップS208で、更新プログラムをメモリ領域に展開する。そして、OUS43は、ステップS210でSCS38にプログラム更新開始要求であるリモートROM更新開始要求を通知し、処理を終了する。
【0080】
次に、SCS38の処理について、図13のフローチャートを用いて説明する。ステップS301で、SCS38は、OUS43からのアプリオフライン要求を受信する。アプリオフライン要求を通知されたSCS38は、ステップS302で、各アプリケーションにアプリオフライン移行要求を通知する。
【0081】
次のステップS303で、SCS38は、全てのアプリケーションからの応答が、アプリオフライン応答(OK)ではなかった場合、ステップS304で、各アプリケーションに、アプリオフライン解除を通知する。これにより、アプリケーションは、制限されていた処理の実行が可能となる。次に、SCS38は、ステップS305でアプリケーションがオフラインに移行しなかったことをOUS43に通知し、処理を終了する。
【0082】
ステップS303で、全てのアプリケーションからの応答が、アプリオフライン応答(OK)である場合、SCS38は、ステップS306で、アプリケーションを消滅させる。そして、ステップS307で、SCS38は、OUS43にアプリオフライン確定を通知する。
【0083】
次に、SCS38は、OUS43からステップS308で、プログラム更新開始要求であるリモートROM更新開始要求を受信すると、ステップS309で、オペレーションパネル70上のキー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。
【0084】
このように、プログラムを更新する際に、オペレーションパネル70を無効化することにより、更新処理を迅速に行うことができるとともに、制限されていない機能は実行することができるため、例えば重要な機能をプログラム更新中にもかかわらず実行することができる。
【0085】
次に、SCS38は、ステップS310で、プログラム更新処理を実行し、融合機1を再起動させるためにステップS311でリブートを実行し処理を終了する。
【0086】
次に、上記ステップS306のプロセスを消滅する処理の詳細を図14のフローチャートを用いて説明する。ステップS401で、SCS38は、OSの中核部分であるカーネルに用意されたプロセス消滅エラー検知処理をマスクする。そして、SCS38は、ステップS402でプロセス間通信のエラー処理を停止する。そして、ステップS403で、SCS38は、アプリケーションのプロセスを消滅する。次に、SCS38は、ステップS404でSCS38が記憶しているアプリケーションの登録情報を抹消し処理を終了する。
【0087】
次に、上記処理とは別に、OUS43がダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理について、シーケンス図とフローチャートを用いて説明する。
【0088】
図15は、ダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理を示すシーケンス図である。
【0089】
ステップS501で、NCS31は、プログラム更新開始通知をネットワークから受信し、ステップS502で、OUS43にプログラムの更新開始を示すプログラム更新開始通知を行う。プログラム更新開始を通知されたOUS43は、ステップS503で、SCS38にアプリオフライン要求を通知する。
【0090】
アプリオフライン要求をOUS43から通知されたSCS38は、アプリA81と、アプリB82にステップS504とステップS505でアプリオフライン移行要求を通知する。
【0091】
アプリオフライン移行要求を通知されたアプリA81、アプリB82は、それぞれオフライン状態になることが可能である場合、SCS38に対し、アプリオフライン応答(OK)を通知する。このシーケンス図の場合、アプリA81、アプリB82ともにオフライン状態になることが可能であるため、アプリA81、アプリB82は、ステップS506、ステップS507で、それぞれアプリオフライン応答(OK)をSCS38に対し通知している。
【0092】
アプリオフライン応答(OK)を通知されたSCS38は、ステップS508で、OUS43にアプリケーションがオフライン状態になったことを示すアプリオフライン確定を通知する。
【0093】
アプリケーションのオフライン確定を通知されたOUS43は、ステップS509でSCS38に処理の実行を制限されたアプリケーションが使用するメモリ領域を解放させるためにメモリ解放要求を通知する。なお、このメモリ解放要求で解放要求されているメモリ領域とは、アプリケーションが画像情報の一時的な記憶や、現在の動作に関する情報の記憶をする際に使用するメモリ領域であり、プロセスに割り当てられたメモリ領域の一部である。
【0094】
メモリ解放要求を通知されたSCS38は、アプリA81と、アプリB82に対し、ステップS510とステップS511でメモリ解放要求を通知する。メモリ解放要求を通知されたアプリA81、アプリB82は、それぞれメモリ領域を解放し、ステップS512、ステップS513で、SCS38に対してメモリ解放完了応答を通知する。
【0095】
メモリ解放完了応答を通知されたSCS38は、ステップS514でOUS43にメモリの解放が完了したことを示すメモリ解放完了応答を通知する。
【0096】
メモリ解放完了応答を通知されたOUS43は、メモリの空きをチェックするメモリサイズチェックを行う。そして、この時点では、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、OUS43は、ステップS515で、SCS38に対し、アプリケーションを構成するプロセスを消滅させるプロセスKILL要求を通知する。
【0097】
プロセスKILL要求を通知されたSCS38は、まずアプリB82を消滅する。そして、ステップS516で、SCS38は、OUS43に対し、プロセスKILL完了応答を行う。
【0098】
そこで再びOUS43は、メモリサイズのチェックを行う。しかし、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、OUS43は、ステップS517で、SCS38に再びプロセスKILL要求を通知する。
【0099】
再びプロセスKILL要求を通知されたSCS38は、アプリA81を消滅する。そして、ステップS518で、SCS38は、OUS43にプロセスKILL完了応答を通知する。
【0100】
プロセスKILL完了応答を通知されたOUS43は、メモリサイズのチェックを行う。アプリA81の消滅により、ダウンロードする更新プログラムを展開する分のメモリの空きが得られたので、OUS43は、更新プログラムをダウンロードし、展開する。
【0101】
そして、OUS43は、ステップS519で、リモートROM更新開始要求をSCS38に通知する。リモートROM更新開始要求を通知されたSCS38は、キーイベントのマスクを行う。
【0102】
次に、SCS38は、プログラムの更新処理を行うために、ステップS520で、ダウンロードされた更新プログラムをエンジンファーム55に送信する。エンジンファーム55は、プログラムの更新を行い、その結果をステップS521でSCS38に通知する。
【0103】
SCS38は、プログラムを更新した結果が通知されると、ステップS522で、エンジンファーム55に対し、リブート準備要求を行う。そして、ステップS523で、エンジンファーム55からリブート準備完了を通知されると、SCS38は、強制リブートを行い、プログラム更新処理は終了する。
【0104】
このように、SCSはダウンロードする更新プログラムのサイズに応じて、プロセスに割り当てられたメモリ領域を解放する。
【0105】
次に、OUS43、SCS38の処理の詳細を、フローチャートを用いて説明する。
【0106】
最初に、OUS43の処理について、図16のフローチャートを用いて説明する。ステップS601で、OUS43は、NCS31からプログラム更新開始を通知される。次のステップS602で、OUS43は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのSUM値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップS603で、プログラムの更新処理を終了する。
【0107】
ステップS602で、プログラム更新開始通知が正常なデータであると判定された場合、OUS43は、ステップS604で、SCS38にアプリオフライン要求を通知する。ステップS605で、OUS43は、アプリオフライン要求の応答であるアプリオフライン確定を受信すると、ステップS606で、アプリオフラインが実行完了したかどうか判断する。
【0108】
ステップS606で、OUS43が、アプリオフラインが確定しなかったと判断した場合、ステップS603で、プログラムの更新処理を終了する。
【0109】
ステップS606で、OUS43が、アプリオフラインの実行が完了したと判断した場合、ステップS607で、SCS38にメモリ解放要求を通知する。そして、ステップS608で、OUS43は、SCS38からメモリ解放完了を受信するとステップS609で、更新プログラムの展開に必要なメモリ領域が確保できたかどうか判断する。
【0110】
OUS43が、メモリ領域が確保できなかったと判断した場合、OUS43は、ステップS610で、予め定められた規定の優先順にプロセスを消滅することが可能かどうか判断する。
ここで、規定の優先順について説明する。まず、プロセスを消滅することは、上述したように、そのプロセスが割り当てられているメモリ領域を解放することである。
【0111】
そこで、まず、アプリケーションなどに割り当てられているメモリ領域であるが、メモリマップ73(図4参照)に示したように、それぞれのアプリケーションや、モジュールには、メモリ上に領域が割り当てられている。その割り当てられたメモリ領域は、さらに2つの領域で構成される。これらのメモリ領域を本実施の形態では、1つを固定エリアとし、もう一つを上述した変動エリアとする。このうち、固定エリアとは、エンジン部110(図2参照)の状態通知を記憶しておくなど、各アプリケーションがジョブを実行するしないにかかわらず必要とする情報を記憶しておくエリアである。これらの情報のうち、例えばエンジン部110の状態が記憶されていない場合、オフライン状態が解除されて再びプロセスが処理を実行した際に、実際のエンジン部110の状態が把握できていないため、異常動作の原因となる可能性がある。
【0112】
以上説明した固定エリアを表すメモリマップを、図19を用いて説明する。図19には、固定エリアを表すメモリマップ76が示されており、それぞれのアプリケーションに割り当てられたメモリ領域と、そのサイズが示されている。
【0113】
図19において、例えば、コピーアプリケーション用の固定エリアは、共有メモリ内の先頭に位置し、そのサイズは、5MB(Mega Byte)である。他のアプリケーションも同様に、割り当てられた位置と、そのサイズが示されている。
【0114】
また、空き領域77a、77b、77c、77d、77eは、各アプリケーションの変動エリアであり、このメモリマップ76では、既に解放されているため空き領域となっている。
【0115】
このように割り当てられたメモリ領域と、プロセスの優先度により、消滅するプロセスの順番を予め定めておく。その順番とは、図17に示されるように、例えば融合機1におけるプロセスの優先度に応じて定めておいた「デフォルト」の順番か、プロセスに割り当てられたメモリ領域のサイズである「メモリサイズ」の大きい順番か、「共有メモリ」(図4参照)におけるプロセスに割り当てられたメモリ領域の先頭アドレスの小さい順番などで定まる優先順である。
【0116】
「デフォルト」の順番とは、ここでは、融合機1において、使用頻度が多く優先度が高いアプリケーションほど最後に消滅させる順番である。
【0117】
「メモリサイズ」の順番とは、割り当てられたメモリ領域のサイズに応じて定められる順番である。メモリマップ76に示されるように、具体的に各アプリケーションが割り当てられたメモリ領域のサイズは、コピーアプリ22用の固定エリアが5MBであり、プリンタアプリ21用の固定エリアが3.5MBであり、FAXアプリ23用の固定エリアが4.5MBであり、スキャナアプリ24用の固定エリアが3MBであり、ネットファイルアプリ25用の固定エリアが4MBとなっている。したがって、割り当てられたメモリ領域のサイズの大きい順に解放する場合、「メモリサイズ」の順番は、図17に示される順番となる。
【0118】
また、「共有メモリ」の順番は、上述したように、メモリ領域の先頭アドレスの小さい順番など、プロセスに割り当てられた記憶領域の位置に応じて定まる。したがって、メモリマップ76においては、メモリマップ76の上に表示されているメモリ領域の先頭アドレスほど小さくなるため、図17に示される順番となる。
【0119】
上記説明したいずれか順番でプロセスを消滅することが可能であれば、OUS43は、ステップS611で、SCS38に対し、プロセスKILL要求を通知する。そして、OUS43は、ステップS612で、SCS38からプロセスKILL完了を受信すると、再びステップS609の判断を行う。
【0120】
ステップS610の処理に戻り、OUS43が、規定の優先順でプロセスを消滅することが不可能であると判断した場合、ステップS615で、OUS43はリブートを実行するかどうか判断する。このステップ615の処理は、1回でもアプリケーションを消滅させたかどうかにより、リブートを実行するかどうか判断する処理である。
【0121】
OUS43が、1回もアプリケーションを消滅していなければ、ステップS617で、OUS43は、SCS38にアプリオフライン解除を通知し、処理を終了する。これにより、アプリケーションは、制限されていた処理の実行が可能な状態に復帰する。
【0122】
OUS43が、1回以上アプリケーションを消滅していれば、ステップS616で、OUS43は、SCS38にリブート要求を通知し、処理を終了する。
【0123】
ステップS609の処理に戻り、OUS43が更新プログラムの展開に必要なメモリ領域が確保できた場合、OUS43は、ステップS613で更新プログラムをメモリ領域に展開する。そして、OUS43は、ステップS614でSCS38にリモートROM更新開始要求を通知し、処理を終了する。
【0124】
次に、SCS38の処理について、図18のフローチャートを用いて説明する。ステップS701で、SCS38は、OUS43からアプリオフライン要求を通知される。アプリオフライン要求を通知されたSCS38は、ステップS702で、各アプリケーションにアプリオフライン移行を要求する。
【0125】
次のステップS703で、SCS38は、全てのアプリケーションからの応答が、アプリオフライン応答(OK)ではなかった場合、ステップS704で、各アプリケーションに、アプリオフライン解除を通知する。そして、SCS38は、ステップS705で、OUS43にアプリケーションがオフラインに移行しなかったことを通知し、処理を終了する。
【0126】
ステップS703で、全てのアプリケーションからの応答が、アプリオフライン応答(OK)である場合、SCS38は、ステップS706で、OUS43に対し、アプリオフライン確定を通知する。
【0127】
次に、SCS38は、ステップS707で、OUS43からメモリ解放要求を通知されると、ステップS708でアプリケーションにメモリの解放処理を実行させ、ステップS709でOUS43にメモリ解放完了を通知する。
【0128】
SCS38は、OUS43にメモリ解放完了を通知すると、OUS43の要求により処理が分岐する。まず、SCS38がOUS43からプロセスKILL要求を通知された場合、SCS38は、ステップS710からステップS711に分岐し、アプリケーションを消滅する。そして、SCS38はステップS712でOUS43にプロセスKILL完了を通知し、再びステップS710の処理を行う。
【0129】
ステップS710で、SCS38がプロセスKILL要求を通知されなかった場合、SCS38は、ステップS710からステップS713に分岐し、OUS43からリモートROM更新開始要求を通知されたかどうか判断する。
【0130】
ステップS713でSCS38がリモートROM更新開始要求を通知された場合、SCS38は、ステップS714で、キー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。そして、SCS38は、ステップS715プログラム更新処理を実行する。また、次のステップS716で、ダウンロードの実行を開始したことやプログラムの更新状況などを、RS42(図1参照)からネットワークを通してサービスセンタなどに通知し、ステップS717でリブートを行い処理を終了する。なお、サービスセンタとは、例えば融合機1の保守や点検を行うために製造元に備えられたサーバや、更新プログラムの配布元に備えられたサーバなどである。また、各アプリケーションやモジュールの状態情報をサービスセンタに送信してもよいし、サービスセンタではそのログを記録しておいてもよい。
【0131】
ステップS713で、SCS38がリモートROM更新開始要求を受信しなかった場合、SCS38は、ステップS718で、OUS43からリブート要求を受信したかどうか判断する。
【0132】
OUS43からの通知がリブート要求ではない場合、SCS38は、再びステップS710の処理を行う。OUS43からの通知がリブート要求の場合、SCS38は、ステップS719でダウンロードの実行が失敗し、リブート処理を行うことをRS42からネットワークを通してサービスセンタなどに通知し、ステップS717でリブートを行い、処理を終了する。
【0133】
次に、IMH41が、アプリケーションが使用する変動エリアを解放する処理を説明する。
【0134】
まず、図20のシーケンス図を用いて、IMH41が、アプリケーションが使用する変動エリアを解放する処理を説明する。
【0135】
図20に示されるシーケンス図は、図15のシーケンス図において、IMH41の処理により変わる部分であるステップS509からステップS514までの間の処理を示したものである。
【0136】
ステップS509は、図15と同様に、OUS43が、SCS38にメモリ解放要求を通知する。メモリ解放要求を通知されたSCS38は、図15と異なり、IMH41にステップS1でメモリ解放要求を通知する。メモリ解放要求を通知されたIMH41は、各アプリケーションの変動エリアを解放し、ステップS2でSCS38に、メモリ解放完了応答を通知する。IMH41からメモリ解放完了応答を通知されたSCS38は、図15と同様に、ステップS514で、OUS43に、メモリ解放完了応答を通知する。
【0137】
次に、この処理を行うIMH41のフローチャートを図21を用いて説明する。
【0138】
ステップS801で、アプリケーションが起動し、ステップS802で、アプリケーションが固定エリア用のメモリを確保する。そのとき、IMH41は、ステップS803で、記憶領域情報である固定エリア情報を保持する。
【0139】
次に、アプリケーションがステップS804で変動エリア用のメモリを確保すると、IMH41は、ステップS805で、記憶領域情報である変動エリア情報を保持する。
【0140】
このように、変動エリアと固定エリアからなる記憶領域情報は、図22に示される構造となっている。この図26において、例えば、アプリA81の固定エリアの記憶領域情報は、固定エリア先頭アドレス0x100000と、固定エリア末尾アドレス0x1FFFFFと、変動エリア先頭アドレス0x200000と、固定エリア末尾アドレス0x24FFFFの4つの情報からなる。他のアプリケーションも同様である。なお、上記アドレスは、16進表示となっている。また、固定エリアと変動エリアが連続する場合、変動エリア末尾アドレスは特に必要ない。さらに、各アプリケーションに割り当てられた領域が連続する場合、固定エリア末尾アドレスは特に必要ない。
【0141】
このようにIMH41は、上記記憶領域情報を保持しておくことによって、保持した記憶領域情報に基づき、アプリケーションが使用するメモリ領域を解放することができる。
【0142】
フローチャートの説明に戻り、IMH41は、ステップS806で、SCS38からのメモリ解放要求を受信すると、ステップS807で、IMH41は、各アプリケーションの変動エリアを解放する。そして、ステップS808で、IMH41は、SCS38にメモリ解放完了応答を通知する。
【0143】
このように、変動エリアを解放した状態で、IMH41が、ステップS809で、SCS38から、オンライン解除を受信すると、IMH41は、ステップS810で、各アプリケーションの変動エリア情報を再び保持する。
【0144】
【発明の効果】
以上説明したように、本発明によれば、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法が得られる。
【図面の簡単な説明】
【図1】本発明による融合機の一実施例の構成図である。
【図2】本発明による融合機の一実施例のハードウェア構成図である。
【図3】メモリマップを示す図である。
【図4】共有メモリのメモリマップを示す図である。
【図5】プロセス稼動状況を示す図である。
【図6】プロセス消滅状況を示す図である。
【図7】メモリマップを示す図である。
【図8】エラーハンドラの登録の様子を示す図である。
【図9】プロセスの消滅によるエラーを示す図である。
【図10】エラーを回避した様子を示す図である。
【図11】プログラムを更新する処理を示すシーケンス図である。
【図12】OUSの処理を示すフローチャートである。
【図13】SCSの処理を示すフローチャートである。
【図14】プロセスの消滅の処理を示すフローチャートである。
【図15】プログラムを更新する処理を示すシーケンス図である。
【図16】OUSの処理を示すフローチャートである。
【図17】消滅順番を示す図である。
【図18】SCSの処理を示すフローチャートである。
【図19】固定エリアを表すメモリマップを示す図である。
【図20】IMHの処理を示すシーケンス図である。
【図21】IMHの処理を示すフローチャートである。
【図22】記憶領域情報を示す図である。
【符号の説明】
1…融合機
2…ソフトウェア群
3…融合機起動部
4…ハードウェア資源
5…アプリケーション層
6…プラットフォーム
9…コントロールサービス層
10…ハンドラ層
11…白黒レーザプリンタ(B&W LP)
12…カラーレーザプリンタ(Color LP)
13…ハードウェアリソース
21…プリンタアプリ
22…コピーアプリ
23…ファックスアプリ
24…スキャナアプリ
25…ネットファイルアプリ
31…ネットワークコントロールサービス(NCS)
32…デリバリーコントロールサービス(DCS)
33…オペレーションパネルコントロールサービス(OCS)
34…ファックスコントロールサービス(FCS)
35…エンジンコントロールサービス(ECS)
36…メモリコントロールサービス(MCS)
37…ユーザインフォメーションコントロールサービス(UCS)
38…システムコントロールサービス(SCS)
39…システムリソースマネージャ(SRM)
40…ファックスコントロールユニットハンドラ(FCUH)
41…イメージメモリハンドラ(IMH)
42…リモートサービス(RS)
43…オンデマンドアップデートサービス(OUS)
53…アプリケーションプログラムインターフェース(API)
54…エンジンI/F
55…エンジンファーム
60…コントローラ
61…CPU
62…システムメモリ(MEM−P)
63…ノースブリッジ(NB)
64…サウスブリッジ(SB)
65…AGP(Accelerated Graphics Port)
66…ASIC
67…ローカルメモリ(MEM−C)
68…ハードディスク装置(HDD)
69…フラッシュメモリ
70…オペレーションパネル
71、72、73、74、76…メモリマップ
75…VM
80…ファックスコントロールユニット(FCU)
81…アプリA
82…アプリB
90…USBデバイス
100…IEEE1394デバイス
110…エンジン部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image forming apparatus and a storage area securing method.
[0002]
[Prior art]
2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as a multifunction peripheral) in which functions of respective apparatuses such as a printer, a copier, a facsimile, and a scanner are housed in a single housing has been known. This multifunction machine includes a display unit, a printing unit, an imaging unit, and the like in a single housing, and provides four types of applications corresponding to a printer, a copy, a facsimile, and a scanner, respectively. It operates as a copy, facsimile and scanner.
[0003]
Such a multi-function device is provided with a memory in which programs are loaded and image data is loaded. In general, this memory is mounted with a minimum necessary storage capacity in order to reduce costs and the like.
[0004]
The memory is used by securing or releasing memory when an application or the like executes processing. An operating system (hereinafter, referred to as an OS) manages a storage area (hereinafter, referred to as a memory area) in securing and releasing.
[0005]
As described above, conventionally, a memory managed by the OS is used with a minimum necessary storage capacity.
[0006]
[Problems to be solved by the invention]
However, in general, if more memory can be secured, more processing can be executed. In particular, data handled by the multifunction machine is image data that is relatively large data, and there is also large data such as a program downloaded via a network in order to update a program of the multifunction machine.
[0007]
In addition, the system call provided by the OS performs basic processing related to the memory and is provided by the core part of the OS. Therefore, application software such as applications and modules which are software other than the OS must independently manage the system call. There is a limit.
[0008]
SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and has as its object to provide an image forming apparatus and a storage area securing method for securing a larger memory area in a memory area managed by application software.
[0009]
[Means for Solving the Problems]
In order to solve the above-described problems, the present invention manages hardware resources used in image forming processing, a process of executing processing related to image formation based on a program, execution of the program, and the hardware resources. In an image forming apparatus having an operating system, the image forming apparatus includes a storage area that is not managed by the operating system and a storage area release unit that releases the storage area allocated to the process.
[0010]
Further, in order to solve the above problems, the present invention provides a hardware resource used in image forming processing, a process of executing processing related to image formation based on a program, execution of the program, and the hardware resource. In an image forming apparatus having an operating system to manage, a storage area outside the management of the operating system, a storage area management unit to manage the storage area, and an offline unit to restrict execution of processing to the process. Storage area releasing means for releasing the storage area allocated to the process whose execution is restricted.
[0011]
Further, in order to solve the above problems, the present invention provides a hardware resource used in image forming processing, a process of executing processing related to image formation based on a program, execution of the program, and the hardware resource. A method for securing a storage area of an image forming apparatus having an operating system to be managed, wherein the storage area is outside the management of the operating system and is allocated to the process.
[0012]
Further, in order to solve the above problems, the present invention provides a hardware resource used in image forming processing, a process of executing processing related to image formation based on a program, execution of the program, and the hardware resource. A method for reserving a storage area of an image forming apparatus having an operating system to be managed, comprising: an offline stage for restricting execution of a process to the process; and a process execution being restricted outside the management of the operating system. Releasing a storage area allocated to the process.
[0013]
As described above, according to the present invention, it is possible to obtain an image forming apparatus and a storage area securing method for securing a larger memory area in a memory area managed by application software.
[0014]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0015]
FIG. 1 shows a configuration diagram of an embodiment of a multifunction peripheral according to the present invention. The multifunction device 1 is configured to include a software group 2, a multifunction device activation unit 3, and hardware resources 4.
[0016]
The multifunction peripheral starting unit 3 is first executed when the power of the multifunction peripheral 1 is turned on, and activates the application layer 5 and the platform 6. For example, the multifunction peripheral starting unit 3 reads the programs of the application layer 5 and the platform 6 from a hard disk device (hereinafter referred to as HDD) or the like, and transfers each read program to a memory area to start. The hardware resources 4 include a black and white laser printer (B & W LP) 11, a color laser printer (Color LP) 12, and hardware resources 13 such as a scanner and a facsimile.
[0017]
Further, the software group 2 includes an application layer 5 and a platform 6 activated on an operating system (hereinafter referred to as an OS) such as UNIX (registered trademark). The application layer 5 includes a program that performs processing specific to a user service related to image formation, such as a printer, a copy, a facsimile, a scanner, and a net file.
[0018]
The application layer 5 uses a printer application 21 that is a printer application, a copy application 22 that is a copy application, a fax application 23 that is a fax application, a scanner application 24 that is a scanner application, and a network. Includes a net file application 25 that provides document services.
[0019]
Further, the platform 6 interprets the processing request from the application layer 5 and generates a request for acquiring the hardware resource 4, and manages one or more hardware resources 4 to control the control service layer 9. And a handler layer 10 for managing the hardware resources 4 in response to the acquisition request from the SRM 39.
[0020]
The control service layer 9 includes a network control service (hereinafter, referred to as NCS) 31, a delivery control service (hereinafter, referred to as DCS) 32, an operation panel control service (hereinafter, referred to as OCS) 33, and a fax control service (hereinafter, referred to as FCS) 34. , An engine control service (hereinafter referred to as ECS) 35, a memory control service (hereinafter referred to as MCS) 36, a user information control service (hereinafter referred to as UCS) 37, a system control service (hereinafter referred to as SCS) 38, a remote service (hereinafter referred to as SCS). , RS) 42, an on-demand update service (hereinafter, OUS) 33, etc. That.
[0021]
In addition, the platform 6 is configured to have an API 53 that can receive a processing request from the application layer 5 by a function defined in advance. The OS executes each software of the application layer 5 and the platform 6 as a process in parallel.
[0022]
The process of the NCS 31 provides a service that can be used in common to applications that require network I / O, and distributes data received from the network by each protocol to each application, or distributes data from each application. Mediation when sending to the network side.
[0023]
For example, the NCS 31 controls data communication with a network device connected via a network by HTTP (HyperText Transfer Protocol Daemon) by HTTP (HyperText Transfer Protocol).
[0024]
The NCS 31 is also used to download an update program from a network.
[0025]
The process of the DCS 32 controls the distribution of stored documents and the like. The process of the OCS 33 controls an operation panel serving as information transmission means between the operator and the main body control. The operation panel is also an input unit for the operator to operate the multifunction machine 1. The FCS 34 process provides an API from the application layer 5 for performing fax transmission / reception using the PSTN or ISDN network, registration / quotation of various fax data managed in a backup memory, fax reading, fax reception printing, and the like. I do.
[0026]
The process of the ECS 35 controls engine units such as the black and white laser printer 11, the color laser printer 12, and the hardware resources 13. The process of the MCS 36 performs memory control such as acquisition and release of a memory and use of an HDD. The process of the UCS 37 manages user information. The process of the RS 42 controls a remote service. The OUS 33 process performs various processes related to download, such as expanding the downloaded update program in a memory.
[0027]
The process of the SCS 38 performs processes such as application management, operation unit control, system screen display, LED display, hardware resource management, and interrupt application control.
[0028]
The process of the SRM 39 controls the system and manages the hardware resources 4 together with the SCS 38. For example, the process of the SRM 39 performs arbitration in accordance with an acquisition request from an upper layer using the hardware resources 4 such as the monochrome laser printer 11 and the color laser printer 12, and controls execution.
[0029]
Specifically, the process of the SRM 39 determines whether the requested hardware resource 4 is available (whether the hardware resource 4 is not used by another acquisition request). The upper layer is notified that the resource 4 is available. The process of the SRM 39 performs scheduling for using the hardware resource 4 in response to an acquisition request from the upper layer, and the content of the request (for example, paper transport and image forming operation by the printer engine, memory reservation, file generation, etc.). Is implemented directly.
[0030]
Further, the handler layer 10 includes a fax control unit handler (hereinafter, referred to as FCUH) 40 that manages a fax control unit (hereinafter, referred to as FCU) described below, and a storage that manages the memory allocated to the process and the memory allocated to the process. An image memory handler (hereinafter, referred to as IMH) 41 as an area management unit. The SRM 39 and the FCUH 40 make a processing request to the hardware resource 4 using the engine I / F 54 that can transmit a processing request to the hardware resource 4 by a function defined in advance.
[0031]
The multifunction device 1 can perform processing required in common by each application on the platform 6 in a unified manner. Next, the hardware configuration of the MFP 1 will be described.
[0032]
FIG. 2 shows a hardware configuration diagram of an embodiment of the multifunction peripheral 1 according to the present invention. The MFP 1 includes a controller 60, an operation panel 70, an FCU 80, a USB device 90, an IEEE 1394 device 100, and an engine unit 110.
[0033]
The controller 60 includes a CPU 61, a system memory (MEM-P) 62, a north bridge (hereinafter, referred to as NB) 63, a south bridge (hereinafter, referred to as SB) 64, an ASIC 66, and a local memory (MEM-C). ) 67, an HDD 68, and a flash memory 69.
[0034]
The operation panel 70 is connected to the ASIC 66 of the controller 60. The FCU 80, the USB device 90, the IEEE 1394 device 100, and the engine unit 120 are connected to the ASIC 66 of the controller 60 via a PCI bus.
[0035]
In the controller 60, the local memory 67, the HDD 68, and the like are connected to the ASIC 66, and the CPU 61 and the ASIC 66 are connected via the NB 63 of the CPU chipset. In this way, if the CPU 61 and the ASIC 66 are connected via the NB 63, it is possible to cope with a case where the interface of the CPU 61 is not disclosed.
[0036]
The flash memory 69 stores programs for executing the applications and modules, and the downloaded update program is stored in the flash memory 64.
[0037]
The ASIC 66 and the NB 63 are not connected via the PCI bus, but are connected via an AGP (Accelerated Graphics Port) 65. As described above, in order to control the execution of one or more processes forming the application layer 5 and the platform 6 of FIG. 1, the ASIC 66 and the NB 63 are connected not through the low-speed PCI bus but through the AGP 65, thereby preventing the performance from deteriorating. In.
[0038]
The CPU 61 performs overall control of the multifunction peripheral 1. The CPU 61 activates and executes the NCS 31, DCS 32, OCS 33, FCS 34, ECS 35, MCS 36, UCS 37, SCS 38, SRM 39, FCU H 40, RS 42, OUS 43 and IMH 41 as processes on the OS, and executes a printer application for forming the application layer 5. 21, a copy application 22, a fax application 23, and a scanner application 24 are activated and executed.
[0039]
The NB 63 is a bridge for connecting the CPU 61, the system memory 62, the SB 64, and the ASIC 66. The system memory 62 is a memory used as a drawing memory or the like of the multifunction peripheral 1. The SB 64 is a bridge for connecting the NB 63 to a ROM, a PCI bus, and peripheral devices. The local memory 67 is a memory used as a copy image buffer and a code buffer.
[0040]
The ASIC 66 is an IC for image processing having hardware components for image processing. The HDD 68 is a storage for storing image data, storing document data, storing programs, storing font data, storing forms, and the like. The operation panel 70 is an operation unit that receives an input operation from the operator and performs display for the operator.
[0041]
Next, in order to explain the process of securing the memory area, a process of downloading an update program performed when updating the program of the multifunction peripheral 1 will be described as an example. Prior to the description, the following description will be made. Describe the processes and applications used.
[0042]
In the present embodiment, expressions such as application, module, and process are used. Since the process generally represents a running program, applications and modules are included in the process. Therefore, there is no essential difference in any of the expressions, but in the present embodiment, the expressions are appropriately used depending on the description contents. Deleting a process (application or module) means releasing a memory area allocated to the process.
[0043]
In a memory area allocated to the process, information necessary for the process to execute a process, such as a program executed by the process and information temporarily used by the process, are loaded.
[0044]
Further, in the present embodiment, the program acquired by downloading is used as the update program, but this update program is not only a program that updates the entire conventional program of the MFP 1 but also merges with the conventional program. Includes difference programs that update programs and parts of conventional programs.
[0045]
Hereinafter, an outline of the process of downloading the update program will be described.
[0046]
Upon receiving a notification from the server provided by, for example, the developer of the multifunction peripheral 1 that the program is to be updated, the multifunction peripheral 1 releases a memory area allocated to the process to expand the update program. Is performed and the update program is expanded in the memory area. Therefore, first, the memory area will be described.
[0047]
In the memory area, which area is allocated to which process is determined in advance. Therefore, the contents of the memory area are usually indicated using a memory map.
[0048]
The memory area will be described using this memory map. FIG. 3 shows a memory map 71 of the system memory 62, which is a volatile storage device, and a memory map 72 obtained by enlarging the shared memory shown in the memory map 71. The memory area VM75 is a memory area managed by the OS.
[0049]
By using the memory area outside the management of the OS in this way, the developer of the MFP 1 can not only perform memory management according to the specifications and characteristics of the MFP 1, but also generate a problem such as a memory leak. The cause can be suppressed.
[0050]
In the memory map 71, a memory area is divided into a shared memory, a printer emulation work memory, a page memory, print data, and the like.
[0051]
Among these, the shared memory is a memory that is used for expanding a program being executed and for a process that is the program being executed to perform processing. Since the memory map 72 shown in FIG. 3 shows a state before the program is expanded, all of the areas are empty areas.
[0052]
When the processes are activated from this state, as shown in the memory map 73 in FIG. 4, the memory areas in the shared memory allocated to the respective processes are used. FIG. 5 is a diagram showing the process operation status at this time. The operation status of the process shown in FIG. 5 is a status in which all processes are performing normal processing.
[0053]
Thus, for example, as shown in FIG. 6, it is assumed that a memory area allocated to each application or a part of the process of the service layer module is released. As a result, as shown in the memory map 74 of FIG. 7, all the areas other than the memory area allocated to the service layer module that has not been released become free areas.
[0054]
This makes it possible to secure a larger memory area in the memory area managed by the application software.
[0055]
The obtained free area is used as a memory area for expanding the downloaded update program. The downloaded update program is stored in the flash memory 69 as a new program.
[0056]
In FIG. 6, the NCS 31 and the SCS 38 are off-line, but the off-line state indicates that the process is restricted from being executed. More specifically, although it is possible to receive an engine state notification, a notification of occurrence of an abnormality, and the like, it is a state in which an execution operation for an external event is prohibited. Therefore, as shown in FIG. 6, a process whose execution is restricted is refused an execution request from another process.
[0057]
Next, the disappearance of the process will be described by taking the SCS 38 and the application as examples. As shown in FIG. 8, the process of the SCS 38 and the process configuring the application mutually register an error handler at the time of startup. In this case, the error handlers confirm each other's existence. Therefore, as shown in FIG. 9, when the application process disappears, the error handler of the SCS 38 recognizes that the application process has disappeared, and an error occurs.
[0058]
Therefore, in order to avoid an error, the SCS 38 stops the application error handler in advance and then kills the application process, as shown in FIG. By doing so, the SCS 38 can avoid occurrence of an error because the application error handler is stopped even if the application process disappears. Note that “KILL” shown in the figure means a command for extinguishing a process.
[0059]
The details of the process related to the download described above will be described with reference to a sequence diagram and a flowchart.
[0060]
FIG. 11 is a sequence diagram illustrating a process in which the multifunction peripheral 1 deletes two applications (applications A81 and B82), downloads an update program, and updates the program stored in the flash memory 69. This process is performed by the NCS 31, the OUS 43 corresponding to the data expanding unit, the SCS 38 corresponding to the storage area releasing unit, the off-run unit, and the restarting unit, and the engine firmware 55.
[0061]
Hereinafter, the sequence diagram will be described. In step S101, the NCS 31 receives a program update start notification from the network, and in step S102, notifies the OUS 43 of a program update start notification indicating the start of program update. The OUS 43 notified of the start of the program update notifies the SCS 38 of an application offline request in step S103. The application offline request is a request for bringing the application to the offline state described above. Note that the off-line request in this sequence diagram also includes a request for extinguishing the application after the off-line state.
[0062]
The application offline request is notified to the application via the SCS 38, but the application notified of this request must shift to the offline state unless the application is operating.
[0063]
The “operation as an application” will be specifically described using the copy application 22 as an example. The “operation as an application” refers to, for example, an operation of executing a copy process in the copy application 22.
[0064]
Therefore, unless the copy application 22 is executing a copy process which is an operation as a copy application, it must operate in an offline state.
[0065]
In addition, the process that is operating in the off-line state can execute the restricted process by removing the restriction on the execution of the process of prohibiting the execution operation for an external event. Therefore, even when the application is operating in the offline state, the content notified from another application or the like is retained, and based on the content retained when the restriction on the execution of the process is released. Processing can be restarted.
[0066]
Returning to the description of the sequence diagram, the SCS 38 notified of the application offline request from the OUS 43 notifies the application A81 and the application B82 of the application offline shift request in steps S104 and S105.
[0067]
When the application A81 and the application B82, which have been notified of the application offline shift request, can each shift to the offline state, they notify the SCS 38 of an application offline response (OK). In the case of this sequence diagram, since both the application A81 and the application B82 can shift to the offline state, the application A81 and the application B82 notify the SCS38 of the application offline response (OK) in step S106 and step S107, respectively. ing.
[0068]
The SCS 38 notified of the application offline response (OK) executes the disappearance of the application A81 and the application B82.
[0069]
In step S108, the SCS 38 that has executed the disappearance of the application notifies the OUS 43 of the completion of the disappearance of the application in step S108 as an application offline determination (completion of the process KILL). The OUS 43 notified of the application offline determination downloads the update program and expands the update program in a memory area obtained by the disappearance of the application.
[0070]
Next, in step S109, the OUS 43 notifies the SCS 38 of a remote ROM update start request that is a program update start request. The SCS 38 notified of the remote ROM update start request masks a key event. The mask of the key event is a process of not accepting an event generated when a key displayed on the operation panel 70 is pressed.
[0071]
Next, the SCS 38 transmits the downloaded update program to the engine firmware 55 in step S110 in order to perform a program update process. The engine firmware 55 updates the program, and notifies the SCS 38 of the result in step S111.
[0072]
When notified of the result of updating the program, the SCS 38 issues a reboot preparation request to the engine firmware 55 in step S112. Then, when notified of the completion of the reboot preparation from the engine firmware 55 in step S113, the SCS 38 performs a forced reboot and ends the program update process.
[0073]
As described above, the SCS 38 releases the memory area allocated to the process, and the OUS 43 downloads the update program for updating the program using the NCS 31, and expands the update program in the memory area released by the SCS 38.
[0074]
Next, details of the processing of the OUS 43 and the SCS 38 will be described with reference to flowcharts.
[0075]
First, the processing of the OUS 43 will be described with reference to the flowchart of FIG. In step S201, the OUS 43 is notified of the start of the program update from the NCS 31. In the next step S202, the OUS 43 checks the SUM value for checking whether the received program update start notification itself is normal data. If the program update start notification is not normal data, the OUS 43 executes step S203. Then, the program update process ends.
[0076]
If it is determined in step S202 that the program update start notification is normal data, the OUS 43 notifies the SCS 38 of an application offline request for causing the application to go offline and disappear in step S204. Upon receiving the app offline determination as a response to the app offline request in step S205, the OUS 43 determines in step S206 whether the execution of the app offline has been completed. The process in step S206 is a process for ending the program update process in step S203 when notified that the application offline has not been determined.
[0077]
When the OUS 43 determines in step S206 that the execution of the application offline has been completed, in step S207, the OUS 43 determines whether the update program can be expanded in the memory area secured by deleting the application.
[0078]
If the update program cannot be expanded, the OUS 43 sets the secured memory area to a state in which the program is not updated in step S209. Then, the OUS 43 notifies the SCS 38 of a remote ROM update start request, which is a program update start request, in step S210, and ends the processing. In this case, since the memory area is set so as not to execute the program update, the program update process is not executed.
[0079]
When the OUS 43 determines that the update program can be expanded in Step S207, the OUS 43 expands the update program in the memory area in Step S208. Then, the OUS 43 notifies the SCS 38 of a remote ROM update start request, which is a program update start request, in step S210, and ends the processing.
[0080]
Next, the processing of the SCS 38 will be described with reference to the flowchart of FIG. In step S301, the SCS 38 receives an application offline request from the OUS 43. In step S302, the SCS 38 notified of the application offline request notifies each application of the application offline shift request.
[0081]
In the next step S303, if the responses from all the applications are not the application offline responses (OK), in step S304, the SCS 38 notifies each application of the release of the application offline. As a result, the application can execute the restricted processing. Next, the SCS 38 notifies the OUS 43 that the application did not go offline in step S305, and ends the processing.
[0082]
If the responses from all the applications are application off-line responses (OK) in step S303, the SCS 38 deletes the applications in step S306. Then, in step S307, the SCS 38 notifies the OUS 43 of the determination of the application offline.
[0083]
Next, in step S308, the SCS 38 receives a remote ROM update start request, which is a program update start request, from the OUS 43. In step S309, the SCS 38 masks the key / touch panel operation event on the operation panel 70 to mask the key event. Do.
[0084]
In this way, when the program is updated, by invalidating the operation panel 70, the update process can be performed promptly, and unrestricted functions can be executed. It can be executed even during program update.
[0085]
Next, in step S310, the SCS 38 executes a program update process, executes a reboot in step S311 to restart the MFP 1, and ends the process.
[0086]
Next, the details of the process of eliminating the process of step S306 will be described with reference to the flowchart of FIG. In step S401, the SCS 38 masks a process disappearance error detection process prepared in a kernel which is a core part of the OS. Then, the SCS 38 stops the error processing of the inter-process communication in step S402. Then, in step S403, the SCS 38 deletes the application process. Next, the SCS 38 deletes the application registration information stored in the SCS 38 in step S404, and ends the processing.
[0087]
Next, apart from the above-described processing, a processing for deleting an application according to the size of the update program downloaded by the OUS 43 will be described with reference to a sequence diagram and a flowchart.
[0088]
FIG. 15 is a sequence diagram illustrating a process of deleting an application according to the size of an update program to be downloaded.
[0089]
In step S501, the NCS 31 receives the program update start notification from the network, and in step S502, notifies the OUS 43 of the program update start notification indicating the start of the program update. The OUS 43 notified of the start of the program update notifies the SCS 38 of an application offline request in step S503.
[0090]
The SCS 38 notified of the application offline request from the OUS 43 notifies the application A81 and the application B82 of the application offline shift request in steps S504 and S505.
[0091]
When the application A81 and the application B82, which have been notified of the application offline shift request, can each go offline, the application A81 and the application B82 notify the SCS 38 of an application offline response (OK). In the case of this sequence diagram, since both the application A81 and the application B82 can be in the offline state, the application A81 and the application B82 notify the SCS38 of the application offline response (OK) in steps S506 and S507, respectively. ing.
[0092]
In step S508, the SCS 38 notified of the application offline response (OK) notifies the OUS 43 of an application offline determination indicating that the application has gone offline.
[0093]
The OUS 43 notified of the offline determination of the application notifies the SCS 38 of the memory release request in step S509 to release the memory area used by the application whose execution is restricted. The memory area requested to be released by the memory release request is a memory area used when an application temporarily stores image information or stores information on a current operation, and is allocated to a process. Part of the memory area.
[0094]
The SCS 38 notified of the memory release request notifies the application A 81 and the application B 82 of the memory release request in steps S510 and S511. The application A81 and the application B82 which have been notified of the memory release request release the memory areas, respectively, and notify the SCS 38 of a memory release completion response in steps S512 and S513.
[0095]
The SCS 38 notified of the memory release completion response notifies the OUS 43 of a memory release completion response indicating that the memory release has been completed in step S514.
[0096]
The OUS 43 notified of the memory release completion response performs a memory size check for checking the free space of the memory. Then, at this point, since there is not enough memory available for expanding the update program to be downloaded, the OUS 43 notifies the SCS 38 of the process KILL request for deleting the process constituting the application to the SCS 38 in step S515. I do.
[0097]
The SCS 38 notified of the request for the process KILL first deletes the application B82. Then, in step S516, the SCS 38 sends a process KILL completion response to the OUS 43.
[0098]
Therefore, the OUS 43 checks the memory size again. However, since there is not enough memory available for expanding the update program to be downloaded, the OUS 43 again notifies the SCS 38 of the process KILL request in step S517.
[0099]
The SCS 38 notified of the process KILL request again deletes the application A81. Then, in step S518, the SCS 38 notifies the OUS 43 of a process KILL completion response.
[0100]
The OUS 43 notified of the process KILL completion response checks the memory size. OUS43 downloads and deploys the update program since the memory of the memory for expanding the update program to be downloaded is obtained by the disappearance of the application A81.
[0101]
Then, in step S519, the OUS 43 notifies the SCS 38 of a remote ROM update start request. The SCS 38 notified of the remote ROM update start request masks a key event.
[0102]
Next, in step S520, the SCS 38 transmits the downloaded update program to the engine firmware 55 in order to perform a program update process. The engine firmware 55 updates the program, and notifies the SCS 38 of the result in step S521.
[0103]
When notified of the result of updating the program, the SCS 38 issues a reboot preparation request to the engine firmware 55 in step S522. Then, in step S523, when notified of the completion of the reboot preparation from the engine firmware 55, the SCS 38 performs a forced reboot, and the program update process ends.
[0104]
In this manner, the SCS releases the memory area allocated to the process according to the size of the update program to be downloaded.
[0105]
Next, details of the processing of the OUS 43 and the SCS 38 will be described with reference to flowcharts.
[0106]
First, the process of the OUS 43 will be described with reference to the flowchart of FIG. In step S601, the OUS 43 is notified from the NCS 31 of the start of the program update. In the next step S602, the OUS 43 checks the SUM value for checking whether the received program update start notification itself is normal data. If the program update start notification is not normal data, the OUS 43 executes step S603. Then, the program update process ends.
[0107]
If it is determined in step S602 that the program update start notification is normal data, the OUS 43 notifies the SCS 38 of an application offline request in step S604. In step S605, when the OUS 43 receives the app off-line determination which is a response to the app off-line request, in step S606, the OUS 43 determines whether the execution of the app off-line has been completed.
[0108]
If the OUS 43 determines that the application offline has not been determined in step S606, the process of updating the program ends in step S603.
[0109]
If the OUS 43 determines in step S606 that the execution of the application offline has been completed, the OUS 43 notifies the SCS 38 of a memory release request in step S607. Then, in step S608, upon receiving the memory release completion from the SCS 38, the OUS 43 determines in step S609 whether a memory area required for developing the update program has been secured.
[0110]
When the OUS 43 determines that the memory area could not be secured, the OUS 43 determines in step S610 whether or not the processes can be deleted in a predetermined priority order.
Here, the prescribed priority order will be described. First, the extinction of a process is to release the memory area to which the process is allocated, as described above.
[0111]
Therefore, first, as for the memory area allocated to the application or the like, as shown in the memory map 73 (see FIG. 4), the area is allocated to the memory for each application or module. The allocated memory area is further composed of two areas. In the present embodiment, one of these memory areas is a fixed area, and the other is a variable area described above. The fixed area is an area for storing information required regardless of whether each application executes a job, such as storing a status notification of the engine unit 110 (see FIG. 2). If the state of the engine unit 110 is not stored in the information, for example, when the offline state is released and the process executes the process again, the actual state of the engine unit 110 cannot be grasped. May cause operation.
[0112]
The memory map representing the fixed area described above will be described with reference to FIG. FIG. 19 shows a memory map 76 representing a fixed area, and shows a memory area allocated to each application and its size.
[0113]
In FIG. 19, for example, the fixed area for the copy application is located at the head in the shared memory, and its size is 5 MB (Mega Byte). Similarly, the assigned positions and the sizes of the other applications are indicated.
[0114]
The free areas 77a, 77b, 77c, 77d, and 77e are variable areas of each application, and in the memory map 76, are free areas because they have already been released.
[0115]
The order of the processes to be deleted is determined in advance based on the memory area allocated in this way and the priority of the process. As shown in FIG. 17, the order may be, for example, a “default” order defined according to the priority of the process in the multi-function peripheral 1 or a “memory size” which is the size of the memory area allocated to the process. ”Or the order of priority determined by the order of the start address of the memory area allocated to the process in the“ shared memory ”(see FIG. 4).
[0116]
In this case, the “default” order is an order in which, in the multifunction peripheral 1, an application having a higher use frequency and a higher priority is deleted last.
[0117]
The “memory size” order is an order determined according to the size of the allocated memory area. As shown in the memory map 76, the size of the memory area specifically allocated to each application is such that the fixed area for the copy application 22 is 5 MB, the fixed area for the printer application 21 is 3.5 MB, The fixed area for the FAX application 23 is 4.5 MB, the fixed area for the scanner application 24 is 3 MB, and the fixed area for the net file application 25 is 4 MB. Therefore, when releasing the allocated memory areas in descending order of the size, the order of the “memory size” is the order shown in FIG.
[0118]
The order of the "shared memory" is determined according to the position of the storage area allocated to the process, such as the order of the start address of the memory area, as described above. Accordingly, in the memory map 76, the head address of the memory area displayed on the memory map 76 becomes smaller, so that the order is as shown in FIG.
[0119]
If the processes can be deleted in any order described above, the OUS 43 notifies the SCS 38 of the process KILL request in step S611. When the OUS 43 receives the completion of the process KILL from the SCS 38 in step S612, the OUS 43 performs the determination in step S609 again.
[0120]
Returning to the process of step S610, if the OUS 43 determines that the processes cannot be eliminated in the specified priority order, the OUS 43 determines in step S615 whether to execute a reboot. The process of step 615 is a process of determining whether to execute the reboot based on whether the application has been deleted at least once.
[0121]
If the OUS 43 has not deleted the application even once, in step S617, the OUS 43 notifies the SCS 38 of the release of the application offline, and ends the processing. As a result, the application returns to a state where the restricted processing can be executed.
[0122]
If the OUS 43 has deleted the application at least once, the OUS 43 notifies the SCS 38 of a reboot request in step S616, and ends the processing.
[0123]
Returning to the processing of step S609, if the OUS 43 can secure a memory area necessary for developing the update program, the OUS 43 expands the update program in the memory area in step S613. Then, the OUS 43 notifies the SCS 38 of the remote ROM update start request in step S614, and ends the processing.
[0124]
Next, the processing of the SCS 38 will be described with reference to the flowchart of FIG. In step S701, the SCS 38 is notified of the application offline request from the OUS 43. In step S702, the SCS 38 notified of the application offline request requests each application to shift to the application offline.
[0125]
In the next step S703, when the responses from all the applications are not the application offline responses (OK), in step S704, the SCS 38 notifies each application of the release of the application offline. Then, in step S705, the SCS 38 notifies the OUS 43 that the application has not gone offline, and ends the processing.
[0126]
If the responses from all the applications are application offline responses (OK) in step S703, the SCS 38 notifies the OUS 43 of the application offline determination in step S706.
[0127]
Next, when the memory release request is notified from the OUS 43 in step S707, the SCS 38 causes the application to execute the memory release processing in step S708, and notifies the OUS 43 of the memory release completion in step S709.
[0128]
When the SCS 38 notifies the OUS 43 of the completion of the memory release, the processing branches according to the request of the OUS 43. First, when the SCS 38 is notified of the process KILL request from the OUS 43, the SCS 38 branches from step S710 to step S711, and the application is deleted. Then, the SCS 38 notifies the OUS 43 of the completion of the process KILL in step S712, and performs the process of step S710 again.
[0129]
If the SCS 38 has not been notified of the process KILL request in step S710, the SCS 38 branches from step S710 to step S713, and determines whether a remote ROM update start request has been notified from the OUS 43.
[0130]
If the SCS 38 is notified of the remote ROM update start request in step S713, the SCS 38 masks the key / touch panel operation event and masks the key event in step S714. Then, the SCS 38 executes a step S715 program update process. Further, in the next step S716, the start of the download, the update status of the program, and the like are notified from the RS 42 (see FIG. 1) to the service center or the like via the network, and in step S717, the process is rebooted and the process is terminated. Note that the service center is, for example, a server provided at a manufacturer for performing maintenance or inspection of the multifunction peripheral 1 or a server provided at a distributor of an update program. The status information of each application or module may be transmitted to the service center, or the service center may record the log.
[0131]
If the SCS 38 has not received the remote ROM update start request in step S713, the SCS 38 determines whether a reboot request has been received from the OUS 43 in step S718.
[0132]
If the notification from the OUS 43 is not a reboot request, the SCS 38 performs the process of step S710 again. If the notification from the OUS 43 is a reboot request, the SCS 38 notifies the service center or the like via the network from the RS 42 that the download has failed in step S719 and performs the reboot process in step S719, performs the reboot in step S717, and ends the process. I do.
[0133]
Next, a process in which the IMH 41 releases a variable area used by an application will be described.
[0134]
First, a process in which the IMH 41 releases a variable area used by an application will be described with reference to a sequence diagram of FIG.
[0135]
The sequence diagram shown in FIG. 20 shows the process from step S509 to step S514, which is a portion changed by the process of the IMH 41 in the sequence diagram of FIG.
[0136]
In step S509, as in FIG. 15, the OUS 43 notifies the SCS 38 of a memory release request. The SCS 38 that has been notified of the memory release request notifies the IMH 41 of the memory release request in step S1, unlike FIG. The IMH 41 notified of the memory release request releases the variable area of each application, and notifies the SCS 38 of a memory release completion response in step S2. The SCS 38 notified of the memory release completion response from the IMH 41 notifies the OUS 43 of the memory release completion response in step S514, as in FIG.
[0137]
Next, a flowchart of the IMH 41 that performs this processing will be described with reference to FIG.
[0138]
In step S801, the application starts, and in step S802, the application secures a memory for a fixed area. At that time, the IMH 41 holds fixed area information, which is storage area information, in step S803.
[0139]
Next, when the application secures the memory for the variable area in step S804, the IMH 41 holds the variable area information as the storage area information in step S805.
[0140]
As described above, the storage area information including the variable area and the fixed area has a structure shown in FIG. In FIG. 26, for example, the storage area information of the fixed area of the application A81 includes four pieces of information: a fixed area start address 0x100000, a fixed area end address 0x1FFFFF, a variable area start address 0x200000, and a fixed area end address 0x24FFFF. . The same applies to other applications. The above address is displayed in hexadecimal. When the fixed area and the variable area are continuous, the variable area end address is not particularly required. Furthermore, when the areas allocated to each application are continuous, the fixed area end address is not particularly required.
[0141]
By holding the storage area information, the IMH 41 can release the memory area used by the application based on the held storage area information.
[0142]
Returning to the description of the flowchart, when the IMH 41 receives the memory release request from the SCS 38 in step S806, the IMH 41 releases the variable area of each application in step S807. Then, in step S808, the IMH 41 notifies the SCS 38 of a memory release completion response.
[0143]
As described above, when the IMH 41 receives the online release from the SCS 38 in step S809 with the variable area released, the IMH 41 again retains the variable area information of each application in step S810.
[0144]
【The invention's effect】
As described above, according to the present invention, it is possible to obtain an image forming apparatus and a storage area securing method for securing a larger memory area in a memory area managed by application software.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an embodiment of a multifunction peripheral according to the present invention.
FIG. 2 is a hardware configuration diagram of an embodiment of the multifunction peripheral according to the present invention.
FIG. 3 is a diagram showing a memory map.
FIG. 4 is a diagram showing a memory map of a shared memory.
FIG. 5 is a diagram showing a process operation status.
FIG. 6 is a diagram showing a process disappearance state.
FIG. 7 is a diagram showing a memory map.
FIG. 8 is a diagram showing a state of registration of an error handler.
FIG. 9 is a diagram showing an error caused by the disappearance of a process.
FIG. 10 is a diagram illustrating a state in which an error is avoided.
FIG. 11 is a sequence diagram illustrating a process of updating a program.
FIG. 12 is a flowchart illustrating OUS processing.
FIG. 13 is a flowchart illustrating processing of the SCS.
FIG. 14 is a flowchart showing a process of extinguishing a process.
FIG. 15 is a sequence diagram illustrating a process of updating a program.
FIG. 16 is a flowchart showing OUS processing.
FIG. 17 is a diagram showing the order of disappearance.
FIG. 18 is a flowchart showing processing of SCS.
FIG. 19 is a diagram showing a memory map representing a fixed area.
FIG. 20 is a sequence diagram showing an IMH process.
FIG. 21 is a flowchart illustrating IMH processing.
FIG. 22 is a diagram showing storage area information.
[Explanation of symbols]
1. Fusion machine
2. Software group
3. Fusion machine starter
4 ... Hardware resources
5. Application layer
6 ... Platform
9 ... Control service layer
10 Handler layer
11 Black and white laser printer (B & W LP)
12 ... Color laser printer (Color LP)
13 ... Hardware resources
21 ... Printer application
22 ... Copy application
23 ... Fax application
24 ... Scanner application
25 ... Net file application
31 Network Control Service (NCS)
32: Delivery control service (DCS)
33 ... Operation panel control service (OCS)
34: Fax control service (FCS)
35 ... Engine Control Service (ECS)
36 ... Memory control service (MCS)
37 ... User Information Control Service (UCS)
38 ... System control service (SCS)
39 ... System Resource Manager (SRM)
40: Fax control unit handler (FCUH)
41 ... Image memory handler (IMH)
42 ... Remote service (RS)
43… On-demand update service (OUS)
53 ... Application program interface (API)
54 ... Engine I / F
55 ... Engine farm
60 ... Controller
61 ... CPU
62: System memory (MEM-P)
63… North Bridge (NB)
64 ... South Bridge (SB)
65 ... AGP (Accelerated Graphics Port)
66… ASIC
67: Local memory (MEM-C)
68 ... Hard disk drive (HDD)
69… Flash memory
70 ... Operation panel
71, 72, 73, 74, 76 ... memory map
75 ... VM
80: Fax control unit (FCU)
81: Application A
82: Application B
90 ... USB device
100 ... IEEE1394 device
110 ... Engine part

Claims (25)

画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、
前記オペレーティングシステムの管理外にある記憶領域と、
前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段と
を有することを特徴とする画像形成装置。
An image forming apparatus comprising: a hardware resource used in an image forming process; a process of executing a process related to image forming based on a program; and an operating system that executes the program and manages the hardware resource.
A storage area outside the control of the operating system;
An image forming apparatus comprising: a storage area release unit that releases the storage area allocated to the process.
前記記憶領域解放手段が解放した記憶領域を、データを展開する記憶領域として使用するデータ展開手段をさらに有することを特徴とする請求項1に記載の画像形成装置。2. The image forming apparatus according to claim 1, further comprising a data expansion unit that uses the storage area released by the storage area release unit as a storage area for expanding data. 前記記憶領域解放手段は、前記データ展開手段が使用する記憶領域のサイズに応じて、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項2に記載の画像形成装置。The image forming apparatus according to claim 2, wherein the storage area release unit releases a storage area allocated to the process according to a size of a storage area used by the data development unit. 前記記憶領域解放手段は、予め定められた順番で前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項1または3に記載の画像形成装置。The image forming apparatus according to claim 1, wherein the storage area release unit releases the storage area allocated to the process in a predetermined order. 前記順番は、前記プロセスの優先度に応じて定まることを特徴とする請求項4に記載の画像形成装置。The image forming apparatus according to claim 4, wherein the order is determined according to a priority of the process. 前記順番は、前記プロセスに割り当てられた記憶領域のサイズに応じて定まることを特徴とする請求項4に記載の画像形成装置。The image forming apparatus according to claim 4, wherein the order is determined according to a size of a storage area allocated to the process. 前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする請求項4に記載の画像形成装置。The image forming apparatus according to claim 4, wherein the order is determined according to a position of a storage area allocated to the process. 前記データ展開手段が前記記憶領域の使用を終了すると、前記画像形成装置を再起動する再起動手段をさらに有することを特徴とする請求項2に記載の画像形成装置。The image forming apparatus according to claim 2, further comprising: a restart unit configured to restart the image forming apparatus when the data development unit finishes using the storage area. 前記記憶領域は、揮発性記憶装置に設けられることを特徴とする請求項1に記載の画像形成装置。The image forming apparatus according to claim 1, wherein the storage area is provided in a volatile storage device. 画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、
前記オペレーティングシステムの管理外にある記憶領域と、
前記記憶領域を管理する記憶領域管理手段と、
前記プロセスに対し、処理の実行を制限させるオフライン手段と、
処理の実行が制限された前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段と
を有することを特徴とする画像形成装置。
An image forming apparatus comprising: a hardware resource used in an image forming process; a process of executing a process related to image forming based on a program; and an operating system that executes the program and manages the hardware resource.
A storage area outside the control of the operating system;
Storage area management means for managing the storage area;
Offline means for restricting the execution of processing for the process,
An image forming apparatus comprising: a storage area release unit that releases the storage area allocated to the process whose execution is restricted.
前記記憶領域管理手段は、前記プロセスが使用する記憶領域に関する記憶領域情報を保持することを特徴とする請求項1に記載の画像形成装置。2. The image forming apparatus according to claim 1, wherein the storage area management unit holds storage area information regarding a storage area used by the process. 前記記憶領域管理手段は、保持した前記記憶領域情報に基づき、前記プロセスが使用していた記憶領域を解放することを特徴とする請求項11に記載の画像形成装置。12. The image forming apparatus according to claim 11, wherein the storage area management unit releases a storage area used by the process based on the stored storage area information. 前記オフライン手段は、前記プロセスの処理の実行を制限すると、処理の実行を制限されたプロセスが使用していた記憶領域を解放させることを特徴とする請求項10に記載の画像形成装置。The image forming apparatus according to claim 10, wherein, when the execution of the process is restricted, the offline unit releases a storage area used by the process whose execution is restricted. 前記オフライン手段は、前記記憶領域管理手段により、処理の実行を制限されたプロセスが使用していた記憶領域を解放させることを特徴とする請求項13に記載の画像形成装置。14. The image forming apparatus according to claim 13, wherein the off-line unit causes the storage area management unit to release a storage area used by a process whose execution is restricted. 処理の実行を制限された前記プロセスは、前記オフライン手段が制限を解除することにより、制限されていた処理の実行が可能となることを特徴とする請求項10に記載の画像形成装置。11. The image forming apparatus according to claim 10, wherein the process whose execution has been restricted can execute the restricted processing when the offline unit releases the restriction. 前記記憶領域解放手段が解放した記憶領域を使用するデータ展開手段をさらに有することを特徴とする請求項10に記載の画像形成装置。The image forming apparatus according to claim 10, further comprising a data expansion unit that uses the storage area released by the storage area release unit. 前記記憶領域解放手段は、前記データ展開手段が使用する記憶領域のサイズに応じて、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項16に記載の画像形成装置。17. The image forming apparatus according to claim 16, wherein the storage area release unit releases a storage area allocated to the process according to a size of a storage area used by the data development unit. 前記記憶領域解放手段は、予め定められた順番で、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項10または17に記載の画像形成装置。18. The image forming apparatus according to claim 10, wherein the storage area release unit releases storage areas allocated to the processes in a predetermined order. 前記順番は、前記プロセスの優先度に応じて定まることを特徴とする請求項18に記載の画像形成装置。19. The image forming apparatus according to claim 18, wherein the order is determined according to a priority of the process. 前記順番は、前記プロセスに割り当てられた記憶領域のサイズに応じて定まることを特徴とする請求項18に記載の画像形成装置。19. The image forming apparatus according to claim 18, wherein the order is determined according to a size of a storage area allocated to the process. 前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする請求項18に記載の画像形成装置。19. The image forming apparatus according to claim 18, wherein the order is determined according to a position of a storage area allocated to the process. 前記データ展開手段が前記記憶領域の使用を終了すると、前記画像形成装置を再起動する再起動手段をさらに有することを特徴とする請求項16に記載の画像形成装置。17. The image forming apparatus according to claim 16, further comprising a restart unit that restarts the image forming apparatus when the data development unit ends use of the storage area. 前記記憶領域は、揮発性記憶装置に設けられることを特徴とする請求項10に記載の画像形成装置。The image forming apparatus according to claim 10, wherein the storage area is provided in a volatile storage device. 画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、
前記オペレーティングシステムの管理外にあり、前記プロセスに割り当てられた記憶領域を解放することを特徴とする記憶領域確保方法。
Securing a storage area of an image forming apparatus having hardware resources used in image forming processing, a process of executing processing related to image formation based on a program, and an operating system for executing the program and managing the hardware resources The method,
A method for reserving a storage area, which is outside the control of the operating system and releases a storage area allocated to the process.
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、
前記プロセスに対し、処理の実行を制限させるオフライン段階と、
前記オペレーティングシステムの管理外にあり、処理の実行が制限された前記プロセスに割り当てられた記憶領域を解放する記憶領域解放段階と
を有することを特徴とする記憶領域確保方法。
Securing a storage area of an image forming apparatus having hardware resources used in image forming processing, a process of executing processing related to image formation based on a program, and an operating system for executing the program and managing the hardware resources The method,
An off-line step of restricting the execution of the processing for the process;
A storage area releasing step of releasing a storage area allocated to the process which is outside the control of the operating system and whose execution of processing is restricted.
JP2002275974A 2002-09-20 2002-09-20 Image forming apparatus and storage area securing method Expired - Fee Related JP4021289B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002275974A JP4021289B2 (en) 2002-09-20 2002-09-20 Image forming apparatus and storage area securing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002275974A JP4021289B2 (en) 2002-09-20 2002-09-20 Image forming apparatus and storage area securing method

Publications (2)

Publication Number Publication Date
JP2004110731A true JP2004110731A (en) 2004-04-08
JP4021289B2 JP4021289B2 (en) 2007-12-12

Family

ID=32272006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002275974A Expired - Fee Related JP4021289B2 (en) 2002-09-20 2002-09-20 Image forming apparatus and storage area securing method

Country Status (1)

Country Link
JP (1) JP4021289B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008091008A1 (en) * 2007-01-26 2008-07-31 Kyocera Corporation Electronic device and electronic device control method
JP2008186044A (en) * 2007-01-26 2008-08-14 Kyocera Corp Electronic device and control method in electronic device
JP2008310695A (en) * 2007-06-15 2008-12-25 Ntt Docomo Inc Mobile communication terminal
JP2009212826A (en) * 2008-03-04 2009-09-17 Ricoh Co Ltd Image processing apparatus, program, and image processing method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008091008A1 (en) * 2007-01-26 2008-07-31 Kyocera Corporation Electronic device and electronic device control method
JP2008186044A (en) * 2007-01-26 2008-08-14 Kyocera Corp Electronic device and control method in electronic device
US8631413B2 (en) 2007-01-26 2014-01-14 Kyocera Corporation Determining the termination priority of applications based on capability of applications to retain operation state information
JP2008310695A (en) * 2007-06-15 2008-12-25 Ntt Docomo Inc Mobile communication terminal
JP2009212826A (en) * 2008-03-04 2009-09-17 Ricoh Co Ltd Image processing apparatus, program, and image processing method

Also Published As

Publication number Publication date
JP4021289B2 (en) 2007-12-12

Similar Documents

Publication Publication Date Title
JP4128516B2 (en) Image forming apparatus and program updating method
US8856773B2 (en) Image forming apparatus including a device that updates stored program based on updating data which is selected based on program that is started or startable
JP2008084304A (en) Image forming apparatus, program updating method and program
JP2004114674A (en) Image forming apparatus and method of securing memory region
JP2012048385A (en) Image forming device, program state determination method, program state determination program and program state determination system
JP2006079534A (en) Information processor and information processing system using the same
JP2011159232A (en) Image processing device, consumables ordering method and consumables ordering program
JP6975009B2 (en) Image processing device, its control method, and program
US20050151987A1 (en) Information processing apparatus, program recovery method, and recording medium storing a program for program recovery
JP4001531B2 (en) Image forming apparatus
JP4314178B2 (en) Image forming apparatus, service function division rule method, and service function division rule program
JP4021289B2 (en) Image forming apparatus and storage area securing method
JP4809272B2 (en) Remote management system and management information acquisition control method
JP2006099187A (en) Information processor
JP5793872B2 (en) Image forming apparatus, program management method, program management program, and recording medium
JP2004129246A (en) Image forming apparatus and application information acquisition method
JP5258474B2 (en) Electronic device and application execution method
JP2007295371A (en) Image forming device and computer program
JP4246560B2 (en) Information processing apparatus, information processing method, program, and recording medium
JP2004299388A (en) Image formation device, and external application operation method
JP4237511B2 (en) Image forming apparatus and program updating method
US20090222928A1 (en) Image processing apparatus, information processing method, and computer program product
JP2008152793A (en) Image forming apparatus, and program update method
JP2008118669A (en) Image forming apparatus and application information acquisition method
JP4485749B2 (en) Image forming apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070308

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: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070926

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

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

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: 20111005

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees