(57)【要約】【課題】  利用者による使用感を向上することができる電子機器およびデータ管理プログラムを提供する。【解決手段】  ＲＡＭと、ＲＡＭとは異なる記憶部とを備えるＭＦＰは、アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造をＲＡＭ上に生成し、アプリケーションソフトウェアのプロセスからのＲＡＭ上のデータ構造に対するアクセスを管理し、ＲＡＭ上から記憶部上にデータ構造を退避させる（Ｓ７３）ことを特徴とする。【選択図】  図８
2016126421.tif 000002
【特許請求の範囲】
【請求項１】
メモリーと、
前記メモリーとは異なる記憶デバイスと、
アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を前記メモリー上に生成するデータ構造生成手段と、
前記アプリケーションソフトウェアのプロセスからの前記メモリー上の前記データ構造に対するアクセスを管理するアクセス管理手段と、
前記メモリー上から前記記憶デバイス上に前記データ構造を退避させるデータ構造退避手段とを備えることを特徴とする電子機器。
【請求項２】
前記データ構造退避手段は、前記メモリーの状態が特定の状態になった場合に前記メモリー上から前記記憶デバイス上に前記データ構造を退避させることを特徴とする請求項１に記載の電子機器。
【請求項３】
前記データ構造退避手段は、前記メモリー上から前記記憶デバイス上に前記データ構造を退避させる時点で、前記アプリケーションソフトウェアのプロセスからアクセスされる可能性が特定の程度より低い前記データ構造を前記メモリー上から前記記憶デバイス上に退避させることを特徴とする請求項１または請求項２に記載の電子機器。
【請求項４】
メモリーと、
前記メモリーとは異なる記憶デバイスとを備える電子機器によって実行されるデータ管理プログラムであって、
アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を前記メモリー上に生成するデータ構造生成手段、
前記アプリケーションソフトウェアのプロセスからの前記メモリー上の前記データ構造に対するアクセスを管理するアクセス管理手段、および、
前記メモリー上から前記記憶デバイス上に前記データ構造を退避させるデータ構造退避手段として前記電子機器を機能させることを特徴とするデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を管理する電子機器およびデータ管理プログラムに関する。
【背景技術】
【０００２】
従来、アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を管理する電子機器として、アプリケーションソフトウェアのプロセスによるジョブを実行する度にデータ構造をメモリー上に生成するものが知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３１６５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の電子機器おいては、ジョブを実行する度にデータ構造をメモリー上に生成するので、メモリー上に生成されるデータ構造の数にメモリーの容量による限界があり、その結果として、ジョブの実行の数に制限が生じるという問題がある。ジョブの実行の数に制限が生じるということは、利用者による使用感が低下するということである。
【０００５】
そこで、本発明は、利用者による使用感を向上することができる電子機器およびデータ管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の電子機器は、メモリーと、前記メモリーとは異なる記憶デバイスと、アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を前記メモリー上に生成するデータ構造生成手段と、前記アプリケーションソフトウェアのプロセスからの前記メモリー上の前記データ構造に対するアクセスを管理するアクセス管理手段と、前記メモリー上から前記記憶デバイス上に前記データ構造を退避させるデータ構造退避手段とを備えることを特徴とする。
【０００７】
この構成により、本発明の電子機器は、メモリー上から記憶デバイス上にデータ構造を退避させるので、メモリー上から記憶デバイス上に退避させたデータ構造の数の分、新たなデータ構造をメモリー上に生成することができ、その結果として、ジョブの実行の数を増加させることができる。したがって、本発明の電子機器は、利用者による使用感を向上することができる。
【０００８】
また、本発明の電子機器において、前記データ構造退避手段は、前記メモリーの状態が特定の状態になった場合に前記メモリー上から前記記憶デバイス上に前記データ構造を退避させても良い。
【０００９】
この構成により、本発明の電子機器は、新たなデータ構造をメモリー上に生成することができなくなる前にメモリー上から記憶デバイス上にデータ構造を退避させることができるので、ジョブの実行の数を適切に増加させることができる。したがって、本発明の電子機器は、利用者による使用感を適切に向上することができる。
【００１０】
また、本発明の電子機器において、前記データ構造退避手段は、前記メモリー上から前記記憶デバイス上に前記データ構造を退避させる時点で、前記アプリケーションソフトウェアのプロセスからアクセスされる可能性が特定の程度より低い前記データ構造を前記メモリー上から前記記憶デバイス上に退避させても良い。
【００１１】
この構成により、本発明の電子機器は、メモリー上から記憶デバイス上に退避させても影響が少ないデータ構造をメモリー上から記憶デバイス上に退避させることができるので、データ構造をメモリー上から記憶デバイス上に退避させることによって利用者による使用感が低下することを抑えることができる。
【００１２】
本発明のデータ管理プログラムは、メモリーと、前記メモリーとは異なる記憶デバイスとを備える電子機器によって実行されるデータ管理プログラムであって、アプリケーションソフトウェアのプロセスが使用するデータを入れるためのデータ構造を前記メモリー上に生成するデータ構造生成手段、前記アプリケーションソフトウェアのプロセスからの前記メモリー上の前記データ構造に対するアクセスを管理するアクセス管理手段、および、前記メモリー上から前記記憶デバイス上に前記データ構造を退避させるデータ構造退避手段として前記電子機器を機能させることを特徴とする。
【００１３】
この構成により、本発明のデータ管理プログラムは、メモリー上から記憶デバイス上にデータ構造を退避させるので、メモリー上から記憶デバイス上に退避させたデータ構造の数の分、新たなデータ構造をメモリー上に生成することができ、その結果として、ジョブの実行の数を増加させることができる。したがって、本発明のデータ管理プログラムは、利用者による電子機器の使用感を向上することができる。
【発明の効果】
【００１４】
本発明の電子機器およびデータ管理プログラムは、利用者による使用感を向上することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態に係るＭＦＰのブロック図である。
【図２】図１に示すデータ構造の各領域を示す図である。
【図３】図１に示す制御部によって実現される機能を示す図である。
【図４】システム起動処理が実行される場合の図１に示すＭＦＰの動作のフローチャートである。
【図５】（ａ）図１に示すＭＦＰによって実行されるアプリケーション側プロセスの処理の順序を説明する図である。  （ｂ）図１に示すＭＦＰによって実行されるプラットフォーム側プロセスの処理の順序を説明する図である。
【図６】データ構造に対するアクセスの希望がアプリケーション側プロセスから通知された場合の図１に示すアクセス管理手段の動作のフローチャートである。
【図７】データ構造に対するアクセスの希望がプラットフォーム側プロセスから通知された場合の図１に示すアクセス管理手段の動作のフローチャートである。
【図８】ＲＡＭ上から記憶部上にデータ構造を退避させる場合の図１に示すＭＦＰの動作のフローチャートである。
【図９】図１に示すＲＡＭ上から記憶部上にデータ構造を退避させる場合のＲＡＭおよび記憶部の状態の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施の形態について、図面を用いて説明する。
【００１７】
まず、本実施の形態に係る電子機器としてのＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の構成について説明する。
【００１８】
図１は、本実施の形態に係るＭＦＰ１０のブロック図である。
【００１９】
図１に示すように、ＭＦＰ１０は、利用者による種々の操作が入力されるボタンなどの入力デバイスである操作部１１と、種々の情報を表示するＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイスである表示部１２と、原稿から画像データを読み取る読取デバイスであるスキャナー１３と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター１４と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部１５と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク経由で外部の装置と通信を行うネットワーク通信デバイスであるネットワーク通信部１６と、各種のデータを記憶しているＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの不揮発性の記憶デバイスである記憶部２０と、ＭＦＰ１０全体を制御する制御部３０とを備えている。
【００２０】
記憶部２０は、プラットフォームソフトウェア２１と、プラットフォームソフトウェア２１上で動作する複数のアプリケーションソフトウェア２２とを記憶している。プラットフォームソフトウェア２１およびアプリケーションソフトウェア２２は、ＭＦＰ１０の製造段階でＭＦＰ１０にインストールされている。
【００２１】
プラットフォームソフトウェア２１は、ＭＦＰ１０を含む複数の機種から構成されるＭＦＰの製品シリーズに共通するソフトウェアである。プラットフォームソフトウェア２１は、製品シリーズの個々の機種が製造される前に製造されることが可能である。プラットフォームソフトウェア２１は、複数の機種が製造されることが可能であるように、製品シリーズの個々の機種のみに依存する機能を備えていない。
【００２２】
アプリケーションソフトウェア２２は、製品シリーズの個々の機種のうちＭＦＰ１０が所属している機種のみのために製造されることが可能である。アプリケーションソフトウェア２２は、製品シリーズの個々の機種のうちＭＦＰ１０が所属している機種に依存する機能を備えている。
【００２３】
複数のアプリケーションソフトウェア２２の１つは、例えば、表示のジョブ、すなわち、表示部１２による画面の表示のジョブを実行するための表示アプリケーションソフトウェアである。また、複数のアプリケーションソフトウェア２２の１つは、例えば、スキャンのジョブ、すなわち、スキャナー１３による画像データの読み取りのジョブを実行するためのスキャンアプリケーションソフトウェアである。また、複数のアプリケーションソフトウェア２２の１つは、例えば、プリントのジョブ、すなわち、ネットワーク通信部１６を介して受信した印刷データに基づいたプリンター１４による印刷のジョブを実行するためのプリントアプリケーションソフトウェアである。また、複数のアプリケーションソフトウェア２２の１つは、例えば、コピーのジョブ、すなわち、スキャナー１３によって読み取られた画像データに基づいたプリンター１４による印刷のジョブを実行するためのコピーアプリケーションソフトウェアである。また、複数のアプリケーションソフトウェア２２の１つは、例えば、ファックスのジョブ、すなわち、ファックス通信部１５を介したファックスのジョブを実行するためのファックスアプリケーションソフトウェアである。
【００２４】
記憶部２０は、プラットフォームソフトウェア２１のプロセス（以下「プラットフォーム側プロセス」という。）が使用するデータと、アプリケーションソフトウェア２２のプロセス（以下「アプリケーション側プロセス」という。）が使用するデータとを入れるためのデータ構造２３を記憶することが可能である。データ構造２３は、アプリケーションソフトウェア２２毎に用意される領域である。
【００２５】
なお、プラットフォーム側プロセスは、プラットフォームソフトウェア２１の起動後に実行可能である。同様に、アプリケーション側プロセスは、アプリケーションソフトウェア２２の起動後に実行可能である。
【００２６】
図２は、データ構造２３の各領域を示す図である。
【００２７】
図２に示すように、データ構造２３は、プラットフォーム側プロセスおよびアプリケーション側プロセスのうちプラットフォーム側プロセスのみが使用するデータのための独自領域２３ａと、プラットフォーム側プロセスおよびアプリケーション側プロセスの両方が使用するデータのための共用領域としての共有領域２３ｂと、プラットフォーム側プロセスおよびアプリケーション側プロセスのうちアプリケーション側プロセスのみが使用するデータのための拡張領域２３ｃとに区分されている。
【００２８】
独自領域２３ａは、利用者が使用しているプロセス、すなわち、アプリケーション側プロセスから切り離されている必要がある動作パラメーターなど、利用者に対して隠蔽する必要がある機密のデータのための領域である。
【００２９】
共有領域２３ｂは、プラットフォーム側プロセスと、アプリケーション側プロセスとによってデータを共有することができる領域である。
【００３０】
拡張領域２３ｃは、アプリケーションソフトウェア２２に応じて自由に変更されることができる領域である。
【００３１】
図１に示すように、記憶部２０は、データ構造２３を管理するデータ管理プログラム２４を記憶している。データ管理プログラム２４は、ＭＦＰ１０の製造段階でＭＦＰ１０にインストールされていても良いし、ＳＤカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリーなどの記憶媒体からＭＦＰ１０に追加でインストールされても良いし、ネットワーク上からＭＦＰ１０に追加でインストールされても良い。
【００３２】
制御部３０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、プログラムおよび各種のデータを記憶しているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２と、ＣＰＵ３１の作業領域として用いられるメモリーとしてのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３とを備えている。
【００３３】
ＣＰＵ３１は、ＲＯＭ３２または記憶部２０に記憶されているプログラムを実行する。
【００３４】
ＲＡＭ３３は、プラットフォーム側プロセスが使用するデータと、アプリケーション側プロセスが使用するデータとを入れるためのデータ構造３４を記憶することが可能である。データ構造３４は、アプリケーションソフトウェア２２毎に用意される領域である。データ構造３４の構成は、データ構造２３の構成と同様である。
【００３５】
図３は、制御部３０によって実現される機能を示す図である。
【００３６】
図３に示すように、制御部３０は、記憶部２０（図１参照。）に記憶されているデータ管理プログラム２４（図１参照。）を実行することによって、データ構造３４をＲＡＭ３３上に生成するデータ構造生成手段３０ａ、ＲＡＭ３３上のデータ構造３４に対するアクセスを管理するアクセス管理手段３０ｂ、および、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させるデータ構造退避手段３０ｃとして機能する。
【００３７】
次に、ＭＦＰ１０の動作について説明する。
【００３８】
まず、プラットフォームソフトウェア２１およびアプリケーションソフトウェア２２が起動されるソフトウェア起動処理としてのシステム起動処理が実行される場合のＭＦＰ１０の動作について説明する。
【００３９】
図４は、システム起動処理が実行される場合のＭＦＰ１０の動作のフローチャートである。
【００４０】
ＭＦＰ１０が起動される場合や、省エネ状態であったＭＦＰ１０が通常の状態に復帰させられる場合など、特定の場合に、ＭＦＰ１０は、図４に示す動作を実行する。
【００４１】
図４に示すように、ＭＦＰ１０の制御部３０は、システム起動処理の実行を開始する（Ｓ４１）。ここで、システム起動処理は、プラットフォームソフトウェア２１、アプリケーションソフトウェア２２の順で起動する処理である。
【００４２】
次いで、データ構造生成手段３０ａは、データ構造３４をＲＡＭ３３上に生成する（Ｓ４２）。ここで、データ構造生成手段３０ａは、システム起動処理によってアプリケーションソフトウェア２２が起動される度に、起動されたアプリケーションソフトウェア２２に対応するデータ構造３４をＲＡＭ３３上に生成する。なお、データ構造生成手段３０ａは、システム起動処理を実行するスレッドとは別のスレッドによって実行される。
【００４３】
次いで、制御部３０は、システム起動処理の実行が終了したと判断するまで、システム起動処理の実行が終了したか否かを判断する（Ｓ４３）。
【００４４】
制御部３０は、システム起動処理の実行が終了したとＳ４３において判断すると、図４に示す動作を終了する。
【００４５】
次に、ジョブが実行される場合のＭＦＰ１０の動作について説明する。
【００４６】
ＭＦＰ１０は、図４に示すシステム起動処理の実行が終了した後、システム起動処理において起動されたアプリケーションソフトウェア２２のアプリケーション側プロセスによるジョブを、例えば、操作部１１を介した指示に応じて何度も実行することができる。
【００４７】
なお、以下においては、本発明に対する理解を容易にするために、表示のジョブを例に説明する。表示のジョブは、複数のアプリケーションソフトウェア２２のうち表示アプリケーションソフトウェアのアプリケーション側プロセスによって実行される。アプリケーションソフトウェア２２が表示アプリケーションソフトウェアである場合に、プロセスによって使用されるデータの項目としては、例えば、表示部１２に表示する画像の圧縮方法のデータ、表示部１２を制御するためのデータ、表示部１２に表示される画面のレイアウトのデータなどの項目が存在する。表示部１２に表示する画像の圧縮方法のデータは、例えば、データ構造３４の独自領域３４ａ（図５参照。）に含まれている。表示部１２を制御するためのデータは、例えば、データ構造３４の共有領域３４ｂ（図５参照。）に含まれている。表示部１２に表示される画面のレイアウトのデータは、例えば、データ構造３４の拡張領域３４ｃ（図５参照。）に含まれている。
【００４８】
図５（ａ）は、アプリケーション側プロセス３０ｅの処理の順序を説明する図である。図５（ｂ）は、プラットフォーム側プロセス３０ｄの処理の順序を説明する図である。
【００４９】
図５（ａ）に示すように、制御部３０（図１参照。）は、アプリケーションソフトウェア２２（図１参照。）を実行することによってアプリケーション側プロセス３０ｅを生成する。また、図５（ｂ）に示すように、制御部３０は、プラットフォームソフトウェア２１（図１参照。）を実行することによってプラットフォーム側プロセス３０ｄを生成する。
【００５０】
制御部３０がアプリケーションソフトウェア２２を実行する場合、アプリケーション側プロセス３０ｅがプラットフォーム側プロセス３０ｄを利用するように処理が流れる。
【００５１】
図５（ａ）に示すように、アプリケーション側プロセス３０ｅは、処理を実行する場合に、データ構造３４上にデータを設定したり、データ構造３４上のデータを取得したりするとき、データ構造３４に対するアクセスの希望をアクセス管理手段３０ｂに通知する。ここで、アプリケーション側プロセス３０ｅは、データ構造３４上の領域のうち共有領域３４ｂおよび拡張領域３４ｃのみにアクセスすることができる。アクセス管理手段３０ｂは、データ構造３４に対するアクセスの希望がアプリケーション側プロセス３０ｅから通知されると、図６に示す動作を実行する。
【００５２】
図６は、データ構造３４に対するアクセスの希望がアプリケーション側プロセス３０ｅから通知された場合のアクセス管理手段３０ｂの動作のフローチャートである。
【００５３】
図６に示すように、アクセス管理手段３０ｂは、アプリケーション側プロセス３０ｅから通知されたアクセスの対象のデータの項目が含まれる領域が独自領域３４ａ、共有領域３４ｂおよび拡張領域３４ｃの何れであるかを判断する（Ｓ５１）。
【００５４】
アクセス管理手段３０ｂは、アプリケーション側プロセス３０ｅから通知されたアクセスの対象のデータの項目が例えば「表示部１２に表示する画像の圧縮方法のデータ」である場合、アプリケーション側プロセス３０ｅによるアクセス可能な領域として管理している共有領域３４ｂおよび拡張領域３４ｃにおけるデータの項目に「表示部１２に表示する画像の圧縮方法のデータ」が含まれていないので、独自領域３４ａであるとＳ５１において判断し、アプリケーション側プロセス３０ｅにエラーを返して（Ｓ５２）、図６に示す動作を終了する。アプリケーション側プロセス３０ｅは、アクセス管理手段３０ｂからエラーが返されると、エラーの場合の特定の振る舞いを実行する。
【００５５】
アクセス管理手段３０ｂは、アプリケーション側プロセス３０ｅから通知されたアクセスの対象のデータの項目が例えば「表示部１２を制御するためのデータ」である場合、アプリケーション側プロセス３０ｅによるアクセス可能な領域として管理している共有領域３４ｂにおけるデータの項目に「表示部１２を制御するためのデータ」が含まれているので、共有領域３４ｂであるとＳ５１において判断し、アプリケーション側プロセス３０ｅから通知されたアクセスの方法が設定および取得の何れであるかを判断する（Ｓ５３）。
【００５６】
アクセス管理手段３０ｂは、設定であるとＳ５３において判断すると、アプリケーション側プロセス３０ｅにデータを共有領域３４ｂに設定させて（Ｓ５４）、図６に示す動作を終了する。
【００５７】
アクセス管理手段３０ｂは、取得であるとＳ５３において判断すると、アプリケーション側プロセス３０ｅにデータを共有領域３４ｂから取得させて（Ｓ５５）、図６に示す動作を終了する。
【００５８】
アクセス管理手段３０ｂは、アプリケーション側プロセス３０ｅから通知されたアクセスの対象のデータの項目が例えば「表示部１２に表示される画面のレイアウトのデータ」である場合、アプリケーション側プロセス３０ｅによるアクセス可能な領域として管理している拡張領域３４ｃにおけるデータの項目に「表示部１２に表示される画面のレイアウトのデータ」が含まれているので、拡張領域３４ｃであるとＳ５１において判断し、アプリケーション側プロセス３０ｅから通知されたアクセスの方法が設定および取得の何れであるかを判断する（Ｓ５６）。
【００５９】
アクセス管理手段３０ｂは、設定であるとＳ５６において判断すると、アプリケーション側プロセス３０ｅにデータを拡張領域３４ｃに設定させて（Ｓ５７）、図６に示す動作を終了する。
【００６０】
アクセス管理手段３０ｂは、取得であるとＳ５６において判断すると、アプリケーション側プロセス３０ｅにデータを拡張領域３４ｃから取得させて（Ｓ５８）、図６に示す動作を終了する。
【００６１】
図５（ｂ）に示すように、プラットフォーム側プロセス３０ｄは、処理を実行する場合に、データ構造３４上にデータを設定したり、データ構造３４上のデータを取得したりするとき、データ構造３４に対するアクセスの希望をアクセス管理手段３０ｂに通知する。ここで、プラットフォーム側プロセス３０ｄは、データ構造３４上の領域のうち独自領域３４ａおよび共有領域３４ｂのみにアクセスすることができる。アクセス管理手段３０ｂは、データ構造３４に対するアクセスの希望がプラットフォーム側プロセス３０ｄから通知されると、図７に示す動作を実行する。
【００６２】
図７は、データ構造３４に対するアクセスの希望がプラットフォーム側プロセス３０ｄから通知された場合のアクセス管理手段３０ｂの動作のフローチャートである。
【００６３】
図７に示すように、アクセス管理手段３０ｂは、プラットフォーム側プロセス３０ｄから通知されたアクセスの対象のデータの項目が含まれる領域が独自領域３４ａ、共有領域３４ｂおよび拡張領域３４ｃの何れであるかを判断する（Ｓ６１）。
【００６４】
アクセス管理手段３０ｂは、プラットフォーム側プロセス３０ｄから通知されたアクセスの対象のデータの項目が例えば「表示部１２に表示する画像の圧縮方法のデータ」である場合、プラットフォーム側プロセス３０ｄによるアクセス可能な領域として管理している独自領域３４ａにおけるデータの項目に「表示部１２に表示する画像の圧縮方法のデータ」が含まれているので、独自領域３４ａであるとＳ６１において判断し、プラットフォーム側プロセス３０ｄから通知されたアクセスの方法が設定および取得の何れであるかを判断する（Ｓ６２）。
【００６５】
アクセス管理手段３０ｂは、設定であるとＳ６２において判断すると、プラットフォーム側プロセス３０ｄにデータを独自領域３４ａに設定させて（Ｓ６３）、図７に示す動作を終了する。
【００６６】
アクセス管理手段３０ｂは、取得であるとＳ６２において判断すると、プラットフォーム側プロセス３０ｄにデータを独自領域３４ａから取得させて（Ｓ６４）、図７に示す動作を終了する。
【００６７】
アクセス管理手段３０ｂは、プラットフォーム側プロセス３０ｄから通知されたアクセスの対象のデータの項目が例えば「表示部１２を制御するためのデータ」である場合、プラットフォーム側プロセス３０ｄによるアクセス可能な領域として管理している共有領域３４ｂにおけるデータの項目に「表示部１２を制御するためのデータ」が含まれているので、共有領域３４ｂであるとＳ６１において判断し、プラットフォーム側プロセス３０ｄから通知されたアクセスの方法が設定および取得の何れであるかを判断する（Ｓ６５）。
【００６８】
アクセス管理手段３０ｂは、設定であるとＳ６５において判断すると、プラットフォーム側プロセス３０ｄにデータを共有領域３４ｂに設定させて（Ｓ６６）、図７に示す動作を終了する。
【００６９】
アクセス管理手段３０ｂは、取得であるとＳ６５において判断すると、プラットフォーム側プロセス３０ｄにデータを共有領域３４ｂから取得させて（Ｓ６７）、図７に示す動作を終了する。
【００７０】
アクセス管理手段３０ｂは、プラットフォーム側プロセス３０ｄから通知されたアクセスの対象のデータの項目が例えば「表示部１２に表示される画面のレイアウトのデータ」である場合、プラットフォーム側プロセス３０ｄによるアクセス可能な領域として管理している独自領域３４ａおよび共有領域３４ｂにおけるデータの項目に「表示部１２に表示される画面のレイアウトのデータ」が含まれていないので、拡張領域３４ｃであるとＳ６１において判断し、プラットフォーム側プロセス３０ｄにエラーを返して（Ｓ６８）、図７に示す動作を終了する。プラットフォーム側プロセス３０ｄは、アクセス管理手段３０ｂからエラーが返されると、エラーの場合の特定の振る舞いを実行する。
【００７１】
次に、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる場合のＭＦＰ１０の動作について説明する。
【００７２】
図８は、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる場合のＭＦＰ１０の動作のフローチャートである。
【００７３】
データ構造退避手段３０ｃは、常時、図８に示す動作を繰り返す。
【００７４】
図８に示すように、データ構造退避手段３０ｃは、ＲＡＭ３３の状態が特定の状態になったか否かを判断する（Ｓ７１）。ここで、特定の状態とは、例えば、ＲＡＭ３３の空き容量が特定の量以下になった状態である。
【００７５】
データ構造退避手段３０ｃは、ＲＡＭ３３の状態が特定の状態になっていないとＳ７１において判断すると、図８に示す動作を終了する。
【００７６】
データ構造退避手段３０ｃは、ＲＡＭ３３の状態が特定の状態になったとＳ７１において判断すると、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４がＲＡＭ３３上に存在するか否かを判断する（Ｓ７２）。ここで、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４とは、例えば、故障などの異常が発生しているデバイスを使用するジョブのデータ構造３４である。例えば、プリンター１４に異常が発生している場合、プリンター１４を使用するプリントのジョブのデータ構造３４は、プリントのジョブのアプリケーション側プロセス３０ｅからアクセスされない。
【００７７】
データ構造退避手段３０ｃは、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４がＲＡＭ３３上に存在しないとＳ７２において判断すると、図８に示す動作を終了する。
【００７８】
データ構造退避手段３０ｃは、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４がＲＡＭ３３上に存在するとＳ７２において判断すると、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４を記憶部２０上にデータ構造２３として退避させて（Ｓ７３）、図８に示す動作を終了する。
【００７９】
図９は、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる場合のＲＡＭ３３および記憶部２０の状態の一例を示す図である。
【００８０】
図９に示すＲＡＭ３３は、データ構造３４を３個まで記憶することができる。また、図９に示す記憶部２０は、データ構造２３を８個まで記憶することができる。
【００８１】
図９（ａ）に示すようにデータ構造Ａ〜Ｃという３個のデータ構造がＲＡＭ３３上に記憶されている場合、データ構造退避手段３０ｃは、図８に示す動作を実行することによって、図９（ｂ）に示すようにデータ構造ＡをＲＡＭ３３上から記憶部２０上に退避させる。すなわち、図９（ｂ）に示す状態おいては、データ構造Ａの分、ＲＡＭ３３上の領域が解放されている。
【００８２】
したがって、ＲＡＭ３３には、図９（ｃ）に示すように、データ構造生成手段３０ａによって新たなデータ構造Ｄが生成されることが可能である。
【００８３】
以上に説明したように、ＭＦＰ１０は、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる（Ｓ７３）ので、ＲＡＭ３３上から記憶部２０上に退避させたデータ構造の数の分、新たなデータ構造３４をＲＡＭ３３上に生成することができ、その結果として、ジョブの実行の数を増加させることができる。したがって、ＭＦＰ１０は、利用者による使用感を向上することができる。
【００８４】
なお、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる代わりに、ＲＡＭ３３を大容量のものに交換することも考えられる。しかしながら、大容量のＲＡＭは、通常、記憶部２０よりも高価である。したがって、ＭＦＰ１０は、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させることによって、利用者による使用感を安価に向上することができる。
【００８５】
ＭＦＰ１０は、ＲＡＭ３３の状態が特定の状態になった場合に（Ｓ７１でＹＥＳ）ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる（Ｓ７３）ので、新たなデータ構造３４をＲＡＭ３３上に生成することができなくなる前にＲＡＭ３３上から記憶部２０上にデータ構造を退避させることができる。したがって、ＭＦＰ１０は、ジョブの実行の数を適切に増加させることができ、その結果として、利用者による使用感を適切に向上することができる。
【００８６】
なお、ＭＦＰ１０は、ＲＡＭ３３上から記憶部２０上にデータ構造を退避させる条件として、ＲＡＭ３３の状態が特定の状態になった場合以外の条件を採用しても良い。例えば、ＭＦＰ１０は、何れかのジョブに異常が発生した場合にこのジョブのデータ構造をＲＡＭ３３上から記憶部２０上に退避させても良いし、何れかのジョブが一時的に停止させられた場合にこのジョブのデータ構造をＲＡＭ３３上から記憶部２０上に退避させても良い。
【００８７】
ＭＦＰ１０は、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いデータ構造３４がＲＡＭ３３上に存在する場合に（Ｓ７２でＹＥＳ）、このデータ構造３４をＲＡＭ３３上から記憶部２０上に退避させる（Ｓ７３）ので、ＲＡＭ３３上から記憶部２０上に退避させても影響が少ないデータ構造３４をＲＡＭ３３上から記憶部２０上に退避させることができる。したがって、ＭＦＰ１０は、データ構造３４をＲＡＭ３３上から記憶部２０に退避させることによって利用者による使用感が低下することを抑えることができる。
【００８８】
なお、ＭＦＰ１０は、ＲＡＭ３３上から記憶部２０上に退避させるデータ構造３４の選定の基準として、アプリケーション側プロセス３０ｅからアクセスされる可能性が特定の程度より低いという基準以外の基準を採用しても良い。例えば、ＭＦＰ１０は、ジョブの実行の順序に応じてデータ構造３４をＲＡＭ３３上から記憶部２０上に退避させても良いし、ジョブの種類に応じてデータ構造３４をＲＡＭ３３上から記憶部２０上に退避させても良い。
【００８９】
また、ＭＦＰ１０は、データ構造３４をＲＡＭ３３上から記憶部２０上に退避させる場合に、データ構造３４の退避先として記憶部２０以外の記憶デバイスを採用しても良い。例えば、ＭＦＰ１０は、データ構造３４をＲＡＭ３３上からＲＡＭ３３とは異なるＲＡＭ上に退避させても良い。
【００９０】
また、ＭＦＰ１０は、データ構造３４をＲＡＭ３３上から記憶部２０上に退避させる場合に、データ構造３４を特定のファイル形式に変換してから記憶部２０上に退避させても良いし、データ構造３４を圧縮してから記憶部２０上に退避させても良い。
【００９１】
また、ＭＦＰ１０は、記憶部２０上に退避させたデータ構造２３をＲＡＭ３３上に復帰させるタイミングとして種々のタイミングを採用することが可能である。例えば、ＭＦＰ１０は、記憶部２０上に退避させたデータ構造２３を使用するジョブが実行される場合に、このデータ構造２３を記憶部２０上からＲＡＭ３３上に復帰させても良い。なお、ＭＦＰ１０は、記憶部２０上のデータ構造２３のうちＲＡＭ３３上に復帰させる必要がないことが明らかになったデータ構造２３については、記憶部２０上からＲＡＭ３３上に復帰させることなく、記憶部２０上から削除しても良い。
【００９２】
ＭＦＰ１０は、システム起動処理の実行時、すなわち、アプリケーション側プロセス３０ｅによるジョブの実行前にデータ構造３４を生成する（Ｓ４２）ので、ジョブの実行の際にデータ構造３４の生成時間が必要ない分、ジョブの実行時間を短縮することができる。
【００９３】
なお、ＭＦＰ１０は、アプリケーション側プロセス３０ｅによるジョブの実行前にデータ構造３４を生成するので、直ちに必要とされない多数のデータ構造３４がＲＡＭ３３上に生じる可能性が高く、データ構造３４をＲＡＭ３３上から記憶部２０上に退避させるメリットが大きい。
【００９４】
ＭＦＰ１０は、データ構造３４の生成と、システム起動処理とが別のスレッドによって実行されるので、システム起動処理の実行時にデータ構造３４が生成されたとしても、アプリケーションソフトウェア２２の起動が遅延することを抑えることができる。
【００９５】
なお、ＭＦＰ１０は、データ構造３４の生成と、システム起動処理とが同一のスレッドによって実行されても良い。
【００９６】
また、ＭＦＰ１０は、アプリケーション側プロセス３０ｅによるジョブの実行前であれば、システム起動処理の実行時以外のタイミングでデータ構造３４を生成しても良い。
【００９７】
なお、ＭＦＰ１０は、システム起動処理の実行時にデータ構造３４を生成せずに、アプリケーション側プロセス３０ｅによるジョブの実行の際にデータ構造３４を生成しても良い。
【００９８】
ＭＦＰ１０は、独自領域３４ａに対するアクセスをプラットフォーム側プロセス３０ｄからのみ許可する（Ｓ６３およびＳ６４）ので、独自領域３４ａ上のデータをアプリケーション側プロセス３０ｅに対して隠蔽することができる。すなわち、ＭＦＰ１０は、プロセスの種類に応じてデータを隠蔽することができる。
【００９９】
特に、ＭＦＰ１０は、プラットフォームソフトウェア２１およびアプリケーションソフトウェア２２のうちプラットフォームソフトウェア２１のプロセス、すなわち、プラットフォーム側プロセス３０ｄのみが使用するデータを、利用者によって直接使用されるアプリケーションソフトウェア２２のプロセス、すなわち、アプリケーション側プロセス３０ｅに対して隠蔽することができるので、機密のデータを利用者に対して隠蔽することができる。例えば、ＭＦＰ１０の製造業者は、表示部１２に表示する画像の圧縮方法のデータが利用者に対して秘密にしたい重要なデータである場合に、ＭＦＰ１０を含む複数の機種から構成されるＭＦＰの製品シリーズにおいて、表示部１２に表示する画像の圧縮方法のデータを独自領域３４ａに配置するように設計することによって、表示部１２に表示する画像の圧縮方法のデータを利用者に対して隠蔽することができる。
【０１００】
ＭＦＰ１０は、拡張領域３４ｃに対するアクセスをアプリケーションソフトウェア２２のプロセス、すなわち、アプリケーション側プロセス３０ｅからのみ許可するので、拡張領域３４ｃ上に記憶されるデータの定義としてプラットフォームソフトウェア２１に関わらずアプリケーションソフトウェア２２独自のものを採用することができる。すなわち、ＭＦＰ１０は、プロセスによって使用するデータの定義をアプリケーションソフトウェア２２に応じて拡張することができる。例えば、ＭＦＰ１０の製造業者は、表示部１２に表示される画面のレイアウトのデータを、ＭＦＰ１０を含む複数の機種から構成されるＭＦＰの製品シリーズのうち、ＭＦＰ１０が所属している機種の独自のデータに変更することができる。また、ＭＦＰ１０の製造業者は、整数型、文字型などのデータ型を、プラットフォーム側プロセス３０ｄのみが使用する独自領域３４ａにおけるデータや、アプリケーション側プロセス３０ｅだけではなくプラットフォーム側プロセス３０ｄも使用する共有領域３４ｂにおけるデータに関しては変更することができないが、アプリケーション側プロセス３０ｅのみが使用する拡張領域３４ｃにおけるデータに関しては、アプリケーションソフトウェア２２に応じて変更することができる。
【０１０１】
ＭＦＰ１０は、データ構造３４上に共有領域３４ｂを設けているので、アプリケーション側プロセス３０ｅからプラットフォーム側プロセス３０ｄに処理を依頼する場合に必要なデータをアプリケーション側プロセス３０ｅからプラットフォーム側プロセス３０ｄに共有領域３４ｂを介して円滑に渡せるだけでなく、プラットフォーム側プロセス３０ｄによって変更した共有領域３４ｂ上のデータをアプリケーション側プロセス３０ｅから参照することができる。
【０１０２】
本発明の電子機器は、本実施の形態においてＭＦＰであるが、データ構造に対するアクセスを実行する電子機器であれば、プリンター専用機、コピー専用機、ＦＡＸ専用機など、ＭＦＰ以外の画像形成装置であっても良いし、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）など、画像形成装置以外の電子機器であっても良い。
【符号の説明】
【０１０３】
１０  ＭＦＰ（電子機器）
２０  記憶部（記憶デバイス）
２２  アプリケーションソフトウェア
２３  データ構造
２４  データ管理プログラム
３０ａ  データ構造生成手段
３０ｂ  アクセス管理手段
３０ｃ  データ構造退避手段
３０ｅ  アプリケーション側プロセス（アプリケーションソフトウェアのプロセス）
３３  ＲＡＭ（メモリー）
３４  データ構造
【図１】
2016126421.tif 000003
【図２】
2016126421.tif 000004
【図３】
2016126421.tif 000005
【図４】
2016126421.tif 000006
【図５】
2016126421.tif 000007
【図６】
2016126421.tif 000008
【図７】
2016126421.tif 000009
【図８】
2016126421.tif 000010
【図９】
2016126421.tif 000011