(57)【要約】【課題】応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法を提供する。【解決手段】画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、前記オペレーティングシステムの管理外にある記憶領域と、前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段とを有することを特徴とする。【選択図】図７
2004110731.tif 000002
【特許請求の範囲】
【請求項１】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、
前記オペレーティングシステムの管理外にある記憶領域と、
前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段と
を有することを特徴とする画像形成装置。
【請求項２】
前記記憶領域解放手段が解放した記憶領域を、データを展開する記憶領域として使用するデータ展開手段をさらに有することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記記憶領域解放手段は、前記データ展開手段が使用する記憶領域のサイズに応じて、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記記憶領域解放手段は、予め定められた順番で前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項１または３に記載の画像形成装置。
【請求項５】
前記順番は、前記プロセスの優先度に応じて定まることを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記順番は、前記プロセスに割り当てられた記憶領域のサイズに応じて定まることを特徴とする請求項４に記載の画像形成装置。
【請求項７】
前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする請求項４に記載の画像形成装置。
【請求項８】
前記データ展開手段が前記記憶領域の使用を終了すると、前記画像形成装置を再起動する再起動手段をさらに有することを特徴とする請求項２に記載の画像形成装置。
【請求項９】
前記記憶領域は、揮発性記憶装置に設けられることを特徴とする請求項１に記載の画像形成装置。
【請求項１０】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、
前記オペレーティングシステムの管理外にある記憶領域と、
前記記憶領域を管理する記憶領域管理手段と、
前記プロセスに対し、処理の実行を制限させるオフライン手段と、
処理の実行が制限された前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段と
を有することを特徴とする画像形成装置。
【請求項１１】
前記記憶領域管理手段は、前記プロセスが使用する記憶領域に関する記憶領域情報を保持することを特徴とする請求項１に記載の画像形成装置。
【請求項１２】
前記記憶領域管理手段は、保持した前記記憶領域情報に基づき、前記プロセスが使用していた記憶領域を解放することを特徴とする請求項１１に記載の画像形成装置。
【請求項１３】
前記オフライン手段は、前記プロセスの処理の実行を制限すると、処理の実行を制限されたプロセスが使用していた記憶領域を解放させることを特徴とする請求項１０に記載の画像形成装置。
【請求項１４】
前記オフライン手段は、前記記憶領域管理手段により、処理の実行を制限されたプロセスが使用していた記憶領域を解放させることを特徴とする請求項１３に記載の画像形成装置。
【請求項１５】
処理の実行を制限された前記プロセスは、前記オフライン手段が制限を解除することにより、制限されていた処理の実行が可能となることを特徴とする請求項１０に記載の画像形成装置。
【請求項１６】
前記記憶領域解放手段が解放した記憶領域を使用するデータ展開手段をさらに有することを特徴とする請求項１０に記載の画像形成装置。
【請求項１７】
前記記憶領域解放手段は、前記データ展開手段が使用する記憶領域のサイズに応じて、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項１６に記載の画像形成装置。
【請求項１８】
前記記憶領域解放手段は、予め定められた順番で、前記プロセスに割り当てられた記憶領域を解放することを特徴とする請求項１０または１７に記載の画像形成装置。
【請求項１９】
前記順番は、前記プロセスの優先度に応じて定まることを特徴とする請求項１８に記載の画像形成装置。
【請求項２０】
前記順番は、前記プロセスに割り当てられた記憶領域のサイズに応じて定まることを特徴とする請求項１８に記載の画像形成装置。
【請求項２１】
前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする請求項１８に記載の画像形成装置。
【請求項２２】
前記データ展開手段が前記記憶領域の使用を終了すると、前記画像形成装置を再起動する再起動手段をさらに有することを特徴とする請求項１６に記載の画像形成装置。
【請求項２３】
前記記憶領域は、揮発性記憶装置に設けられることを特徴とする請求項１０に記載の画像形成装置。
【請求項２４】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、
前記オペレーティングシステムの管理外にあり、前記プロセスに割り当てられた記憶領域を解放することを特徴とする記憶領域確保方法。
【請求項２５】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、
前記プロセスに対し、処理の実行を制限させるオフライン段階と、
前記オペレーティングシステムの管理外にあり、処理の実行が制限された前記プロセスに割り当てられた記憶領域を解放する記憶領域解放段階と
を有することを特徴とする記憶領域確保方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像形成装置、記憶領域確保方法に関する。
【０００２】
【従来の技術】
近年、プリンタ、コピー、ファクシミリおよびスキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、融合機という）が知られるようになった。この融合機は、１つの筐体内に表示部、印刷部および撮像部などを設けると共に、プリンタ、コピー、ファクシミリおよびスキャナにそれぞれ対応する４種類のアプリケーションを設け、そのアプリケーションを切り替えることより、プリンタ、コピー、ファクシミリおよびスキャナとして動作させるものである。
【０００３】
このような融合機には、プログラムが展開されたり、画像データが展開されたりするメモリが備えられている。そして、このメモリは、コストなどを抑えるために、なるべく必要最小限の記憶容量で搭載されるのが一般的である。
【０００４】
また、メモリは、アプリケーションなどが処理を実行する際に確保したり、解放を行うことにより使用される。この確保や解放における記憶領域（以下、メモリ領域と記す）の管理は、オペレーティングシステム（以下、ＯＳと記す）が行なっている。
【０００５】
このように、従来は、必要最小限の記憶容量で、ＯＳが管理しているメモリを使用していた。
【０００６】
【発明が解決しようとする課題】
しかしながら、一般的に、メモリが多く確保可能であれば、より多くの処理を実行することが可能となる。特に、融合機において扱うデータは、比較的大きなデータである画像データであり、さらに融合機のプログラムを更新するために、ネットワークを介してダウンロードするプログラムなどの大きなデータもある。
【０００７】
また、ＯＳが提供するシステムコールは、メモリに関して基本的な処理を行うともに、ＯＳの中核部分が提供するため、ＯＳ以外のソフトウェアであるアプリケーションやモジュールなどの応用ソフトウェアが独自に管理を行うには限界がある。
【０００８】
本発明はこのような問題点に鑑み、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、前記オペレーティングシステムの管理外にある記憶領域と、前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段とを有することを特徴とする。
【００１０】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置において、前記オペレーティングシステムの管理外にある記憶領域と、前記記憶領域を管理する記憶領域管理手段と、前記プロセスに対し、処理の実行を制限させるオフライン手段と、処理の実行が制限された前記プロセスに割り当てられた前記記憶領域を解放する記憶領域解放手段とを有することを特徴とする。
【００１１】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、前記オペレーティングシステムの管理外にあり、前記プロセスに割り当てられた記憶領域を解放することを特徴とする。
【００１２】
また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、前記プロセスに対し、処理の実行を制限させるオフライン段階と、前記オペレーティングシステムの管理外にあり、処理の実行が制限された前記プロセスに割り当てられた記憶領域を解放する記憶領域解放段階とを有することを特徴とする。
【００１３】
以上のように、本発明によれば、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法が得られる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。
【００１５】
図１は、本発明による融合機の一実施例の構成図を示す。融合機１は、ソフトウェア群２と、融合機起動部３と、ハードウェア資源４とを含むように構成される。
【００１６】
融合機起動部３は融合機１の電源投入時に最初に実行され、アプリケーション層５およびプラットフォーム６を起動する。例えば融合機起動部３は、アプリケーション層５およびプラットフォーム６のプログラムをハードディスク装置（以下、ＨＤＤという）などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源４は、白黒レーザプリンタ（Ｂ＆Ｗ　ＬＰ）１１と、カラーレーザプリンタ（Ｃｏｌｏｒ　ＬＰ）１２と、スキャナやファクシミリなどのハードウェアリソース１３とを含む。
【００１７】
また、ソフトウェア群２は、ＵＮＩＸ（登録商標）などのオペレーティングシステム（以下、ＯＳという）上に起動されているアプリケーション層５とプラットフォーム６とを含む。アプリケーション層５は、プリンタ、コピー、ファックス、スキャナおよびネットファイルなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【００１８】
アプリケーション層５は、プリンタ用のアプリケーションであるプリンタアプリ２１と、コピー用アプリケーションであるコピーアプリ２２と、ファックス用アプリケーションであるファックスアプリ２３と、スキャナ用アプリケーションであるスキャナアプリ２４と、ネットワークを用いて文書のサービスを行うネットファイルアプリ２５を含む。
【００１９】
また、プラットフォーム６は、アプリケーション層５からの処理要求を解釈してハードウェア資源４の獲得要求を発生するコントロールサービス層９と、１つ以上のハードウェア資源４の管理を行ってコントロールサービス層９からの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭという）３９と、ＳＲＭ３９からの獲得要求に応じてハードウェア資源４の管理を行うハンドラ層１０とを含む。
【００２０】
コントロールサービス層９は、ネットワークコントロールサービス（以下、ＮＣＳという）３１、デリバリーコントロールサービス（以下、ＤＣＳという）３２、オペレーションパネルコントロールサービス（以下、ＯＣＳという）３３、ファックスコントロールサービス（以下、ＦＣＳという）３４、エンジンコントロールサービス（以下、ＥＣＳという）３５、メモリコントロールサービス（以下、ＭＣＳという）３６、ユーザインフォメーションコントロールサービス（以下、ＵＣＳという）３７、システムコントロールサービス（以下、ＳＣＳという）３８、リモートサービス（以下、ＲＳという）４２、オンデマンドアップデートサービス（以下、ＯＵＳという）３３など、一つ以上のサービスモジュールを含むように構成されている。
【００２１】
なお、プラットフォーム６は予め定義されている関数により、アプリケーション層５からの処理要求を受信可能とするＡＰＩ５３を有するように構成されている。ＯＳは、アプリケーション層５およびプラットフォーム６の各ソフトウェアをプロセスとして並列実行する。
【００２２】
ＮＣＳ３１のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００２３】
例えばＮＣＳ３１は、ネットワークを介して接続されるネットワーク機器とのデータ通信をｈｔｔｐｄ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ　Ｄａｅｍｏｎ）により、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）で制御する。
【００２４】
また、ＮＣＳ３１は、更新プログラムをネットワークからダウンロードするためにも用いられる。
【００２５】
ＤＣＳ３２のプロセスは、蓄積文書の配信などの制御を行う。ＯＣＳ３３のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。また、このオペレーションパネルは、オペレータが融合機１を操作するための入力手段でもある。ＦＣＳ３４のプロセスは、アプリケーション層５からＰＳＴＮまたはＩＳＤＮ網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録／引用、ファックス読み取り、ファックス受信印刷などを行うためのＡＰＩを提供する。
【００２６】
ＥＣＳ３５のプロセスは、白黒レーザプリンタ１１、カラーレーザプリンタ１２、ハードウェアリソース１３などのエンジン部の制御を行う。ＭＣＳ３６のプロセスは、メモリの取得および解放、ＨＤＤの利用などのメモリ制御を行う。ＵＣＳ３７のプロセスは、ユーザ情報の管理を行うものである。ＲＳ４２のプロセスは、リモートサービスの制御を行うものである。ＯＵＳ３３のプロセスは、ダウンロードした更新プログラムをメモリに展開するなど、ダウンロードに関する種々の処理を行うものである。
【００２７】
ＳＣＳ３８のプロセスは、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【００２８】
ＳＲＭ３９のプロセスは、ＳＣＳ３８と共にシステムの制御およびハードウェア資源４の管理を行うものである。例えばＳＲＭ３９のプロセスは、白黒レーザプリンタ１１やカラーレーザプリンタ１２などのハードウェア資源４を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【００２９】
具体的に、ＳＲＭ３９のプロセスは獲得要求されたハードウェア資源４が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源４が利用可能である旨を上位層に通知する。また、ＳＲＭ３９のプロセスは上位層からの獲得要求に対してハードウェア資源４を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００３０】
また、ハンドラ層１０は後述するファックスコントロールユニット（以下、ＦＣＵという）の管理を行うファックスコントロールユニットハンドラ（以下、ＦＣＵＨという）４０と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行う記憶領域管理手段であるイメージメモリハンドラ（以下、ＩＭＨという）４１とを含む。ＳＲＭ３９およびＦＣＵＨ４０は、予め定義されている関数によりハードウェア資源４に対する処理要求を送信可能とするエンジンＩ／Ｆ５４を利用して、ハードウェア資源４に対する処理要求を行う。
【００３１】
融合機１は、各アプリケーションで共通的に必要な処理をプラットフォーム６で一元的に処理することができる。次に、融合機１のハードウェア構成について説明する。
【００３２】
図２は、本発明による融合機１の一実施例のハードウェア構成図を示す。融合機１は、コントローラ６０と、オペレーションパネル７０と、ＦＣＵ８０と、ＵＳＢデバイス９０と、ＩＥＥＥ１３９４デバイス１００と、エンジン部１１０とを含む。
【００３３】
また、コントローラ６０は、ＣＰＵ６１と、システムメモリ（ＭＥＭ−Ｐ）６２と、ノースブリッジ（以下、ＮＢという）６３と、サウスブリッジ（以下、ＳＢという）６４と、ＡＳＩＣ６６と、ローカルメモリ（ＭＥＭ−Ｃ）６７と、ＨＤＤ６８と、フラッシュメモリ６９とを含む。
【００３４】
オペレーションパネル７０は、コントローラ６０のＡＳＩＣ６６に接続されている。また、ＦＣＵ８０、ＵＳＢデバイス９０、ＩＥＥＥ１３９４デバイス１００およびエンジン部１２０は、コントローラ６０のＡＳＩＣ６６にＰＣＩバスで接続されている。
【００３５】
コントローラ６０は、ＡＳＩＣ６６にローカルメモリ６７、ＨＤＤ６８などが接続されると共に、ＣＰＵ６１とＡＳＩＣ６６とがＣＰＵチップセットのＮＢ６３を介して接続されている。このように、ＮＢ６３を介してＣＰＵ６１とＡＳＩＣ６６とを接続すれば、ＣＰＵ６１のインタフェースが公開されていない場合に対応できる。
【００３６】
フラッシュメモリ６９には、上記アプリケーションや、モジュールを実行させるプログラムが格納されており、ダウンロードした更新プログラムはこのフラッシュメモリ６４に格納される。
【００３７】
なお、ＡＳＩＣ６６とＮＢ６３とはＰＣＩバスを介して接続されているのでなく、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ　Ｇｒａｐｈｉｃｓ　Ｐｏｒｔ）６５を介して接続されている。このように、図１のアプリケーション層５やプラットフォーム６を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ６６とＮＢ６３とを低速のＰＣＩバスでなくＡＧＰ６５を介して接続し、パフォーマンスの低下を防いでいる。
【００３８】
ＣＰＵ６１は、融合機１の全体制御を行うものである。ＣＰＵ６１は、ＮＣＳ３１、ＤＣＳ３２、ＯＣＳ３３、ＦＣＳ３４、ＥＣＳ３５、ＭＣＳ３６、ＵＣＳ３７、ＳＣＳ３８、ＳＲＭ３９、ＦＣＵＨ４０、ＲＳ４２、ＯＵＳ４３およびＩＭＨ４１をＯＳ上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層５を形成するプリンタアプリ２１、コピーアプリ２２、ファックスアプリ２３、スキャナアプリ２４を起動して実行させる。
【００３９】
ＮＢ６３は、ＣＰＵ６１、システムメモリ６２、ＳＢ６４およびＡＳＩＣ６６を接続するためのブリッジである。システムメモリ６２は、融合機１の描画用メモリなどとして用いるメモリである。ＳＢ６４は、ＮＢ６３とＲＯＭ、ＰＣＩバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ６７はコピー用画像バッファ、符号バッファとして用いるメモリである。
【００４０】
ＡＳＩＣ６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ６８は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル７０は、オペレータからの入力操作を受け付けると共に、オペレータに向けた表示を行う操作部である。
【００４１】
次に、メモリ領域を確保する処理を説明するために、融合機１のプログラムを更新する際に行われる更新プログラムをダウンロードする処理を例にして説明するが、その説明に先立ち、以下の説明で用いられるプロセスやアプリケーションなどの説明をしておく。
【００４２】
本実施の形態においては、アプリケーション、モジュール、プロセスという表現が用いられている。このうちのプロセスは、一般的に実行中のプログラムを表すため、アプリケーションやモジュールはプロセスに含まれる。したがって、いずれの表現の場合も本質的な差はないが、本実施の形態では、説明内容に応じて適宜使い分ける。また、プロセス（アプリケーション、モジュール）を消滅することは、プロセスに割り当てられたメモリ領域を解放することを意味する。
【００４３】
また、プロセスに割り当てられたメモリ領域には、プロセスが実行するプログラムと、プロセスが一時的に使用する情報など、プロセスが処理を実行するために必要な情報が展開される。
【００４４】
また、本実施の形態において、ダウンロードして取得したプログラムを更新プログラムとしているが、この更新プログラムは、融合機１が有する従来からのプログラム全体を更新するプログラムだけではなく、従来のプログラムとマージするプログラムや従来のプログラムの一部を更新する差分プログラムを含む。
【００４５】
以下、更新プログラムをダウンロードする処理の概要を説明する。
【００４６】
融合機１は、例えば融合機１の開発元などが提供するサーバからプログラムの更新を開始する通知を受けると、プロセスに割り当てられたメモリ領域を解放することにより更新プログラムを展開するためのメモリ領域を確保し、そのメモリ領域に更新プログラムを展開するという処理を行う。そこでまず、メモリ領域についての説明をする。
【００４７】
メモリ領域は、どの領域を何のプロセスに割り当てるのかが予め定められている。そのため、通常はメモリマップを用いてメモリ領域の内容が示される。
【００４８】
このメモリマップを用いてメモリ領域について説明する。図３には、揮発性の記憶装置であるシステムメモリ６２のメモリマップ７１と、メモリマップ７１に示されている共有メモリを拡大したメモリマップ７２が示されている。また、メモリ領域ＶＭ７５は、ＯＳが管理するメモリ領域である。
【００４９】
このようにＯＳの管理外にあるメモリ領域を用いることにより、融合機１を開発する側では、融合機１の仕様や特性に合わせたメモリ管理を行えるばかりではなく、メモリリークなどの不具合の発生原因を抑制することが可能となる。
【００５０】
メモリマップ７１では、共有メモリ、プリンタエミュレーション作業用メモリ、ページメモリ、印字データ用、その他、というようにメモリ領域が区分けされている。
【００５１】
このうち、共有メモリは、実行しているプログラムが展開されるとともに、実行中のプログラムであるプロセスが処理を行うために使用するメモリである。図３に示されているメモリマップ７２は、プログラムが展開する前の状態を示しているため、全て空き領域となっている。
【００５２】
この状態から、プロセスが起動することによって図４のメモリマップ７３に示されるように、それぞれのプロセスに割り当てられた共有メモリ内のメモリ領域を使用する。図５は、このときのプロセス稼動状況を示す図である。図５に示されるプロセスの稼動状況は、全てのプロセスが通常の処理を行なっている状況である。
【００５３】
そこで、例えば、図６に示されるように、各アプリケーションや、サービス層モジュールの一部のプロセスに割り当てられたメモリ領域を解放させたとする。これにより、図７のメモリマップ７４に示されるように、解放しなかったサービス層モジュールに割り当てられているメモリ領域以外は、全て空き領域となる。
【００５４】
このようにすることにより、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保することが可能となる。
【００５５】
そして、得られた空き領域は、ダウンロードした更新プログラムを展開するメモリ領域として用いられる。また、ダウンロードした更新プログラムは、新たなプログラムとしてフラッシュメモリ６９に格納される。
【００５６】
なお、図６において、ＮＣＳ３１とＳＣＳ３８は、オフラインとなっているが、オフライン状態とは、プロセスが、処理の実行を制限された状態であることを示す。具体的には、エンジン状態通知や、異常発生の通知などを受信することは可能であるが、対外的なイベントに対する実行動作を禁止した状態である。そのため、図６に示されるように、処理の実行を制限されたプロセスは、他のプロセスからの実行要求を拒絶するようになっている。
【００５７】
次に、プロセスの消滅について、ＳＣＳ３８とアプリケーションを例にして説明する。ＳＣＳ３８のプロセスと、アプリケーションを構成するプロセスは、図８に示されるように、起動時に互いにエラーハンドラを登録する。このエラーハンドラは、この場合、互いの存在を確認するものである。したがって、図９に示されるように、アプリケーションのプロセスが消滅すると、ＳＣＳ３８のエラーハンドラが、アプリケーションのプロセスが消滅したことを認識し、エラーが発生することになる。
【００５８】
そこで、ＳＣＳ３８は、エラーを回避するため、図１０に示されるように、予めアプリエラーハンドラを停止してからアプリケーションのプロセスを消滅する。このようにすることで、ＳＣＳ３８は、アプリケーションのプロセスが消滅しても、アプリエラーハンドラは停止しているため、エラーの発生を回避することができる。なお、図中に示される「ＫＩＬＬ」は、プロセスを消滅させるコマンドを意味する。
【００５９】
以上説明したダウンロードに関する処理の詳細を、シーケンス図とフローチャートを用いて説明する。
【００６０】
図１１は、融合機１が２つのアプリケーション（アプリＡ８１、アプリＢ８２）を消滅して更新プログラムをダウンロードし、フラッシュメモリ６９に格納されたプログラムを更新する処理を示すシーケンス図である。この処理は、ＮＣＳ３１、データ展開手段に対応するＯＵＳ４３、記憶領域解放手段とオフラン手段と再起動手段に対応するＳＣＳ３８、エンジンファーム５５により行われる。
【００６１】
以下、シーケンス図の説明をする。ステップＳ１０１で、ＮＣＳ３１は、プログラム更新開始通知をネットワークから受信し、ステップＳ１０２で、ＯＵＳ４３に、プログラムの更新開始を示すプログラム更新開始通知を行う。プログラム更新開始を通知されたＯＵＳ４３は、ステップＳ１０３で、ＳＣＳ３８にアプリオフライン要求を通知する。このアプリオフライン要求とは、アプリケーションを上述したオフライン状態にさせる要求である。なお、このシーケンス図でのオフライン要求は、オフライン状態にしたのちに、さらにアプリケーションを消滅させる要求も含んでいる。
【００６２】
また、このアプリオフライン要求は、ＳＣＳ３８を介してアプリケーションに通知されるが、この要求を通知されたアプリケーションは、アプリケーションとしての動作を行なっていない限り、オフライン状態に移行しならなければならない。
【００６３】
この「アプリケーションとしての動作」を具体的にコピーアプリ２２を例にして説明すると、「アプリケーションとしての動作」とは、コピーアプリ２２において、例えばコピーの処理を実行する動作をいう。
【００６４】
したがって、コピーアプリ２２がコピーアプリケーションとしての動作であるコピーの処理を実行していない限り、オフライン状態で動作しならなければならない。
【００６５】
また、オフライン状態で動作しているプロセスは、対外的なイベントに対する実行動作の禁止という処理の実行の制限を解除されることにより、制限されていた処理を実行することが可能となる。したがって、アプリケーションは、オフライン状態で動作している際にも、他のアプリケーションなどから通知された内容は保持しておき、処理の実行の制限を解除されたときに、保持していた内容に基づき処理を再開することが可能となっている。
【００６６】
シーケンス図の説明に戻り、アプリオフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ１０４とステップＳ１０５でアプリオフライン移行要求を通知する。
【００６７】
アプリオフライン移行要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれオフライン状態に移行することが可能である場合、ＳＣＳ３８に対し、アプリオフライン応答（ＯＫ）を通知する。このシーケンス図の場合、アプリＡ８１、アプリＢ８２ともにオフライン状態に移行することが可能であるため、アプリＡ８１、アプリＢ８２は、ステップＳ１０６、ステップＳ１０７で、それぞれアプリオフライン応答（ＯＫ）をＳＣＳ３８に通知している。
【００６８】
アプリオフライン応答（ＯＫ）を通知されたＳＣＳ３８は、アプリＡ８１、アプリＢ８２の消滅を実行する。
【００６９】
アプリケーションの消滅を実行したＳＣＳ３８は、アプリケーションの消滅が完了したことを、ステップＳ１０８で、アプリオフライン確定（プロセスＫＩＬＬ完了）としてＯＵＳ４３に通知する。アプリオフライン確定を通知されたＯＵＳ４３は、更新プログラムをダウンロードし、アプリケーションの消滅により得られたメモリ領域に更新プログラムを展開する。
【００７０】
次に、ＯＵＳ４３は、ステップＳ１０９で、プログラム更新開始要求であるリモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。このキーイベントのマスクとは、オペレーションパネル７０に表示されるキーが押下されたことにより発生するイベントを受け付けないようにする処理である。
【００７１】
次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ１１０で、ダウンロードした更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ１１１でＳＣＳ３８に通知する。
【００７２】
ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ１１２で、エンジンファーム５５に対し、リブート準備要求を行う。そして、ステップＳ１１３で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理を終了する。
【００７３】
以上のように、ＳＣＳ３８は、プロセスに割り当てられたメモリ領域を解放し、ＯＵＳ４３は、プログラムを更新する更新プログラムを、ＮＣＳ３１を用いてダウンロードし、ＳＣＳ３８により解放されたメモリ領域に展開する。
【００７４】
次に、ＯＵＳ４３と、ＳＣＳ３８の処理の詳細を、フローチャートを用いて説明する。
【００７５】
最初に、ＯＵＳ４３の処理について、図１２のフローチャートを用いて説明する。ステップＳ２０１で、ＯＵＳ４３は、ＮＣＳ３１からプログラム更新開始を通知される。次のステップＳ２０２で、ＯＵＳ４３は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのＳＵＭ値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップＳ２０３で、プログラムの更新処理を終了する。
【００７６】
ステップＳ２０２で、プログラム更新開始通知が正常なデータであると判定された場合、ＯＵＳ４３は、ステップＳ２０４で、ＳＣＳ３８にアプリケーションをオフライン状態にさせ、消滅させるためのアプリオフライン要求を通知する。アプリオフライン要求の応答であるアプリオフライン確定をステップＳ２０５で受信すると、ＯＵＳ４３は、ステップＳ２０６で、アプリオフラインが実行完了したかどうか判断する。このステップＳ２０６の処理は、アプリオフラインが確定しなかったことを通知された場合に、ステップＳ２０３で、プログラムの更新処理を終了するための処理である。
【００７７】
ステップＳ２０６で、ＯＵＳ４３は、アプリオフラインの実行が完了したと判断すると、ステップＳ２０７で、アプリケーションを消滅することにより確保されたメモリ領域に、更新プログラムを展開することが可能かどうか判断する。
【００７８】
更新プログラムを展開することが不可能な場合、ＯＵＳ４３は、ステップＳ２０９で、確保されたメモリ領域を、プログラムの更新を実行しない状態に設定する。そして、ＯＵＳ４３は、ステップＳ２１０でＳＣＳ３８にプログラム更新開始要求であるリモートＲＯＭ更新開始要求を通知し、処理を終了する。なお、この場合、メモリ領域がプログラムの更新を実行しない状態に設定されているため、プログラムの更新処理は実行されない。
【００７９】
ステップＳ２０７で、ＯＵＳ４３は、更新プログラムを展開することが可能であると判断すると、ステップＳ２０８で、更新プログラムをメモリ領域に展開する。そして、ＯＵＳ４３は、ステップＳ２１０でＳＣＳ３８にプログラム更新開始要求であるリモートＲＯＭ更新開始要求を通知し、処理を終了する。
【００８０】
次に、ＳＣＳ３８の処理について、図１３のフローチャートを用いて説明する。ステップＳ３０１で、ＳＣＳ３８は、ＯＵＳ４３からのアプリオフライン要求を受信する。アプリオフライン要求を通知されたＳＣＳ３８は、ステップＳ３０２で、各アプリケーションにアプリオフライン移行要求を通知する。
【００８１】
次のステップＳ３０３で、ＳＣＳ３８は、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）ではなかった場合、ステップＳ３０４で、各アプリケーションに、アプリオフライン解除を通知する。これにより、アプリケーションは、制限されていた処理の実行が可能となる。次に、ＳＣＳ３８は、ステップＳ３０５でアプリケーションがオフラインに移行しなかったことをＯＵＳ４３に通知し、処理を終了する。
【００８２】
ステップＳ３０３で、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）である場合、ＳＣＳ３８は、ステップＳ３０６で、アプリケーションを消滅させる。そして、ステップＳ３０７で、ＳＣＳ３８は、ＯＵＳ４３にアプリオフライン確定を通知する。
【００８３】
次に、ＳＣＳ３８は、ＯＵＳ４３からステップＳ３０８で、プログラム更新開始要求であるリモートＲＯＭ更新開始要求を受信すると、ステップＳ３０９で、オペレーションパネル７０上のキー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。
【００８４】
このように、プログラムを更新する際に、オペレーションパネル７０を無効化することにより、更新処理を迅速に行うことができるとともに、制限されていない機能は実行することができるため、例えば重要な機能をプログラム更新中にもかかわらず実行することができる。
【００８５】
次に、ＳＣＳ３８は、ステップＳ３１０で、プログラム更新処理を実行し、融合機１を再起動させるためにステップＳ３１１でリブートを実行し処理を終了する。
【００８６】
次に、上記ステップＳ３０６のプロセスを消滅する処理の詳細を図１４のフローチャートを用いて説明する。ステップＳ４０１で、ＳＣＳ３８は、ＯＳの中核部分であるカーネルに用意されたプロセス消滅エラー検知処理をマスクする。そして、ＳＣＳ３８は、ステップＳ４０２でプロセス間通信のエラー処理を停止する。そして、ステップＳ４０３で、ＳＣＳ３８は、アプリケーションのプロセスを消滅する。次に、ＳＣＳ３８は、ステップＳ４０４でＳＣＳ３８が記憶しているアプリケーションの登録情報を抹消し処理を終了する。
【００８７】
次に、上記処理とは別に、ＯＵＳ４３がダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理について、シーケンス図とフローチャートを用いて説明する。
【００８８】
図１５は、ダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理を示すシーケンス図である。
【００８９】
ステップＳ５０１で、ＮＣＳ３１は、プログラム更新開始通知をネットワークから受信し、ステップＳ５０２で、ＯＵＳ４３にプログラムの更新開始を示すプログラム更新開始通知を行う。プログラム更新開始を通知されたＯＵＳ４３は、ステップＳ５０３で、ＳＣＳ３８にアプリオフライン要求を通知する。
【００９０】
アプリオフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ５０４とステップＳ５０５でアプリオフライン移行要求を通知する。
【００９１】
アプリオフライン移行要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれオフライン状態になることが可能である場合、ＳＣＳ３８に対し、アプリオフライン応答（ＯＫ）を通知する。このシーケンス図の場合、アプリＡ８１、アプリＢ８２ともにオフライン状態になることが可能であるため、アプリＡ８１、アプリＢ８２は、ステップＳ５０６、ステップＳ５０７で、それぞれアプリオフライン応答（ＯＫ）をＳＣＳ３８に対し通知している。
【００９２】
アプリオフライン応答（ＯＫ）を通知されたＳＣＳ３８は、ステップＳ５０８で、ＯＵＳ４３にアプリケーションがオフライン状態になったことを示すアプリオフライン確定を通知する。
【００９３】
アプリケーションのオフライン確定を通知されたＯＵＳ４３は、ステップＳ５０９でＳＣＳ３８に処理の実行を制限されたアプリケーションが使用するメモリ領域を解放させるためにメモリ解放要求を通知する。なお、このメモリ解放要求で解放要求されているメモリ領域とは、アプリケーションが画像情報の一時的な記憶や、現在の動作に関する情報の記憶をする際に使用するメモリ領域であり、プロセスに割り当てられたメモリ領域の一部である。
【００９４】
メモリ解放要求を通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に対し、ステップＳ５１０とステップＳ５１１でメモリ解放要求を通知する。メモリ解放要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれメモリ領域を解放し、ステップＳ５１２、ステップＳ５１３で、ＳＣＳ３８に対してメモリ解放完了応答を通知する。
【００９５】
メモリ解放完了応答を通知されたＳＣＳ３８は、ステップＳ５１４でＯＵＳ４３にメモリの解放が完了したことを示すメモリ解放完了応答を通知する。
【００９６】
メモリ解放完了応答を通知されたＯＵＳ４３は、メモリの空きをチェックするメモリサイズチェックを行う。そして、この時点では、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、ＯＵＳ４３は、ステップＳ５１５で、ＳＣＳ３８に対し、アプリケーションを構成するプロセスを消滅させるプロセスＫＩＬＬ要求を通知する。
【００９７】
プロセスＫＩＬＬ要求を通知されたＳＣＳ３８は、まずアプリＢ８２を消滅する。そして、ステップＳ５１６で、ＳＣＳ３８は、ＯＵＳ４３に対し、プロセスＫＩＬＬ完了応答を行う。
【００９８】
そこで再びＯＵＳ４３は、メモリサイズのチェックを行う。しかし、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、ＯＵＳ４３は、ステップＳ５１７で、ＳＣＳ３８に再びプロセスＫＩＬＬ要求を通知する。
【００９９】
再びプロセスＫＩＬＬ要求を通知されたＳＣＳ３８は、アプリＡ８１を消滅する。そして、ステップＳ５１８で、ＳＣＳ３８は、ＯＵＳ４３にプロセスＫＩＬＬ完了応答を通知する。
【０１００】
プロセスＫＩＬＬ完了応答を通知されたＯＵＳ４３は、メモリサイズのチェックを行う。アプリＡ８１の消滅により、ダウンロードする更新プログラムを展開する分のメモリの空きが得られたので、ＯＵＳ４３は、更新プログラムをダウンロードし、展開する。
【０１０１】
そして、ＯＵＳ４３は、ステップＳ５１９で、リモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。
【０１０２】
次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ５２０で、ダウンロードされた更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ５２１でＳＣＳ３８に通知する。
【０１０３】
ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ５２２で、エンジンファーム５５に対し、リブート準備要求を行う。そして、ステップＳ５２３で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理は終了する。
【０１０４】
このように、ＳＣＳはダウンロードする更新プログラムのサイズに応じて、プロセスに割り当てられたメモリ領域を解放する。
【０１０５】
次に、ＯＵＳ４３、ＳＣＳ３８の処理の詳細を、フローチャートを用いて説明する。
【０１０６】
最初に、ＯＵＳ４３の処理について、図１６のフローチャートを用いて説明する。ステップＳ６０１で、ＯＵＳ４３は、ＮＣＳ３１からプログラム更新開始を通知される。次のステップＳ６０２で、ＯＵＳ４３は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのＳＵＭ値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップＳ６０３で、プログラムの更新処理を終了する。
【０１０７】
ステップＳ６０２で、プログラム更新開始通知が正常なデータであると判定された場合、ＯＵＳ４３は、ステップＳ６０４で、ＳＣＳ３８にアプリオフライン要求を通知する。ステップＳ６０５で、ＯＵＳ４３は、アプリオフライン要求の応答であるアプリオフライン確定を受信すると、ステップＳ６０６で、アプリオフラインが実行完了したかどうか判断する。
【０１０８】
ステップＳ６０６で、ＯＵＳ４３が、アプリオフラインが確定しなかったと判断した場合、ステップＳ６０３で、プログラムの更新処理を終了する。
【０１０９】
ステップＳ６０６で、ＯＵＳ４３が、アプリオフラインの実行が完了したと判断した場合、ステップＳ６０７で、ＳＣＳ３８にメモリ解放要求を通知する。そして、ステップＳ６０８で、ＯＵＳ４３は、ＳＣＳ３８からメモリ解放完了を受信するとステップＳ６０９で、更新プログラムの展開に必要なメモリ領域が確保できたかどうか判断する。
【０１１０】
ＯＵＳ４３が、メモリ領域が確保できなかったと判断した場合、ＯＵＳ４３は、ステップＳ６１０で、予め定められた規定の優先順にプロセスを消滅することが可能かどうか判断する。
ここで、規定の優先順について説明する。まず、プロセスを消滅することは、上述したように、そのプロセスが割り当てられているメモリ領域を解放することである。
【０１１１】
そこで、まず、アプリケーションなどに割り当てられているメモリ領域であるが、メモリマップ７３（図４参照）に示したように、それぞれのアプリケーションや、モジュールには、メモリ上に領域が割り当てられている。その割り当てられたメモリ領域は、さらに２つの領域で構成される。これらのメモリ領域を本実施の形態では、１つを固定エリアとし、もう一つを上述した変動エリアとする。このうち、固定エリアとは、エンジン部１１０（図２参照）の状態通知を記憶しておくなど、各アプリケーションがジョブを実行するしないにかかわらず必要とする情報を記憶しておくエリアである。これらの情報のうち、例えばエンジン部１１０の状態が記憶されていない場合、オフライン状態が解除されて再びプロセスが処理を実行した際に、実際のエンジン部１１０の状態が把握できていないため、異常動作の原因となる可能性がある。
【０１１２】
以上説明した固定エリアを表すメモリマップを、図１９を用いて説明する。図１９には、固定エリアを表すメモリマップ７６が示されており、それぞれのアプリケーションに割り当てられたメモリ領域と、そのサイズが示されている。
【０１１３】
図１９において、例えば、コピーアプリケーション用の固定エリアは、共有メモリ内の先頭に位置し、そのサイズは、５ＭＢ（Ｍｅｇａ　Ｂｙｔｅ）である。他のアプリケーションも同様に、割り当てられた位置と、そのサイズが示されている。
【０１１４】
また、空き領域７７ａ、７７ｂ、７７ｃ、７７ｄ、７７ｅは、各アプリケーションの変動エリアであり、このメモリマップ７６では、既に解放されているため空き領域となっている。
【０１１５】
このように割り当てられたメモリ領域と、プロセスの優先度により、消滅するプロセスの順番を予め定めておく。その順番とは、図１７に示されるように、例えば融合機１におけるプロセスの優先度に応じて定めておいた「デフォルト」の順番か、プロセスに割り当てられたメモリ領域のサイズである「メモリサイズ」の大きい順番か、「共有メモリ」（図４参照）におけるプロセスに割り当てられたメモリ領域の先頭アドレスの小さい順番などで定まる優先順である。
【０１１６】
「デフォルト」の順番とは、ここでは、融合機１において、使用頻度が多く優先度が高いアプリケーションほど最後に消滅させる順番である。
【０１１７】
「メモリサイズ」の順番とは、割り当てられたメモリ領域のサイズに応じて定められる順番である。メモリマップ７６に示されるように、具体的に各アプリケーションが割り当てられたメモリ領域のサイズは、コピーアプリ２２用の固定エリアが５ＭＢであり、プリンタアプリ２１用の固定エリアが３．５ＭＢであり、ＦＡＸアプリ２３用の固定エリアが４．５ＭＢであり、スキャナアプリ２４用の固定エリアが３ＭＢであり、ネットファイルアプリ２５用の固定エリアが４ＭＢとなっている。したがって、割り当てられたメモリ領域のサイズの大きい順に解放する場合、「メモリサイズ」の順番は、図１７に示される順番となる。
【０１１８】
また、「共有メモリ」の順番は、上述したように、メモリ領域の先頭アドレスの小さい順番など、プロセスに割り当てられた記憶領域の位置に応じて定まる。したがって、メモリマップ７６においては、メモリマップ７６の上に表示されているメモリ領域の先頭アドレスほど小さくなるため、図１７に示される順番となる。
【０１１９】
上記説明したいずれか順番でプロセスを消滅することが可能であれば、ＯＵＳ４３は、ステップＳ６１１で、ＳＣＳ３８に対し、プロセスＫＩＬＬ要求を通知する。そして、ＯＵＳ４３は、ステップＳ６１２で、ＳＣＳ３８からプロセスＫＩＬＬ完了を受信すると、再びステップＳ６０９の判断を行う。
【０１２０】
ステップＳ６１０の処理に戻り、ＯＵＳ４３が、規定の優先順でプロセスを消滅することが不可能であると判断した場合、ステップＳ６１５で、ＯＵＳ４３はリブートを実行するかどうか判断する。このステップ６１５の処理は、１回でもアプリケーションを消滅させたかどうかにより、リブートを実行するかどうか判断する処理である。
【０１２１】
ＯＵＳ４３が、１回もアプリケーションを消滅していなければ、ステップＳ６１７で、ＯＵＳ４３は、ＳＣＳ３８にアプリオフライン解除を通知し、処理を終了する。これにより、アプリケーションは、制限されていた処理の実行が可能な状態に復帰する。
【０１２２】
ＯＵＳ４３が、１回以上アプリケーションを消滅していれば、ステップＳ６１６で、ＯＵＳ４３は、ＳＣＳ３８にリブート要求を通知し、処理を終了する。
【０１２３】
ステップＳ６０９の処理に戻り、ＯＵＳ４３が更新プログラムの展開に必要なメモリ領域が確保できた場合、ＯＵＳ４３は、ステップＳ６１３で更新プログラムをメモリ領域に展開する。そして、ＯＵＳ４３は、ステップＳ６１４でＳＣＳ３８にリモートＲＯＭ更新開始要求を通知し、処理を終了する。
【０１２４】
次に、ＳＣＳ３８の処理について、図１８のフローチャートを用いて説明する。ステップＳ７０１で、ＳＣＳ３８は、ＯＵＳ４３からアプリオフライン要求を通知される。アプリオフライン要求を通知されたＳＣＳ３８は、ステップＳ７０２で、各アプリケーションにアプリオフライン移行を要求する。
【０１２５】
次のステップＳ７０３で、ＳＣＳ３８は、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）ではなかった場合、ステップＳ７０４で、各アプリケーションに、アプリオフライン解除を通知する。そして、ＳＣＳ３８は、ステップＳ７０５で、ＯＵＳ４３にアプリケーションがオフラインに移行しなかったことを通知し、処理を終了する。
【０１２６】
ステップＳ７０３で、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）である場合、ＳＣＳ３８は、ステップＳ７０６で、ＯＵＳ４３に対し、アプリオフライン確定を通知する。
【０１２７】
次に、ＳＣＳ３８は、ステップＳ７０７で、ＯＵＳ４３からメモリ解放要求を通知されると、ステップＳ７０８でアプリケーションにメモリの解放処理を実行させ、ステップＳ７０９でＯＵＳ４３にメモリ解放完了を通知する。
【０１２８】
ＳＣＳ３８は、ＯＵＳ４３にメモリ解放完了を通知すると、ＯＵＳ４３の要求により処理が分岐する。まず、ＳＣＳ３８がＯＵＳ４３からプロセスＫＩＬＬ要求を通知された場合、ＳＣＳ３８は、ステップＳ７１０からステップＳ７１１に分岐し、アプリケーションを消滅する。そして、ＳＣＳ３８はステップＳ７１２でＯＵＳ４３にプロセスＫＩＬＬ完了を通知し、再びステップＳ７１０の処理を行う。
【０１２９】
ステップＳ７１０で、ＳＣＳ３８がプロセスＫＩＬＬ要求を通知されなかった場合、ＳＣＳ３８は、ステップＳ７１０からステップＳ７１３に分岐し、ＯＵＳ４３からリモートＲＯＭ更新開始要求を通知されたかどうか判断する。
【０１３０】
ステップＳ７１３でＳＣＳ３８がリモートＲＯＭ更新開始要求を通知された場合、ＳＣＳ３８は、ステップＳ７１４で、キー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。そして、ＳＣＳ３８は、ステップＳ７１５プログラム更新処理を実行する。また、次のステップＳ７１６で、ダウンロードの実行を開始したことやプログラムの更新状況などを、ＲＳ４２（図１参照）からネットワークを通してサービスセンタなどに通知し、ステップＳ７１７でリブートを行い処理を終了する。なお、サービスセンタとは、例えば融合機１の保守や点検を行うために製造元に備えられたサーバや、更新プログラムの配布元に備えられたサーバなどである。また、各アプリケーションやモジュールの状態情報をサービスセンタに送信してもよいし、サービスセンタではそのログを記録しておいてもよい。
【０１３１】
ステップＳ７１３で、ＳＣＳ３８がリモートＲＯＭ更新開始要求を受信しなかった場合、ＳＣＳ３８は、ステップＳ７１８で、ＯＵＳ４３からリブート要求を受信したかどうか判断する。
【０１３２】
ＯＵＳ４３からの通知がリブート要求ではない場合、ＳＣＳ３８は、再びステップＳ７１０の処理を行う。ＯＵＳ４３からの通知がリブート要求の場合、ＳＣＳ３８は、ステップＳ７１９でダウンロードの実行が失敗し、リブート処理を行うことをＲＳ４２からネットワークを通してサービスセンタなどに通知し、ステップＳ７１７でリブートを行い、処理を終了する。
【０１３３】
次に、ＩＭＨ４１が、アプリケーションが使用する変動エリアを解放する処理を説明する。
【０１３４】
まず、図２０のシーケンス図を用いて、ＩＭＨ４１が、アプリケーションが使用する変動エリアを解放する処理を説明する。
【０１３５】
図２０に示されるシーケンス図は、図１５のシーケンス図において、ＩＭＨ４１の処理により変わる部分であるステップＳ５０９からステップＳ５１４までの間の処理を示したものである。
【０１３６】
ステップＳ５０９は、図１５と同様に、ＯＵＳ４３が、ＳＣＳ３８にメモリ解放要求を通知する。メモリ解放要求を通知されたＳＣＳ３８は、図１５と異なり、ＩＭＨ４１にステップＳ１でメモリ解放要求を通知する。メモリ解放要求を通知されたＩＭＨ４１は、各アプリケーションの変動エリアを解放し、ステップＳ２でＳＣＳ３８に、メモリ解放完了応答を通知する。ＩＭＨ４１からメモリ解放完了応答を通知されたＳＣＳ３８は、図１５と同様に、ステップＳ５１４で、ＯＵＳ４３に、メモリ解放完了応答を通知する。
【０１３７】
次に、この処理を行うＩＭＨ４１のフローチャートを図２１を用いて説明する。
【０１３８】
ステップＳ８０１で、アプリケーションが起動し、ステップＳ８０２で、アプリケーションが固定エリア用のメモリを確保する。そのとき、ＩＭＨ４１は、ステップＳ８０３で、記憶領域情報である固定エリア情報を保持する。
【０１３９】
次に、アプリケーションがステップＳ８０４で変動エリア用のメモリを確保すると、ＩＭＨ４１は、ステップＳ８０５で、記憶領域情報である変動エリア情報を保持する。
【０１４０】
このように、変動エリアと固定エリアからなる記憶領域情報は、図２２に示される構造となっている。この図２６において、例えば、アプリＡ８１の固定エリアの記憶領域情報は、固定エリア先頭アドレス０ｘ１０００００と、固定エリア末尾アドレス０ｘ１ＦＦＦＦＦと、変動エリア先頭アドレス０ｘ２０００００と、固定エリア末尾アドレス０ｘ２４ＦＦＦＦの４つの情報からなる。他のアプリケーションも同様である。なお、上記アドレスは、１６進表示となっている。また、固定エリアと変動エリアが連続する場合、変動エリア末尾アドレスは特に必要ない。さらに、各アプリケーションに割り当てられた領域が連続する場合、固定エリア末尾アドレスは特に必要ない。
【０１４１】
このようにＩＭＨ４１は、上記記憶領域情報を保持しておくことによって、保持した記憶領域情報に基づき、アプリケーションが使用するメモリ領域を解放することができる。
【０１４２】
フローチャートの説明に戻り、ＩＭＨ４１は、ステップＳ８０６で、ＳＣＳ３８からのメモリ解放要求を受信すると、ステップＳ８０７で、ＩＭＨ４１は、各アプリケーションの変動エリアを解放する。そして、ステップＳ８０８で、ＩＭＨ４１は、ＳＣＳ３８にメモリ解放完了応答を通知する。
【０１４３】
このように、変動エリアを解放した状態で、ＩＭＨ４１が、ステップＳ８０９で、ＳＣＳ３８から、オンライン解除を受信すると、ＩＭＨ４１は、ステップＳ８１０で、各アプリケーションの変動エリア情報を再び保持する。
【０１４４】
【発明の効果】
以上説明したように、本発明によれば、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保する画像形成装置、記憶領域確保方法が得られる。
【図面の簡単な説明】
【図１】本発明による融合機の一実施例の構成図である。
【図２】本発明による融合機の一実施例のハードウェア構成図である。
【図３】メモリマップを示す図である。
【図４】共有メモリのメモリマップを示す図である。
【図５】プロセス稼動状況を示す図である。
【図６】プロセス消滅状況を示す図である。
【図７】メモリマップを示す図である。
【図８】エラーハンドラの登録の様子を示す図である。
【図９】プロセスの消滅によるエラーを示す図である。
【図１０】エラーを回避した様子を示す図である。
【図１１】プログラムを更新する処理を示すシーケンス図である。
【図１２】ＯＵＳの処理を示すフローチャートである。
【図１３】ＳＣＳの処理を示すフローチャートである。
【図１４】プロセスの消滅の処理を示すフローチャートである。
【図１５】プログラムを更新する処理を示すシーケンス図である。
【図１６】ＯＵＳの処理を示すフローチャートである。
【図１７】消滅順番を示す図である。
【図１８】ＳＣＳの処理を示すフローチャートである。
【図１９】固定エリアを表すメモリマップを示す図である。
【図２０】ＩＭＨの処理を示すシーケンス図である。
【図２１】ＩＭＨの処理を示すフローチャートである。
【図２２】記憶領域情報を示す図である。
【符号の説明】
１…融合機
２…ソフトウェア群
３…融合機起動部
４…ハードウェア資源
５…アプリケーション層
６…プラットフォーム
９…コントロールサービス層
１０…ハンドラ層
１１…白黒レーザプリンタ（Ｂ＆Ｗ　ＬＰ）
１２…カラーレーザプリンタ（Ｃｏｌｏｒ　ＬＰ）
１３…ハードウェアリソース
２１…プリンタアプリ
２２…コピーアプリ
２３…ファックスアプリ
２４…スキャナアプリ
２５…ネットファイルアプリ
３１…ネットワークコントロールサービス（ＮＣＳ）
３２…デリバリーコントロールサービス（ＤＣＳ）
３３…オペレーションパネルコントロールサービス（ＯＣＳ）
３４…ファックスコントロールサービス（ＦＣＳ）
３５…エンジンコントロールサービス（ＥＣＳ）
３６…メモリコントロールサービス（ＭＣＳ）
３７…ユーザインフォメーションコントロールサービス（ＵＣＳ）
３８…システムコントロールサービス（ＳＣＳ）
３９…システムリソースマネージャ（ＳＲＭ）
４０…ファックスコントロールユニットハンドラ（ＦＣＵＨ）
４１…イメージメモリハンドラ（ＩＭＨ）
４２…リモートサービス（ＲＳ）
４３…オンデマンドアップデートサービス（ＯＵＳ）
５３…アプリケーションプログラムインターフェース（ＡＰＩ）
５４…エンジンＩ／Ｆ
５５…エンジンファーム
６０…コントローラ
６１…ＣＰＵ
６２…システムメモリ（ＭＥＭ−Ｐ）
６３…ノースブリッジ（ＮＢ）
６４…サウスブリッジ（ＳＢ）
６５…ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ　Ｇｒａｐｈｉｃｓ　Ｐｏｒｔ）
６６…ＡＳＩＣ
６７…ローカルメモリ（ＭＥＭ−Ｃ）
６８…ハードディスク装置（ＨＤＤ）
６９…フラッシュメモリ
７０…オペレーションパネル
７１、７２、７３、７４、７６…メモリマップ
７５…ＶＭ
８０…ファックスコントロールユニット（ＦＣＵ）
８１…アプリＡ
８２…アプリＢ
９０…ＵＳＢデバイス
１００…ＩＥＥＥ１３９４デバイス
１１０…エンジン部
【図１】
2004110731.tif 000003
【図２】
2004110731.tif 000004
【図３】
2004110731.tif 000005
【図４】
2004110731.tif 000006
【図５】
2004110731.tif 000007
【図６】
2004110731.tif 000008
【図７】
2004110731.tif 000009
【図８】
2004110731.tif 000010
【図９】
2004110731.tif 000011
【図１０】
2004110731.tif 000012
【図１１】
2004110731.tif 000013
【図１２】
2004110731.tif 000014
【図１３】
2004110731.tif 000015
【図１４】
2004110731.tif 000016
【図１５】
2004110731.tif 000017
【図１６】
2004110731.tif 000018
【図１７】
2004110731.tif 000019
【図１８】
2004110731.tif 000020
【図１９】
2004110731.tif 000021
【図２０】
2004110731.tif 000022
【図２１】
2004110731.tif 000023
【図２２】
2004110731.tif 000024