(57)【要約】【課題】開発効率を向上させることが可能な撮像装置を提供する。【解決手段】複数の機能を備えたデジタルカメラ１００は、複数の機能手段１３０，１４０と、ハードウェアリソース１１０を仮想化して、複数の論理区画に分割するハイパーバイザ１２０とを備え、前記複数の論理区画のそれぞれは、異なる機能手段に割り当てられていて、リアルタイム性が要求される機能と、リアルタイム性が要求されない機能との間に優先順位を与えて調停している。本発明はまた、ハイパーバイザ１２０を使用する共用リソース管理方法および撮像装置のためのプログラムを提供する。【選択図】図１
2009064303.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能を備えた撮像装置であって、
複数の機能を提供する機能手段と、
ハードウェアリソースを仮想化して複数の論理区画に分割し、前記複数の論理区画のそれぞれに対し異なる機能手段を割り当てるハイパーバイザと
を含む撮像装置。
【請求項２】
前記複数の機能手段は、被写体を撮像する撮像機能を実現する撮像手段と、ユーザからの入力を受け付け、各種メッセージまたは画像を表示する表示手段と、ネットワーク機能を実現する操作表示およびネットワーク制御手段とを含み、前記撮像手段および前記操作表示およびネットワーク制御手段には、それぞれ、異なる論理区画が割り当てられる、請求項１に記載の撮像装置。
【請求項３】
前記ハイパーバイザは、共有リソースをエミュレートし、前記複数の論理区画に配分し、前記複数の論理区画の各論理区画で独立してオペレーティング・システムが動作する、請求項１または請求項２に記載の撮像装置。
【請求項４】
前記ハイパーバイザは、リアルタイム性が要求される機能手段を、他の機能手段より優先的に処理するようにユーザインタフェース部からのコマンドを調停し、処理を担当する前記論理区画に指令する、請求項１〜３のいずれか１項に記載の撮像装置。
【請求項５】
複数の機能を備える撮像装置の共有リソース管理方法であって、
ハイパーバイザ手段によりハードウェアリソースを仮想化して複数の機能を提供するための、複数の独立した論理区画を提供するステップと、
前記論理区画に、複数の機能手段を提供するためのオペレーティング・システムおよびアプリケーションをそれぞれ割当てるステップと、
前記ハイパーバイザ手段により、リアルタイム性の要求される前記機能手段が優先処理されるようにコマンドを調停するステップと
を含む、共有リソース管理方法。
【請求項６】
請求項１〜４のいずれか１項に記載の手段として撮像装置を機能させるための装置実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能を提供する撮像装置、共用リソース管理方法およびプログラムに関する。
【背景技術】
【０００２】
最近のデジタル（スチル）カメラなどの撮像装置は、複数の機能を備えており、写真撮影だけで無く、液晶画面上で映像を再生したり、通信インタフェース経由で撮影した映像を外部機器に転送したりすることもできるようになっている。そして、このような複数の機能を備えた撮像装置では、複数の機能を同時に動作させる場合がある。例えば、写真を撮影しながら、バックグランドで通信インタフェースを介して以前撮影した映像を外部機器に送るような場合である。
【０００３】
一方、最近、１台のハードウェアプラットフォーム上に、複数の独立した仮想マシンを構築し、複数のＯＳを実行する仮想化技術がサーバ管理の分野で注目されている。当該仮想化技術を利用して、複数のサーバ機能を１台のハードウェアに実装することにより、ハードウェア資源の有効活用、占有面積の削減、電力消費の削減を図ることができる。
【０００４】
例えば、特開２００２−４１３０６号公報には、複数の論理区画で動作するＯＳイメージに、コンソールとオペレータ・パネルの仮想コピーを与えるハイパーバイザが開示されている。
【０００５】
また、特開２００６−２２１３９８号公報には、マルチタスク機能を備えたオペレーティング・システムと、その上で動作するデバイスドライバとを有する計算機システムからなる機器（例えば、デジタルカメラ）を制御する機器制御方法において、二つのデバイスの同期を取る操作の際に、主たるデバイス１（例えば、ＣＣＤ）のデバイスドライバ内に、もう一つのデバイス２（例えば、ストロボ）の動作を属性として隠蔽し、デバイス１内で直列に処理することによって、ＯＳのタスクスイッチを回避し、もってリアルタイム性を拡張するようにする技術が開示されている。
【特許文献１】特開２００２−４１３０６号公報
【特許文献２】特開２００６−２２１３９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
すなわち、上述した撮像装置では、一つのオペレーティング・システム（ＯＳ）上にソフトウェアシステムを配置し、その中で、様々なアプリケーションを動作させていた。ところが、近年、撮像装置に要求される機能も多様化し、複数のアプリケーションの実行に影響を及ぼす機能も増えてきている。そのため、一つの機能を追加する際に、複数のアプリケーション間で連携をとる必要が生じ、開発効率が悪化してしまうという問題が発生していた。
【０００７】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、撮像装置の機能多様化に対応し、機能多様化を行うための開発効率を向上させることが可能な撮像装置、共用リソース管理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では、ハイパーバイザによって、ハードウェアリソースを仮想化して複数の論理区画に分割し、機能別に各論理区画を割り当てることにより、機能毎のソフトウェア開発を可能とし、開発効率を向上させる。
【０００９】
すなわち、本発明によれば、複数の機能を備えた撮像装置であって、
複数の機能を提供する複数の機能手段と、
ハードウェアリソースを仮想化して複数の論理区画に分割し、前記複数の論理区画のそれぞれに対し異なる機能手段を割り当てるハイパーバイザと
を含む撮像装置が提供される。
【００１０】
前記複数の機能手段は、被写体を撮像する撮像機能を実現する撮像手段と、ユーザからの入力を受け付け、各種メッセージまたは画像を表示する表示手段と、ネットワーク機能を実現する操作表示およびネットワーク制御手段とを含み、前記撮像手段および前記操作表示およびネットワーク制御手段には、それぞれ、異なる論理区画が割り当てることができる。
【００１１】
前記ハイパーバイザは、共有リソースをエミュレートし、前記複数の論理区画に配分し、前記複数の論理区画の各論理区画で独立してオペレーティング・システムが動作することができる。前記ハイパーバイザは、リアルタイム性が要求される機能手段を、他の機能手段より優先的に処理するようにユーザインタフェース部からのコマンドを調停し、処理を担当する前記論理区画に指令することができる。
【００１２】
さらに、本発明によれば、
複数の機能を備える撮像装置の共有リソース管理方法であって、
ハイパーバイザ手段によりハードウェアリソースを仮想化して複数の機能を提供するための、複数の独立した論理区画を提供するステップと、
前記論理区画に、複数の機能手段を提供するためのオペレーティング・システムおよびアプリケーションをそれぞれ割当てるステップと、
前記ハイパーバイザ手段により、リアルタイム性の要求される前記機能手段が優先処理されるようにコマンドを調停するステップと
を含む、共有リソース管理方法が提供される。
【００１３】
また、本発明によれば、
上記いずれかに記載の手段として撮像装置を機能させるための装置実行可能なプログラムが提供される。
【発明を実施するための最良の形態】
【００１４】
以下、本発明につき、撮像装置をデジタルカメラとして実装する場合の実施形態をもって説明するが、本発明は後述する実施形態に限定されるわけではない。
【００１５】
図１は、本発明の撮像装置の実施形態であるデジタルカメラ１００のソフトウェア構成を説明した図である。当該デジタルカメラ１００は、ハイパーバイザと呼ばれる仮想化機構を使って複数の独立した仮想マシンを構築し、複数のＯＳを実行する。
【００１６】
図１に示すデジタルカメラ１００は、ハードウェアリソース１１０と、ハイパーバイザ１２０と、撮像システム１３０と、機能システム１４０とを備える。ハードウェアリソース１１０は、デジタルカメラ１００を構成するハードウェアプラットフォームである。具体的には、ハードウェアプラットフォームは、中央処理装置（ＣＰＵ）１１１、メモリ１１２、ストレージ１１３、ＣＣＤコントロール部１１４、画像処理ユニット１１５、モータコントロール部１１６、その他のハードウェアリソース１１７を含んで構成される。
【００１７】
ＣＰＵ１１１は、デジタルカメラ１００が提供する各種機能を実現するために各種処理を実行する。メモリ１１２は、ＣＰＵ１１１が利用する各種プログラムや各種データを格納する記憶装置であり、例えば、ＲＯＭやＲＡＭを含んで構成される。ストレージ１１３は、デジタルカメラ１００で撮像された画像データ等を格納する記憶装置であり、例えば、フラッシュメモリ、ＳＤカード、スマートカードなどで構成される。ＣＣＤコントロール部１１４は、被写体の撮像を行う撮像素子（ＣＣＤ）を制御する。画像処理ユニット１１５は、撮像素子によって生成された画像信号に対して必要な信号処理を行う。モータコントロール部１１６は、シャッター、絞り、フォーカス、ズームなどに使われるモータを制御している。
【００１８】
ハイパーバイザ１２０は、ハードウェアリソース１１０を複数の仮想マシンに割当て仮想化するものであり、ハードウェアリソース１１０を複数の論理区画に分割する。ハイパーバイザ１２０は、オペレーティング・システム（ＯＳ）と、ＯＳ上で動作するアプリケーションを１つのシステムとして処理し、ハードウェアリソース１１０を、各システムに対する仮想マシンとして認識させる機能を提供する。ハイパーバイザ１２０が実行する上記処理により、１つのハードウェアリソースを複数のシステムが共有することが可能となる。すなわち、ハイパーバイザ１２０は、ハードウェアリソース１１０を、各論理区画で動作するそれぞれのＯＳへ適切に割り振ることにより、共有を可能としている。
【００１９】
撮像システム１３０は、デジタルカメラ１００の基本的な機能である撮像機能を実現する機能部であり、ハイパーバイザ１２０が提供する一つの独立した仮想マシン上で動作する。撮像システム１３０は、ＯＳ１３１と、ミドルウェア１３２と、各種アプリケーション１３３とを含んで構成される。ミドルウェア１３２は、各種アプリケーション１３３の動作に必要なプログラムであって、ＯＳ１３１上で動作する。各種アプリケーション１３３は、撮像システム１３０に必要とされる機能を実現するためのプログラムであって、ＯＳ１３１上で動作する。
【００２０】
機能システム１４０は、撮像システム１３０から独立させたいデジタルカメラ１００の機能を提供する機能部であり、ハイパーバイザ１２０が提供する、撮像システム１３０とは独立した仮想マシンが提供され、ＯＳ１４１上で動作する。機能システム１４０は、ＯＳ１４１と、ミドルウェア１４２と、アプリケーション１４３とを備える。ミドルウェア１４２は、アプリケーション１４３の動作に必要なプログラムであって、ＯＳ１４１上で動作する。アプリケーション１４３は、機能システム１４０に必要とされる機能を実現するためのプログラムであって、ＯＳ１４１上で動作する。
【００２１】
なお、撮像システム１３０のＯＳ１３１と、機能システム１４０のＯＳ１４１とは、同じであっても良いし、異なっていても良い。
【００２２】
デジタルカメラ１００の各システムを提供する仮想マシンは、制御およびメモリ管理などがハイパーバイザ１２０により独立して管理されているので、例えば、ソリューションを別システムとして追加することができ、ベースとなる本体システム側とは別に開発を進めることが可能となる。さらに本体システムとのインタフェースは明確に分割されているため、基本的に本体システムに影響を与えず開発することができ、開発効率を向上させることができる。また、ソリューション開発において、内部で発生した不具合が他のシステム（本体システム側など）に影響を与えないため、この点からも開発効率を向上させることができる。
【００２３】
次に、本発明のデジタルカメラの他の実施形態について、より具体的な構成を説明する。図２に示した実施形態では、操作部システムおよびネットワークシステム２４０は、撮像システム２３０と分離して構成した場合の実施形態を示す。
【００２４】
図２に示すように、デジタルカメラ２００は、ハードウェアリソース２１０と、ハイパーバイザ２２０と、撮像システム２３０と、操作部／ネットワークシステム２４０とを備える。すなわち、図１に示した機能システム１４０として、操作部／ネットワークシステム２４０が設けられている。
【００２５】
デジタルカメラ２００は、ハードウェアリソース２１０として、ＣＰＵ２１１と、メモリ２１２と、ユーザインタフェース（ＵＩ）部２１３と、ネットワーク・インタフェース（Ｉ／Ｆ）部２１４と、その他のハードウェアリソース２１５とを備える。ＣＰＵ２１１およびメモリ２１２は、前述したＣＰＵ１１１およびメモリ１１２と同様の構成とすることができる。一方、ＵＩ部２１３は、ユーザの指示を入力し、各種メッセージや画像などを表示するためのもので、例えば、ユーザの指示を入力するための操作キーと、各種メッセージや画像等を表示するための液晶ディスプレイ（ＬＣＤ）パネルによって構成される。
【００２６】
ネットワーク・インタフェース部２１４は、デジタルカメラ２００をネットワークに接続できるようにするためのものであって、デジタルカメラ２００が接続されるネットワークとの間でのデータの送受信を、ＯＳＩ基本参照モデルにおける物理層／データリンク層／トランスポート層／セッション層／アプリケーション層などの各種プロトコルを使用して制御する。なお、ネットワークアプリケーションは、ＴＣＰ／ＩＰなどのプロトコルを使用してＨＴＴＰプロトコルを使用したトランザクションを実行することもできる。
【００２７】
以上のようなハードウェアリソース２１０は、ハイパーバイザ２２０によって、メモリ管理および各種命令管理が実行されている。ハイパーバイザ２２０は、好ましい実施形態では、ベア・メタル・アーキテクチャとして参照される、ＵＮＩＸ（登録商標）、ＬＩＮＵＸなどの特定のＯＳを実装することなく、仮想マシンカーネルを実装し、ハードウェア群にして仮想ＣＰＵ、仮想メモリ、ＣＰＵ専有調停などの処理を実行する。撮像システム２３０、操作部／ネットワークシステム２４０に対してＵＩ部２１３からのユーザ指令を受け付け、その命令および入力データを管理する。ハイパーバイザ２２０は、管理した命令を、例えば待ち行列などを使用して制御し、撮像システム２３０または操作部／ネットワークシステム２４０などに対して命令およびデータを渡し、処理を実行させている。
【００２８】
一方、撮像システム２３０および操作部／ネットワークシステム２４０は、メモリ２１２にそれぞれの実行空間が提供される複数の仮想マシンに仮想化（複数の論理区画に分割）され、各仮想マシン（各論理区画）が、撮像システム２３０および操作部／ネットワークシステム２４０のそれぞれに割り当てられる。
【００２９】
撮像システム２３０は、デジタルカメラ２００の基本的な機能である撮像機能を実現するもの（機能部）であり、ハイパーバイザ２２０が提供する一つの独立した仮想マシン上で動作する。撮像システム２３０は、前述した撮像システム１３０と同様に、割り当てられた仮想マシン上で動作するＯＳ２３１、ミドルウェア２３２および各種アプリケーション２３３によって、撮像機能を実現する。例えば、撮像システム２３０は、ユーザの指示等に応じて、ＣＣＤやモータ等を制御することによって、被写体の撮像を行って、被写体の画像データを生成し、ハイパーバイザ２２０が提供する仮想メモリ空間にデータを渡す。仮想メモリ空間に渡されたデータは、ハイパーバイザ２２０が管理するハードウェア群に割り当てられた物理メモリに割り当てられ、処理を担当するハードウェア要素に提供される。
【００３０】
操作部／ネットワークシステム２４０は、ユーザからの入力を受け付け、各種メッセージや撮像された画像などを表示する操作表示機能と、外部ネットワークとの接続などを可能とするネットワーク機能の両方を実現する機能部である。操作部／ネットワークシステム２４０についても、ハイパーバイザ２２０が提供する別の独立した仮想マシン上で動作する。すなわち、操作部／ネットワークシステム２４０は、前記機能を、撮像システム２３０とは独立に実現するもので、ＯＳ２４１と、ミドルウェア２４２と、操作部／ネットワークアプリケーション２４３とを備える。
【００３１】
ミドルウェア２４２は、操作部／ネットワークアプリケーション２４３の動作に必要なプログラムであって、ＯＳ２４１上で動作する。操作部／ネットワークアプリケーション２４３は、操作部／ネットワークシステム２４０に必要とされる機能、具体的には、ユーザからの入力の受け付け、各種メッセージや画像の表示、各種ネットワーク機能を提供するためのプログラムであって、ＯＳ２４１上で動作する。
【００３２】
上述の構成を採用することにより、デジタルカメラといった撮像装置の場合、操作部およびネットワーク機能部は、撮像機能部とは完全に分離された実行空間上で動作し、ハイパーバイザ２２０による調停下で、物理的なハードウェアに渡される。一方、従来の撮像装置では、各種アプリケーションは、直接的にハードウェアにアクセスする。そのため、従来では撮像機能部と他の機能部の開発は、同時に進めなければならない。
【００３３】
これに対して、図２に示した構成のように、ハイパーバイザ２２０を用いて操作部およびネットワーク部を分ける本実施形態では、操作部／ネットワーク部のみでのソフトウェア開発が可能となる。
【００３４】
また、デジタルカメラなどの撮像素子では、リアルタイム性が必要とされる機能（モータ、シャッタなど）も存在する。リアルタイム性が必要とされる機能については、必要なリソースをいつでも必要な時に使えるようにしておかなければならない。そのため、従来のデジタルカメラに新たな機能の追加をする場合は、リアルタイム性が必要とされる機能の処理への影響を考慮しながら開発を進めることが必要となり、開発がかなり困難なものになっていた。
【００３５】
これに対して、図２に示した構成では、ハイパーバイザ２２０がリアルタイム性の要求されるＵＩ部２１３からの命令を、待ち行列またはジョブキューの最上位に強制的に登録するリソース管理を採用するリソースのポリシーを採用する。このため、例えば、撮像システム２３０を構成するリアルタイムＯＳは、必要なリソースを最優先に使えるようにすることができる。すなわち、例えば、ハイパーバイザが提供するオペレーティング・システム管理設定機能によって、各オペレーティング・システムに割り当てる共有リソースを適宜制御すれば、新たに追加される機能による共有リソースの使用が、撮像システム２３０を構成するリアルタイムＯＳへ及ぼす影響を考慮する必要がなくなる。
【００３６】
その結果、リアルタイム性の低いアプリケーションを追加する場合にも、撮像機能の処理を気にすることなく、新たな機能の追加ができるようになり、開発効率を向上させることが可能となる。
【００３７】
図３は、撮像装置のハードウェア構成について、デジタルカメラ３００を実施形態として示す。図３に示すように、デジタルカメラ３００は、ＣＰＵ３０１と、撮像部３０２と、ＲＯＭ３０３と、ＲＡＭ３０４と、メモリカードインタフェース（Ｉ／Ｆ）部３０５と、通信インタフェース（Ｉ／Ｆ）部３０６と、ユーザインタフェース（ＵＩ）部３０７とを備え、各部はそれぞれ、内部バス３０８を介して接続されている。
【００３８】
ＣＰＵ３０１は、デジタルカメラ３００全体の制御を行う中央処理装置であり、ＲＯＭ３０３に格納されているプログラムを実行することで、各種機能を実現するものである。また、ＲＯＭ３０３には、ハイパーバイザ機能を提供するカーネルプログラムが格納されている。このようなカーネルプログラムは、ベア・メタル・アーキテクチャとしてハイパーバイザを構成し、各種アプリケーションソフトウェアをハイパーバイザが提供する仮想空間上で実行させると共に各種ハードウェア資源の共有のための調停を実行する。
【００３９】
撮像部３０２は、被写体の撮像を行うためのハードウェアであって、例えば、レンズなどの光学系、撮像素子（ＣＣＤやＣＭＯＳ）、信号処理回路、シャッター機構、フォーカス機構、ズーム機構などの機構系によって構成される。撮像部３０２が提供する各機能についてはリアルタイム性が高く要求される処理なので、他の機能、例えばＵＩ部３０７、Ｉ／Ｆ部３０５、または通信Ｉ／Ｆ部３０６およびこれらの各機能部との間でデータを送受信するアプリケーションよりも優先順位が高く設定される。
【００４０】
優先順位の設定は、例えば、ハイパーバイザが２種類の待ち行列またはジョブキューを管理し、第１の待ち行列またはジョブキューを、リアルタイム性が優先されるコマンドを先入れ・先出し方式で優先処理するように管理し、第２の待ち行列またはジョブキューについては、リアルタイム性の高い処理を登録する待ち行列またはジョブキューの内容がなくなった時に処理開始を実行させるように実装することができる。
【００４１】
なお、第１の待ち行列またはジョブキューに代わり、他の実施形態では、命令キャッシュおよびデータキャッシュを構成させ、リアルタイム性が要求されるコマンドを命令キャッシュに登録し、対応するデータキャッシュに登録されたデータと共にハイパーバイザが管理することで、命令フェッチおよびデータフェッチを効率化し、リアルタイム性に対応するように優先処理させることができる。また、他の実施形態では、待ち行列またはジョブキューに、リアルタイム性の高いコマンドを登録する領域を指定しておくことができる。
【００４２】
ＲＯＭ３０３は、さらにデジタルカメラ３００が提供する各種機能を実現するためにＣＰＵ３０１によって利用されるアプリケーションプログラムを格納する。また、ＲＯＭ３０３は、デジタルカメラ３００の初期設定やハードウェア設定を行うための初期設定プログラムを実装していてもよい。
【００４３】
ＲＡＭ３０４は、ＣＰＵ３０１などによって利用される各種データ、コマンドなどを一時的に格納するための記憶装置である。ＲＡＭ３０４についてもハイパーバイザにより管理され、ハイパーバイザが管理する仮想メモリに対応付けて物理アドレスなどが割り当てられている。
【００４４】
メモリカードＩ／Ｆ部３０５は、デジタルカメラ３００のスロットなどに装着された記録媒体、例えば、ＳＤカード、スマートカードなどの各種メモリカードに対する画像データの書き込みなどを制御するものである。
【００４５】
通信Ｉ／Ｆ部３０６は、外部機器との通信や外部ネットワークとの接続を実現するためのものであって、例えば、ＵＳＢによるシリアル通信や、無ワイヤレスＬＡＮによるワイヤレス通信またはインターネット通信などを可能としている。
【００４６】
ユーザＩ／Ｆ部３０７は、デジタルカメラ３００のユーザインタフェースを提供し、例えば、液晶ディスプレイなどの表示装置や、キーボタン、シャッターボタン、モードダイヤルなどの入力装置によって構成される。ユーザがユーザインタフェースを介してコマンドおよびデータを入力する場合、ハイパーバイザは、リアルタイム性の高いコマンドを優先処理し、ユーザの要求に対応する。
【００４７】
図４は、撮像装置の実行する処理の実施形態についてのフローチャートである。処理は、ステップＳ４００から開始し、ステップＳ４０１でＵＩ部からのコマンドを受領する。ステップＳ４０２では、受領したコマンドがリアルタイム性が要求されるアプリケーションのものか否かを判断する。ステップＳ４０２の判断で、当該コマンドおよび付随するデータが優先処理するべきアプリケーションのコマンドであると判断された場合（ｙｅｓ）、ステップＳ４０３でコマンドおよびデータを優先処理する記憶領域に登録する。一方、ステップＳ４０２の判断でリアルタイム性が要求されないコマンドであると判断した場合（ｎｏ）、ステップＳ４０５でコマンドおよびデータをリソース状態に応じて処理する記憶領域に登録する。
【００４８】
なお、コマンドを優先処理するか否かの判断は、ハイパーバイザのリソース制御ポリシーとして登録することができる。また、ハイパーバイザが管理し、コマンドと、当該コマンドに対して優先順位およびその実行シーケンスなどを登録した優先処理順位リストを実装させておき、ハイパーバイザが当該リストを参照して記憶領域の選択を行い、登録することができる。
【００４９】
ステップＳ４０４では、優先処理する記憶領域にコマンドがあるかないかを確認し、優先処理する記憶領域にコマンドが登録されていれば、優先処理するコマンドがなくなるまでユーザ要求機能を実行する。また、優先処理するコマンドがなくなった後、共有リソース状態の調停に基づいて処理を実行するアプリケーションのコマンドおよびデータを、リソース状態にしたがって実行させる。
【００５０】
また、ステップＳ４０４の判断は、ハイパーバイザが常時優先処理する記憶領域の内容を監視していて、例えばネットワーク通信中にシャッタが押下げされたことを示すコマンドが記憶領域に登録されると、仮想ＣＰＵの専有調停を変更し、シャッタコマンドに対応する処理を優先的に実行させている。その後、実行するべきコマンドがなくなると、待機させておいたコマンドまたはスレッド処理を共用リソースの利用を調停しながら実行させ、実行するべきコマンドまたはジョブが終了すると、ステップＳ４０６で一連の処理を終了させる。
【００５１】
以上説明したように、上述した実施形態によれば、ハードウェアリソースを仮想化して複数の仮想マシンに分割し、機能別に仮想マシンを割り当てるので、既存のリアルタイムＯＳでの機能開発で不都合を生じさせる場合が多い、リアルタイム性を要求する機能に対する悪影響を考慮することなく、機能毎に柔軟なソフトウェア開発が可能となり、開発効率を向上させることができる。
【００５２】
また、操作部／ネットワークシステムを別システムとして実装することで、操作部／ネットワーク部を独立に開発することができ、さらに、各機能部に対してハードウェアリソースを柔軟に配置することができるので、開発効率を向上させることができる。
【００５３】
また、リアルタイム性が必要とされる既存の機能に悪影響を及ぼすことなく、簡単に機能を追加／削除することが可能となり、開発効率を向上させることができる。
【００５４】
上述した実施形態の各機能は、アセンブリ言語、Ｃ、Ｖｉｓｕａｌ  Ｃ、Ｃ＋＋、Ｖｉｓｕａｌ  Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなど、レガシーブログラミング言語やオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
【００５５】
これまで本発明について実施形態をもって説明してきたが、本発明は例示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００５６】
【図１】本発明の撮像装置の実施形態であるデジタルカメラのソフトウェア構成を説明する図。
【図２】操作部システムおよびネットワークシステムを撮像システムと分離した場合のデジタルカメラの実施形態を示す図。
【図３】デジタルカメラのハードウェア構成例を示す図。
【図４】撮像装置が実行する処理の実施形態についてのフローチャート。
【符号の説明】
【００５７】
１００…デジタルカメラ、１１０…ハードウェアリソース、１１１…ＣＰＵ、１１２…メモリ、１１３…ストレージ、１１４…ＣＣＤコントロール部、１１５…画像処理ユニット、１１６…モータコントロール部、１１７…その他のハードウェアリソース、１２０…ハイパーバイザ、１３０…撮像システム、１３１…オペレーティング・システム、１３２…ミドルウェア、１３３…各種アプリケーション、１４０…機能システム、１４１…オペレーティング・システム、１４２…ミドルウェア、１４３…アプリケーション、２００…デジタルカメラ、２１０…ハードウェアリソース、２１１…ＣＰＵ、２１２…メモリ、２１３…ユーザインタフェース部、２１４…ネットワークＩ／Ｆ部、２１５…その他のハードウェアリソース、２２０…ハイパーバイザ、２３０…撮像システム、２３１…オペレーティング・システム、２３２…ミドルウェア、２３３…各種アプリケーション、２４０…操作部／ネットワークシステム、２４１…オペレーティング・システム、２４２…ミドルウェア、２４３…操作部／ネットワークアプリケーション、３００…デジタルカメラ、３０１…ＣＰＵ、３０２…撮像部、３０３…ＲＯＭ、３０４…ＲＡＭ、３０５…メモリカードＩ／Ｆ部、３０６…通信Ｉ／Ｆ部、３０７…ＵＩ（ユーザインタフェース）部、３０８…内部バス
【図１】
2009064303.tif 000003
【図２】
2009064303.tif 000004
【図３】
2009064303.tif 000005
【図４】
2009064303.tif 000006