(57)【要約】【課題】  従来の特定の情報処理装置でオペレーティングシステムを最適化する方法は、ハードウェア構成が固定である情報処理装置にしか適用できない。【解決手段】  複数のオペレーティングシステムを有する情報処理装置であって、複数のオペレーティングシステムの内、起動に要する起動時間が短い第１オペレーティングシステムにより特定のデバイスを制御し、起動時間が長い第２オペレーティングシステムが、エミュレートされた特定デバイスを制御するように管理する。【選択図】  図５
2009093439.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２オペレーティングシステムと複数のデバイスとを有する情報処理装置であって、
前記複数のデバイスの内、前記第１及び第２オペレーティングシステムで制御される特定デバイスをエミュレートするエミュレート手段と、
前記第１オペレーティングシステム及び前記第１オペレーティングシステムより起動時間が長い前記第２オペレーティングシステムを起動する起動手段と、
前記起動手段による前記第２オペレーティングシステムの起動が完了するまでは、前記起動手段による起動が完了した前記第１オペレーティングシステムが前記特定デバイスを制御し、前記第２オペレーティングシステムが前記エミュレート手段によってエミュレートされた前記特定デバイスを制御するように管理する管理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記管理手段は、前記起動手段による前記第２オペレーティングシステムの起動が完了した後に、前記特定デバイスを前記第１オペレーティングシステムにより解放させて前記第２オペレーティングシステムで制御するように管理することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記起動手段による前記第２オペレーティングシステムの起動が完了した後、前記第１オペレーティングシステムの動作を停止させる停止手段を更に有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記複数のデバイスは、少なくとも前記第１オペレーティングシステムで動作する第１アプリケーションと、前記第２オペレーティングシステムで動作する第２アプリケーションとで制御され、
前記第２アプリケーションは、前記第１オペレーティングシステムで制御されず、前記第２オペレーティングシステムで制御されるデバイスを制御することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１及び第２オペレーティングシステムの内、最初に起動するオペレーティングシステムを選択する選択手段を更に有し、
前記起動手段は、前記選択手段が選択したオペレーティングシステムを最初に起動することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
第１及び第２オペレーティングシステムと複数のデバイスとを有する情報処理装置の制御方法であって、
前記複数のデバイスの内、前記第１及び第２オペレーティングシステムで制御されるデバイスをエミュレートするエミュレート工程と、
前記第１オペレーティングシステム及び前記第１オペレーティングシステムより起動時間が長い前記第２オペレーティングシステムを起動する起動工程と、
前記第２オペレーティングシステムの起動が完了するまでには、起動が完了した前記第１オペレーティングシステムが、前記複数のデバイスを制御し、前記第２オペレーティングシステムが、前記エミュレート工程によってエミュレートされたデバイスを制御するように管理する管理工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項７】
前記管理工程は、前記起動工程による前記第２オペレーティングシステムの起動が完了した後に、前記特定デバイスを前記第１オペレーティングシステムにより解放させて前記第２オペレーティングシステムで制御するように管理することを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項８】
前記起動工程による前記第２オペレーティングシステムの起動が完了した後、前記第１オペレーティングシステムの動作を停止させる停止工程を更に有することを特徴とする請求項７に記載の情報処理装置の制御方法。
【請求項９】
前記複数のデバイスは、少なくとも前記第１オペレーティングシステムで動作する第１アプリケーションと、前記第２オペレーティングシステムで動作する第２アプリケーションとで制御され、
前記第２アプリケーションは、前記第１オペレーティングシステムで制御されず、前記第２オペレーティングシステムで制御されるデバイスを制御することを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記第１及び第２オペレーティングシステムの内、最初に起動するオペレーティングシステムを選択する選択工程を更に有し、
前記起動工程は、前記選択工程が選択したオペレーティングシステムを最初に起動することを特徴とする請求項６乃至９のいずれか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムの制御の下で処理を実行する情報処理装置及びその制御方法に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）等の情報処理装置に搭載されているオペレーティングシステム（ＯＳ）は、情報処理装置のハードウェア構成に依存せずに、アプリケーションプログラムに対して汎用的な機能を提供する。特に高機能のオペレーティングシステムは、アプリケーションプログラムで行う処理の一部を代替でき、またアプリケーションプログラムの開発を容易にできるなどの利点があるため広く使用されている。
【０００３】
その一方で、オペレーティングシステムは、ハードウェア構成に依存していない分、特定のハードウェア構成を備える情報処理装置の視点からすると冗長な処理を行う場合が多い。このためオペレーティングシステムの起動に要する時間が長くなる。
【０００４】
これに対して、特定のハードウェア構成を備える情報処理装置向けに、オペレーティングシステムの起動処理を最適化することで、オペレーティングシステムの起動を高速化する方法が提案されている。
【０００５】
また、オペレーティングシステムが起動した直後のメモリイメージを記憶装置に保持しておき、電源投入時に、そのメモリイメージを復元することにより起動を高速化する、所謂ハイバネーション方式もよく知られている（特許文献１）。
【０００６】
また、オペレーティングシステムを高速で起動するモードを設け、その高速に起動するモードでは、情報処理装置に搭載されている各種ハードウェアデバイスの診断等の処理を省略することが記載されている（特許文献２）。
【特許文献１】特開平１０−２０７５８８号公報
【特許文献２】特開２００２−３６６５０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら上述した従来の技術にはそれぞれ問題がある。即ち、特定の情報処理装置でオペレーティングシステムの起動処理を最適化する方法は、ハードウェア構成が固定である情報処理装置にしか適用できない。また或いはハードウェア構成を変更すると、その変更したハードウェア構成に応じたオペレーティングシステムに起動処理を最適化する必要がある。
【０００８】
またハイバネーション方式では、メモリイメージを記憶装置に保持する必要がある。特に不特定多数のユーザが利用する情報処理装置では、他の利用者のことを考慮せずに、ある利用者が電源を切ったり、或は間違って電源コンセントを抜くことも考えられる。このため、電源投入時に、前回起動したときのメモリイメージが必ずしも記憶装置に保持されているとは限らない。記憶装置にメモリイメージが保持されていない場合には、情報処理装置を高速に起動できない。またメモリイメージが記憶装置に保持されている場合でも、通常のオペレーティングシステムの起動時に行っている各種ハードウェアデバイスの診断やファイルシステムの診断等が行われないので信頼性の面で問題が残る。
【０００９】
また、ＯＳを高速に起動するモードを設ける方法では、上述したハイバネーション方式と同様に、通常のオペレーティングシステムの起動時に行っている各種ハードウェアデバイスの診断やファイルシステムの診断等が行われないので信頼性の点で問題が残る。
【００１０】
本発明の目的は上記従来技術の問題点を解決することにある。
【００１１】
本願発明の一態様によれば、情報処理装置に搭載された特定デバイスのオペレーティングシステムによる制御を最適化してユーザの利便性を高めることを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
第１及び第２オペレーティングシステムと複数のデバイスとを有する情報処理装置であって、
前記複数のデバイスの内、前記第１及び第２オペレーティングシステムで制御される特定デバイスをエミュレートするエミュレート手段と、
前記第１オペレーティングシステム及び前記第１オペレーティングシステムより起動時間が長い前記第２オペレーティングシステムを起動する起動手段と、
前記起動手段による前記第２オペレーティングシステムの起動が完了するまでは、前記起動手段による起動が完了した前記第１オペレーティングシステムが前記特定デバイスを制御し、前記第２オペレーティングシステムが前記エミュレート手段によってエミュレートされた前記特定デバイスを制御するように管理する管理手段と、
を有することを特徴とする。
【００１３】
上記目的を達成するために本発明の一態様に係る情報処理装置の制御方法は以下のような工程を備える。即ち、
第１及び第２オペレーティングシステムと複数のデバイスとを有する情報処理装置の制御方法であって、
前記複数のデバイスの内、前記第１及び第２オペレーティングシステムで制御されるデバイスをエミュレートするエミュレート工程と、
前記第１オペレーティングシステム及び前記第１オペレーティングシステムより起動時間が長い前記第２オペレーティングシステムを起動する起動工程と、
前記第２オペレーティングシステムの起動が完了するまでには、起動が完了した前記第１オペレーティングシステムが、前記複数のデバイスを制御し、前記第２オペレーティングシステムが、前記エミュレート工程によってエミュレートされたデバイスを制御するように管理する管理工程とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、起動時間が短い第１オペレーティングシステム以外の第２オペレーティングシステムが起動したときに、情報処理装置に搭載された特定デバイスを先ず第１オペレーティングシステムで制御する。そしてその後、起動した第２オペレーティングシステムで制御できる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施の形態に係る情報処理装置は、コピー、ＦＡＸ、プリンタ機能等の各種機能を有する複合機の場合で説明するが、本発明はこれに限定されるものでなく、ＰＣ等を含む一般的な情報処理装置にも適用できる。
【００１６】
図２は、本実施の形態における情報処理装置のハードウェア構成を示すブロック図である。
【００１７】
＜ハードウェア構成＞
ＣＰＵ２０１はメモリコントローラ２０２と接続され、このメモリコントローラ２０２と接続されているＤＲＡＭ２０３に格納されている各種プログラムを実行する。ＤＲＡＭ２０３は、このプログラム以外に、例えば演算データや各種データを格納できる。メモリコントローラ２０２は更に、ＬＣＤコントローラ２０４とバスコントローラ２０５とに接続される。バスコントローラ２０５には、シリアル通信コントローラであるＳＩＯ２０６とＲＯＭ２０７が接続されている。またバスコントローラ２０５は、ハードディスクを接続するためのコネクタ（IDE PHY）２１０と、ネットワークケーブルを接続するためのコネクタ（Network PHY）２０８とを装備している。またバスコントローラ２０５は、ハードディスクコントローラやネットワークコントローラとしても動作する。ＬＣＤコントローラ２０４とＳＩＯ２０６は、利用者が、この情報処理装置を操作するためのＬＣＤパネル（タッチパネル）を有する操作パネル２２０（図３）が接続されるパネルPHY２０９と接続されている。尚、この操作パネル２２０については後述する。ＲＯＭ２０７には、この情報処理装置を動作させるための設定値や、この情報処理装置の起動に必要なブートプログラム等が含まれる。
【００１８】
この情報処理装置は更にＣＰＵ２１７を有している。このＣＰＵ２１７は、バス２１２によってＤＲＡＭ２１６と、各種ハードウェアユニット（PHY）２１３〜２１５と接続されている。ＤＲＡＭ２１６は、ＣＰＵ２１７で実行される各種プログラムや、各種データを格納する。バス２１２はバスブリッジ２１１を介してバスコントローラ２０５と接続されている。ＤＲＡＭ２０３に記憶される各種データは、バスコントローラ２０５、バスブリッジ２１１、バス２１２を経由してＤＲＡＭ２１６に転送可能であり、またその逆方向へのデータ転送も可能である。またＣＰＵ２０１とＣＰＵ２１７は、バスブリッジ２１１を経由して互いに通信できる。これによりＣＰＵ２０１はＣＰＵ２１７と通信することで、各種ハードウェア（PHY）２１３乃至２１５に接続されるハードウェアユニットを制御できる。またＣＰＵ２０１は、コネクタ（IDE PHY）２１０に接続されるハードディスクからＣＰＵ２１７で実行するプログラムをＤＲＡＭ２１６に書き込むことができる。
【００１９】
続いてパネルPHY２０９と接続される操作パネル２２０について説明する。
【００２０】
図３は、本実施の形態に係る情報処理装置の操作パネル２２０の外観図である。
【００２１】
３０１は、この情報処理装置のユーザが数値情報や電話番号等を入力するためのテンキーである。リセットボタン３０２は、この操作パネル２２０で行った設定情報をクリアするためのキーである。３０３はソフト電源ボタンで、ソフトウェア的に装置の電源のオン／オフを指示するためのボタンである。スタートボタン３０４は、ユーザがＦＡＸ転送やコピー等の各種機能の実行開始を指示するためのボタンである。ストップボタン３０５は、既に開始された各種機能の実行の中断をユーザが指示するためのボタンである。３０６は、この情報処理装置の電源状態を示すＬＥＤである。ＬＥＤ３１０は、この情報処理装置で実行されているジョブの状態を示すＬＥＤである。またＬＥＤ３１１は、この情報処理装置で発生しているエラー状態を示すＬＥＤである。これらＬＥＤは、ＳＩＯ２０６によるシリアル通信により、それぞれ無灯、緑点灯、緑点滅、橙色点灯の状態に設定できる。ガイドキー３０７は、この情報処理装置の各種説明画面を表示する。またユーザモードキー３０８は、この情報処理装置をユーザモードに移行させるためのキーである。３０９は液晶表示器を有するタッチパネルである。ユーザが、この操作パネル２２０の各種ボタンやタッチパネル３０９を操作すると、その操作情報はパネルPHY２０９とＳＩＯ２０６を経由してＣＰＵ２０１に通知される。ＣＰＵ２０１はＤＲＡＭ２０３に格納されたプログラムに従ってＬＣＤコントローラ２０４を制御してタッチパネル３０９の画面の表示や更新を行う。またＣＰＵ２０１は、ＳＩＯ２０６を制御することで各種ＬＥＤの点灯／消灯制御も行う。
【００２２】
＜機能説明＞
次に本実施の形態に係る情報処理装置の各種機能について、各機能別に説明する。
【００２３】
（コピー機能）
ユーザは、スキャナPHY２１５に接続されるスキャナユニット（不図示）に原稿をセットし、操作パネル２２０を操作してコピーに係る設定を行う。このコピーに係る設定とは、例えば部数の設定や出力のソート方法、或いは読み取り時の変倍率等を含む。これらの設定値はＤＲＡＭ２０３に保存される。その後ユーザはスタートボタン３０４を押下する。これによりＣＰＵ２０１は、そのスタートボタン３０４の押下を検知し、ＣＰＵ２１７に対してスキャナユニットの駆動を依頼する。このとき、変倍に係る設定値及び取得したイメージデータの転送先の情報が、駆動依頼と共にＣＰＵ２１７に通知される。スキャナユニットからのイメージデータの転送先は、ＤＲＡＭ２０３，ＤＲＡＭ２１６のいずれかに選択される。ＣＰＵ２１７は、ＣＰＵ２０１から受信した情報に従ってスキャナユニットをスキャナPHY２１５を経由して駆動する。
【００２４】
このときスキャナユニットは、ユーザによってセットされた原稿を光学的に走査することによりイメージデータを形成する。こうしてスキャナユニットによって読み取られたイメージデータは、まずＤＲＡＭ２１６に格納され、所定の画像処理が施された後、ＣＰＵ２０１で指定されたイメージデータの転送場所に送られて格納される。このときＣＰＵ２０１は、イメージデータをIDE PHY２１０に接続されるハードディスクに格納してもよい。そしてＣＰＵ２０１は、その取得したイメージデータをプリンタPHY２１４に接続されるプリンタエンジン（不図示）で印刷するようにＣＰＵ２１７に対して指示する。これによりＣＰＵ２１７は、その指示されたイメージデータをプリンタエンジンで印刷するように、プリンタPHY２１４を経由してプリンタエンジンを制御する。プリンタエンジンはＣＰＵ２１７からの指示に従ってイメージデータを紙面に印刷する。ここでプリンタエンジンに対して行う印刷指示は１ページ単位でなされるものとする。このため、スキャナユニットに複数ページの原稿がセットされた場合には、ＣＰＵ２０１は複数回ＣＰＵ２１７に対してイメージデータを印刷するように指示する。また、ユーザが操作パネル２２０を使用してソート方法を指示していた場合は、ＣＰＵ２０１が印刷指示を行うイメージデータを、その指定されたソート方法に合わせて指定することによりソート機能を実現する。
【００２５】
（ファックス機能）
次にファックス送信について説明する。ユーザは、スキャナPHY２１５に接続されるスキャナユニットに原稿をセットする。その後、操作パネル２２０を操作して、送信先の電話番号や読み取り時の設定等を入力する。そしてユーザがスタートボタン３０４を押下すると、それを検知したＣＰＵ２０１は、上述のコピー機能の動作と同様に、ＣＰＵ２１７に対して原稿の読み取りを依頼する。ここでも同様に、その読み取られたイメージデータはＤＲＡＭ２０３或はハードディスク、或いはＤＲＡＭ２１６に格納される。続いてＣＰＵ２０１は、その格納されたイメージデータを、ＦＡＸPHY２１３に接続されるファックスユニット（不図示）を用いて、その指定された電話番号に対してファックス送信するようにＣＰＵ２１７に対して指示する。ＣＰＵ２１７は、ＦＡＸPHY２１３を経由してファックスユニットを制御することにより、ＣＰＵ２０１で指定されたイメージデータを、指定された電話番号に対してファックス送信する。
【００２６】
続いてファックス受信の動作について説明する。ファックスユニットは、ファックスの着信があったことをＣＰＵ２１７に通知すると共に、通信先から伝送されたイメージデータをＤＲＡＭ２１６に転送して格納する。ＣＰＵ２１７はファックス受信があったことを、受信したイメージデータの情報と共にＣＰＵ２０１に通知する。その後、上述したコピー機能と同様に、ＣＰＵ２０１は、その受信したイメージデータをプリンタエンジンで出力するようにＣＰＵ２１７に対して指示する。これによりファックスユニットで受信したイメージデータをプリンタエンジンで印刷する。
【００２７】
（プリンタ機能）
ユーザが作成した文書データは、コネクタ２０８に接続されるネットワークを介して、この情報処理装置に伝送される。こうして転送される文書データは、例えばＰＤＬデータである。このコネクタ２０８を介して受信した文書データは、一旦ＤＲＡＭ２０３に保存される。ＣＰＵ２０１は、このＤＲＡＭ２０３に保持された文書データを解釈してイメージデータに変換し、ＤＲＡＭ２０３に保存する。続いてＣＰＵ２０１は、このイメージデータを、上述したコピー機能と同様に、プリンタエンジンで出力するようにＣＰＵ２１７に対して指示する。これによりＣＰＵ２１７は、そのイメージデータを印刷するように、プリンタPHY２１４を通じてプリンタエンジンを制御する。
【００２８】
（その他の機能）
上述したコピー機能やファックス機能、プリンタ機能で印刷するイメージデータは、全てIDE PHY２１０に接続されるハードディスクに格納してもよい。これにより、一度印刷したイメージデータを再利用することが可能になる。また複数のイメージデータを取り扱う場合に、ＤＲＡＭ２０３に保持されたイメージデータをハードディスクに転送して、ＤＲＡＭ２０３の、ハードディスクの転送済みのイメージデータを消去する。これにより、イメージデータの処理中に、他のイメージデータの読み取りや生成が行えるようになるので高速処理が可能になる。
【００２９】
＜ソフトウェア構成＞
次にＣＰＵ２０１が実行するソフトウェアシステムの構成について図を用いて説明する。
【００３０】
図１は、本実施の形態に係る情報処理装置において、ＣＰＵ２０１が実行するソフトウェアシステムの構成を説明するためのブロック図である。
【００３１】
１１０は第１オペレーティングシステム（以下、ＯＳ）であり、上述したコピー動作を制御する第一のコピー制御部１３１が第一のＯＳ１１０上で動作する。コピー制御部１３１は、操作パネル２２０とスキャナPHY２１５に接続されるスキャナユニットと、プリンタPHY２１４に接続されるプリンタエンジンとを制御する。これらのデバイスの制御は、第一のＯＳ１１０に含まれるデバイスドライバ１１１〜１１３を通して行われる。ここでデバイスドライバ１１１〜１１３はそれぞれ、ＬＣＤシリアルドライバ、スキャナドライバ、プリンタドライバである。
【００３２】
１２０は第二のＯＳで、ジョブを制御するジョブ制御部１４１が第二のＯＳ１２０上で動作する。また操作パネル２２０を制御するＵＩ制御部１４２が第二のＯＳ１２０上で動作する。またプリンタPHY２１４に接続されるプリンタエンジンを制御するプリント制御部１４３が第二のＯＳ１２０上で動作する。また、上述したコピー動作を制御する第二のコピー制御部１４４が第二のＯＳ１２０上で動作する。また上述したプリンタ機能を制御するＰＤＬ制御部１４５が第二のＯＳ１２０上で動作する。また上述したファックス機能を制御するＦＡＸ制御部１４６が第二のＯＳ１２０上で動作する。
【００３３】
また第二のＯＳ１２０は、例えばＦＡＴやＥＸＴ２等の各種ファイルシステムをサポートしている。ここでファイルシステムとは、ハードディスクにファイルを効率良く格納、或は取得するための仕組みである。第二のＯＳ１２０上で動作する第２アプリケーションは、第二のＯＳ１２０が公開するＡＰＩ（Application Interface）を操作して、このファイルシステムを利用できる。例えばコピー制御部１４４は、このＡＰＩを操作することにより、スキャナから得られたイメージデータを効率良くハードディスクに格納できる。このようにハードディスクに格納されたイメージデータを任意の順序で取得することで、様々なレイアウト（例えば逆順印刷やＮ−ｕｐ印刷）で紙面に印刷することが可能になる。また、例えばＦＡＸ制御部１４６は、このＡＰＩを操作することにより、ファックスで受信したイメージデータをハードディスクに格納できる。これによりファックスで受信した画像を再利用することが可能になる。また、例えばＰＤＬ制御部１４５は、このＡＰＩを操作することにより、受信したイメージデータを解釈することによって得られるイメージデータをハードディスクに効率よく格納できる。通常、このように生成されたイメージデータは、プリンタエンジンに出力されるまで削除できない。このため、所定数の画像のイメージデータを生成した後、ＰＤＬ制御部１４５はプリンタエンジンによって、そのイメージデータが印刷されるまで解釈処理を中断しなければならない。しかし、イメージデータをハードディスクに格納することにより、同時に格納することができる画像の数が増大するので、ＰＤＬ制御部１４５による解釈処理を中断する頻度を低減できる。ファイルシステム１２１は、IDE PHY２１０に接続されるハードディスクを制御するバスコントローラ２０５に内蔵されるハードディスクコントローラを制御するハードディスクドライバ１２６を操作する。こうしてハードディスク（ＨＤＤ）へのデータの送受信を行うことができる。
【００３４】
また第二のＯＳ１２０は、例えばＴＣＰ／ＩＰやＵＤＰ等の各種ネットワークプロトコルをサポートする。通常、ＯＳがサポートするネットワークプロトコルは、ＯＳＩ基本参照モデルのアプリケーション層未満である。プロトコルスタック１２２は、第二のＯＳ１２０上で動作するアプリケーションに対してＩＦを公開する。これらアプリケーションは、このＩＦを操作することにより、各種プロトコルで外部の情報処理装置と通信することが可能になる。例えばＰＤＬ制御部１４５では、外部から伝送される文書データを受信するために、このＩＦを利用する。またジョブ制御部１４１は、ＳＮＭＰ（Simple Network Management Protocol）で外部の情報処理装置と通信するためにこのＩＦを利用する。プロトコルスタック１２２は、バスコントローラ２０５に内蔵されているネットワークコントローラを制御するネットワークドライバ１２７を操作することで、コネクタ２０８で接続された外部の情報処理装置と通信を行う。またＵＩ制御部１４２は、ＬＣＤコントローラ２０４とＳＩＯ２０６を制御するドライバ１２３を操作することによってタッチパネル３０９に画像を表示する。またＵＩ制御部１４２は、ユーザが操作パネル２２０に対して行った操作で入力されるコマンドを受信して、そのユーザの操作に従った画面の更新や、またジョブ制御部１４１に対して利用者が所望する動作の実行を指示する。またプリント制御部１４３は、のプリンタPHY２１４に接続されるプリンタエンジンを制御するプリンタドライバ１２４を操作することで、各種イメージデータを紙面上に印刷する。ここで、印刷されるイメージデータはジョブ制御部１４１で指定される。
【００３５】
第二のコピー制御部１４４は、ＵＩ制御部１４２からの指示に従って、スキャナPHY２１５に接続されるスキャナユニットを制御するスキャナドライバ１２５を操作して、スキャナユニットにセットされた原稿を読み取ってイメージデータを生成する。またこのコピー制御部１４４は、こうして得られたイメージデータを、ファイルシステム１２１を操作することによりハードディスクに書き込む。またコピー制御部１４４は、そのイメージデータを、プロトコルスタック１２２を操作して外部の情報処理装置に伝送する。またコピー制御部１４４は、そのイメージデータの印刷をジョブ制御部１４１に指示する。このときジョブ制御部１４１は、プリント制御部１４３に対して、その指定されたイメージデータを指定して印刷の実行を指示する。ここでコピー制御部１４４は、このように原稿を読み取って得られたイメージデータをハードディスクに格納しているので、印刷するイメージデータの順序を制御することにより、ＵＩ制御部１４２からの指示に従ったソート順で印刷できる。
【００３６】
ＰＤＬ制御部１４５は、受信したＰＤＬ等の各種文書データをプロトコルスタック１２２で解釈してイメージデータに変換した後、ジョブ制御部１４１に対して、そのイメージデータの印刷を指示する。このときジョブ制御部１４１は、プリント制御部１４３に対して、その指定されたイメージデータを指定して印刷の実行を指示する。
【００３７】
ＦＡＸ制御部１４６は、ＵＩ制御部１４２からの指示、或いはＦＡＸPHY２１３に接続されるファックスユニットを制御するＦＡＸドライバ１２８から発行される着呼イベントに従って動作する。ＵＩ制御部１４２からファックス送信が指示されると、スキャナPHY２１５に接続されるスキャナユニットを制御するスキャナドライバ１２５を操作して、そのスキャナユニットにセットされた原稿を読み取る。続いてＦＡＸ制御部１４６は、その読み取って得られたイメージデータを、ＦＡＸPHY２１３に接続されるファックスユニットを制御するＦＡＸドライバ１２８を操作して、ＵＩ制御部１４２で指定された番号に対してファックス送信する。
【００３８】
一方、ＦＡＸドライバ１２８から着呼イベントが通知されると、ＦＡＸ制御部１４６は、その着呼したイメージデータを読み取り、そのイメージデータの印刷をジョブ制御部１４１に指示する。このときジョブ制御部１４１は、プリント制御部１４３に対してＦＡＸ制御部１４６から指定されたイメージデータを指定して印刷の実行を指示する。
【００３９】
ここで第一のＯＳ１１０と第二のＯＳ１２０は、ハイパーバイザ１００によって、その起動と実行が制御される。ハイパーバイザ１００は、後述する方法に従って第一のＯＳ１１０と第二のＯＳ１２０とを起動する。そして所定のスケジューリングに従って第一のＯＳ１１０と第二のＯＳ１２０とを実行させる。ハイパーバイザ１００は、Ｉ／Ｏ制御部１０１と、少なくとも各種デバイスの動作の一部をエミュレートするエミュレータ１０２乃至１０４と、仮想記憶制御部１０５とＨＤＤ制御部１０６とを含む。
【００４０】
第一のＯＳ１１０のデバイスドライバ１１１〜１１３と、第二のＯＳ１２０のデバイスドライバ１２３〜１２８は、所定のＩ／Ｏ空間へアクセスし、また各デバイスで発生した割り込みイベントを受信する。こうして各種デバイスの制御を行う。これらのＩ／Ｏ空間へのアクセス或いはデバイスからの割り込みイベントは、ハイパーバイザ１００を経由して、各ＯＳや各デバイスに対して配信される。ハイパーバイザ１００のＩ／Ｏ制御部１０１は、上述のようなＩ／Ｏ空間へのアクセスや各種デバイスからの割り込みを調停するものであり、またそれぞれのＯＳが実行したデバイスに対する制御を記録する。
【００４１】
図４は、本実施の形態に係る情報処理装置の電源投入後の処理を説明するためのフローチャートである。
【００４２】
この情報処理装置の電源がオンされると、まずステップＳ４０１で、ＢＩＯＳと呼ばれるＲＯＭ２０７に格納されているプログラムがＣＰＵ２０１により実行される。ここでＢＩＯＳは、メモリコントローラ２０２を初期化して、ＣＰＵ２０１がＤＲＡＭ２０３を読み書きできるように初期化する。続いてＢＩＯＳは、バスコントローラ２０５に内蔵されているハードディスクコントローラ（不図示）を初期化する。そしてIDE PHY２１０に接続されるハードディスクのマスターブートレコード（ＭＢＲ）からブートストラップローダを読出してＤＲＡＭ２０３に展開する。そしてステップＳ４０２で、ＢＩＯＳは、そのＤＲＡＭ２０３にロードされたブートストラップローダを実行する。このブートストラップローダは、ＭＢＲに記載されているパーティションテーブルを検査し、起動可能なパーティションを検索する。こうして起動可能なパーティションが見つかると、ブートストラップローダは、起動するパーティションの位置をＢＩＯＳに通知して、ＤＲＡＭ２０３に、そのパーティションをロードする。本実施の形態において起動可能なパーティションには、ハイパーバイザが格納される。続いてステップＳ４０３で、ブートストラップローダは、ハイパーバイザ１００を起動する。
【００４３】
図５は、本実施の形態に係る情報処理装置のハイパーバイザ１００の動作を説明するフローチャートである。
【００４４】
まずステップＳ５０１で、ハイパーバイザ１００は仮想記憶部の初期化を行う。次にステップＳ５０２に進み、第一のＯＳ１１０を、第一のコピー制御部１３１のプログラムと共にハードディスクからＤＲＡＭ２０３にロードする。このときハイパーバイザ１００は、第一のＯＳ１１０の仮想記憶空間を定義する。尚、この仮想記憶空間については後述する。
【００４５】
次にステップＳ５０３に進み、ハイパーバイザ１００は、第一のＯＳ１１０を起動する。ここで第一のＯＳ１１０を起動するとは、ハイパーバイザ１００が第一のＯＳ１１０の仮想記憶空間に合わせて仮想記憶制御部１０５を制御する。その後、ＣＰＵ２０１の各種レジスタを制御して、第一のＯＳ１１０のエントリポイントからプログラムを実行することを意味する。次にステップＳ５０４に進み、ハイパーバイザ１００は、第一のＯＳ１１０によって、この情報処理装置でユーザが操作可能になるまで、第一のＯＳ１１０を実行する。ここでハイパーバイザ１００は、第一のＯＳ１１０が行うデバイスへのアクセスを監視することで、ユーザから操作可能になったか否かを判断する。このときＩ／Ｏ制御部１０１は、第一のＯＳ１１０が実行したＩ／Ｏ空間のアクセスが実デバイスに対してなされるように制御し、実デバイスからのイベントは第一のＯＳ１１０に対して送信されるように制御する。即ち、第一のＯＳ１１０がアクセスしようとしたＩ／Ｏ空間に対してＩ／Ｏ制御部１０１がアクセスする。またＩ／Ｏ制御部１０１は、デバイスから受信した割り込みイベントに対応する、第一のＯＳ１１０が用意する割り込みベクタに記載されているサブルーチンを呼び出す。
【００４６】
こうして第一のＯＳ１１０によって、この情報処理装置がユーザにより操作可能になるとステップＳ５０５に進み、ハイパーバイザ１００は第二のＯＳ１２０をハードディスクからＤＲＡＭ２０３にロードする。このときハイパーバイザ１００は、前述の第一のＯＳ１１０のの場合と同様に、第二のＯＳ１２０の仮想記憶空間を定義する。次にステップＳ５０６に進み、ハイパーバイザ１００は、第二のＯＳ１２０を実行する。ここで第二のＯＳ１２０を実行するとは、ハイパーバイザ１００が所定のスケジューリング方式で、第一のＯＳ１１０と第二のＯＳ１２０とを並列的に実行できるようにすることを意味する。このとき、Ｉ／Ｏ制御部１０１は、後述する方法で、第一のＯＳ１１０のデバイスの制御が実デバイスに対してなされるように制御する。また第二のＯＳ１２０による、第一のＯＳ１１０が制御しているデバイスの制御が、各種デバイスエミュレータ１０２〜１０４を介してなされるように制御する。またＩ／Ｏ制御部１０１は、実デバイスからのイベントが第一のＯＳ１１０に送信されるように制御し、各種デバイスエミュレータ１０２〜１０４が発行するイベントが第二のＯＳ１２０に送信されるように制御する。即ち、第二のＯＳ１２０のデバイスドライバがＩ／Ｏ空間に対してアクセスすると、そのアクセスしようとしたアドレス及びアクセス方法（読み込みか、書き込みか）が各種デバイスエミュレータ１０２〜１０４に通知される。また書き込みの場合には、その書き込まれるデータ及びアクセスするデータのビット長が、そのアクセスしようとしたアドレスに対応する各種デバイスエミュレータ１０２〜１０４に通知される。デバイスエミュレータ１０２〜１０４は、それぞれのデバイスをエミュレートする。例えば、アクセスに従ってデバイスが公開しているレジスタの値が変更されるようなデバイスをエミュレートするデバイスエミュレータは、そのレジスタをエミュレートするメモリを持つ。デバイスエミュレータは、通知された情報に従って、上記レジスタをエミュレートするメモリを書き換える。その後、そのレジスタの値を読み込むアクセスが、そのデバイスエミュレータに通知された場合には、そのメモリの内容をＩ／Ｏ制御部１０１に通知する。これによりＩ／Ｏ制御部１０１は、その通知されたメモリの内容を第二のＯＳ１２０に通知する。また上述のアクセスに従って割り込みが発生するデバイスをエミュレートするデバイスエミュレータは、ハイパーバイザ１００が第二のＯＳ１２０が用意する割り込みベクタに記載されているサブルーチンを呼び出す。こうして、そのデバイスが発生する割り込みイベントをエミュレートする。
【００４７】
次にステップＳ５０７に進み、ハイパーバイザ１００は、第二のＯＳ１２０から実行されるデバイスの制御を監視して、第二のＯＳ１２０によって、この情報処理装置が、論理的にユーザによる操作が可能になったか否かを判定する。ここで操作可能でないと判定するとステップＳ５０８に進み、これから実行するＯＳの切り替えを行うか否かを判定する。ここでＯＳを切り替えないと判断するとステップＳ５０９に進み、ハイパーバイザ１００は、前回実行されていたＯＳを続けて実行する。一方、ステップＳ５０８でＯＳの切り替えを行う場合はステップＳ５１０に進み、ハイパーバイザ１００は、各ＯＳの仮想記憶空間に合わせて仮想記憶制御部１０５を制御した後、ＣＰＵ２０１の各種レジスタを制御して実行するＯＳを切り替える。
【００４８】
一方、ステップＳ５０７で、第二のＯＳ１２０の起動が完了してユーザによる操作が可能になったと判断するとステップＳ５１１に進み、ハイパーバイザ１００は、第一のＯＳ１１０のシャットダウン処理を行う。この処理についての詳細は後述する。こうして第一のＯＳ１１０のシャットダウン処理が終了するとステップＳ５１２に進み、ハイパーバイザ１００は、第二のＯＳ１２０のみが実行されるようにスケジューリング方式を変更する。このときＩ／Ｏ制御部１０１は、第二のＯＳ１２０が実行したＩ／Ｏ空間のアクセスが実デバイスに対してなされるように制御し、実デバイスからのイベントが第二のＯＳ１２０に対して送信されるように制御する。例えば、Ｉ／Ｏ制御部１０１は、第一のＯＳ１１０のシャットダウン処理が終了した以降、第二のＯＳ１２０がアクセスしようとしたＩ／Ｏ空間に対してＩ／Ｏ制御部１０１がアクセスするようにする。またＩ／Ｏ制御部１０１は、デバイスから受信した割り込みイベントに対応する、第二のＯＳ１２０が用意する割り込みベクタに記載されているサブルーチンを呼び出すようにする。
【００４９】
次に図７を参照して仮想記憶空間について説明する。
【００５０】
図７は、本実施の形態に係る情報処理装置における仮想記憶空間（仮想メモリアドレス空間）を説明する図である。
【００５１】
この仮想記憶空間は、この仮想記憶空間が割り当てられたアプリケーションが、論理的にアクセス可能なアドレスを定義したものである。７０１，７０２は仮想記憶空間を示している。この仮想記憶空間には、この情報処理装置に合わせてＩ／Ｏ空間が所定のアドレスに割り当てられている。７０３，７０４は、各仮想記憶空間の論理的なアドレスが、実メモリのどの領域に割り当てられているかを記述するページテーブルである。これらページテーブル７０３，７０４は、それぞれの実メモリアドレスが有効であるかを示すフラグを有する。７０５は、この情報処理装置の物理アドレス空間を図示している。尚、Ｉ／Ｏ空間は実メモリ領域に割り当てられるわけではないので、ページテーブル７０３，７０４には記述されていない。
【００５２】
各仮想記憶空間に対するアクセスが発生すると、ページテーブル７０３，７０４に記載されていないアドレスの場合や、記載されていても実メモリが有効ではない場合には、ＣＰＵ２０１に例外と呼ばれる割り込みが発生する。こうしてＣＰＵ２０１に発生した例外は、ハイパーバイザ１００に転送され、ページスワップや後述するＩ／Ｏ処理が行われる。
【００５３】
次にＩ／Ｏ制御部１０１の動作について図６のフローチャートを用いて説明する。
【００５４】
図６は、本実施の形態に係る情報処理装置のＩ／Ｏ処理の一例を説明するフローチャートである。
【００５５】
各ＯＳのそれぞれのデバイスドライバが所定のＩ／Ｏ空間に対してアクセスすると、ＣＰＵ２０１に例外割り込みが発生する。こうしてＣＰＵ２０１に発生した例外割り込みは、ハイパーバイザ１００に通知される。これによりハイパーバイザ１００はステップＳ６０１で、各デバイスドライバがアクセスしようとしたアドレスを調査して、デバイスを制御するためのアクセスか否かを判定する。ここで、そのアドレスがＩ／Ｏ空間に割り当てられたアドレスでない場合は、そのデバイスを制御以外のイベントとして処理を行う。一方、ステップＳ６０１で、そのアクセスされたアドレスがＩ／Ｏ空間である場合はステップＳ６０２に進み、その時点でハイパーバイザ１００によって実行されているＯＳが第一或は第二ＯＳのいずれであるかを判定する。ここでＩ／Ｏ空間にアクセスしたＯＳが第一のＯＳ１１０であると判定した場合は、Ｉ／Ｏ制御部は、その指定されたＩ／Ｏ空間に対してアクセスを行う。尚、ハイパーバイザからＩ／Ｏ空間に対してアクセスする場合は、ＣＰＵ２０１の特権モードを設定してアクセスを行うので、例外割り込みが発生することはない。
【００５６】
一方、Ｉ／Ｏ空間にアクセスしたＯＳが第二のＯＳ１２０であると判定した場合はステップＳ６０３に進み、アクセスされたアドレス、及びそのアクセスが書き込みであった場合にはその値をメモリに保存する。そしてステップＳ６０４に進み、その保存したアドレスに従って適切なデバイスのエミュレートソフトウェアを実行する。
【００５７】
ここでエミュレートソフトウェアは、実デバイスと同じようにエミュレートされたレジスタを書き換え、また割り込みをエミュレートする。よって、第二のＯＳ１２０は、実デバイスが第一のＯＳ１１０によって操作されている最中であっても初期化処理を行うことができる。
【００５８】
次に第一のＯＳ１１０の動作について、図８のフローチャートを用いて説明する。
【００５９】
図８は、本実施の形態に係る情報処理装置のＯＳの起動処理の一例を説明するフローチャートである。
【００６０】
この処理はＯＳが起動されることにより開始され、まずステップＳ８０１で、第一のＯＳ１１０は、ＯＳ自身の初期化を行う。次にステップＳ８０２に進み、第一のＯＳ１１０は、第一のコピー制御部１３１を起動する。
【００６１】
続いて第一のコピー制御部１３１の動作について図９のフローチャートを用いて説明する。
【００６２】
図９は、本実施の形態に係る情報処理装置のＯＳ上で動作するアプリケーションの動作の一例を説明するフローチャートである。
【００６３】
この処理はアプリケーションが起動されることにより開始される。まずステップＳ９０１で、第一のコピー制御部１３１は、各種デバイスドライバを操作して初期化処理を行う。ここではスキャナPHY２１５に接続されるスキャナユニットと、プリンタPHY２１４に接続されるプリンタエンジンと、パネルPHY２０９に接続される操作パネル２２０を初期化する。このとき第一のコピー制御部１３１は、操作パネル２２０のＬＥＤ３０６を緑点滅させるように制御する。またタッチパネル３０９に、この情報処理装置が初期化中である旨を示すメッセージを表示してもよい。こうしてデバイスの初期化が完了してコピー動作が行えるようになるとステップＳ９０２に進み、第一のコピー制御部１３１はタッチパネル３０９の画面を更新し、ＬＥＤ３０６を緑点灯させるように制御する。情報処理装置は、この時点で、ユーザによる操作を受け付け可能になる。そしてユーザがタッチパネル３０９を操作するとステップＳ９０３に進み、第一のコピー制御部１３１は、その操作に従ってタッチパネル３０９の画面を更新する。そしてユーザがスタートボタン３０４を押下すると、第一のコピー制御部１３１は、それまでになされた設定値に従ってコピー動作を開始する。
【００６４】
図１３は、本実施の形態に係る情報処理装置のタッチパネル３０９の表示例（ユーザインタフェース）の一例を説明するための図である。
【００６５】
１３０２〜１３０４，１３２０〜１３２４はグレーアウトされたソフトウェアボタンを示し、ユーザが、これらグレーアウトされたボタンを指示しても、その操作は無視される。またコピーボタン１３０１への指示も無視される（タッチパネル３０９を操作しても反応しない）。これらのボタンは、後述する第二のＯＳ１２０上で動作するＵＩ制御部１４２が表示するユーザインタフェースとデザイン的な互換をとるためだけのものである。
【００６６】
１３１１は、スキャナユニットで読み取った原稿と出力する画像の比率を示す文字列である。ここでは等倍を示す「１００％」が表示されている。１３１２は、印刷する用紙の種別を示す文字列で、ここでは原稿のサイズに応じて用紙サイズが決定される「自動用紙」が設定されている。尚、第一のコピー制御部１３１が表示するユーザインタフェースでは、比率表示１３１１と用紙種別１３１２の内容を変更できない。１３１３は、設定されているコピー部数を示す文字列である。ユーザは、操作パネル２２０のテンキー３０１を操作することで、コピー部数を変更することが出来る。
【００６７】
操作パネル２２０のテンキー３０１が押下されると、第一のコピー制御部１３１は、その押下されたキーに従ってタッチパネル３０９に描画される画面を更新する。１３２５は、複数部の出力が設定されたときの現在のソート方法の設定がどのようになっているかを表示する。第一のコピー制御部１３１が表示するユーザインタフェースでは、ソートの設定は行えないので、常にグループソートが選択される。尚、ここで第一のコピー制御部１３１がソートを禁止しているのは、第一のＯＳ１１０ではハードディスクを使うことができないためである。即ち、部数毎にソートして出力を行うためには、全ての文書データをスキャンして、印刷が終了するまで全ての文書データ分のイメージデータをハードディスクに保持しておく必要があるが、これが第一のＯＳ１１０ではできないためである。
【００６８】
以上の設定の下で、ユーザが操作パネル２２０のスタートボタン３０４を押下すると、第一のコピー制御部１３１は、スキャナドライバ１１２を操作して、スキャナユニットにセットされた原稿の読み込みの開始を指示する。このとき、第一のコピー制御部１３１は、そのスキャナユニットで読み取った１ページ分のイメージデータをＤＲＡＭ２１６に転送して格納するように指示する。これは、第一のコピー制御部１３１は、スキャナユニットによって読み込まれたデータをＨＤＤに保存する必要がなく、またグループソートしか行わないためである。これと同時に第一のコピー制御部１３１は、ＬＣＤシリアルドライバ１１１を操作して、操作パネル２２０の実行ＬＥＤ３１０を緑点滅させるように制御する。
【００６９】
こうしてスキャナユニットによって読み取られた１ページ分のイメージデータがＤＲＡＭ２１６に格納されると、第一のコピー制御部１３１は、プリンタドライバ１１３を操作してＤＲＡＭ２１６に格納されたイメージデータを印刷する。これを設定された部数分繰り返す。こうして必要な部数分の印刷が完了すると、第一のコピー制御部１３１は、ＤＲＡＭ２１６に格納されたイメージデータを消去し、次のページの読み込みを開始するようにスキャナユニットを制御する。以上の処理を繰り返すことにより全ての印刷が完了すると、第一のコピー制御部１３１は、実行ＬＥＤ３１０を消灯させるように制御する。尚、第一のコピー制御部１３１は、ＤＲＡＭ２１６に空き容量がある限り、続けてスキャナユニットによる原稿の読み取りを行うように制御してもよい。
【００７０】
次に図１０のフローチャートを参照して、図５のフローチャートのステップＳ５１１における第一のＯＳ１１０のシャットダウン処理について詳細に説明する。
【００７１】
図１０は、本実施の形態に係る情報処理装置の第一のＯＳ１１０のシャットダウン処理の一例を説明するフローチャートである。
【００７２】
まずステップＳ１００１で、ハイパーバイザ１００は、第一のＯＳ１１０によってジョブが実行しているかを判断する。Ｉ／Ｏ制御部１０１は、ユーザが行った操作パネル２２０からの入力及び、第一のＯＳ１１０が操作した操作パネル２２０のＬＥＤ等に対する操作を記憶できるので、これを利用して判定する。ここで第一のＯＳ１１０によってジョブが実行している場合はステップＳ１００２に進み、上述と同様の手法で、第一のＯＳ１１０によって行われているジョブが終了するのを待つ。
【００７３】
こうしてステップＳ１００１で、第一のＯＳ１１０によってジョブが処理されていない状態になるとステップＳ１００３に進み、ハイパーバイザ１００は、第一のＯＳ１１０をシャットダウンするように制御する。これは、例えば操作パネル２２０の電源ボタン３０３が押下されたときのイベントをＩ／Ｏ制御部１０１でエミュレートし、それを第一のＯＳ１１０に転送すればよい。こうして第一のＯＳ１１０のシャットダウン処理が完了するとステップＳ１００４に進み、ハイパーバイザ１００は、第一のＯＳ１１０が実行されないように制御する。次にステップＳ１００５に進み、ハイパーバイザ１００は、第一のＯＳ１１０のために確保したメモリエリアを解放することにより、第一のＯＳ１１０のシャットダウン処理を完了する。ここで第一のＯＳ１１０のために確保したメモリとは、図５のステップＳ５０２で定義した第一のＯＳ１１０の仮想記憶空間のページテーブル及び第一のＯＳ１１０自身がロードされたメモリである。尚、ステップＳ１００３で、第一のＯＳ１１０は、図１４に示すように、この情報処理装置が操作できない状態であることを通知するメッセージをタッチパネル３０９に表示してもよい。
【００７４】
図１４は、本実施の形態に係る情報処理装置のユーザインタフェースの一例を説明する図である。
【００７５】
この図１４では、「しばらくお待ちください」と表示することにより、この情報処理装置が操作できない状態であることを知らせている。
【００７６】
続いて第二のＯＳ１２０の動作について、図１１のフローチャートを用いて説明する。  図１１は、本実施の形態に係る情報処理装置の第二のＯＳ１２０の起動処理の一例を説明するフローチャートである。
【００７７】
まずステップＳ１１０１で、第二のＯＳ１２０は、ＯＳ自身の初期化を行う。次にステップＳ１１０２に進み、第二のＯＳ１２０は、第二のＯＳ１２０が利用するファイルシステムのマウント処理を行う。このマウント処理とは、ＯＳからファイルシステムを使えるようにする処理であり、ファイルシステムに関する管理情報をメモリに読み込み、ファイルを管理するテーブルの初期化等が実行される。このとき第二のＯＳ１２０は、マウントされたファイルシステムのチェックを行うためのプログラムを実行させてもよい。次にステップＳ１１０３に進み、第二のＯＳ１２０は、ネットワークの初期化処理を行う。このとき第二のＯＳ１２０は、外部のサーバとＤＨＣＰ等により、通信に必要なネゴシエーション処理等を行っても構わない。次にステップＳ１１０４に進み、第二のＯＳ１２０は、第二のＯＳ１２０上で動作する各種アプリケーションを起動する。尚、これらのアプリケーションの起動が完了した後、図１０で説明した第一のＯＳ１１０のシャットダウン処理が開始される。
【００７８】
図１５は、本実施の形態に係る情報処理装置のユーザインタフェースの一例を説明するための図である。
【００７９】
図１５は、第二のＯＳ１２０上で動作するＵＩ制御部１４２によってタッチパネル３０９に表示されるユーザインタフェースの一例を示している。この図１５では、図１３でグレーアウトされていたボタンがグレーアウトされていない。例えば等倍ボタン１３２０と倍率ボタン１３２１はそれぞれ、原稿サイズと出力イメージサイズの比率を変更するためのボタンである。等倍ボタン１３２０が押下された場合は、この値が１００％となる。また倍率ボタン１３２１が押下された場合は、図１６に示すような比率を設定する画面がタッチパネル３０９に表示される。
【００８０】
図１６は、本実施の形態に係る情報処理装置において、倍率ボタン１３２１が押下された時に表示される倍率設定画面の一例を示す図である。
【００８１】
ここでは、ユーザは、この画面上で比率を２５％〜８００％の範囲で指定することができる。
【００８２】
用紙選択ボタン１３２２は、出力される用紙を選択する画面を表示する。これによりユーザは、印刷される用紙サイズを選択することが可能である。ソータボタン１３２３は、複数部の印刷を行う場合のソート方法を指定する。ここでは、ページ毎に印刷を行うグループソートと、部数毎に印刷を行うソートの何れかを選択することができる。また両面ボタン１３２４は、原稿が両面であるか、或いは両面に印刷するかを指定するボタンである。
【００８３】
図１７は、本実施の形態に係る情報処理装置で説明した、第一のＯＳ１１０が制御している場合に実行できる機能と、第二のＯＳ１２０が制御している場合に実行できる機能とをまとめて示す図である。
【００８４】
図１７において、第一のＯＳ１１０は、両面印刷、ファックス機能、プリンタ機能、その他の機能がいずれも不可能であり、倍率設定、用紙設定、ソート設定はそれぞれ一部の機能のみが可能となる。これに対して第二のＯＳ１２０は、両面印刷、ファックス機能、プリンタ機能、その他の機能がいずれも可能である。また倍率設定は２５％〜８００％、用紙設定は自動用紙設定、及び選択が設定可能である。ソート設定は、グループ（ページごと）とソート（部ごと）が可能である。
【００８５】
また、ハイパーバイザ１００が第一のＯＳ１１０の代わりに、他の機能を有する第三のＯＳ（不図示）を起動することで、第二のＯＳ１２０が起動するまで情報処理装置を制御するＯＳを切り替えるようにしてもよい。例えば第三のＯＳには、ＦＡＸの送信だけが行えるアプリケーションが搭載されているとする。そしてユーザが、この情報処理装置の電源を立ち上げる際に、例えば操作パネル２２０を用いて指示することにより、情報処理装置はＦＡＸ機能がすぐに使えるような状態で起動できる。こうしてユーザの利便性が向上できる。尚、この場合、ファックスユニットをエミュレートするソフトウェアが必要になることはいうまでもない。
【００８６】
図１２は、本実施の形態に係る情報処理装置で最初に起動するＯＳを選択する処理を説明するフローチャートである。
【００８７】
ここではユーザは、操作パネル２２０のあるボタンを押しながら情報処理装置の電源をオンにする。これによりステップＳ１２０２に進み、ハイパーバイザ１００は、操作パネル２２０のボタンの押下状態に応じて、最初に起動するＯＳを選択する。次にステップＳ１２０３に進み、上記で説明したように、ハイパーバイザ１００は、こうして選択されたＯＳを起動する。
【００８８】
また図４のステップＳ４０２で、ブートローダが起動するＯＳを第二のＯＳ１２０にすることで、第二のＯＳ１２０によって情報処理装置が制御可能になるまでの時間を従来と同様にすることが可能になる。またユーザが電源の立ち上げ時に行いたい処理がない場合には、このように起動されるように選択できるようにしてもよい。
【００８９】
またＣＰＵ２０１は、実行コアを２つもつＣＰＵでもよい。この場合、第一のＯＳ１１０と第二のＯＳ１２０とは並行して実行することが可能になる。この場合、図５のフローチャートにおいて、ステップＳ５０４で第一のＯＳ１１０の起動完了を待ってから第二のＯＳ１２０のロードや起動を開始する必要がない。即ち、第一のＯＳ１１０の起動時間にほとんど影響することなく、並行して第二のＯＳ１２０のロードや起動を行うことができる。このため電源投入から第二のＯＳ１２０によって情報処理装置が制御されるまでの時間を短縮することができるので、更に利用者の利便性が向上できる。
【００９０】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【００９１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【００９２】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９３】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００９４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００９５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【００９６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９７】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００９８】
以上説明したように本実施の形態によれば、以下のような効果がある。
（１）情報処理装置に搭載された各種デバイスを、最も起動時間が短い第１オペレーティングシステムで制御できるため、ユーザの利便性を向上できる。
（２）最も起動時間が短い第１オペレーティングシステム以外のオペレーティングシステムが起動したときに、情報処理装置に搭載された各種デバイスを、その起動したオペレーティングシステムで制御できる。
（３）最も起動時間が短い第１オペレーティングシステムが利用していた情報処理装置に搭載されているメモリ等のリソースを、その他のオペレーティングシステムが起動した時点で解放できるため、リソースを効率的に利用できる。
（４）最も起動時間が短い第１オペレーティングシステムで制御するデバイスを少なくするできるため、最も起動時間が短い第１オペレーティングシステムで動作する第１アプリケーションを高速に起動することができる。
（５）最も起動時間が短い第１オペレーティングシステム以外の第２オペレーティングシステムが起動した時点でのデバイスの状態を、そのオペレーティングシステムが単独で起動したときと同一にできる。このため、その第２オペレーティングシステムが起動したときにデバイスの初期化が不要となる。
（６）最も起動時間が短いオペレーティングシステムで行われたユーザ操作やその結果等を記憶装置に保持し、それ以外のオペレーティングシステムで、その保持されている情報を参照することが可能となる。
（７）最も起動時間が短いオペレーティングシステムのアプリケーションを利用しない場合、最も起動時間が短いオペレーティングシステムを停止させることができる。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施の形態に係る情報処理装置において、ＣＰＵが実行するソフトウェアシステムの構成を説明するためのブロック図である。
【図２】本実施の形態における情報処理装置のハードウェア構成を示すブロック図である。
【図３】本実施の形態に係る情報処理装置の操作パネルの外観図である。
【図４】本実施の形態に係る情報処理装置の電源投入後の処理を説明するためのフローチャートである。
【図５】本実施の形態に係る情報処理装置のハイパーバイザの動作を説明するフローチャートである。
【図６】本実施の形態に係る情報処理装置のＩ／Ｏ処理の一例を説明するフローチャートである。
【図７】本実施の形態に係る情報処理装置における仮想記憶空間（仮想メモリアドレス空間）を説明する図である。
【図８】本実施の形態に係る情報処理装置のＯＳの起動処理の一例を説明するフローチャートである。
【図９】本実施の形態に係る情報処理装置のＯＳ上で動作するアプリケーションの動作の一例を説明するフローチャートである。
【図１０】本実施の形態に係る情報処理装置の第一のＯＳのシャットダウン処理の一例を説明するフローチャートである。
【図１１】本実施の形態に係る情報処理装置の第二のＯＳの起動処理の一例を説明するフローチャートである。
【図１２】本実施の形態に係る情報処理装置で最初に起動するＯＳを選択する処理を説明するフローチャートである。
【図１３】本実施の形態に係る情報処理装置のタッチパネルの表示例（ユーザインタフェース）の一例を説明するための図である。
【図１４】本実施の形態に係る情報処理装置のユーザインタフェースの一例を説明する図である。
【図１５】本実施の形態に係る情報処理装置のユーザインタフェースの一例を説明するための図である。
【図１６】本実施の形態に係る情報処理装置において、倍率ボタンが押下された時に表示される倍率設定画面の一例を示す図である。
【図１７】本実施の形態に係る情報処理装置で説明した、第一のＯＳが制御している場合に実行できる機能と第二のＯＳが制御している場合に実行できる機能とをまとめて示す図である。
【図１】
2009093439.tif 000003
【図２】
2009093439.tif 000004
【図３】
2009093439.tif 000005
【図４】
2009093439.tif 000006
【図５】
2009093439.tif 000007
【図６】
2009093439.tif 000008
【図７】
2009093439.tif 000009
【図８】
2009093439.tif 000010
【図９】
2009093439.tif 000011
【図１０】
2009093439.tif 000012
【図１１】
2009093439.tif 000013
【図１２】
2009093439.tif 000014
【図１３】
2009093439.tif 000015
【図１４】
2009093439.tif 000016
【図１５】
2009093439.tif 000017
【図１６】
2009093439.tif 000018
【図１７】
2009093439.tif 000019