(57)【特許請求の範囲】
【請求項１】
主記憶装置及び二次記憶装置を有する情報処理装置であって、
前記二次記憶装置のファイルシステムの情報の記憶エリアを前記主記憶装置上に確保する手段と、
当該確保された記憶エリアに前記ファイルシステムの情報を書き込む手段と、
省エネモード時、前記ファイルシステムの情報を保持する手段と、
省エネモード時、前記二次記憶装置の電源をオフにする手段と、
省エネモードに移行するとき、前記二次記憶装置の電源をオフに設定する手段と、
を有し、
前記保持する手段は、当該設定に応じて前記二次記憶装置から通知される電源オフ通知に応じて、前記ファイルシステムの情報の保持を開始する情報処理装置。
【請求項２】
請求項１に記載された情報処理装置において、
前記保持する手段は、省エネモードに移行するとき、前記ファイルシステムの情報をコピーする手段を有する情報処理装置。
【請求項３】
請求項２に記載された情報処理装置において、
前記コピーする手段は、前記主記憶装置上にコピーする情報処理装置。
【請求項４】
請求項２に記載された情報処理装置において、
前記コピーする手段によるコピーの後に、前記確保された記憶エリアを解放する手段を有する情報処理装置。
【請求項５】
請求項４に記載された情報処理装置において、
省エネモードから復帰するとき、前記二次記憶装置のファイルシステムの情報の記憶エリアを主記憶装置上に確保する手段と、当該確保された記憶エリアに、前記コピーされた前記ファイルシステムの情報を書き込む手段とを有する情報処理装置。
【請求項６】
請求項１〜５のいずれかに記載された情報処理装置において、
前記主記憶装置上のファイルキャッシュのデータを前記二次記憶装置上に同期させる手段と、省エネモード時は、当該同期させる手段の動作を停止させる手段とを有する情報処理装置。
【請求項７】
請求項１〜６のいずれかに記載された情報処理装置において、
省エネモード時は、ユーザプログラムによる前記二次記憶装置に対するアクセス要求に対して、エラーを通知する手段を有する情報処理装置。
【請求項８】
主記憶装置及び二次記憶装置を有する情報処理装置が実行する情報処理方法であって、
前記二次記憶装置のファイルシステムの情報の記憶エリアを前記主記憶装置上に確保する工程と、
当該確保された記憶エリアに前記ファイルシステムの情報を書き込む工程と、
省エネモード時、前記ファイルシステムの情報を保持する工程と、
省エネモード時、前記二次記憶装置の電源をオフにする工程と、
省エネモードに移行するとき、前記二次記憶装置の電源をオフに設定する工程と、
を有し、
前記保持する工程は、当該設定に応じて前記二次記憶装置から通知される電源オフ通知に応じて、前記ファイルシステムの情報の保持を開始する情報処理方法。
【請求項９】
コンピュータを請求項１〜７のいずれかに記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関し、さらに詳しくは、省エネルギー（以下、省エネと言う）モード時に二次記憶装置の電源をオフする機能を有する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、情報処理装置、例えばプリンタ、ファクシミリ装置、デジタル複合機等の画像処理装置では、低消費電力での動作が要望されており、消費電力を押さえるために、装置の一部への給電を停止することで、待機時の消費電力を低減している。
【０００３】
例えば特許文献１に記載された画像処理装置は、ＨＤＤ（Hard Disk Drive）内のプログラムを予めＤＲＡＭ（Dynamic Random Access Memory）にダウンロードしておき、通常モードから省エネモードへの移行（以下、省エネ移行と言う）時にＨＤＤの電源をオフし、省エネモードから通常モードへの復帰（以下、省エネ復帰と言う）時にはＤＲＡＭ内のプログラムを立ち上げ直すことで、高速な立ち上げを実現する。
【０００４】
しかし、この画像処理装置には下記（１）〜（３）の問題がある。
（１）ＨＤＤ内のプログラムを全て格納できるＤＲＡＭを搭載するのはコスト的に問題がある。
（２）省エネ復帰時にはプログラムの立ち上げ直しを行う必要があるため、その分時間がかかる。
（３）二次記憶装置内のファイルシステムのマウント情報など、システム全体で共有されるファイルシステムの状態の保持方法については言及されていない。この方式ではプログラム単体は確かに立ち上がるが、ファイルシステムのマウント情報などのシステム全体から見える状態を保持できないため、立ち上がったプログラムの状態と矛盾することがあり得る。
【０００５】
省エネ制御機能を有する別の画像処理装置として、特許文献２に記載された画像処理装置がある。この画像処理装置では、各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を登録しておく。これにより、省エネ移行、省エネ復帰イベントをトリガにしてコールバック関数が呼ばれる。コールバック関数内には各デバイスドライバが省エネ移行時に行うこと(状態の保存)、省エネ復帰時に行うこと(保存した状態に復帰)を実装しておく。これにより、個々のデバイスは省エネモード期間を跨いで状態を保持することができる。
【０００６】
しかしながら、特許文献２に記載された画像処理装置では、個々のデバイスの状態を保持できるものの、デバイスに属さないファイルシステムの情報の保持については考慮されていない。また、カーネル内のプロセス及びユーザプロセスの挙動の制御についても考慮されていない。
【０００７】
また、ＵＳＢメモリなどの二次記憶装置デバイスでは、省エネのために電源をオフすると、抜去とみなされる。抜去時は後始末処理が実行されるが、この中で「省エネ移行によって後始末処理が実行された」か「電源オフによって後始末処理が実行されたか」見分ける必要がある。フック関数ではこのような複雑な制御を実行することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、このような問題を解決するためになされたものであり、その目的は、省エネモード時に二次記憶装置の電源をオフにする情報処理装置において、省エネモード時に二次記憶装置内のファイルシステムの情報を保持できるようにすることである。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、主記憶装置及び二次記憶装置を有する情報処理装置であって、前記二次記憶装置のファイルシステムの情報の記憶エリアを前記主記憶装置上に確保する手段と、当該確保された記憶エリアに前記ファイルシステムの情報を書き込む手段と、省エネモード時、前記ファイルシステムの情報を保持する手段と、省エネモード時、前記二次記憶装置の電源をオフにする手段と、省エネモードに移行するとき、前記二次記憶装置の電源をオフに設定する手段と、を有し、前記保持する手段は、当該設定に応じて前記二次記憶装置から通知される電源オフ通知に応じて、前記ファイルシステムの情報の保持を開始する情報処理装置である。
本発明の情報処理方法は、主記憶装置及び二次記憶装置を有する情報処理装置が実行する情報処理方法であって、前記二次記憶装置のファイルシステムの情報の記憶エリアを前記主記憶装置上に確保する工程と、当該確保された記憶エリアに前記ファイルシステムの情報を書き込む工程と、省エネモード時、前記ファイルシステムの情報を保持する工程と、省エネモード時、前記二次記憶装置の電源をオフにする工程と、省エネモードに移行するとき、前記二次記憶装置の電源をオフに設定する工程と、を有し、前記保持する工程は、当該設定に応じて前記二次記憶装置から通知される電源オフ通知に応じて、前記ファイルシステムの情報の保持を開始する情報処理方法である。
本発明のプログラムは、コンピュータを、本発明の情報処理装置の各手段として機能させるためのプログラムである。
【発明の効果】
【００１０】
本発明によれば、省エネモード時に二次記憶装置の電源をオフにする情報処理装置において、省エネモード時に二次記憶装置内のファイルシステムの情報を保持することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の情報処理装置の主としてソフトウェア構成を示すブロック図である。
【図２】本発明の実施形態の情報処理装置において考えられる省エネ制御時のファイルシステム情報処理を示す図である。
【図３】本発明の実施形態の情報処理装置における省エネ制御時のファイルシステム情報処理を示す図である。
【図４】本発明の実施形態の情報処理装置における定周期キャッシュ書き戻しプロセスを示す図である。
【図５】本発明の実施形態の情報処理装置におけるファイルキャッシュの概要を示す図である。
【図６】本発明の実施形態の情報処理装置におけるファイルキャッシュ同期処理を示すフローチャートである。
【図７】本発明の実施形態の情報処理装置における定周期キャッシュ書き戻しプロセスにおける呼び出し処理の内容を示すフローチャートである。
【図８】本発明の実施形態の情報処理装置におけるファイルシステムから見た省エネモード時の挙動を示す図である。
【図９】本発明の実施形態の情報処理装置おいて起動時に参照される設定ファイルとマウント情報との関係を示す図である。
【図１０】本発明の実施形態の情報処理装置おいてマウント時に追加されるデータとそのデータ構造を示す図である。
【図１１】本発明の実施形態の情報処理装置おいてファイルオープン時に追加されるデータとそのデータ構造を示す図である。
【図１２】本発明の実施形態の情報処理装置おける省エネ移行時の処理シーケンスを示す図である。
【図１３】図１２における後始末処理のフローチャートである。
【図１４】本発明の実施形態の情報処理装置おける省エネ復帰時の処理シーケンスを示す図である。
【図１５】図１４における再初期化処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
〈情報処理装置の構成〉
図１は、本発明の実施形態の情報処理装置の主としてソフトウェア構成を示すブロック図である。この情報処理装置１はデジタル複合機であり、各種ソフトウェアを有する本体２と、本体２に内蔵或いは外付けされる付属装置３とを備えている。本体２は一般的なコンピュータと同様、ＣＰＵ（Central Processing Unit）、ＲＡＭ（主記憶装置）、及びＲＯＭ（Read Only Memory）を有するコントローラを備えている。
【００１３】
本体２が有するソフトウェアは、プラットホーム２１及びアプリケーション２２からなる。プラットホーム２１は、汎用ＯＳ（Operating System）２３、ＳＲＭ（System Resource Manager）２４、ネットワーク管理モジュール２５、及びパネル管理モジュール２６からなる。
【００１４】
汎用ＯＳ２３はＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム２１並びにアプリケーション２２の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００１５】
汎用ＯＳ２３は、ファイルシステム２３１と、各種ドライバとしてのＳＤカードドライバ２３２、ＵＳＢメモリドライバ２３３、ＨＤＤドライバ２３４、ネットワークドライバ２３５、及びパネルドライバ２３６、並びにタイマ２３７を備えており、各種ドライバには、それぞれ対応するＳＤカード３１、直付ＵＳＢメモリ３２、ＨＤＤ３３、ネットワークＩ／Ｆ（インタフェース）３４、及び操作パネル３５が接続される。
【００１６】
アプリケーション２２は、ＰＤＬ（ページ記述言語）、ＰＣＬ（プリンタ制御言語）及びＰＳ（ポストスクリプト）を有するプリンタ用のアプリケーションであるプリンタアプリ２２１と、コピー用アプリケーションであるコピーアプリ２２２と、ファクシミリ用アプリケーションであるファックスアプリ２２３と、スキャナ用アプリケーションであるスキャナアプリ２２４と、ネットファイル用アプリケーションであるネットファイルアプリ２２５と、工程検査用アプリケーションである工程検査アプリ２２６と、リモートＲＯＭアップデート用のアプリケーションであるＲＲＵ（Remote ROM Update）アプリ２２７を有する。
【００１７】
ネットワーク管理モジュール２５、及びパネル管理モジュール２６は、アプリケーション２２からの処理要求を解釈して、ハードウェア資源の獲得要求を発生させるコントロールモジュールである。
【００１８】
即ちネットワーク管理モジュール２５は、ネットワークＩ／Ｆ３４を必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータの各アプリケーションへの振り分け、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有する。
【００１９】
また、パネル管理モジュール２６は、オペレータと本体２間の情報伝達手段となる操作パネル３５を制御するモジュールであり、オペレータのキー操作イベントを本体２に通知する処理、各アプリがＧＵＩ（Graphical User Interface）を構築するためのライブラリ関数を提供する処理、構築されたＧＵＩ情報をアプリ別に管理する処理、操作パネル３５上への表示反映処理などを行う。
【００２０】
ＳＲＭ（System Resource Manager）２４は、一又は複数のハードウェア資源の管理を行い、コントロールモジュールからの獲得要求を調停する。即ち、機器管理モジュール２４１とともにシステムの制御およびリソースの管理を行うものであり、図示しないスキャナ部やプリンタ部などのエンジン、二次記憶装置であるＳＤカード３１、直付ＵＳＢメモリ３２、及びＨＤＤ３３、ネットワークＩ／Ｆ３４、操作パネル３５などのハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００２１】
機器管理モジュール２４１は、「（１）アプリ管理」、「（２）操作パネル制御」、「（３）システム画面表示（ジョブリスト画面、カウンタ表示画面など）」、「（４）ＬＥＤ表示」、「（５）リソース管理」、「（６）割り込みアプリ制御」を行う。
【００２２】
具体的には、「（１）アプリ管理」では、アプリの登録と、その情報を他のアプリに通知する処理を行う。登録されたアプリに対しては、システムの設定やアプリからの要求設定に応じてエンジン状態を通知する。また、登録済みのアプリに対しては、省エネ移行、復帰の問い合わせ、割り込みモードなど、システムの状態遷移のための可否問い合わせを行う。
【００２３】
「（２）操作パネル制御」では、アプリの操作パネル使用権の排他制御を行う。そして、操作パネルの使用権を持つアプリへパネル管理モジュール２６からのキー情報を排他的に通知する。このキー情報は、アプリ切替中などのシステムの状態遷移に応じて一時的に通知を停止するマスク制御を行う。
【００２４】
「（３）システム画面表示」では、操作パネル使用権を持つアプリからの要求内容に応じて、エンジン状態に対応する警告画面の表示を行う。これらのなかには、利用者制限画面などアプリの状態に応じて警告表示をオン／オフするものもある。エンジン状態以外では、ジョブの予約・実行状況を表示するためのジョブリスト画面、トータルカウンタ類を表示するためのカウンタ画面、パネル管理モジュール２６への通報中を示す画面の表示制御を行う。これらのシステム画面表示に関しては、アプリへ操作部使用権の解放を要求せず、アプリ画面を覆うシステム画面として描画を行う。
【００２５】
「（４）ＬＥＤ表示」では、警告ＬＥＤ、アプリキーなどのシステムＬＥＤの表示制御を行う。アプリ固有のＬＥＤについては、アプリが直接表示用ドライバを使用して制御する。
【００２６】
「（５）リソース管理」では、図示しないエンジンコントロールモジュールがジョブを実行するに当たって、排他しなければならないエンジンリソース（スキャナ、ステープルなど）の排他制御のためのサービスを行い、「（６）割り込みアプリ制御」では、特定のアプリを優先動作させるための制御・サービスを行う。
【００２７】
〈省エネ制御時のファイルシステム情報処理〉
次に情報処理装置１の省エネ制御時のファイルシステム情報処理について、図２及び図３を用いて説明する。
【００２８】
一般に図１に示すような汎用ＯＳを用いた情報処理装置において、図２に示すように、省エネ移行時に二次記憶装置（例えば直付ＵＳＢメモリ３２）の電源をオフするとき（電源オフイベント１０１）、これをトリガにドライバ層（例えばＵＳＢメモリドライバ２３３）の後始末処理３０１が起動し、ファイルシステム層（ファイルシステム２３１）は二次記憶装置内のファイルシステムの情報であるファイル情報４０１及びマウント情報４０２を保持しているＲＡＭ上の記憶エリアを解放し、それらの情報を破棄してしまう。
【００２９】
そのため、省エネ復帰により二次記憶装置の電源をオンしたとき（電源オンイベント１０２）、これをトリガにドライバ層の再初期化処理３０２が起動し、ファイルシステム層は二次記憶装置に関するファイル情報４０３及びマウント情報４０４を新たに作成し、ＲＡＭ上に確保した記憶エリアに書き込む。
【００３０】
このことはユーザプロセスにとって、下記（１）、（２）の問題がある。
（１）ユーザプログラム２０１が保持するファイル情報が消える。そのため、例えばＵＮＩＸ（登録商標）系のＯＳ上で動くユーザプロセスであれば、今まで開いていたファイルにアクセスするためには再度ファイルをオープンする必要がある。
（２）システム全体でマウント情報を共有している。これは二次記憶装置内のファイルシステムを特定のパスから見えるようにするものと考えればよい。
こうした情報も割り当て直す必要がある。この割当処理が終わるまで二次記憶装置内のファイルシステムにアクセスできず、したがって、それまでの間は二次記憶装置内のファイルを使用する機能が使えなくなる。
【００３１】
そこで、本実施形態では、図３に示すように、省エネ移行時に後始末処理３０３内でファイル情報４０１とマウント情報４０２を解放（破棄）せずに保持したままにする。そして、省エネ復帰時に再初期化処理３０４では再割り当てを行わず、省エネ移行時に保存してあったファイル情報４０１、マウント情報４０２をそのまま使用する。
【００３２】
これによって、ユーザプロセス側では余計なファイル系初期化処理を実行する必要がなくなる。また、マウント情報４０２も保持しているため、二次記憶装置の電源をオンし、ハードウェア的に使用できる状態となっていれば即座に二次記憶装置内のファイルシステムにアクセス可能となる。よって、二次記憶装置内のファイルを用いる機能もすぐに使えるため、利用者を待たせることがなくなる。
【００３３】
図３に示す処理を実現するためには、もう一つ考慮することがある。それは、ハードウェア的には二次記憶装置の電源がオフされているにも関わらず、ソフトウェア的な情報では二次記憶装置内のファイルシステムにアクセスできるかの様に見えるという、ある意味で矛盾した状態を解消する仕組みを実現することである。
【００３４】
ファイルにアクセスするプログラムには大きく分けて２つのタイプがある。即ちユーザプログラムと、定周期キャッシュ書き戻しプロセスである。ユーザプログラムはＯＳ上で動作するプログラムであり、このプログラムがファイルにアクセスするときにはＯＳが提供するＩ／Ｆ（ＡＰＩ：Application Programming Interface）を経由する。定周期キャッシュ書き戻しプロセスは、ＯＳが保持するファイルキャッシュの中身を二次記憶装置に反映させための特殊なプログラムであり、ＯＳの一部として動作する。
【００３５】
〈定周期キャッシュ書き戻しプロセス〉
図４を用いて定周期キャッシュ書き戻しプロセスを説明する。定周期キャッシュ書き戻しプロセス２０２では、呼び出し処理２０３がファイルキャッシュ同期処理２０４を呼び出し、ファイルキャッシュ同期処理２０４が本体２内のＲＡＭ上のファイルキャッシュ４１１を二次記憶装置（以下、直付ＵＳＢメモリとする）３２への書き戻し処理２０５を行う。
【００３６】
汎用ＯＳ２３にはユーザプログラムによって直近にアクセスされた二次記憶装置のデータをＲＡＭ上に保持する仕組みがある。これによって、ユーザプログラムは毎回アクセス速度の遅い二次記憶装置にアクセスしなくてもよくなり、性能向上に寄与する。
【００３７】
ここで、ユーザプログラムによるアクセスが単なる読み出しであれば問題はないが、書き込みを行う際、一般的なＯＳは下記（１）、（２）ように動作するため、問題が発生する。
（１）ＲＡＭキャッシュがあった場合はファイルキャッシュ上に変更を行い、「ダーティ(ファイルキャッシュと二次記憶装置の内容不一致)」の印をつける。
（２）ＲＡＭキャッシュがない場合は二次記憶装置から読み出しを行い、ファイルキャッシュを作成する。そして、（１）と同じくファイルキャッシュ上に変更を行い、「ダーティ」の印をつける。
【００３８】
問題は、この状態で二次記憶装置にファイルキャッシュ上のデータが反映されない場合、電源オフで書いたはずのデータが消えてしまうことである。そこで、定周期毎に二次記憶装置内にファイルキャッシュ上のデータの反映を行う仕組みがある。この仕組みを司るのが、定周期キャッシュ書き戻しプロセスである。
【００３９】
図５にファイルキャッシュの概要を示す。一般的にあるファイルに対応したファイルキャッシュ４１１は、ファイルを管理するデータ構造４１０内にリストもしくは配列の形で保持されている。ここで、１つのファイルは０個以上のファイルキャッシュ４１１を持つ。直近にアクセスされた位置にあるブロック単位でファイルキャッシュ４１１を保持する。ファイルキャッシュ４１１はファイルを管理するデータ構造４１０からリストや配列などの形式で保存されているため、順次辿ることができる。そのため、現在開かれている全ファイルを辿ってファイルを管理するデータ構造４１０を使い、ファイルキャッシュ同期処理を行うことでファイルの書き戻しが可能である。
【００４０】
図６にファイルキャッシュ同期処理（図４のステップ２０４）のフローを示す。ファイルキャッシュ同期処理２０４においては、全てのファイルキャッシュを二次記憶装置に書き戻すまで（ステップ２０４ａ：Yes）、リストからファイルキャッシュのブロックを１つずつ取り出し（ステップ２０４ｂ）、二次記憶装置へ転送する処理（ステップ２０４ｃ）を繰り返す。
【００４１】
定周期キャッシュ書き戻しプロセスの呼び出し処理（図４のステップ２０３）は一般的には図７のように動作する。まず、タイマ２３７からの割り込みがあるまで一定時間休眠して待つ（ステップ２０３ａ）。一定時間が経過したら、省エネ制御のモードが「省エネ移行」であるか否かを判断する（ステップ２０３ｂ）。「省エネ移行」とは省エネモードに移行した状態、即ち省エネモード中である。判断の結果が「省エネ移行」でない場合は（ステップ２０３ｂ：No）、ファイルキャッシュ同期処理を呼び出し（ステップ２０３ｃ）、「省エネ移行」である場合は（ステップ２０３ｂ：Yes）、一定時間の休眠状態（ステップ２０３ａ）に戻る。
【００４２】
〈ファイルシステムから見た省エネ移行時の挙動〉
図８はファイルシステム２３１から見た省エネモード時の挙動を示す図である。ここには、ファイルにアクセスするプログラムとして、ユーザプログラム２０１及び定周期キャッシュ書き戻しプロセス２０２がある。
【００４３】
ユーザプログラム２０１がファイルにアクセスしようとすると（ファイルアクセス要求２０６）、汎用ＯＳ２３がエラーを返す。なぜなら、省エネモード中は電源オフである実際のデバイス（二次記憶装置）にアクセスすることができないためである。定周期キャッシュ書き戻しプロセス２０２は、図７に示したように、省エネモード中は動作しない。
【００４４】
図８に示すように、省エネ移行処理１１０が始まると、二次記憶装置３２の電源をオフする処理１１６の前に、ファイルキャッシュ同期処理２０４の呼び出し処理（図７の２０３ｃと同様な処理）１１１を行い、ＲＡＭ上の全てのファイルキャッシュ４１１のダーティなデータを二次記憶装置３２に書き戻す（処理１１５）。並行して、省エネ制御のモードを「省エネ移行」に設定し（処理１１２）、電源オフ１１６と同時に省エネ制御のモードが「省エネ移行」となる（処理１１３）。
【００４５】
これにより、二次記憶装置３２の電源をオフしても、これまでにユーザプログラム２０１が書いたデータは保持されるため、定周期キャッシュ書き戻しプロセス２０２が動作しなくても問題ない。
【００４６】
図８における省エネ移行処理１１０は、例えば操作パネル３５から入力操作が一定時間行われなかった場合、ネットワークＩ／Ｆ３４から印刷コマンドが一定時間入力されなかった場合等に行われる。また、操作パネル３５に設けられた所定のキー（例えばサブ電源キー）を押下することに応じて行われる。
【００４７】
〈起動時に実行される設定ファイルとマウント情報との関係〉
情報処理装置１の起動時、機器管理モジュール２４１は設定ファイルに記述された通りに二次記憶装置３２内のファイルシステムのマウントを行い、本体２内の全モジュールが二次記憶装置３２内のファイルシステムにアクセスできるようにする。
【００４８】
図９に、情報処理装置１の起動時に参照される設定ファイルの一例とマウント情報との関係を示す。設定ファイル４２０に記述されている枠４２１内の部分は、二次記憶装置３２内のパーティション（ｓｄ０ｄ、ｓｄ０ｅ、ｓｄ０ｆ）に対応している。
【００４９】
マウント動作により、本体２内のＲＡＭ上に展開されているルートファイルシステム４３０のディレクトリと二次記憶装置３２のパーティション内にあるファイルシステムとが関連付けられる。この結果、本体２内のディレクトリ経由で二次記憶装置３２内のファイルシステムにアクセスすることができる。なお、マウント動作は、起動時だけでなく、二次記憶装置３２が本体２のＩ／Ｆに挿入されたときにも行われる。つまり、マウント動作は、本体２が二次記憶装置３２の接続（電気的接続）を検知したときに行われる。
【００５０】
〈マウント時に追加されるデータとそのデータ構造〉
マウントが行われると、汎用ＯＳ２３は、図１０のようなデータ構造を持つマウント構造体４３２を汎用ＯＳ２３の内部に作成する。マウント構造体４３２は、マウント構造体リスト管理テーブル４３１により管理されており、マウント動作毎（装置の起動毎、二次記憶装置３２の挿入毎）にリストに１つのマウント構造体４３２が追加される。
【００５１】
マウント構造体４３２は、「マウントポイント」、「マウントデバイス」、「ファイルシステム種類」、「所属するファイルのリスト」等のマウントに関するデータを持っている。ここで、「所属するファイルのリスト」には、該当ファイルシステム内のファイルがオープンされる毎にファイルの情報が追加される。
【００５２】
〈ファイルオープン時に追加されるデータとそのデータ構造〉
図１０に示すマウント構造体４３２が作成されることで、情報処理装置１が動作し、本体２内の任意のモジュール（アプリケーション）が二次記憶装置３２内のファイルにアクセスするためにオープン動作を行い、本体２内のモジュールから二次記憶装置３２内のファイルにアクセスできるようにする。ファイルオープン時に追加されるデータとその構造を図１１に示す。
【００５３】
図において、プロセス構造体４４０は、ファイルをオープンしたプロセスを管理するための構造体であり、「プロセス名」、「プロセス番号」、「開いたファイルのリスト」等のデータを持っている。
【００５４】
ファイル構造体リスト管理テーブル４５０はファイル構造体４５１を管理するためのテーブルである。ファイル構造体４５１は、オープンされたファイルに関する情報として、「ファイル名」、「ファイルディスクリプタ番号」、「このファイルが属するマウントポイントの情報」等が格納された構造体である。「このファイルが属するマウントポイントの情報」にマウント構造体４３２を加える。
【００５５】
図１１は、機器管理モジュール２４１が、マウント構造体４３２に格納されているマウントポイントに所属するファイル構造体リスト４５０をオープンしたことを示している。
【００５６】
〈省エネ移行時の処理シーケンス〉
次に情報処理装置１における省エネ移行時の処理シーケンスについて、図１２及び図１３を用いて説明する。ここで、図１２は省エネ移行時の処理シーケンスを示す図であり、図１３は図１２における後始末処理のフローチャートである。
【００５７】
図１２に示すように、操作パネル３５のサブ電源キーが利用者により押下されると、操作パネル３５はサブ電源キー押下イベントをパネル管理モジュール２６に通知し（シーケンスＳ１）、パネル管理モジュール２６はサブ電源キー押下イベントを機器管理モジュール２４１に通知する（シーケンスＳ２）。
【００５８】
次に機器管理モジュール２４１は、他のアプリ群（アプリケーション）２２に対して、プロセス間通信を用いて、省エネモードに移行してよい状態か否かを問い合わせ（シーケンスＳ３）、応答を受信する（シーケンスＳ４）。
【００５９】
機器管理モジュール２４１は、全てのアプリ群からの応答が移行ＯＫであった場合のみ（シーケンスＳ５：Yes）、汎用ＯＳ２３が公開するシステムコールを用いて、省エネ移行要求を行い（シーケンスＳ６）、それ以外の場合は（シーケンスＳ５：No）、処理を中断する。
【００６０】
省エネ移行要求を受けた汎用ＯＳ２３は、ファイルキャッシュ同期処理を行って（シーケンスＳ７）、ＲＡＭ上のファイルキャッシュを二次記憶装置３２に書き戻す（シーケンスＳ８）。このファイルキャッシュ同期処理のフローは図６に準ずる。
【００６１】
次に汎用ＯＳ２３は、二次記憶装置３２内の所定のレジスタの値を書き換えるなどの処理により、二次記憶装置３２の電源をオフに設定する（シーケンスＳ９）。二次記憶装置３２が電源オフイベントを汎用ＯＳ２３に通知すると（シーケンスＳ１０）、汎用ＯＳ２３はファイル構造体及びマウント構造体の後始末処理を行う（シーケンスＳ１１）。ここで、シーケンスＳ９、Ｓ１０については、割り込みもしくは通信プロトコルに基づいた通信に基づいて実行することができる。
【００６２】
この後始末処理では、図１３に示すように、現在省エネ移行中か否かを判断する（ステップＳ１１ａ）。ここでは、常に“Yes”となる。そこで、ファイル構造体及びマウント構造体をメモリ（ＲＡＭ上の記憶エリア）にコピーし（ステップＳ１１ｂ）、ファイル構造体及びマウント構造体が配置されていたメモリ（コピー元のファイル構造体及びマウント構造体のＲＡＭ上の記憶エリア）を解放する（ステップＳ１１ｃ）。
【００６３】
よって、必ずファイル構造体及びマウント構造体は保存される。従って、後述する図１５（再初期化処理）でファイル構造体、マウント構造体の内容を復元できるため、省エネ移行前と復帰後で、ファイルシステムの情報を引き継ぐことができる。従って、図３に記載した事項を満たすことができる。
【００６４】
なお、この後始末処理は省エネ移行時以外、例えば二次記憶装置３２が本体２から抜かれたときや、情報処理装置１のメイン電源キーによりメイン電源がオフされるときにも実行される処理であり、そのときには“No”となるので、ステップＳ１１ｂを省略して、ステップＳ１１ｃに移行する。
【００６５】
図１２の説明に戻る。後始末処理を終えた汎用ＯＳ２３は機器管理モジュール２４１に対して、省エネ移行ＯＫを通知する（シーケンスＳ１２）。
【００６６】
〈省エネ復帰時の処理シーケンス〉
次に情報処理装置１における省エネ復帰時の処理シーケンスについて、図１４及び図１５を用いて説明する。ここで、図１４は省エネ復帰時の処理シーケンスを示す図であり、図１５は図１４における再初期化処理のフローチャートである。
【００６７】
図１４に示すように、操作パネル３５のサブ電源キーが利用者により押下されると、操作パネル３５はサブ電源キー押下イベントをパネル管理モジュール２６に通知し（シーケンスＳ２１）、パネル管理モジュール２６はサブ電源キー押下イベントを機器管理モジュール２４１に通知する（シーケンスＳ２２）。
【００６８】
次に機器管理モジュール２４１は、他のアプリ群に対して、プロセス間通信を用いて、省エネ復帰してよい状態か否かを問い合わせ（シーケンスＳ２３）、応答を受信する（シーケンスＳ２４）。
【００６９】
機器管理モジュール２４１は、全てのアプリ群からの応答が復帰ＯＫであった場合のみ（シーケンスＳ２５：Yes）、汎用ＯＳ２３が公開するシステムコールを用いて、省エネ復帰要求を行い（シーケンスＳ２６）、それ以外の場合は（シーケンスＳ２５：No）、処理を中断する。
【００７０】
省エネ復帰要求を受けた汎用ＯＳ２３は、二次記憶装置３２内の所定のレジスタの値を書き換えるなどの処理により、二次記憶装置３２の電源をオンに設定する（シーケンスＳ２７）。二次記憶装置３２が電源オンイベントを汎用ＯＳ２３に通知すると（シーケンスＳ２８）、汎用ＯＳ２３はファイル構造体及びマウント構造体の再初期化処理を行う（シーケンスＳ２９）。
【００７１】
この再初期化処理では、図１５に示すように、マウント構造体を配置するメモリをＲＡＭ上に確保し（ステップＳ２９ａ）、現在省エネ復帰中か否かを判断する（ステップＳ２９ｂ）。
【００７２】
ここでは、“Yes“となるので、ファイル構造体を配置するメモリを確保する（ステップＳ２９ｃ）。そして、ステップＳ２９ａ、Ｓ２９ｃで確保したメモリに、省エネ移行時にステップＳ１１ｂでメモリにコピーし、保存しておいたマウント構造体の情報、ファイル構造体の情報を書き戻す（ステップＳ２９ｅ）。
【００７３】
なお、ステップＳ２９ｂで“Yes“となるのは、例えば装置の起動時であり、この場合は、マウント構造体の初期化処理（ステップＳ２９ｄ）を行う。この処理は図９及び図１０を用いて説明した処理である。
【００７４】
図１４の説明に戻る。再初期化処理を終えた汎用ＯＳ２３は、省エネ制御のモードを「省エネ復帰」に設定した後に、機器管理モジュール２４１に対して、省エネ復帰ＯＫを通知する（シーケンスＳ３０、Ｓ３１）。
【００７５】
機器管理モジュール２４１を始め、その他のモジュールはそのイメージをＲＡＭＤＩＳＫの手法を用いて実行形式ファイル毎に全てＲＡＭ上にロードしているため、省エネモード中に二次記憶装置にアクセスすることはない。
【００７６】
なお、図１２では、操作パネル３５のサブ電源キーの押下に応じて、省エネ移行のシーケンスを実行しているが、操作パネル３５が一定時間操作されなかったり、ネットワークＩ／Ｆ３４からのデータ入力が一定時間無かったりした場合にも、同様に省エネ移行のシーケンスを実行する。また、操作パネル３５が操作されたり、ネットワークＩ／Ｆ３４からのデータが入力されたりした場合にも、同様に省エネ復帰のシーケンスを実行する。
【００７７】
また、以上の実施形態では、二次記憶装置を直付ＵＳＢメモリ３２とした場合について説明したが、二次記憶装置がＳＤカード３１やＨＤＤ３３の場合も同様に構成することができる。
【００７８】
さらに、以上の実施形態では、ファイル構造体及びマウント構造体をコピーし、コピー元のファイル構造体及びマウント構造体が配置されたメモリを解放するように構成したが（図１３のＳ１１ｂ、Ｓ１１ｃ）、ファイル構造体及びマウント構造体をコピーせず、ファイル構造体及びマウント構造体が配置されたメモリを解放せずに保持する構成とすることもできる。この構成は、省エネ移行時の後始末処理、省エネ復帰時の再初期化処理を実行しない構成と言える。
【００７９】
以上詳細に説明したように、本実施形態の情報処理装置１は、下記（１）〜（７）の効果を有する。
（１）消費電力の大きい二次記憶装置の電源を省エネモード時にオフすることができるので、省エネ効果を大幅に向上させることができる。
（２）電源オフ時に、割り込みもしくは通信プロトコルに基づいた通信に基づいて、二次記憶装置の電源がオフされたことを通知することにより、汎用ＯＳ２３が二次記憶装置の電源がオフされたことを知ることができるため、後始末処理を遅延なく行うことができる。
（３）通常、電源オフなどの事情により二次記憶装置が一時的であっても使用不能になると、その二次記憶装置上に存在するファイルシステムに関する情報及び該当ファイルシステム内のファイルに関する情報は一度破棄される。そのため、ユーザプログラム側では再度の電源オン時にマウント処理及びユーザプログラムがオープンしていたファイルを再度オープンする必要がある。これに対し、本実施形態では、省エネモード移行後、ソフトウェアから見るとデバイスが消失したように見える場合であっても、マウント情報もしくはユーザプログラムがオープンしているファイルもしくはファイルシステムの情報を破棄することなく、省エネモードからの復帰時までこれらの情報を保持することができるので、通常のケースで必要なマウント処理及びオープン処理をやり直す必要がないため、省エネモードからの復帰時間を早めることができる。また、ユーザプログラム側で上記処理をやり直す必要がないため、作りが簡潔になり、不具合の防止にも大きく貢献することができる。
（４）汎用ＯＳ２３内部で保持するファイルキャッシュと二次記憶装置の整合を取るために、一定周期毎にＲＡＭ上のファイルキャッシュと同期をとるためのモジュールがカーネル内に存在するが、このモジュールを省エネモード移行時に停止することができる。これにより、電源オフ中の二次記憶装置に対するアクセスに起因するハードウェア的なエラー(バスエラー)を防ぐことができるため、省エネモードの安定運用が可能になる。
（５）省エネモード移行後、電源がオフされていることでアクセス不能な二次記憶装置について、省エネモード移行後のユーザプログラムからのアクセス要求に対してエラーを通知することができるので、電源オフ中の二次記憶装置に対するアクセスに起因するハードウェア的なエラーを防ぐことができる。このため、省エネモードの安定運用が可能になる。
（６）省エネモードからの復帰後、ファイルキャッシュ同期処理を再開することで、二次記憶装置が使えるようになってから、ＲＡＭ上のファイルキャッシュと二次記憶装置の内容の同期がとれるようになるため、二次記憶装置内のファイルの破損を防ぐことができるようになる。
（７）省エネモードからの復帰後、ユーザプログラムからのアクセス要求に対して、特段の事情のない限りエラーを通知することなくアクセスを受け入れることができる。これにより、省エネ復帰後、ユーザプログラムが二次記憶装置上のファイルにアクセスすることが出来るようになるため、省エネ移行前の状態を保持することができる。
【符号の説明】
【００８０】
１…情報処理装置、２…本体、３…付属装置、２２…アプリケーション、２３…汎用ＯＳ、２０２…定周期キャッシュ書き戻しプロセス、２０４…ファイルキャッシュ同期処理、２０６…ファイルアクセス要求、２３１…ファイルシステム、４０１，４０３…ファイル情報、４０２，４０４…マウント情報、４１１…ファイルキャッシュ、４３２…マウント構造体、４５１…ファイル構造体。
【先行技術文献】
【特許文献】
【００８１】
【特許文献１】特開２００５−１９３６５２号公報
【特許文献２】特開２００７−３０６１４３号公報
【図１】
0005811611.tif 000002
【図２】
0005811611.tif 000003
【図３】
0005811611.tif 000004
【図４】
0005811611.tif 000005
【図５】
0005811611.tif 000006
【図６】
0005811611.tif 000007
【図７】
0005811611.tif 000008
【図８】
0005811611.tif 000009
【図９】
0005811611.tif 000010
【図１０】
0005811611.tif 000011
【図１１】
0005811611.tif 000012
【図１２】
0005811611.tif 000013
【図１３】
0005811611.tif 000014
【図１４】
0005811611.tif 000015
【図１５】
0005811611.tif 000016