(57)【特許請求の範囲】
【請求項１】
プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションからアクセスされて共通に利用されるプログラムとを有する画像形成装置であって、
書き換え可能メモリ上に、前記オペレーティングシステムがプロセスを実行するカーネル用領域として使用される予定の物理領域と、前記画像処理アプリケーション及びプログラムがプロセスを実行する仮想メモリ領域として使用される予定の物理領域と、前記画像処理で生成される画像データを一時的に格納するための画像メモリ領域として使用される予定の物理領域とを確保するメモリ確保手段と、
前記画像処理アプリケーション及びプログラムの起動要求があったときに、読み出し専用メモリ上に組み込まれた前記画像処理アプリケーション及びプログラムのうち前記起動要求のあった画像処理アプリケーション又はプログラムを、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域に転送する転送手段と、
前記転送手段により転送された前記画像処理アプリケーション又はプログラムを起動する起動手段と
を備えたことを特徴とする画像形成装置。
【請求項２】
前記画像処理アプリケーション及びプログラムごとに予め定められている転送先に基づいて、前記起動要求のあった前記画像処理アプリケーション又はプログラムの転送先を、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに決定する転送先判断手段を更に備えたことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記書き換え可能メモリの利用状況に基づいて、前記起動要求のあった前記画像処理アプリケーション又はプログラムの転送先を、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに決定する転送先判断手段を更に備えたことを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記転送先判断手段は、前記仮想メモリ領域として使用される物理領域の空き容量が、前記起動要求があった前記画像処理アプリケーション又はプログラムのサイズより小さいときに、前記転送先を前記画像メモリ領域として使用される物理領域に決定することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記転送先判断手段により前記転送先が前記画像メモリ領域として使用される物理領域に決定された場合に、その旨をユーザに通知する通知手段をさらに備えたことを特徴とする請求項３又は４記載の画像形成装置。
【請求項６】
前記転送手段は、前記起動要求のあった前記画像処理アプリケーション又はプログラムが前記読み出し専用メモリ上に圧縮形式で格納されているときに、圧縮形式の前記画像処理アプリケーション又はプログラムを、転送の際に伸張することを特徴とする請求項１乃至５何れか一項記載の画像形成装置。
【請求項７】
前記転送手段は、前記画像処理アプリケーション及びプログラムごとに予め定められている優先度に基づいて、前記画像処理アプリケーション又はプログラムを前記仮想メモリ領域又は画像メモリ領域として使用される物理領域に転送することを特徴とする請求項１記載の画像形成装置。
【請求項８】
前記起動手段は、前記優先度に基づいて前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに転送された前記画像処理アプリケーション又はプログラムを起動することを特徴とする請求項７記載の画像形成装置。
【請求項９】
前記プログラムは、前記画像処理アプリケーションより高い優先度を有するものであり、
前記転送手段は、優先度の高い前記プログラムを優先的に前記転送先に転送することを特徴とする請求項７又は８記載の画像形成装置。
【請求項１０】
前記転送手段は、前記起動要求があった前記画像処理アプリケーション又はプログラムに関連する他のプログラムがすでに前記書き換え可能メモリ上に存在しているときに、前記起動要求のあった前記画像処理アプリケーション又はプログラムを前記転送先に転送することを特徴とする請求項１記載の画像形成装置。
【請求項１１】
前記転送手段は、前記プログラムがすでに前記書き換え可能メモリ上に存在しているときに、前記読み出し専用メモリ上に格納された前記画像処理アプリケーションを前記転送先に転送することを特徴とする請求項１記載の画像形成装置。
【請求項１２】
前記画像処理アプリケーションは、前記転送手段，転送先判断手段および前記起動手段として動作するプログラム起動アプリをさらに備えたことを特徴とする請求項１記載の画像形成装置。
【請求項１３】
前記プログラムは、システムの制御およびリソースの管理を行うシステムコントロールサービスのプロセスを備え、
前記システムコントロールサービスのプロセスは、前記転送手段，転送先判断手段および前記起動手段として動作することを特徴とする請求項１記載の画像形成装置。
【請求項１４】
前記システムコントロールサービスのプロセスは、前記１つ以上の画像処理アプリケーション又は他のプログラムからアクセスされて共通に利用される通常モードスレッドと、前記転送手段，転送先判断手段および前記起動手段として動作するプログラム起動モードスレッドとを含んでいることを特徴とする請求項１３記載の画像形成装置。
【請求項１５】
前記画像処理アプリケーション又はプログラムの起動要求は、前記画像形成装置の起動後に行う前記画像処理アプリケーション又はプログラムごとの起動要求であることを特徴とする請求項１乃至１４何れか一項記載の画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像形成装置に係り、特にメモリ領域の配分を行う画像形成装置に関する。
【０００２】
【従来の技術】
近年、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が一般的に知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応する３種類のソフトウェアを設け、ソフトウェアの切り替えによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
このような従来の複合機は、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア（汎用ＯＳを含む）をそれぞれ別個に設ける構成となっている。
【０００４】
【発明が解決しようとする課題】
このような従来の複合機では、プリンタ、コピーおよびファクシミリなどの機能単位で、それぞれに対応する別個のソフトウェアを備えている。各ソフトウェアを実行する際に必要となるメモリ上の領域は各ソフトウェアごとにそれぞれ別個に確保されるため、各領域のサイズが各ソフトウェアのサイズに応じて過大なものとなり、メモリ上で確保または解放される領域サイズが過大となり、メモリの使用効率が悪いという問題がある。
【０００５】
また、複合機は、プリンタ、コピー、ファクシミリおよびスキャナなどの画像形成処理を行うものであるため、画像形成処理を行う過程において生成される画像データの数およびサイズは一般のＰＣ（Personal  Computer）などに比べて膨大なものとなる。このため、画像形成処理で生成される画像データを一時的に格納するための画像メモリの容量は、予め十分に確保しておく必要があり、かつ画像メモリを画像形成処理の実行中に別の目的で使用することは好ましくない。
【０００６】
さらに、複合機の動作中にプロセス実行用のメモリが消費されてプロセスの実行に支障をきたす場合もある。このような場合、画像メモリの一部をプロセス実行のために利用することも考えられるが、従来の複合機では各ソフトウェアのサイズが過大であるため、画像メモリに空きがある場合でもプロセス実行用に画像メモリを使用すると画像データの一時的な格納などが不可能になるなど、複合機で重要な画像形成処理に支障をきたしてしまう。
【０００７】
このため、メモリ全体に空きがある場合でも、プロセス実行と画像データの格納とをともに支障なく実行することが不可能な場合が多く、この点でもメモリの使用効率が悪いという問題がある。
【０００８】
例えば特開平９−１６３８０号公報には、システム設定ファイルに予めメモリ領域使用の設定を記述しておくことで、メモリの管理を行うシステムが記載されている。また、特開平１１−１２９５５８号公報には、ＲＯＭ（Read Only Memory）に収納されたプログラムをＲＯＭ或いはＲＡＭで選択的に実行することで、メモリの使用量を調整するプリンタが記載されている。
【０００９】
ところで、従来の複合機では、内部にプリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェア（汎用ＯＳを含む）をそれぞれ別個に設ける構成となっており、各ソフトウェアの開発に多大の時間を要する。
【００１０】
このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（特開２００２−８２８０６号公報）を発明し、ソフトウェア開発効率を向上させた。
【００１１】
このような複合機では、複数のアプリケーションおよびコントロールサービスのソフトウェアをそれぞれ別個のプロセスとして動作させる。したがって、各プロセスが動作する上で必要となるメモリ上の領域サイズは、プリンタ、コピー、ファクシミリなどの機能単位でソフトウェアを備えている従来の複合機に比べて小さいため、かかる特徴的な構成をメモリ管理に利用できることが好ましい。
【００１２】
この発明は上記に鑑みてなされたもので、メモリの使用効率の向上を図ることができる画像形成装置を得ることを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、プリンタ部またはスキャナ部の少なくとも一方を含む画像処理ハードウェアと、前記画像処理ハードウェアを利用して画像処理を行う１つ以上の画像処理アプリケーションと、オペレーティングシステムと、前記オペレーティングシステム上で動作し、前記１つ以上の画像処理アプリケーションからアクセスされて共通に利用されるプログラムとを有する画像形成装置であって、書き換え可能メモリ上に、前記オペレーティングシステムがプロセスを実行するカーネル用領域として使用される予定の物理領域と、前記画像処理アプリケーション及びプログラムがプロセスを実行する仮想メモリ領域として使用される予定の物理領域と、前記画像処理で生成される画像データを一時的に格納するための画像メモリ領域として使用される予定の物理領域とを確保するメモリ確保手段と、前記画像処理アプリケーション及びプログラムの起動要求があったときに、読み出し専用メモリ上に組み込まれた前記画像処理アプリケーション及びプログラムのうち前記起動要求のあった画像処理アプリケーション又はプログラムを、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域に転送する転送手段と、前記転送手段により転送された前記画像処理アプリケーション又はプログラムを起動する起動手段とを備えたことを特徴とする。
【００１４】
この請求項１の発明では、領域確保手段によって、あらかじめ定められた容量の画像メモリ領域と、各プログラムが実行時に格納される仮想メモリ領域とを書き換え可能メモリに確保しておく。画像メモリ領域のあらかじめ定められた容量は、画像形成装置に搭載されている機能に応じて画像データの格納に必要な容量を予想して十分なサイズに定めておけばよい。
【００１５】
そして、画像形成装置の実行中に、プログラムの起動要求があったときに、起動要求のあったプログラムを仮想メモリ領域又は画像メモリ領域に転送し、転送したプログラムを起動手段によって起動することで、起動要求のあったプログラムを、仮想メモリ領域又は画像メモリ領域に転送して実行することができる。
【００１６】
すなわち、読み出し専用メモリ上に格納されたプログラムが書き換え可能メモリの仮想メモリ領域に限られず画像メモリ領域でも実行可能となるため、仮想メモリ領域の容量制限などにより仮想メモリ領域に起動要求のあったプログラムを転送することが不可能な場合でも、仮想メモリ領域の代わりに画像メモリ領域にプログラムを転送して起動できる。従って、この請求項１の発明によれば、画像形成処理に支障をきたすことなく、書き換え可能メモリの利用効率を高めることが可能となる。
【００１７】
また、請求項２にかかる発明は、前記画像処理アプリケーション及びプログラムごとに予め定められている転送先に基づいて、前記起動要求のあった前記画像処理アプリケーション又はプログラムの転送先を、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに決定する転送先判断手段を更に備えたことを特徴とする。
【００１８】
この請求項２の発明によれば、プログラムの起動要求があったときに、プログラムごとに予め定められている転送先に基づいて、プログラムを仮想メモリ領域または画像メモリ領域に転送して実行することができる。
【００１９】
また、請求項３にかかる発明は、前記書き換え可能メモリの利用状況に基づいて、前記起動要求のあった前記画像処理アプリケーション又はプログラムの転送先を、前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに決定する転送先判断手段を更に備えたことを特徴とする。
【００２０】
この請求項３の発明によれば、プログラムの起動要求があったときに、書き換え可能メモリの利用状況に基づいて、プログラムを仮想メモリ領域または画像メモリ領域に転送して実行することができる。
【００２１】
ここで、書き換え可能メモリの利用状況とは、仮想メモリ領域の空き容量、仮想メモリ領域と画像メモリ領域の割合、書き換え可能メモリの容量など種々の条件があげられるが、この発明では特に限定されるものではない。
【００２２】
すなわち、この発明によれば、このような書き換え可能メモリの利用状況に基づき、読み出し専用メモリ上に格納されたプログラムが書き換え可能メモリの仮想メモリ領域に限られず画像メモリ領域でも実行可能となるため、仮想メモリ領域の容量制限などにより仮想メモリ領域に起動要求のあったプログラムを転送することが不可能な場合でも、仮想メモリ領域の代わりに画像メモリ領域にプログラムを転送して起動することによりプロセスの生成が可能となる。
【００２４】
本発明によれば、サイズの比較的小さな多数のプログラムにより起動される複数のプロセスによりユーザサービスの提供を行う構成としているため、各プロセスの生成および消滅で書き換えメモリ上に確保および解放される領域のサイズも比較的小さくなり、画像メモリ領域でプロセスの生成を行った場合でも、プリント、コピーなどの機能単位の大きなサイズのプログラムで構成される従来の画像形成装置に比べて、画像形成処理に及ぼす影響は小さい。
【００２５】
従って、この発明によれば、画像形成処理に支障をきたすことなく、書き換え可能メモリの利用効率を高めることが可能となる。
【００２６】
また、請求項４にかかる発明は、前記転送先判断手段は、前記仮想メモリ領域として使用される物理領域の空き容量が、前記起動要求があった前記画像処理アプリケーション又はプログラムのサイズより小さいときに、前記転送先を前記画像メモリ領域として使用される物理領域に決定することを特徴とする。
【００２７】
この請求項４の発明によれば、仮想メモリ領域の容量制限によりプロセス生成が不可能な場合でも、画像メモリ領域でプロセスの生成が可能となり、メモリの利用効率を向上させることができる。
【００２８】
また、請求項５にかかる発明は、前記転送先判断手段により前記転送先が前記画像メモリ領域として使用される物理領域に決定された場合に、その旨をユーザに通知する通知手段をさらに備えたことを特徴とする。
【００２９】
この請求項５の発明によれば、画像メモリ領域が消費されることを事前に画像形成装置のユーザに報知することができ、ユーザの便宜が図られる。
【００３０】
また、請求項６にかかる発明は、前記転送手段は、前記起動要求のあった前記画像処理アプリケーション又はプログラムが前記読み出し専用メモリ上に圧縮形式で格納されているときに、圧縮形式の前記画像処理アプリケーション又はプログラムを、転送の際に伸張することを特徴とする。
【００３１】
この請求項６の発明によれば、読み出し専用メモリの容量制限のためプログラムを通常の形式で組み込めない場合でも、読み出し専用メモリに圧縮形式のプログラムを組み込めば転送時に伸張するので、読み出し専用メモリの容量に制限がある場合でも、多数のプログラムにより多機能のユーザサービスを提供することができる。
【００３２】
また、請求項７にかかる発明は、前記転送手段は、前記画像処理アプリケーション及びプログラムごとに予め定められている優先度に基づいて、前記画像処理アプリケーション又はプログラムを前記仮想メモリ領域又は画像メモリ領域として使用される物理領域に転送することを特徴とする。
【００３３】
この請求項７の発明によれば、プログラムの実行に優先度が設けられている場合でも優先度に従ってプログラムを、仮想メモリ領域又は画像メモリ領域に転送することができる。
【００３４】
また、請求項８にかかる発明は、前記起動手段は、前記優先度に基づいて前記仮想メモリ領域又は画像メモリ領域として使用される物理領域の何れかに転送された前記画像処理アプリケーション又はプログラムを起動することを特徴とする。
【００３５】
この請求項８の発明によれば、プログラムの実行に優先度が設けられている場合でも優先度に従ってプログラムの起動を行うことができ、プログラムの起動が不可能な状態を回避することができる。
【００３６】
また、請求項９にかかる発明は、前記プログラムは、前記画像処理アプリケーションより高い優先度を有するものであり、前記転送手段は、優先度の高い前記プログラムを優先的に前記転送先に転送することを特徴とする。
【００３７】
この請求項９の発明によれば、コントロールサービス層の上で動作するユーザサービスを起動する前にコントロールサービスを起動することができ、コントロールサービスのプロセスが生成されていないことに起因してユーザサービスのプロセス生成が不可能になるという障害を未然に防止することができる。
【００３８】
また、請求項１０にかかる発明は、前記転送手段は、前記起動要求があった前記画像処理アプリケーション又はプログラムに関連する他のプログラムがすでに前記書き換え可能メモリ上に存在しているときに、前記起動要求のあった前記画像処理アプリケーション又はプログラムを前記転送先に転送することを特徴とする。
【００３９】
この請求項１０の発明によれば、関連するプログラムがまだ起動されていないことに起因するコントロールサービスまたはユーザサービスの起動時の障害を防止することができ、起動順序に沿ったプログラム実行を行うことができる。
【００４０】
また、請求項１１にかかる発明は、前記転送手段は、前記プログラムがすでに前記書き換え可能メモリ上に存在しているときに、前記読み出し専用メモリ上に格納された前記画像処理アプリケーションを前記転送先に転送することを特徴とする。
【００４１】
この請求項１１の発明によれば、コントロールサービス層の上で動作するユーザサービスを起動する前にコントロールサービスを起動することができ、コントロールサービスのプロセスが生成されていないことに起因するコントロールサービスのプロセス生成が不可能になるという障害を未然に防止することができる。
【００４２】
また、請求項１２にかかる発明は、前記画像処理アプリケーションは、前記転送手段，転送先判断手段および前記起動手段として動作するプログラム起動アプリをさらに備えたことを特徴とする。
【００４３】
この請求項１２の発明によれば、コントロールサービスとユーザサービス間のアプリケーションインタフェースを利用してコントロールサービスまたはユーザサービスの起動要求の受信をすることができ、コントロールサービスおよびユーザサービスと別個に転送先判断手段や起動手段を設ける場合に比べて、ソフトウェア開発の労力を軽減することができる。
【００４４】
また、請求項１３にかかる発明は、前記プログラムは、システムの制御およびリソースの管理を行うシステムコントロールサービスのプロセスを備え、前記システムコントロールサービスのプロセスは、前記転送手段，転送先判断手段および前記起動手段として動作することを特徴とする。
【００４５】
この請求項１３の発明によれば、別途、転送手段，転送先判断手段や起動手段のプロセスを設ける場合に比べて、ソフトウェア開発の労力を軽減することができる。
【００４６】
また、請求項１４にかかる発明は、前記システムコントロールサービスのプロセスは、前記１つ以上の画像処理アプリケーション又は他のプログラムからアクセスされて共通に利用される通常モードスレッドと、前記転送手段，転送先判断手段および前記起動手段として動作するプログラム起動モードスレッドとを含んでいることを特徴とする。
【００４７】
この請求項１４の発明によれば、同一のシステムコントロールサービスのプロセス内で、各スレッドを並列実行することができ、ユーザサービスを停止せずに起動要求のあったコントロールサービスまたはユーザサービスの起動を実現することができる。
【００４８】
また、請求項１５にかかる発明は、前記画像処理アプリケーション又はプログラムの起動要求は、前記画像形成装置の起動後に行う前記画像処理アプリケーション又はプログラムごとの起動要求であることを特徴とする。
【００４９】
この請求項１５の発明によれば、画像形成装置の起動後、プログラムの起動要求があったときに、起動要求のあったプログラムを、仮想メモリ領域又は画像メモリ領域に転送して実行することができる。
【００５０】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像形成装置の好適な実施の形態を詳細に説明する。
（実施の形態１）
図１は、この発明の実施の形態１である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒ラインプリンタ（B&W  LP）１０１と、カラーラインプリンタ（Color  LP）１０２と、スキャナ、ファクシミリなどのハードウェアリソース１０３などを有するとともに、プラットホーム１２０とアプリケーション１３０とから構成されるソフトウェア群１１０と、複合機起動部１４０とを備えている。
【００５１】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するＳＲＭ（システムリソースマネージャ）１２３と、汎用ＯＳ１２１とを有する。
【００５２】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とから構成される。
【００５３】
なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００５４】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００５５】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００５６】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００５７】
ＳＣＳ１２２のプロセスは、プロセス内に通常モードスレッドとプログラム起動モードスレッドとを起動し、各スレッドを並列実行する。通常モードスレッドは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。また、プログラム起動モードスレッドは、アプリケーションやコントロールサービスの起動要求のメッセージを受信し、後述するＳＤＲＡＭ２０３の利用状況に従って、起動要求のあったアプリケーションやコントロールサービスのプログラムをフラッシュＲＯＭ２０４からＳＤＲＡＭ２０３にコピーして起動する。
【００５８】
ＳＣＳ１２２のプログラム起動モードスレッドは、本発明における転送手段，転送先判断手段、起動手段および通知手段を構成する。なお、ＳＣＳ１２２のプログラム起動モードスレッドの動作の詳細については後述する。
【００５９】
ＥＣＳ１２４のプロセスは、白黒ラインプリンタ（B&W  LP）１０１、カラーラインプリンタ（Color  LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０３のエンジンの制御を行う。
【００６０】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００６１】
ＯＣＳ１２６のプロセスは、オペレータと本体制御間の情報伝達手段となる操作パネル（オペレーションパネル）の制御を行う。
【００６２】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００６３】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。
【００６４】
アプリケーション１３０は、プリンタ、コピー、スキャナまたはファクシミリなどの画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うものである。
【００６５】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６とを有している。
【００６６】
複合機起動部１４０は、複合機１００の電源投入時にまずはじめに実行され、ＳＤＲＡＭ２０３に後述する画像メモリ領域、仮想メモリ領域およびカーネル用領域を確保し、汎用ＯＳ１２１、プラットホーム１２０やアプリケーション１３０を起動する。なお、複合機起動部１４０は、本発明における領域確保手段を構成する。
【００６７】
図２は、図１に示した実施の形態１の複合機のハードウェア構成図である。図２に示すように、この複合機は、ＣＰＵ２０２、ＳＤＲＡＭ２０３、ＳＲＡＭ２０８、フラッシュメモリ２０４、ＨＤＤ２０５およびネットワークインターフェースコントローラ２０９などをＡＳＩＣ２０１に接続したコントローラボード２００と、オペレーションパネル２１０と、ファックスコントロールユニット（ＦＣＵ）２２０と、ＵＳＢデバイス２３０と、ＩＥＥＥ1394デバイス２４０と、エンジン部２５０とから構成されている。
【００６８】
オペレーションパネル２１０は、ＡＳＩＣ２０１に直接接続されている。ＦＣＵ２２０、ＵＳＢデバイス２３０、ＩＥＥＥ1394デバイス２４０およびエンジン部２５０は、ＰＣＩバスを介してＡＳＩＣ２０１に接続されている。例えばＦＣＵ２２０は、電話網に接続されている。また、ＵＳＢデバイス２３０およびＩＥＥＥ１３９４デバイス２４０は、他の端末に接続されている。
【００６９】
フラッシュメモリ（以下、「ＲＯＭ」という。）２０４は、本発明における読み出し専用メモリを構成するものであり、上述のプラットホーム１２０およびアプリケーション１３０を構成する各コントロールサービス，ＳＲＭ１２３，各アプリのプログラムが格納されている。なお、コントロールサービスまたはアプリの一部又は全部は、圧縮形式で格納されている。また、ＲＯＭ２０４には、後述する設定ファイルも格納されている。
【００７０】
ＳＲＡＭ２０８は、バッテリを用いた不揮発性メモリである。ネットワークインターフェースコントローラ２０９は、ネットワークに接続されている他の機器とＭＡＣアドレスなどを用いて通信する。
【００７１】
ＳＤＲＡＭ（以下、「ＲＡＭ」という。）２０３は、本発明における書き換え可能メモリを構成するものである。このＲＡＭ２０３には、複合機１００の起動時に、複合機起動部１４０によって、汎用ＯＳ１２１などが使用するカーネル用の領域と、画像データを格納する画像メモリ領域と、各種アプリやコントロールサービスが使用する仮想メモリ領域が確保される。
【００７２】
図３（ａ）は、実施の形態１にかかる複合機１００におけるＲＡＭ２０３のメモリマップを示す説明図である。また、図３（ｂ）は、仮想メモリ領域のメモリマップを示す説明図である。
【００７３】
画像メモリ領域は、複合機１００の起動時、複合機起動部１４０により、搭載されているアプリの数などから予想される画像データの格納に十分なサイズで確保される。また、画像メモリ領域はＭＣＳ１２５により管理される。
【００７４】
仮想メモリ領域は、ＲＡＭ２０３の画像メモリ領域を除いた領域の中から確保される。ＳＣＳ１２２のプログラム起動モードスレッドは、ＲＯＭ２０４に格納されている各アプリおよび各コントロールサービスのプログラムをこの仮想メモリ領域にコピーする。仮想メモリ領域は、複合機１００の起動時に複合機起動部１４０によってＲＡＭ２０３に確保される。しかし、実際にプログラムが占有する領域は、各プログラムがその実行時（ロード時）にコピーされるときに確保されることになる。
【００７５】
このように、ＲＡＭ２０３にコピーされたプログラムにアクセスすることにより、ＲＡＭ２０３がＲＯＭとみなされるため、プログラムの実行処理速度が向上することになる。
【００７６】
次に、以上のように構成された実施の形態１にかかる複合機１００によるＲＯＭ２０４に格納されたプログラムのＲＡＭ２０３への転送およびプログラムの起動処理について説明する。
【００７７】
実施の形態１の複合機１００では、かかる転送処理および起動処理はＳＣＳ１２２のプロセスのプログラム起動モードスレッドによって通常モードスレッドと並列に実行される。このため、アプリやコントロールサービスのプログラム起動要求があった場合でも、ＳＣＳ１２２によるシステム制御やリソース管理などのユーザサービス提供時に行われる処理を停止することなく、転送処理とプログラム起動処理を実行することが可能となる。
【００７８】
図４は、ＳＣＳ１２２のプロセスのプログラム起動モードスレッドによって実行されるプログラムの転送処理および起動処理の手順を示すフローチャートである。
【００７９】
まず、複合機１００の動作中に、ＲＡＭ２０３にまだロードされていないプログラムの起動要求メッセージがＳＣＳ１２２のプロセスに対して送信される。ここで、この起動要求メッセージは、例えばユーザがオペレーションパネル２１０でコピー、プリンタ、ファックスなどの機能を選択したときに、キーイベントをＯＣＳ１２６で取得することによって、選択された機能に該当するプログラムの起動要求として生成される。
【００８０】
生成された起動要求メッセージは、ＳＣＳ１２２のプロセスに対しメッセージ送信というプロセス間通信によって送信される。例えば、ユーザがファックス機能を選択した場合には、ファックスアプリ１１３およびＦＣＳ１２７のプログラムの起動要求メッセージがＳＣＳ１２２のプロセスに送信される。また、この起動要求メッセージには、ネットワークに接続された他の複合機からＮＣＳ１２８を介してＳＣＳ１２２に送信されるようなものも含まれる。ＳＣＳ１２２のプログラム起動モードスレッドは、アプリやコントロールサービスのプログラム起動要求メッセージを受信すると（ステップＳ４０１）、ＲＯＭ２０４に格納されている設定ファイルを読み込む（ステップＳ４０２）。
【００８１】
図５は、実施の形態１の複合機１００で使用される設定ファイルの一例を示す説明図である。図５に示すように、設定ファイルには、ＲＯＭ２０４に格納されたアプリおよびコントロールサービスのプログラム名と、各プログラム名に対応した優先度が記述されている。この優先度は、プログラムの起動順序を示すものである。例えば、図５において優先度１のＥＣＳプログラム（ｅｃｓ＿ｐｒｇ）は、優先度２のコピーアプリプログラム（ｃｏｐｙ＿ａｐｐ）より先に起動されていなければならないことを示している。
【００８２】
図６は、実施の形態２の複合機１００で使用される設定ファイルの他の一例を示す説明図である。図６の設定ファイルでは、ＲＯＭ２０４に格納されたアプリおよびコントロールサービスのプログラム名と，各プログラム名に対応した転送先と，各プログラム名に対応した優先度と，各プログラム名に対応したＭＵＳＴ／ＷＡＮＴが記述されている。
【００８３】
図６の転送先は、プログラムの転送先を示すものである。例えば、図６において転送先ＶＭのＥＣＳプログラム（ｅｃｓ＿ｐｒｇ）は、ＲＡＭ２０３の仮想メモリ領域に転送される。また、転送先ＰＲＥＭＡＰのＦＣＳプログラム（ｆｃｓ＿ｐｒｇ）は、ＲＡＭ２０３の画像メモリ領域に転送される。
【００８４】
なお、転送先がＶＭ，ＰＲＥＭＡＰのプリンタアプリプログラム（ｐｒｉｎｔ＿ａｐｐ）は、まずＲＡＭ２０３の仮想メモリ領域に転送され、仮想メモリ領域に転送できないときにＲＡＭ２０３の画像メモリ領域に転送される。
【００８５】
図６のＭＵＳＴ／ＷＡＮＴは、必ず転送する必要があるか否かを表すものである。ＭＵＳＴは、そのプログラムが必ず転送する必要のあるプログラムであることを表している。また、ＷＡＮＴは、そのプログラムが必ずしも転送する必要のないプログラムであることを表している。
【００８６】
例えば、図６においてＭＵＳＴのＥＣＳプログラム（ｅｃｓ＿ｐｒｇ）は、必ず仮想メモリ領域に転送される。また、ＷＡＮＴのＦＣＳプログラム（ｆｃｓ＿ｐｒｇ）は、必ずしもＲＡＭ２０３の画像メモリ領域に転送されない。
【００８７】
ステップＳ４０２で読み込む設定ファイルは、図５，図６に示した設定ファイルの何れでも良いが、以下、図５の設定ファイルの例について説明する。ＳＣＳ１２２のプログラム起動モードスレッドでは、読み込んだ設定ファイルから起動要求のあったプログラムの優先度より高い優先度のプログラムがＲＡＭ２０３にすでにロードされているか否かをチェックする（ステップＳ４０３）。
【００８８】
そして、まだロードされていない場合には、起動順序が正しくないため起動要求のあったプログラムの転送および起動は行わず処理を終了する。一方、すでにＲＡＭ２０３にロードされている場合には、起動要求のあったコントロールサービスまたはアプリのＲＯＭ２０４に格納されているプログラムのサイズをファイル情報などから取得する（ステップＳ４０４）。ここで、プログラムがＲＯＭ２０４に圧縮形式で格納されている場合には、圧縮形式のプログラムのファイル情報などから伸張後のサイズを取得する。
【００８９】
ついで、ＲＡＭ２０３の仮想メモリ領域の空き容量を取得し（ステップＳ４０５）、ステップＳ４０４で取得したプログラムサイズと比較する（ステップＳ４０６）。
【００９０】
そして、比較の結果、仮想メモリ領域の空き容量がプログラムサイズ以上のときには、ＲＯＭ２０４上のプログラムが圧縮形式か否かを判断する（ステップＳ４０７）。圧縮形式でない場合には、起動要求のあったプログラムを単にＲＯＭ２０４からＲＡＭ２０３にコピーする（ステップＳ４０９）。起動要求のあったプログラムが圧縮形式でＲＯＭ２０４に格納されている場合には、伸張処理を行った上で（ステップＳ４０８）、仮想メモリ領域にコピーする（ステップＳ４０９）。そして、仮想メモリ領域にコピーされたプログラムを起動する（ステップＳ４１５）。
【００９１】
ステップＳ４０６の比較の結果、仮想メモリ領域の空き容量がプログラムサイズより小さいときには、画像メモリ領域をプログラムの実行に使用する旨のメッセージをオペレーションパネルに表示するなどを行ってユーザに通知し（ステップＳ４１０）、ユーザの応答待ち状態となる。ユーザからプログラムを起動しない旨の応答があった場合には（ステップＳ４１１）、プログラムの転送処理および起動処理を行わずに処理を終了する。
【００９２】
ユーザからプログラムを起動する旨の応答があった場合には（ステップＳ４１１）、ステップＳ４０７およびＳ４０８と同様に、ＲＯＭ２０４に格納されたプログラムが圧縮形式の場合に伸張処理を行い（ステップＳ４１２、Ｓ４１３）、圧縮形式でない場合にそのままＲＯＭ２０４上のプログラムをＲＡＭ２０３の画像メモリ領域にコピーする（ステップＳ４１４）。そして、画像メモリ領域にコピーされたプログラムを起動する（ステップＳ４１５）。
【００９３】
これらの処理によって、プログラムの優先度と仮想メモリ領域の空き容量に従って、起動要求のあったコントロールサービスまたはアプリのプログラムがＲＯＭ２０４からＲＡＭ２０３にコピーされて起動され、プロセスが生成されることになる。
【００９４】
次に、このようなプログラムの転送および起動処理を、具体的な例を示して説明する。図７は、実施の形態１にかかる複合機１００におけるＲＯＭ２０４上のファックスアプリのプログラムｆａｘ＿ａｐｐとＦＣＳ１２７のプログラムｆｃｓ＿ｐｒｇの配置を一例として示した説明図である。
【００９５】
図７に示すように、ｆａｘ＿ａｐｐは圧縮形式となっており、圧縮前のプログラムサイズは８００ｋＢｙｔｅ、圧縮後のプログラムサイズは４００ｋＢｙｔｅとなっている。また、ｆｃｓ＿ｐｒｇは圧縮形式ではなく、プログラムサイズは５００ｋＢｙｔｅとなっている。
【００９６】
図８（ａ）は、ＲＡＭ２０３の容量が６４ＭＢｙｔｅであるときのプログラムの転送処理および起動処理の実行前のＲＡＭ２０３の状態を示す説明図である。図８（ｂ）は、図７に示したＲＯＭ２０４上のプログラムを、仮想メモリの空き容量と図５に示した設定ファイルの優先度に基づいてＲＡＭ２０３へ転送して起動処理を実行した後のＲＡＭ２０３の状態を示す説明図である。図８（ａ）に示すように、実行前では、ＲＡＭ２０３の仮想メモリ領域の空き容量は８００ｋＢｙｔｅとなっている。
【００９７】
ここで、ユーザ操作によりファックスアプリ１１３とＦＣＳ１２７のプログラムの起動要求があった場合を考える。なお、図８（ａ）において、他のアプリ、他のコントロールサービスおよびＳＲＭ１２３はすでに仮想メモリ領域にロードされているものと仮定する。
【００９８】
この場合、まずファックスアプリ１１３のプログラムｆａｘ＿ａｐｐの転送処理を開始する。図５の設定ファイルではｆａｘ＿ａｐｐの優先度が４であり、ｆｃｓ＿ｐｒｇの優先度が３で、ｆｃｓ＿ｐｒｇの優先度の方がｆａｘ＿ａｐｐより高い。また、ＲＡＭ２０３にはｆｃｓ＿ｐｒｇがまだロードされておらず存在しないため、ｆａｘ＿ａｐｐのＲＡＭ２０３への転送および起動はｆｃｓ＿ｐｒｇの転送および起動後に行われる。
【００９９】
ｆｃｓ＿ｐｒｇのプログラムサイズが５００ｋＢｙｔｅで、仮想メモリ領域の空き容量８００ｋＢｙｔｅより小さいため、ｆｃｓ＿ｐｒｇは仮想メモリ領域にコピーされて起動される。これにより、仮想メモリ領域の空き容量は３００ｋＢｙｔｅに減少する。
【０１００】
ついで、ｆａｘ＿ａｐｐの転送処理を開始する。すでにｆｃｓ＿ａｐｐがＲＡＭ２０３の仮想メモリ領域にロードされて存在しているため、ｆａｘ＿ａｐｐの転送が可能な状態となっている。しかし、ｆａｘ＿ａｐｐの圧縮前のプログラムサイズが８００ｋＢｙｔｅで、現時点における仮想メモリ領域の空き容量３００ｋＢｙｔｅより大きいため、ｆａｘ＿ａｐｐの転送先は仮想メモリ領域ではなく画像メモリ領域と決定される。そして、図８（ｂ）に示すように、ｆａｘ＿ａｐｐは伸張されて画像メモリ領域にコピーされ、その後起動される。
【０１０１】
このように実施の形態１にかかる複合機１００では、ＳＣＳ１２２のプログラム起動モードスレッドがアプリまたはコントロールサービスの起動要求メッセージを受信したときに、ＲＯＭ２０４に格納されている起動要求のあったアプリまたはコントロールサービスのプログラムを、仮想メモリ領域の空き容量に基づいて仮想メモリ領域にコピーするか、あるいは画像メモリ領域にコピーするかを決定している。
【０１０２】
決定された転送先にプログラムをコピーして起動しているので、実施の形態１にかかる複合機１００は、仮想メモリ領域の空き容量が十分でない場合であっても、画像メモリ領域を利用してプログラムの起動が可能となり、ＲＡＭ２０３の利用効率を高めることができる。
【０１０３】
とくに、ファックスアプリ１１３やＦＣＳ１２７のプログラムサイズの例に示すように、各コントロールサービスおよび各アプリのプログラムサイズは、せいぜい１ＭＢｙｔｅ以内の小さなものである。したがって、ＲＡＭ２０３にプロセス単位で確保および解放される領域のサイズは小さくなり、画像メモリ領域にプログラムをコピーした場合でも画像形成処理に及ぼす影響は小さくなる。このため、画像形成処理にかかるユーザサービスに支障をきたすことなく、メモリの利用効率を高めることが可能となる。
【０１０４】
また、実施の形態１にかかる複合機１００では、設定ファイルに定められたプログラムの優先度に基づいてプログラムのＲＡＭ２０３へのコピーの可否を判断しているので、コントロールサービスが起動した状態で、コントロールサービス層の上で動作する各アプリを起動することができ、起動順序の誤りが原因で各アプリのプロセス生成が不可能になるという障害を防止することができる。
【０１０５】
なお、実施の形態１にかかる複合機１００では、優先度を設定した設定ファイルを用いてプログラムのＲＡＭ２０３へのコピーの可否を判断しているが、設定ファイルを用いずにＳＣＳ１２２のプログラムに各プログラムごとの優先度の記述を組み込んで判断するように構成してもよい。
【０１０６】
また、実施の形態１にかかる複合機１００では、設定ファイルをＲＯＭ２０４に組み込んでいるが、ＨＤＤ２０５などに格納して、設定ファイルを任意に書き換え可能として構成しても良い。
【０１０７】
さらに、実施の形態１の複合機１００では、ＲＡＭ２０３の利用状況として仮想メモリ領域の空き容量を採用しているが、ＲＡＭ２０３の全体容量や仮想メモリ領域と画像メモリ領域の割合など他の利用状況に基づいて転送先を判断しても良い。
（実施の形態２）
実施の形態１の複合機１００では、ＲＡＭ２０３へのプログラムのコピーの可否を、優先度に基づいて判断するものであったが、この実施の形態２にかかる複合機１００は、起動要求のあったプログラムに関連する他のプログラムがすでにＲＡＭ２０３に存在しているか否かをチェックしてコピーの可否を判断するものである。
【０１０８】
実施の形態２にかかる複合機１００の構成、ハードウェア構成およびＲＡＭ２０３の仮想メモリ領域と画像メモリ領域のメモリマップについては、実施の形態１の複合機１００と同様であるので説明を省略する。
【０１０９】
実施の形態２の複合機１００におけるＳＣＳ１２２のプログラム起動モードスレッドによるプログラムの転送処理および起動処理は次のように行われる。図９は、ＳＣＳ１２２のプロセスのプログラム起動モードスレッドによって実行されるプログラムの転送処理および起動処理の手順を示すフローチャートである。
【０１１０】
まず、ＳＣＳ１２２のプログラム起動モードスレッドでは、実施の形態１と同様にアプリやコントロールサービスのプログラム起動要求メッセージを受信すると（ステップＳ８０１）、ＲＯＭ２０４に格納されている設定ファイルを読み込む（ステップＳ８０２）。
【０１１１】
図１０は、実施の形態２の複合機１００で使用される設定ファイルの一例を示す説明図である。図１０に示すように、設定ファイルには、ＲＯＭ２０４に格納されたアプリケーションおよびコントロールサービスのプログラム名と、各プログラムに関連する他のプログラムのプログラム名が記述されている。
【０１１２】
この関連するプログラムは、プログラムの起動時に、すでに実行されている必要があるプログラムを示すものである。例えば、図１０においてファックスアプリプログラム（ｆａｘ＿ａｐｐ）は、ＦＣＳプログラム（ｆｃｓ＿ｐｒｇ）とｐｒｉｎｔ＿ｓｕｂがともにＲＡＭ２０３にロードされて実行されている状態で、起動しなければならないことを示している。
【０１１３】
ＳＣＳ１２２のプログラム起動モードスレッドは、読み込んだ設定ファイルから起動要求のあったプログラムに関連するプログラム名を取得し、当該関連するプログラムがＲＡＭ２０３にすでにロードされているか否かをチェックする（ステップＳ８０３）。
【０１１４】
まだロードされていない場合には、起動順序が正しくないため起動要求のあったプログラムの転送および起動は行わず処理を終了する。一方、すでにＲＡＭ２０３にロードされている場合には、起動要求のあったコントロールサービスまたはアプリのプログラムのサイズをファイル情報などから取得する（ステップＳ８０４）。ここで、プログラムがＲＯＭ２０４に圧縮形式で格納されている場合には、圧縮形式のプログラムのファイル情報などから伸張後のサイズを取得する。
【０１１５】
これ以降の転送処理および起動処理（ステップＳ８０５〜Ｓ８１５）については、実施の形態１で説明した図４のステップＳ４０５からＳ４１５までの処理と同様であるため説明を省略する。
【０１１６】
次に、このようなプログラムの転送および起動処理を、具体的な例を示して説明する。図１１（ａ）は、ＲＡＭ２０３の容量が９６ＭＢｙｔｅであるときのプログラムの転送処理および起動処理の実行前のＲＡＭ２０３の状態を示す説明図である。図１１（ｂ）は、図７に示したＲＯＭ２０４上のプログラムを、仮想メモリの空き容量と図１０に示した設定ファイルの関連プログラムに基づいてＲＡＭ２０３へ転送して起動処理を実行した後のＲＡＭ２０３の状態を示す説明図である。
【０１１７】
図１１（ａ）に示すように、実行前では、ＲＡＭ２０３の仮想メモリ領域の空き容量は１．５ＭＢｙｔｅとなっている。ここで、ユーザ操作によりファックスアプリ１１３とＦＣＳ１２７のプログラムの起動要求があった場合を考える。なお、図１１（ａ）において、他のアプリ、他のコントロールサービスおよびＳＲＭ１２３はすでに仮想メモリ領域にロードされているものと仮定する。
【０１１８】
この場合、まずファックスアプリ１１３のプログラムｆａｘ＿ａｐｐの転送処理を開始する。ここで、図１０の設定ファイルはｆａｘ＿ａｐｐの関連プログラムがｆｃｓ＿ｐｒｇとｐｒｉｎｔ＿ｓｕｂであることを表している。
【０１１９】
ｐｒｉｎｔ＿ｓｕｂはプリンタアプリプログラムｐｒｉｎｔ＿ａｐｐの中であるためＲＡＭ２０３にロードされている。なお、ｆｃｓ＿ｐｒｇはまだロードされていない。このため、ｆａｘ＿ａｐｐのＲＡＭ２０３への転送および起動はｆｃｓ＿ｐｒｇの転送および起動後に行われる。
【０１２０】
ｆｃｓ＿ｐｒｇのプログラムサイズが５００ｋＢｙｔｅで、仮想メモリ領域の空き容量１．５ＭＢｙｔｅより小さいため、ｆｃｓ＿ｐｒｇは仮想メモリ領域にコピーされて起動される。これにより、仮想メモリ領域の空き容量は１ＭＢｙｔｅに減少する。
【０１２１】
ついで、ｆａｘ＿ａｐｐの転送処理を開始する。すでにｐｒｉｎｔ＿ａｐｐおよびｆｃｓ＿ａｐｐがＲＡＭ２０３の仮想メモリ領域にロードされて実行されているため、ｆａｘ＿ａｐｐの転送が可能な状態となっている。ｆａｘ＿ａｐｐの圧縮前のプログラムサイズが８００ｋＢｙｔｅで、現時点における仮想メモリ領域の空き容量１ＭＢｙｔｅより小さいため、ｆａｘ＿ａｐｐの転送先は仮想メモリ領域と決定される。そして、図１１（ｂ）に示すように、ｆａｘ＿ａｐｐは伸張されて仮想メモリ領域にコピーされ、その後起動される。
【０１２２】
このように実施の形態２にかかる複合機１００では、ＳＣＳ１２２のプログラム起動モードスレッドが、起動要求があったコントロールサービスまたはアプリのプログラムの実行に必要な他のプログラムがすでにＲＡＭ２０３上に存在しているときに、起動要求のあったプログラムをＲＡＭ２０３に転送して起動している。したがって、実施の形態２にかかる複合機１００は、必要なプログラムがまだ起動されていないことに起因するコントロールサービスまたはアプリの起動時のエラーの発生を防止することができ、起動順序に沿ったプログラム実行を行えるようになっている。
【０１２３】
なお、実施の形態２にかかる複合機１００では、関連プログラムを設定した設定ファイルを用いてプログラムのＲＡＭ２０３へのコピーの可否を判断しているが、設定ファイルを用いずにＳＣＳ１２２のプログラムに各プログラムごとの関連プログラムの記述を組み込んで判断するように構成してもよい。
【０１２４】
また、実施の形態２にかかる複合機１００では、設定ファイルをＲＯＭ２０４に組み込んでいるが、ハＨＤＤ２０５などに格納して、設定ファイルを任意に書き換え可能として構成しても良い。
【０１２５】
さらに、実施の形態２の複合機１００では、ＲＡＭ２０３の利用状況として仮想メモリ領域の空き容量を採用しているが、ＲＡＭ２０３の全体容量や仮想メモリ領域と画像メモリ領域の割合など他の利用状況に基づいて転送先を判断しても良い。
（実施の形態３）
実施の形態１および２にかかる複合機１００では、起動要求のあったプログラムのＲＡＭ２０３への転送処理および起動処理をＳＣＳ１２２のプログラム起動モードスレッドで行っている。この実施の形態３の複合機１００は、かかる転送処理および起動処理をアプリケーションで行うものである。
【０１２６】
図１２は、実施の形態３にかかる複合機の構成を示すブロック図である。実施の形態３の複合機１００が実施の形態１の複合機と異なる点は、図１２に示すとおり、プログラム起動アプリ１１７を備えた点である。なお、ハードウェア構成および仮想メモリ領域と画像メモリ領域のメモリマップは実施の形態１で説明した図３と同様であるので説明を省略する。
【０１２７】
プログラム起動アプリ１１７は、本発明における転送手段，転送先判断手段、起動手段および通知手段を構成するものである。プログラム起動アプリ１１７はアプリケーション層のプロセスとして動作し、アプリやコントロールサービスの起動要求のメッセージを受信する。
【０１２８】
プログラム起動アプリ１１７は、仮想メモリ領域の空き容量に従って起動要求のあったアプリやコントロールサービスのプログラムをＲＯＭ２０４からＲＡＭ２０３にコピーして起動する。また、プログラム起動アプリ１１７は、プログラムごとの優先度が設定された設定ファイルに基づいてプログラムのコピーの可否を判断する。なお。プログラム起動アプリ１１７によるプログラムのＲＡＭ２０３への転送処理および起動処理は、実施の形態１の複合機１００と同様であるため説明を省略する。
【０１２９】
このように実施の形態３にかかる複合機では、プログラムのＲＡＭ２０３への転送処理および起動処理を行うプログラム起動アプリ１１７を有しているので、コントロールサービスとアプリ間のアプリケーションインタフェース（ＡＰＩ）を利用してコントロールサービスまたはアプリの起動要求の受信をすることができる。コントロールサービスおよびアプリは、別個に転送処理および起動処理を行うプロセスを生成する場合に比べて、ソフトウェア開発の労力を軽減することができる。
【０１３０】
なお、実施の形態３にかかる複合機１００では、図１２に示すように、プログラムのＲＡＭ２０３への転送処理および起動処理を行うプロセスをアプリケーション層に設けているが、同様の機能を実行するプロセスをコントロールサービス層にＳＣＳ１２２と別個に設けた構成としても良い。
【０１３１】
前述した実施の形態１〜３では、プリンタ，ＦＡＸなどの機能単位の各アプリおよび各コントロールサービスのプログラムを、ＲＯＭ２０４からＲＡＭ２０３に転送する例について説明したが、機能単位を構成するモジュール群に限ることなく、モジュール単位に転送先を決定してもよい。
【０１３２】
例えばプリンタアプリプログラムを構成する一部のモジュール又はモジュール群を仮想メモリ領域に転送し、残りのモジュール又はモジュール群を画像メモリ領域に転送することも可能である。
【０１３３】
本発明は、上記の実施例に限定されるものではなく、本発明の範囲内で種々の変形や変更が可能である。
【０１３４】
【発明の効果】
以上説明したように、発明によれば、画像形成処理に支障を来すことなく、書き換え可能メモリの利用効率を高めることが可能な画像形成装置を実現できる。
【図面の簡単な説明】
【図１】実施の形態１にかかる複合機の構成を示すブロック図である。
【図２】実施の形態１の複合機のハードウェア構成図である。
【図３】ＳＤＲＡＭのメモリマップを示す説明図である。
【図４】実施の形態１にかかる複合機において、ＳＣＳのプロセスのプログラム起動モードスレッドによって実行されるプログラムの転送処理および起動処理の手順を示すフローチャートである。
【図５】実施の形態１の複合機で使用される設定ファイルの一例を示す説明図である。
【図６】実施の形態１の複合機で使用される設定ファイルの他の一例を示す説明図である。
【図７】実施の形態１の複合機におけるＲＯＭ上のファックスアプリのプログラムとＦＣＳのプログラムの配置を一例として示した説明図である。
【図８】実施の形態１の複合機においてＲＡＭの容量が６４ＭＢであるときのプログラムの転送処理および起動処理の実行前及び実行後のＲＡＭの状態を示す説明図である。
【図９】実施の形態２にかかる複合機において、ＳＣＳプロセスのプログラム起動モードスレッドによって実行されるプログラムの転送処理および起動処理の手順を示すフローチャートである。
【図１０】実施の形態２の複合機で使用される設定ファイルの一例を示す説明図である。
【図１１】実施の形態２の複合機において、ＲＡＭの容量が９６ＭＢであるときのプログラムの転送処理および起動処理の実行前及び実行後のＲＡＭの状態を示す説明図である。
【図１２】実施の形態３にかかる複合機の構成を示すブロック図である。
【符号の説明】
１００    複合機
１０１    白黒ラインプリンタ
１０２    カラーラインプリンタ
１０３    ハードウェアリソース
１１０    ソフトウェア群
１１１    プリンタアプリ
１１２    コピーアプリ
１１３    ファックスアプリ
１１４    スキャナアプリ
１１５    ネットファイルアプリ
１１６    工程検査アプリ
１１７    プログラム起動アプリ
１２０    プラットホーム
１２１    汎用ＯＳ
１２２    ＳＣＳ
１２３    ＳＲＭ
１２４    ＥＣＳ
１２５    ＭＣＳ
１２６    ＯＣＳ
１２７    ＦＣＳ
１２８    ＮＣＳ
１３０    アプリケーション
１４０    複合機起動部
２００    コントローラボード
２０１    ＡＳＩＣ
２０２    ＣＰＵ
２０３    ＳＤＲＡＭ（ＲＡＭ）
２０４    フラッシュメモリ（ＲＯＭ）
２０５    ＨＤＤ
２０８    ＳＲＡＭ
２０９    ネットワークインターフェースコントローラ
２１０    オペレーションパネル
２３０    ＵＳＢデバイス
２４０    ＩＥＥＥ１３９４デバイス
２５０    エンジン部
【図１】
0004001531.tif 000002
【図２】
0004001531.tif 000003
【図３】
0004001531.tif 000004
【図４】
0004001531.tif 000005
【図５】
0004001531.tif 000006
【図６】
0004001531.tif 000007
【図７】
0004001531.tif 000008
【図８】
0004001531.tif 000009
【図９】
0004001531.tif 000010
【図１０】
0004001531.tif 000011
【図１１】
0004001531.tif 000012
【図１２】
0004001531.tif 000013