(57)【要約】【課題】アプリケーションがアンマウントの要求を行うことができない場合であっても、適切に情報処理装置から該部記憶装置を取り外すことができるようにすることを目的とする。【解決手段】外部記憶装置を装着可能な情報処理装置であって、外部記憶装置の取り外しの指示を受け付けるためのユーザインタフェースの表示を制御するプロセスの実行中に、プロセスに係る例外処理が発生したか否かを判定する例外判定手段と、例外判定手段により例外処理が発生したと判定された場合に、外部記憶装置のアンマウント処理を実行する実行手段とを備える。【選択図】図６
2020052608.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置を装着可能な情報処理装置であって、
前記外部記憶装置の取り外しの指示を受け付けるためのユーザインタフェースの表示を制御するプロセスの実行中に、前記プロセスに係る例外処理が発生したか否かを判定する例外判定手段と、
前記例外判定手段により前記例外処理が発生したと判定された場合に、前記外部記憶装置のアンマウント処理を実行する実行手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記プロセスに含まれるジョブが実行中か否かを判定するジョブ判定手段をさらに有し、
前記実行手段は、前記例外処理が発生したと判定され、かつジョブが実行中であると判定された場合に、前記アンマウント処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ジョブ判定手段は、前記プロセスに含まれるジョブであって、かつ前記外部記憶装置へのアクセスを含むジョブが実行中か否かを判定し、
前記実行手段は、前記例外処理が発生したと判定され、かつ前記外部記憶装置へのアクセスを含むジョブが実行中であると判定された場合に、前記アンマウント処理を実行することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記例外処理を登録する登録手段をさらに有し、
前記例外判定手段は、前記登録手段により登録された前記例外処理が発生したか否かを判定することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
外部記憶装置を装着可能な情報処理装置が実行する情報処理方法であって、
前記外部記憶装置の取り外しの指示を受け付けるためのユーザインタフェースの表示を制御するプロセスの実行中に、前記プロセスに係る例外処理が発生したか否かを判定する例外判定ステップと、
前記例外判定ステップにおいて前記例外処理が発生したと判定された場合に、前記外部記憶装置のアンマウント処理を実行する実行ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
コンピュータを、請求項１乃至４の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（以下  ＵＳＢ）のＩ／Ｆが搭載されているホストコンピュータでは、ＵＳＢストレージや、ＵＳＢカードリーダ等を接続し、ホストコンピュータの１つのデバイスとして使用することが可能である。ＵＳＢメモリのような外部記憶装置を接続して使用する場合は、コンピュータのオペレーティングシステムが、接続された外部記憶装置をシステムに接続する、マウントと呼ばれる処理を実行する。マウントを行うことで、データの読み出しや書き込みを実行することができるようになる。ＵＳＢメモリに対してデータを書き込む際は、ライトキャッシュと呼ばれるキャッシュに一時的に書き込みデータが保持される。
【０００３】
ＵＳＢメモリの着脱は簡単に行うことができるが、データの書き込み中等に取り外しを行ってしまうとＵＳＢメモリ内部のデータを破壊してしまう場合がある。これは、ライトキャッシュに書き込まれていないデータが存在している時にＵＳＢメモリを取り外してしまった時等に起こり得る。そこで、システムは、アンマウントと呼ばれる、ＵＳＢメモリを安全に取り外すための処理を行う。アンマウントを実行することでＵＳＢメモリ内のデータを一貫性がある状態にし、ＵＳＢメモリとシステムとの接続を切り離すことができる。
【０００４】
特許文献１には、ユーザからの明示的な指示を必要とせず、複数のアプリケーションが独立して外部記憶装置のマウント及びアンマウントをオペレーティングシステムに要求する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２２３６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般に、ＵＳＢメモリを取り外す際には、ユーザは、ユーザインタフェースを利用して、ＵＳＢメモリのアンマウント処理を装置に指示する。そして、指示を受けたアプリケーションがオペレーティングシステムに対してアンマウント処理を実行させる。しかしながら、アンマウントの要求を行うアプリケーションが例外処理の発生といった予期せぬ原因により停止した場合には、アンマウント処理を行うことができないという問題があった。
【０００７】
本発明はこのような問題点に鑑みなされたもので、アプリケーションがアンマウントの要求を行うことができない場合であっても、適切に情報処理装置から外部記憶装置を取り外すことができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明は、外部記憶装置を装着可能な情報処理装置であって、前記外部記憶装置の取り外しの指示を受け付けるためのユーザインタフェースの表示を制御するプロセスの実行中に、前記プロセスに係る例外処理が発生したか否かを判定する例外判定手段と、前記例外判定手段により前記例外処理が発生したと判定された場合に、前記外部記憶装置のアンマウント処理を実行する実行手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、アプリケーションがアンマウントの要求を行うことができない場合であっても、適切に情報処理装置から該部記憶装置を取り外すことができるようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置のハードウェア構成図である。
【図２】画像形成装置のソフトウェアモジュールの構成図である。
【図３】表示画面の一例を示す図である。
【図４】表示画面の一例を示す図である。
【図５】例外管理処理を示すフローチャートである。
【図６】アンマウント管理処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。
図１は、画像形成装置１のハードウェア構成図である。なお、画像形成装置１は、情報処理装置の一例である。ＣＰＵ１０１は、画像形成装置１の全体を制御する。システムバス１０２は、ユニット同士を接続する。ＨＤＤ１０３は、各種情報やプログラムを格納する。なお、画像形成装置１は、ＨＤＤ１０３に替えて、又はＨＤＤ１０３と供にＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（以下ＳＳＤ）等の大容量不揮発メモリを備えてもよい。ＲＡＭ１０４は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、後述する画像形成装置１の機能や処理は、ＣＰＵ１０１がＨＤＤ１０３等に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００１２】
ネットワークコントローラＩ／Ｆ１０６は、ネットワーク上の他の機器との通信を行う。ネットワークコントローラ１０５は、ネットワークコントローラＩ／Ｆ１０６を制御する。ＵＳＢホストＩ／Ｆ１０８は、ＵＳＢメモリとの通信を制御する。ＵＳＢホストＩ／Ｆ１０８はＵＳＢケーブルを使用してＵＳＢメモリと接続されるものとするが、他の例としては、ＵＳＢケーブルを使用せず直接ＵＳＢメモリと接続してもよい。ＵＳＢホストコントローラ１０７は、ＵＳＢホストＩ／Ｆ１０８を制御する。なお、図１においては、１つのＵＳＢホストＩ／Ｆ１０８のみ示しているが画像形成装置１は、複数のＵＳＢホストＩ／Ｆを有するものとする。このように画像形成装置１は、ＵＳＢメモリを装着可能である。なお、ＵＳＢメモリは、外部記憶装置の一例である。
【００１３】
ディスプレイ１１１は、各種情報を表示する。ディスプレイ１１１は、例えば画像形成装置１の動作状況を表示する。ディスプレイコントローラ１１０は、ディスプレイ１１１を制御する。入力部１１３は、ユーザからの指示を受け付ける。入力部１１３は、例えばタッチパネルやハードキー等である。入力部コントローラ１１２は、入力部１１３を制御する。
【００１４】
クロック（ＲＣＴ）１１４は、時計機能であり、アラーム機能、タイマー機能等を有する。不揮発性メモリ１１５は、各種情報を記憶する。不揮発性メモリ１１５は、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（以下ＳＲＡＭ）や、Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（以下ＥＥＰＲＯＭ）等であってもよい。スキャナ１１７は、画像を読み取る。スキャナＩ／Ｆ１１６は、スキャナ１１７を制御する。プリンタ１１９は、画像を形成する。プリンタＩ／Ｆ１１８は、プリンタ１１９を制御する。
【００１５】
図２は、画像形成装置１のソフトウェアモジュールの構成図である。図２に示す各モジュールは、ＣＰＵ１０１により実現される。オペレーティングシステム（ＯＳ）２０１は、ＣＰＵ１０１やＲＡＭ１０４等のハードウェアリソースを管理しており、他のソフトウェアモジュール（以下プロセス）はＯＳ２０１によって割り当てられたリソースを使用して動作する。
【００１６】
ＯＳ２０１は、ＵＳＢメモリが画像形成装置１に接続されるとマウント処理を行い、アプリケーション（プロセス）がＵＳＢメモリにアクセスできるように画像形成装置１との接続を行う。ＵＩ／Ｊｏｂ実行プロセス２０２は、ＵＳＢメモリの取り外しの指示を受け付けるためのユーザインタフェース（ＵＩ）をディスプレイ１１１に表示すると共に、プリントやスキャンといったジョブを実行するためのプロセスである。ここで、マウントとは、ＵＳＢメモリを含む物理的なデバイスを、ＯＳ２０１が、ファイルシステムにより管理されるマウントポイントに対応付けることである。たとえば識別子の、一例としては次がある。/dev/usb1というデバイスが、マウントポイント/media/usbdriveに所定のファイルシステムの形式でマウントされたとする。マウント後、ＯＳ２０１は、/media/usbdrive以下のディレクトリを論理的なドライブとして取り扱うことができるようになる。また、アンマウントを実行すると、マウントされたデバイスがアンマウントされ、ファイルシステムから切り離される。
【００１７】
例外ハンドラ登録プロセス２０３は、例外処理が発生した時に実行される例外ハンドラを有し、他のプロセスから例外ハンドラの登録要求があった場合に、例外ハンドラを登録する機能を有する。例外処理監視プロセス２０４は、例外処理が発生したことを検知するためのプロセスである。Ｊｏｂ管理プロセス２０５は、ＵＩ／Ｊｏｂ実行プロセス２０２によって実行されるジョブの実行順やジョブ種を管理するプロセスである。
【００１８】
図３は、ディスプレイ１１１に表示される表示画面３００の一例を示す図である。ユーザは、表示画面３００へのタッチ操作により、プリンタやスキャンといった機能の実行を指示することができる。ＵＳＢメモリがＵＳＢホストＩ／Ｆ１０８に接続され、マウント処理が完了すると、表示画面３００には、アイコン３０１が表示される。アイコン３０１は、アンマウント処理の実行を指示するためのボタンである。ユーザは、ＵＳＢメモリの使用を終えた際に、アイコン３０１を押下する。アイコン３０１が押下されると、図４に示すように、取り外しウィンドウ４００が表示画面３００上に重畳表示される。ユーザは、メモリーメディア一覧４０１において取り外し対象のメモリーメディアを選択し、アイコン４０２を押下すことで、ＵＳＢメモリの取り外しを画像形成装置１に指示できる。
【００１９】
図５は、例外管理処理を示すフローチャートである。Ｓ５０１において、ＵＩ／Ｊｏｂ実行プロセス２０２は、例外ハンドラ登録プロセス２０３に対して例外ハンドラの登録要求を行い、例外ハンドラ登録プロセス２０３内に用意されている例外ハンドラを登録する。ここで、例外ハンドラとは、プロセスの実行中に不正メモリアクセス等の予期せぬ処理が発生した際に、ＯＳ２０１が発生させるシグナルに応じて実行される処理のことである。例外ハンドラの登録とは、例外ハンドラを指定することである。本実施形態においては、例外ハンドラ登録プロセス２０３は、ＳＩＧＳＥＧＶ、ＳＩＧＩＬＬ、ＳＩＧＦＰＥ、ＳＩＧＢＵＳ、ＳＩＧＡＲＢＲＴのシグナルに対して、例外ハンドラを登録する。ＳＩＧＳＥＧＶ、ＳＩＧＩＬＬ、ＳＩＧＦＰＥ、ＳＩＧＢＵＳ、ＳＩＧＡＲＢＲＴのシグナルの発行は、例外処理の一例である。ここで、ＳＩＧＳＥＧＶは、不正メモリアクセスに応じて発行されるシグナルである。ＳＩＧＩＬＬは、不正命令に応じて発行されるシグナルである。ＳＩＧＦＰＥは、ゼロ除算に応じて発行されるシグナルである。ＳＩＧＢＵＳは、アドレスエラー等に応じて発行されるシグナルである。
【００２０】
Ｓ５０２において、例外ハンドラ登録プロセス２０３は、登録されたシグナルが発生したか否かを監視する。例外ハンドラ登録プロセス２０３は、登録したシグナルが発生するまで待機し、シグナルが発生すると（Ｓ５０２でＹＥＳ）、処理をＳ５０３へ進める。Ｓ５０３において、例外ハンドラ登録プロセス２０３は、例外ハンドラを起動する。次に、Ｓ５０４において、例外ハンドラ登録プロセス２０３は、発生したシグナルの種類とシグナルが発生したプロセス名及びタスク名をＲＡＭ１０４上の例外ファイルに書き込む。以上で、例外管理処理が終了する。
【００２１】
図６は、アンマウント管理処理を示すフローチャートである。Ｓ６０１において、例外処理監視プロセス２０４は、ＲＡＭ１０４の例外ファイルに対してポーリングを行い、例外ファイルを読み込む。次に、Ｓ６０２において、例外処理監視プロセス２０４は、例外ファイルを参照することで、例外処理が発生しているか否かを判定する。例外処理監視プロセス２０４は、例外処理が発生している場合には（Ｓ６０２でＹＥＳ）、処理を６０３へ進める。例外処理監視プロセス２０４は、例外処理が発生していない場合には（Ｓ６０２でＮＯ）、処理をＳ６０１へ進める。
【００２２】
Ｓ６０３において、例外処理監視プロセス２０４は、例外が発生したプロセスが、ＵＩ／Ｊｏｂ実行プロセス２０２であるか否かを判定する。例外処理監視プロセス２０４は、ＵＩ／Ｊｏｂ実行プロセス２０２の場合には（Ｓ６０３でＹＥＳ）、処理をＳ６０４へ進める。例外処理監視プロセス２０４は、ＵＩ／Ｊｏｂ実行プロセス２０２でない場合には（Ｓ６０３でＮＯ）、処理をＳ６０１へ進める。Ｓ６０４において、例外処理監視プロセス２０４は、ＵＩ／Ｊｏｂ実行プロセス２０２のジョブで実行中のジョブが存在するか否かを判定する。例外処理監視プロセス２０４は、実行中のジョブが存在する場合には（Ｓ６０４でＹＥＳ）、処理をＳ６０１へ進める。例外処理監視プロセス２０４は、実行中のジョブが存在しない場合には（Ｓ６０４でＮＯ）、処理をＳ６０５へ進める。Ｓ６０５において、例外処理監視プロセス２０４は、ＯＳ２０１に対しアンマウント処理を指示する。これに対応して、ＯＳ２０１は、アンマウント処理を実行する。なお、Ｓ６０３〜Ｓ６０５の処理は、例外判定処理の一例である。また、Ｓ６０４の処理は、ジョブ判定処理の一例である。
【００２３】
ＯＳ２０１は、アンマウント処理として、外部記憶装置に書き込まれていないキャッシュデータの書き込みと、システムとの接続を解除する処理を行う。アンマウントコマンドはＯＳ２０１において定義されうる。アンマウントコマンドにより実行されるアンマウント処理は、外部記憶装置をＯＳ２０１において管理されている論理的な階層構造から切り離す意味でも使われる。アンマウント処理が実行されると、アンマウントされた外部記憶装置に対してはＯＳ２０１を介しては原則としてアクセスできなくなる。この結果、画像形成装置１は、適切に外部記憶装置を取り外すことができる状態となる。
【００２４】
以上のように、画像形成装置１は、ＵＩ／Ｊｏｂ実行プロセスの実行中に、ＵＩ／Ｊｏｂ実行プロセスに係る例外処理が発生した場合には、自動的にアンマウント処理を行う。これにより、ＵＩ／Ｊｏｂ実行プロセスにより表示されるべき、ＵＳＢメモリを取り外すためのＵＩを表示することができないことにより、ユーザがアンマウント処理の実行指示を入力できなくなるのを避けることができる。すなわち、アプリケーションがアンマウントの要求を行うことができない場合であっても、適切にＵＳＢメモリを取り外すことができる。
【００２５】
さらに、ＵＩ／Ｊｏｂ実行プロセスの実行中に例外処理が発生した場合であっても、ＵＩ／Ｊｏｂ実行プロセスの一部のジョブが実行を継続している場合がある。この場合、実行中のジョブによりＵＳＢメモリへのアクセスが行われる可能性がある。そのため、本実施形態の画像形成装置１は、この場合には、アンマウント処理を行わないこととした。これにより、ＵＳＢメモリへのアクセス中にアンマウント処理が実行されるのを避けることができる。
【００２６】
なお、他の例としては、例外処理監視プロセス２０４は、実行中のジョブが存在する場合に（Ｓ６０４でＹＥＳ）、さらに、実行中のジョブがＵＳＢメモリへのアクセスを伴うジョブか否かを判定してもよい。そして、例外処理監視プロセス２０４は、ＵＳＢメモリへのアクセスを伴わない場合に、アンマウント処理を指示し（Ｓ６０５）、ＵＳＢメモリへのアクセスを伴う場合には処理をＳ６０１へ進めてもよい。
【００２７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００２８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００２９】
１  画像形成装置
２０１  ＯＳ
２０２  ＵＩ／Ｊｏｂ実行プロセス
２０４  例外処理監視プロセス
【図１】
2020052608.tif 000003
【図２】
2020052608.tif 000004
【図３】
2020052608.tif 000005
【図４】
2020052608.tif 000006
【図５】
2020052608.tif 000007
【図６】
2020052608.tif 000008