JP2004110731A - Image forming apparatus and memory storage area securing method - Google Patents
Image forming apparatus and memory storage area securing method Download PDFInfo
- 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
Links
Images
Abstract
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
[0016]
The multifunction
[0017]
Further, the
[0018]
The
[0019]
Further, the platform 6 interprets the processing request from the
[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
[0022]
The process of the
[0023]
For example, the
[0024]
The
[0025]
The process of the
[0026]
The process of the
[0027]
The process of the
[0028]
The process of the
[0029]
Specifically, the process of the
[0030]
Further, the
[0031]
The
[0032]
FIG. 2 shows a hardware configuration diagram of an embodiment of the multifunction peripheral 1 according to the present invention. The
[0033]
The
[0034]
The
[0035]
In the
[0036]
The flash memory 69 stores programs for executing the applications and modules, and the downloaded update program is stored in the
[0037]
The
[0038]
The CPU 61 performs overall control of the multifunction peripheral 1. The CPU 61 activates and executes the
[0039]
The
[0040]
The
[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
[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
[0049]
By using the memory area outside the management of the OS in this way, the developer of the
[0050]
In the
[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
[0052]
When the processes are activated from this state, as shown in the
[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
[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
[0057]
Next, the disappearance of the process will be described by taking the
[0058]
Therefore, in order to avoid an error, the
[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
[0061]
Hereinafter, the sequence diagram will be described. In step S101, the
[0062]
The application offline request is notified to the application via the
[0063]
The “operation as an application” will be specifically described using the
[0064]
Therefore, unless the
[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
[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
[0068]
The
[0069]
In step S108, the
[0070]
Next, in step S109, the
[0071]
Next, the
[0072]
When notified of the result of updating the program, the
[0073]
As described above, the
[0074]
Next, details of the processing of the
[0075]
First, the processing of the
[0076]
If it is determined in step S202 that the program update start notification is normal data, the
[0077]
When the
[0078]
If the update program cannot be expanded, the
[0079]
When the
[0080]
Next, the processing of the
[0081]
In the next step S303, if the responses from all the applications are not the application offline responses (OK), in step S304, the
[0082]
If the responses from all the applications are application off-line responses (OK) in step S303, the
[0083]
Next, in step S308, the
[0084]
In this way, when the program is updated, by invalidating the
[0085]
Next, in step S310, the
[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
[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
[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
[0090]
The
[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
[0092]
In step S508, the
[0093]
The
[0094]
The
[0095]
The
[0096]
The
[0097]
The
[0098]
Therefore, the
[0099]
The
[0100]
The
[0101]
Then, in step S519, the
[0102]
Next, in step S520, the
[0103]
When notified of the result of updating the program, the
[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
[0106]
First, the process of the
[0107]
If it is determined in step S602 that the program update start notification is normal data, the
[0108]
If the
[0109]
If the
[0110]
When the
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
[0112]
The memory map representing the fixed area described above will be described with reference to FIG. FIG. 19 shows a
[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
[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
[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
[0119]
If the processes can be deleted in any order described above, the
[0120]
Returning to the process of step S610, if the
[0121]
If the
[0122]
If the
[0123]
Returning to the processing of step S609, if the
[0124]
Next, the processing of the
[0125]
In the next step S703, when the responses from all the applications are not the application offline responses (OK), in step S704, the
[0126]
If the responses from all the applications are application offline responses (OK) in step S703, the
[0127]
Next, when the memory release request is notified from the
[0128]
When the
[0129]
If the
[0130]
If the
[0131]
If the
[0132]
If the notification from the
[0133]
Next, a process in which the
[0134]
First, a process in which the
[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
[0136]
In step S509, as in FIG. 15, the
[0137]
Next, a flowchart of the
[0138]
In step S801, the application starts, and in step S802, the application secures a memory for a fixed area. At that time, the
[0139]
Next, when the application secures the memory for the variable area in step S804, the
[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
[0142]
Returning to the description of the flowchart, when the
[0143]
As described above, when the
[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.
前記オペレーティングシステムの管理外にある記憶領域と、
前記記憶領域を管理する記憶領域管理手段と、
前記プロセスに対し、処理の実行を制限させるオフライン手段と、
処理の実行が制限された前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段と
を有することを特徴とする画像形成装置。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.
前記オペレーティングシステムの管理外にあり、前記プロセスに割り当てられた記憶領域を解放することを特徴とする記憶領域確保方法。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.
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)
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 |
-
2002
- 2002-09-20 JP JP2002275974A patent/JP4021289B2/en not_active Expired - Fee Related
Cited By (5)
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 |