(57)【要約】【課題】  複数のオペレーションシステム（ＯＳ）が同時に動作するシステムにおける改良された割り込み処理制御構成を提供する。【解決手段】  複数ＯＳが同時に動作するシステムにおいて、割り込み処理制御を実行する主ＯＳを設定し、主ＯＳ以外の副ＯＳに割り込みマスクの設定権限を与えず、副ＯＳから主ＯＳに対して、副ＯＳが割り込み許可状態にあるか禁止状態にあるかを通知し、主ＯＳが、通知情報に基づいて副ＯＳの割り込みマスク制御を行う。本構成により、副ＯＳ独自のマスク制御による割り込み処理の保留といった不具合が解消し、主ＯＳの意図に沿った割り込み制御が可能となり、必要な割り込み処理の優先処理が可能となる。また、主ＯＳでの副ＯＳ割り込みベクタ領域の管理構成により、メモリ領域削減が実される。【選択図】  図５
2006099331.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステム（ＯＳ）に対応するデータ処理を実行する情報処理装置であり、
前記複数のＯＳは、割り込み処理の制御を実行する主ＯＳと、その他の副ＯＳとによって構成され、
前記主ＯＳは、前記副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を保持し、
割り込み処理の発生に応じて、前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なう構成を有することを特徴とする情報処理装置。
【請求項２】
前記主ＯＳは、
発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報を保有し、副ＯＳの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記副ＯＳは、前記主ＯＳに対して、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知する構成であり、
前記主ＯＳは、副ＯＳからの通知情報に基づいて、副ＯＳの状態情報の更新処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記主ＯＳは、
割り込み処理の優先度情報を保持し、該優先度に応じた割り込み制御処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記主ＯＳは、
副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、
副ＯＳ対応の割り込みが発生した場合、
前記状態表に基づいて副ＯＳが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
前記状態表に基づいて副ＯＳが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
（ａ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ａ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
（ｂ）副ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
の各処理態様での割り込み制御を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記主ＯＳは、
副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、
主ＯＳ対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
（ｂ）副ＯＳ処理実行中の場合、
（ｂ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ｂ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
の各処理態様での割り込み制御を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
複数のオペレーティングシステム（ＯＳ）に対応するデータ処理における割り込み処理制御方法であり、
割り込み処理制御を実行する主ＯＳにおいて、主ＯＳ以外の副ＯＳから、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
割り込み処理の発生を検出するステップと、
前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なうステップと、
を有することを特徴とする割り込み処理制御方法。
【請求項８】
前記割り込み処理制御方法において、さらに、
前記主ＯＳは、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報を保有し、副ＯＳの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行することを特徴とする請求項７に記載の割り込み処理制御方法。
【請求項９】
前記割り込み処理制御方法において、さらに、
前記副ＯＳから前記主ＯＳに対して、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知するステップと、
前記主ＯＳにおいて、副ＯＳからの通知情報に基づいて、副ＯＳの状態情報の更新処理を実行するステップと、
を有することを特徴とする請求項７に記載の割り込み処理制御方法。
【請求項１０】
前記主ＯＳは、割り込み処理の優先度情報を保持し、該優先度に応じた割り込み制御処理を実行することを特徴とする請求項７に記載の割り込み処理制御方法。
【請求項１１】
前記主ＯＳは、
副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行し、
副ＯＳ対応の割り込みが発生した場合、
前記状態表に基づいて副ＯＳが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、
前記状態表に基づいて副ＯＳが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
（ａ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ａ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
（ｂ）副ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
の各処理態様での割り込み制御を実行することを特徴とする請求項７に記載の割り込み処理制御方法。
【請求項１２】
前記主ＯＳは、
副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行し、
主ＯＳ対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
（ｂ）副ＯＳ処理実行中の場合、
（ｂ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ｂ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
の各処理態様での割り込み制御を実行する構成であることを特徴とする請求項７に記載の割り込み処理制御方法。
【請求項１３】
複数のオペレーティングシステム（ＯＳ）に対応するデータ処理における割り込み処理制御を実行するコンピュータ・プログラムであり、
割り込み処理制御を実行する主ＯＳにおいて、主ＯＳ以外の副ＯＳから、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
割り込み処理の発生を検出するステップと、
前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なうステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムに関する。さらに詳細には、複数のオペレーションシステム（ＯＳ）が同時に動作するシステムにおいて、割り込み処理制御を実行する主ＯＳを設定して、主ＯＳによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理を実現する情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
１つのシステム内に複数のオペレーティングシステム（ＯＳ）を搭載したマルチＯＳシステムにおいては、各ＯＳはそれぞれ異なるプロセスが実行可能であり、システムで共通のハードウェア、すなわちＣＰＵやメモリ等を時系列に順次切り替えて利用した処理が行なわれる。
【０００３】
複数ＯＳの各々の実行プロセス（タスク）のスケジューリングは、例えばパーティション管理ソフトウェアによって実行される。１つのシステムにＯＳ（α）とＯＳ（β）の２つのオペレーティングシステムが並存する場合、ＯＳ（α）の処理をパーティションＡとし、ＯＳ（β）の処理をパーティションＢとすると、パーティション管理ソフトウェアは、パーティションＡとパーティションＢの実行スケジュールを決定し、決定したスケジュールに基づいて、ハードウェア資源を割り当てて各ＯＳにおける処理を実行する。
【０００４】
マルチＯＳ型のシステムにおけるタスク管理を開示した従来技術として、例えば、特許文献１がある。特許文献１には、複数のＯＳの各々において実行されるタスク管理において、緊急性の高い処理を優先的に処理させるためのタスクスケジューリング手法を開示している。
【０００５】
このようなマルチＯＳシステムにおいて、各種のデータ処理の実行主体は例えばパーティションとして設定される。具体的には、システム内の資源分配を受ける主体としての論理パーティションが設定され、論理パーティションに対して、物理プロセッサユニットの使用時間や、仮想アドレス空間、さらにメモリ空間などの様々なリソースが配分され、配分されたリソースを適用した処理が実行される。論理パーティションには、いずれかの物理プロセッサに対応する論理的なプロセッサが設定され、論理プロセッサに基づくデータ処理が実行される。論理プロセッサと物理プロセッサは必ずしも１対１の関係にはなく、１つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに１つの物理プロセッサが対応付けられる場合もある。
【０００６】
論理プロセッサを適用した複数の処理が並列に実行される場合、物理プロセッサは、複数の論理プロセッサによってスケジューリングされて使用されることになる。すなわち、複数の論理プロセッサは、タイムシェアリングによる物理プロセッサの使用を行なうことになる。
【０００７】
しかし、このようなマルチＯＳシステムにおいては、物理的に使用可能なプロセッサとしてのハードウェア資源は限られており、あるＯＳが物理プロセッサを適用したデータ処理を実行している期間は、他のＯＳによる利用が出来ないことになる。このような他のＯＳによる利用を制限する期間は、例えば割り込みマスク期間と呼ばれる。システム全体での割り込みマスク期間が大きくなるとシステム全体の処理効率は低下することになる。
【特許文献１】特開２００３−３４５６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述の問題点に鑑みてなされたものであり、１つのシステム内に複数のオペレーティングシステム（ＯＳ）を搭載したマルチＯＳシステムにおいて、割り込み処理制御を実行する主ＯＳを設定して、主ＯＳによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理を実現する情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の側面は、
複数のオペレーティングシステム（ＯＳ）対応のデータ処理を実行する情報処理装置であり、
前記複数のＯＳは、割り込み処理の制御を実行する主ＯＳと、その他の副ＯＳとによって構成され、
前記主ＯＳは、前記副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を保持し、
割り込み処理の発生に応じて、前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なう構成を有することを特徴とする情報処理装置にある。
【００１０】
さらに、本発明の情報処理装置の一実施態様において、前記主ＯＳは、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報を保有し、副ＯＳの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行する構成であることを特徴とする。
【００１１】
さらに、本発明の情報処理装置の一実施態様において、前記副ＯＳは、前記主ＯＳに対して、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知する構成であり、前記主ＯＳは、副ＯＳからの通知情報に基づいて、副ＯＳの状態情報の更新処理を実行する構成であることを特徴とする。
【００１２】
さらに、本発明の情報処理装置の一実施態様において、前記主ＯＳは、割り込み処理の優先度情報を保持し、該優先度に応じた割り込み制御処理を実行する構成であることを特徴とする。
【００１３】
さらに、本発明の情報処理装置の一実施態様において、前記主ＯＳは、副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、副ＯＳ対応の割り込みが発生した場合、前記状態表に基づいて副ＯＳが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、前記状態表に基づいて副ＯＳが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
（ａ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ａ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
（ｂ）副ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
の各処理態様での割り込み制御を実行する構成であることを特徴とする。
【００１４】
さらに、本発明の情報処理装置の一実施態様において、前記主ＯＳは、副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行する構成であり、主ＯＳ対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
（ｂ）副ＯＳ処理実行中の場合、
（ｂ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ｂ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
の各処理態様での割り込み制御を実行する構成であることを特徴とする。
【００１５】
さらに、本発明の第２の側面は、
複数のオペレーティングシステム（ＯＳ）に対応するデータ処理における割り込み処理制御方法であり、
割り込み処理制御を実行する主ＯＳにおいて、主ＯＳ以外の副ＯＳから、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
割り込み処理の発生を検出するステップと、
前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なうステップと、
を有することを特徴とする割り込み処理制御方法にある。
【００１６】
さらに、本発明の割り込み処理制御方法の一実施態様において、前記割り込み処理制御方法において、さらに、前記主ＯＳは、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報を保有し、副ＯＳの割り込み許可状態と割り込み禁止状態の遷移に応じて、保留中の割り込み処理の開始制御を実行することを特徴とする。
【００１７】
さらに、本発明の割り込み処理制御方法の一実施態様において、前記割り込み処理制御方法において、さらに、前記副ＯＳから前記主ＯＳに対して、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を通知するステップと、前記主ＯＳにおいて、副ＯＳからの通知情報に基づいて、副ＯＳの状態情報の更新処理を実行するステップと、を有することを特徴とする。
【００１８】
さらに、本発明の割り込み処理制御方法の一実施態様において、前記主ＯＳは、割り込み処理の優先度情報を保持し、該優先度に応じた割り込み制御処理を実行することを特徴とする。
【００１９】
さらに、本発明の割り込み処理制御方法の一実施態様において、前記主ＯＳは、副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行し、副ＯＳ対応の割り込みが発生した場合、前記状態表に基づいて副ＯＳが割り込み禁止状態にあると判定した場合は、発生した割り込みを保留割り込みとして前記状態表に登録し、前記状態表に基づいて副ＯＳが割り込み許可状態にあると判定した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
（ａ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ａ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
（ｂ）副ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
の各処理態様での割り込み制御を実行することを特徴とする。
【００２０】
さらに、本発明の割り込み処理制御方法の一実施態様において、前記主ＯＳは、副ＯＳの状態情報と、発生した割り込み処理が処理中であるか保留中であるかの割り込み処理状態情報とを含む状態表に基づく状態管理を実行し、主ＯＳ対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様、すなわち、
（ａ）主ＯＳ処理実行中の場合、
発生割り込みの優先度に関わらず割り込み処理を実行、
（ｂ）副ＯＳ処理実行中の場合、
（ｂ１）発生割り込みが高優先度の場合は、割り込み処理を実行、
（ｂ２）発生割り込みが低優先度の場合は、割り込み処理を保留、
の各処理態様での割り込み制御を実行する構成であることを特徴とする。
【００２１】
さらに、本発明の第３の側面は、
複数のオペレーティングシステム（ＯＳ）に対応するデータ処理における割り込み処理制御を実行するコンピュータ・プログラムであり、
割り込み処理制御を実行する主ＯＳにおいて、主ＯＳ以外の副ＯＳから、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態情報を受領するステップと、
割り込み処理の発生を検出するステップと、
前記状態情報に基づいて、割り込み処理の実行、または保留を決定する割り込み制御処理を行なうステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００２２】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００２３】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２４】
本発明の構成によれば、複数のオペレーションシステム（ＯＳ）が同時に動作するシステムにおいて、割り込み処理制御を実行する主ＯＳを設定して、主ＯＳによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理が実現される。
【００２５】
本発明の構成によれば、割り込み処理制御を実行する主ＯＳを設定し、主ＯＳ以外の副ＯＳに割り込みマスクの設定権限を与えず、副ＯＳから主ＯＳに対して、副ＯＳが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主ＯＳが、これらの通知情報に基づいて、副ＯＳの割り込みマスクの制御を行う構成としたので、副ＯＳ独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主ＯＳの意図に沿って、全ての割り込み処理の制御が可能となり、必要な割り込み処理を優先的に処理させることが可能となる。
【００２６】
また、本発明の構成によれば、主ＯＳに副ＯＳ割り込みベクタ管理部を設定し、主ＯＳでまとめて副ＯＳの割り込みベクタ領域を管理する構成としたので、個々のＯＳによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となり、メモリ領域の削減が可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照しながら、本発明の情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラムの詳細について説明する。
【００２８】
まず、図１を参照して、本発明を適用可能な情報処理装置のハードウェア構成例について説明する。プロセッサモジュール１０１は、複数のプロセッサ（Processing Unit)から構成されたモジュールであり、ＲＯＭ(Read Only Memory)１０４、ＨＤＤ１２３等に記憶されているプログラムに従って、オペレーティングシステム（ＯＳ：Operating System)、ＯＳ対応のアプリケーション・プログラムなど、各種プログラムに従ったデータ処理を実行する。プロセッサモジュール１０１の詳細については、さらに、後段で、図２を参照して説明する。
【００２９】
グラフィックエンジン１０２は、プロセッサモジュール１０１から入力される指示に従って、出力部１２２を構成する表示デバイスに画面出力するためのデータ生成、例えば３Ｄグラフィック描画処理を実行する。メインメモリ（ＤＲＡＭ）１０３には、プロセッサモジュール１０１において実行するプログラムやその実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１１１により相互に接続されている。
【００３０】
ホストバス１１１は、ブリッジ１０５を介して、ＰＣＩ(Peripheral Component Interconnect/Interface)バスなどの外部バス１１２に接続されている。ブリッジ１０５は、ホストバス１１１、外部バス１１２間、およびコントローラ１０６、メモリカード１０７、その他のデバイスとのデータ入出力制御を実行する。
【００３１】
入力部１２１は、キーボード、ポインティングデバイスなどのユーザにより操作される入力デバイスからの入力情報を入力する。出力部１２２は、液晶表示装置やＣＲＴ（Cathode Ray Tube）などの画像出力部とスピーカ等からなる音声出力部から構成される。
【００３２】
ＨＤＤ（Hard Disk Drive）１２３は、ハードディスクを内蔵し、ハードディスクを駆動し、プロセッサモジュール１０１によって実行するプログラムや情報を記録または再生させる。
【００３３】
ドライブ１２４は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１２７に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース１１３、外部バス１１２、ブリッジ１０５、およびホストバス１１１を介して接続されているメインメモリ（ＤＲＡＭ）１０３に供給する。
【００３４】
接続ポート１２５は、外部接続機器１２８を接続するポートであり、ＵＳＢ，ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１２５は、インタフェース１３、外部バス１１２、ブリッジ１０５、およびホストバス１１１を介してプロセッサモジュール１０１等に接続されている。通信部１２６は、ネットワークに接続され、プロセッサモジュール１０１や、ＨＤＤ１２３等から提供されるデータの送信、外部からのデータ受信を実行する。
【００３５】
次に、プロセッサモジュールの構成例について、図２を参照して説明する。図２に示すように、プロセッサモジュール２００は、複数のメインプロセッサからなるメインプロセッサグループ２０１、複数のサブプロセッサからなる複数のサブプロセッサグループ２０２〜２０ｎによって構成されている。それぞれにメモリコントローラ、２次キャッシュが設けられている。各プロセッサグループ２０１〜２０ｎの各々は例えば８つのプロセッサユニットを有し、クロスバスアーキテクチャ、あるいはパケット交換式ネットワークなどによって接続されている。メインプロセッサグループ２０１のメインプロセッサの指示のもとに、複数のサブプロセッサグループ２０２〜２０ｎの１以上のサブプロセッサが選択され、所定のプログラムが実行される。
【００３６】
各プロセッサグループに設置されたメモリフローコントローラは、図１に示すメインメモリ１０３とのデータ入出力制御を実行し、２次キャッシュは、各プロセッサグループにおける処理用データの記憶領域として利用される。
【００３７】
次に、図３を参照して、本発明の情報処理装置におけるオペレーティングシステム（ＯＳ）構成を説明する。本発明の情報処理装置は複数のオペレーティングシステム（ＯＳ）が共存するマルチＯＳ構成を持つ。図３に示すように、論理的な階層構成を持つ複数のオペレーティングシステム（ＯＳ）を持つ。
【００３８】
図３に示すように、下位レイヤに主ＯＳ３０１を有し、上位レイヤに複数の副ＯＳ３０２〜３０４を有する。副ＯＳには、例えばゲストＯＳ３０２，３０３、およびシステム制御ＯＳ３０４が設定される。主ＯＳ３０１は、副ＯＳとして設定されるシステム制御ＯＳ３０４とともに図１、図２を参照して説明したプロセッサモジュールにおいて実行する各プロセスの１つの実行単位としての論理パーティションを実現し、システム内のハードウェア資源（計算機資源としてのメインプロセッサ、サブプロセッサ、メモリ、デバイス等）を各論理パーティションに割り振る処理を実行する。
【００３９】
副ＯＳを構成するゲストＯＳ３０２，３０３は、例えばゲームＯＳやＷｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）などの各種のＯＳであり、主ＯＳ３０１の制御の下に動作するＯＳである。なお、図３には、ゲストＯＳ３０２，３０３の２つのゲストＯＳのみを示してあるが、ゲストＯＳは任意の数に設定することが可能である。
【００４０】
副ＯＳを構成するゲストＯＳ３０２，３０３は、主ＯＳ３０１およびシステム制御ＯＳ３０４によって設定された論理パーティション内で動作し、その論理パーティションに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して各種のデータ処理を実行する。
【００４１】
例えば、ゲストＯＳ（ａ）３０２は、主ＯＳ３０１およびシステム制御ＯＳ３０４によって設定された論理パーティション２に割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストＯＳ（ａ）３０２対応のアプリケーション・プログラム３０５を実行する。また、ゲストＯＳ（ｂ）３０３は、論理パーティションｎに割り当てられたメインプロセッサ、サブプロセッサ、メモリ、デバイス等のハードウェア資源を適用して、ゲストＯＳ（ｂ）３０３対応のアプリケーション・プログラム３０６を実行する。主ＯＳ３０１は、ゲストＯＳの実行に必要なインタフェースとしてゲストＯＳプログラミングインタフェースを提供する。
【００４２】
副ＯＳの１つであるシステム制御ＯＳ３０４は、論理パーティション管理情報を含むシステム制御プログラム３０７を生成し、システム制御プログラム３０７に基づくシステムの動作制御を主ＯＳ３０１とともに実行する。システム制御プログラム３０７は、システム制御プログラム・プログラミングインタフェースを用いてシステムのポリシを制御するプログラムである。システム制御プログラム・プログラミングインタフェースは、主ＯＳ３０１からシステム制御ＯＳ３０４に提供される。例えばリソース配分の上限値を設定するなど、プログラムによる柔軟なカスタマイズのための手段を提供するのがシステム制御プログラム３０７の役割である。
【００４３】
システム制御プログラム３０７はシステム制御プログラム・プログラミングインタフェースを用いてシステムの振る舞いを制御することができる。例えば、新しく論理パーティションを作成し、その論理パーティションで新しいゲストＯＳを起動することができる。複数のゲストＯＳが動作するシステムでは、それらのゲストＯＳはシステム制御プログラムにあらかじめプログラムされた順序で起動されることになる。また、ゲストＯＳから提出された資源割り当て要求を主ＯＳ３０１が受理する前に検査し、システムのポリシに従って修正したり、要求そのものを拒否したりすることができる。これにより、特定のゲストＯＳだけが資源を独占することがないようにすることができる。このように、システムのポリシをプログラムとして実現したものがシステム制御プログラムである。
【００４４】
主ＯＳ３０１はシステム制御ＯＳ３０４のために特別な論理パーティション（図では論理パーティション１）を割り当てる。主ＯＳ３０１は、ハイパバイザモードで動作する。ゲストＯＳはスーパバイザモードで動作する。システム制御ＯＳ、アプリケーション・プログラムはプロブレムモード（ユーザモード）で動作する。
【００４５】
論理パーティションはシステム内の資源分配を受ける主体である。たとえばメインメモリ１０３（図１参照）はいくつかの領域へ分割され、それぞれの領域の使用権が論理パーティションに対して与えられる。論理パーティションに分配される資源の種別には以下のものがある。
ａ）物理プロセッサユニット使用時間
ｂ）仮想アドレス空間
ｃ）論理パーティション内で動作するプログラムがアクセスできるメモリ
ｄ）主ＯＳが論理パーティションの管理のために用いるメモリ
ｅ）イベントポート
ｆ）デバイスの使用権
ｇ）キャッシュパーティション
ｈ）バス使用権
【００４６】
前述したように、各ＯＳは論理パーティションの中で動作する。各ＯＳは論理パーティションに割り当てられた資源を独占して各種のデータ処理を実行する。多くの場合、システム上で動作する個々のＯＳ毎に１つの論理パーティションが作成される。各論理パーティションにはユニークな識別子が与えられる。システム制御ＯＳ３０４は、論理パーティション管理情報として生成するシステム制御プログラムに識別子を対応づけて管理する。
【００４７】
論理パーティションは、主ＯＳ３０１および副ＯＳとしてのシステム制御ＯＳ３０４によって生成される。生成直後の論理パーティションは何も資源を持たず、使用資源の制限も設定されていない。論理パーティションには活動状態と終了状態という２つの状態がある。生成直後の論理パーティションは活動状態にある。論理パーティション内で動作するゲストＯＳの要求に基づいて論理パーティションは終了状態に遷移し、論理パーティションに割り当てられている全ての論理プロセッサが停止する。
【００４８】
なお、論理プロセッサは、論理パーティションに割り当てられる論理的なプロセッサであり、いずれかの物理プロセッサ、すなわち、図２に示すプロセッサグループ内のプロセッサに対応する。ただし、論理プロセッサと物理プロセッサは必ずしも１対１の関係にはなく、１つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに１つの物理プロセッサが対応付けられる場合もある。論理プロセッサと物理プロセッサの対応付けは、主ＯＳ３０１が決定する。
【００４９】
主ＯＳ３０１は、各論理パーティションが使用する資源の量を制限する機能を備えている。ゲストＯＳ３０２，３０３がシステム制御ＯＳ３０４との通信を行うことなく割り当て／解放が行える資源については使用量の制限が可能となっている。
【００５０】
主ＯＳは論理パーティションに対し、物理サブプロセッサを抽象化した論理サブプロセッサをリソース（計算機資源）として与える。前述したように物理サブプロセッサと論理サブプロセッサは一対一に対応付けされていない上、数が同じである必要もない。これを実現するために、主ＯＳは必要に応じて一つの物理サブプロセッサを複数の論理サブプロセッサに対応付けることができるようになっている。
【００５１】
論理サブプロセッサの数が物理サブプロセッサの数より多い場合、主ＯＳは物理サブプロセッサを時分割して処理する。このため論理サブプロセッサは、時間の経過をともなって動作停止や動作再開を繰り返す可能性がある。副ＯＳはこれらの状態の変化を観測することができる。
【００５２】
データ処理の実行に際しては、システム内の資源分配を受ける主体としての論理パーティションが設定され、論理パーティションに対して、物理プロセッサユニットの使用時間や、仮想アドレス空間、さらにメモリ空間などの様々なリソースが配分され、配分されたリソースを適用した処理が実行される。論理パーティションには、いずれかの物理プロセッサに対応する論理的なプロセッサが設定され、論理プロセッサに基づくデータ処理が実行される。論理プロセッサと物理プロセッサは必ずしも１対１の関係にはなく、１つの論理プロセッサに複数の物理プロセッサが対応付けられる場合もあり、複数の論理プロセッサに１つの物理プロセッサが対応付けられる場合もある。
【００５３】
論理プロセッサを適用した複数の処理が並列に実行される場合、物理プロセッサは、複数の論理プロセッサによってスケジューリングされて使用されることになる。すなわち、複数の論理プロセッサは、タイムシェアリングによる物理プロセッサの使用を行なうことになる。
【００５４】
図４を参照して、タイムシェアリングによる物理プロセッサの使用形態について説明する。図４（ａ）は、１つの物理プロセッサに対して、いずれかの主ＯＳまたは副ＯＳに対応する１つの論理プロセッサが割り当てられている処理形態である。論理プロセッサ（ア）が物理プロセッサ（１）を占有して利用し、論理プロセッサ（イ）が物理プロセッサ（２）を占有して利用している。
【００５５】
図４（ｂ）は、１つの物理プロセッサに対して複数の論理プロセッサが割り当てられ、タイムシェアリングによる処理を実行している処理形態を示している。物理プロセッサ１は、論理プロセッサ（ウ）→（ア）→（ウ）→（ア）→（イ）→（ウ）→（イ）の順にタイムシェアされて、各々の論理プロセッサ、すなわちいずれかの主ＯＳまたは副ＯＳに対応する処理が実行される。物理プロセッサ２は、論理プロセッサ（イ）→（エ）→（イ）→（エ）→（ウ）→（エ）→（ア）の順にタイムシェアされて、各々の論理プロセッサ、すなわちいずれかの主ＯＳまたは副ＯＳに対応する処理が実行されるによる処理が実行される。
【００５６】
上述のように、本発明の情報処理装置は、複数のオペレーティングシステム（ＯＳ）を搭載したマルチＯＳシステムであり、主ＯＳまたは副ＯＳに対応する処理がプロセッサによって実行される。図３を参照して説明したように、複数のＯＳは、１つの主ＯＳとそれ以外の副ＯＳに分類される。以下、本発明の情報処理装置における主ＯＳと副ＯＳの持つ機能と、割り込み制御処理の詳細について説明する。
【００５７】
割り込み処理は、例えば入出力機器、システムクロックなどの装置が非同期的にＣＰＵに割り込む処理であり、割り込みを受け付け、割り込み処理を実行する場合は、実行中の処理、すなわち物理プロセッサとしてのＣＰＵによって実行されていた処理を中断し、割り込み処理を実行して、割り込み処理の完了後に中断処理を再開する。なお、割り込み処理の実行に際しては、必要に応じて、中断する処理に対応するハードウェア状態情報などをコンテキストテーブルとして設定してメモリに保存し、割り込み処理終了後に、コンテキスト復元によってハードウェア状態を回復し、中断処理を再開する処理などが行われる。
【００５８】
本発明の構成における主ＯＳと副ＯＳの割り込み処理の制御に関する機能は、以下の通りである。
（１）主ＯＳが割り込みマスク設定や割り込みベクタといった競合リソースを管理する。
（２）主ＯＳは、主ＯＳ自身を含むデータ処理を実行中のＯＳの状態情報を記録する。
（３）副ＯＳは、割り込みマスクレジスタを直接制御せず、主ＯＳに対して、副ＯＳが割り込み許可状態であるか、割り込み禁止状態であるかを通知する。
（４）主ＯＳがすべての割り込み要求を受け取り、副ＯＳが割り込み可能かつ実行可能な状態のときに必要な割り込みを配送する。
【００５９】
上記構成により、
（１）副ＯＳが直接割り込みマスクを閉じていた時間はすべて割り込みマスクを空けることができる。
（２）割り込みベクタを共有できるので主ＯＳと副ＯＳを統合したイメージを作成して、使用メモリ量を削減できる。
という効果を奏する。
【００６０】
図５を参照して、主ＯＳの機能について説明する。図５は、主ＯＳ５１０の割り込み制御に関する機能を説明するブロック図である。
【００６１】
主ＯＳは、割り込み優先度管理部５１１、副ＯＳ割り込み管理部５１２、副ＯＳ割り込みベクタ管理部５１３、割り込み要因登録管理部５１４、実行ＯＳ状態管理部５１５、割り込み配送部５１６、実行ＯＳ切り替え制御部５１７、割り込み処理完了通知部５１８、割り込み保留制御部５１９を有する。各機能部の実行する処理について説明する。
【００６２】
割り込み優先度管理部５１１は、割り込み要因に対応する優先度に基づく割り込み管理を実行する。割り込み処理は、主ＯＳ対応の割り込み処理、副ＯＳ対応の割り込み処理に区分され、さらに、それぞれの割り込み処理について優先度が設定される。優先度は割り込み処理に応じて高優先度、低優先度の２つの区分設定、あるいは、各割り込み処理について高〜低の複数の優先順位の設定情報に基づいて管理される。割り込み優先度管理部５１１は、これら割り込み要因に対応して設定された優先度に応じて発生した割り込み５３０の対応を決定する処理を実行する。
【００６３】
副ＯＳ割り込み管理部５１２は、副ＯＳの割り込み許可状態および割り込み禁止状態の管理を実行する。前述したように、主ＯＳ５１０は、副ＯＳ５２０から、副ＯＳが割り込み許可状態であるか、割り込み禁止状態であるかの通知を受領する。主ＯＳ５１０の副ＯＳ割り込み管理部５１２は、副ＯＳ５２０からの通知情報に基づいて、各副ＯＳが割り込み許可状態であるか、割り込み禁止状態であるかの管理情報を保持する。
【００６４】
副ＯＳ割り込み管理部５１２は、各副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかの状態を管理する状態表に各副ＯＳの状態を登録する。状態表には、例えば、割り込みの禁止状態を（０）、割り込みの許可状態を（１）として設定した割り込みマスクレジスタが含まれ、割り込みマスクレジスタに基づいて、各副ＯＳの状態を管理する。ある割り込み要求があった場合、割り込みの禁止状態、すなわちマスクされている場合は、その時点に発生した割り込み要求は、待機させられることになる。割り込みの許可状態、すなわち、マスクの解除された状態では、割り込み要求に対する割り込み処理を許容する。
【００６５】
なお、図には１つの副ＯＳ５２０のみを示してあるが、先に図３を参照して説明したように、情報処理装置には複数の副ＯＳが存在可能であり、主ＯＳ５１０の副ＯＳ割り込み管理部５１２は、各副ＯＳについて、それぞれ割り込み許可状態であるか、割り込み禁止状態であるかの管理情報を保持し、各状態に応じた割り込み制御を実行する。
【００６６】
副ＯＳ割り込み管理部５１２の管理情報として保持する状態表の構成例を図６に示す。状態表は、図６に示すように、ＯＳ各々についての状態、すなわち、割り込み許可状態にあるか割り込み禁止状態にあるかの状態情報と、保留割り込み情報と、処理中割り込み情報とが対応付けられたデータである。副ＯＳ割り込み管理部５１２は、各副ＯＳからの状態通知を受領し、受領情報に基づいて状態表を更新する。また、割り込み処理の発生、保留、配送、完了状態に応じて、各割り込みが保留状態にあるか、処理中であるかを状態表に登録し、処理の完了した割り込みについては状態表から削除する。
【００６７】
副ＯＳ割り込みベクタ管理部５１３は、副ＯＳの割り込みベクタ領域を管理する。割り込みベクタは、割り込み要因によってそれぞれ規定されたメモリエリアのテーブルであり、例えば割り込み処理ルーチンの開始アドレス等から構成される。割り込みを受けたプロセッサは、このメモリ領域から割り込みハンドラのアドレスを調べ、そのアドレスにジャンプすることで割り込み処理が開始可能となる。副ＯＳ割り込みベクタ管理部５１３は、このような副ＯＳの割り込みベクタ領域の管理を実行する
【００６８】
割り込み要因登録管理部５１４は、主ＯＳ対応の割り込み要因、副ＯＳ対応の割り込み要因についての登録情報を保持、管理する。主ＯＳ、副ＯＳの割り込み要因は、各ＯＳが利用するＩ／Ｏデバイスによって変更される場合があり、割り込み要因登録管理部５１４は、各ＯＳ対応の割り込み要因の登録、削除処理を実行する。なお、割り込み要因とは例えばキーボード、マウス等の入力手段からの割り込み処理、ネットワークＩ／Ｆからのデータ入力などの要因がある。
【００６９】
実行ＯＳ状態管理部５１５は、物理プロセッサを適用したデータ処理を実行しているＯＳ情報の記録、管理を実行する。
割り込み配送部５１６は、割り込みの配送処理、すなわち、各割り込み要求について、どのプロセッサ、あるいは、プロセッサ群に割り込みを通知して実行させるかを決定する処理を実行する。
【００７０】
実行ＯＳ切り替え制御部５１７は、プロセッサを適用して実行する各種のデータ処理（プロセス，タスク）の切り替え制御を実行する。前述したように、各物理プロセッサは、論理プロセッサに対応付けられ、各ＯＳが１つのあるいは複数のプロセッサを時分割で利用するタイムシェアリングによるデータ処理を実行しており、実行ＯＳ切り替え制御部５１７は、これらの各ＯＳのプロセッサ利用のスケジューリングに従ったＯＳ切り替え処理を実行する。
【００７１】
割り込み処理完了通知部５１８は、割り込み要求に基づく割り込み処理の実行状況の監視を行い、割り込み処理によって中断されたプロセスを実行していたＯＳに対して、割り込み処理の完了を通知する。割り込み処理が完了した場合は、前述したように、中断プロセスに対応するコンテキストの復元により、中断プロセスのハードウェア状態が復元されて処理が再開される。
【００７２】
割り込み保留制御部５１９は、割り込みの保留制御処理を実行する。前述したように、割り込み禁止状態、すなわちマスクされた状態にあるときに発生した割り込み要求は、マスクが解除されるまで待機させられることになる。割り込み保留制御部５１９は、このような待機状態の割り込みの保留管理を実行する。割り込み保留制御部５１９は、割り込みの保留情報を設定した状態表の更新処理を実行するとともに、状態表に保留された割り込みが登録されている場合は、副ＯＳ５２０に通知する処理を実行する。
【００７３】
次に、図７を参照して、副ＯＳの２つの状態、すなわち「割り込み許可状態」と「割り込み禁止状態」の２状態に応じて、主ＯＳの実行する割り込み制御処理および状態遷移について説明する。
【００７４】
図７において、Ｓ１０１〜Ｓ１０４は、情報処理装置における１つの副ＯＳの状態（Ｓｔａｔｅ）を示している。すなわち、
ステートＳ１０１：副ＯＳ起動
ステートＳ１０２：副ＯＳ初期化完了
ステートＳ１０３：副ＯＳ割り込み禁止状態
ステートＳ１０４：副ＯＳ割り込み許可状態
の４状態を示している。
【００７５】
さらに、副ＯＳが、
ステートＳ１０３：副ＯＳ割り込み禁止状態
ステートＳ１０４：副ＯＳ割り込み許可状態
のいずれかにおいて、
イベントＩ２０１：主ＯＳ用割り込み発生、
イベントＩ２０２：副ＯＳ用割り込み発生
のいずれかのイベントが発生する。
【００７６】
副ＯＳのＳ１０１〜Ｓ１０４の４状態の遷移、および副ＯＳが、ステートＳ１０３：副ＯＳ割り込み禁止状態、あるいはステートＳ１０４：副ＯＳ割り込み許可状態にあるときに、イベントＩ２０１：主ＯＳ用割り込み発生、またはイベントＩ２０２：副ＯＳ用割り込み発生のいずれかのイベントが発生した場合の処理シーケンス１〜９について以下説明する。
【００７７】
［シーケンス１］
シーケンス１は、
ステートＳ１０１：副ＯＳ起動から、
ステートＳ１０２：副ＯＳ初期化完了
の状態遷移である。
この状態遷移の際に、副ＯＳは、主ＯＳに対して、副ＯＳが使用する割り込み要因を通知する。図５に示す割り込み要因登録管理部５１４に対する通知処理として実行される。
主ＯＳの割り込み要因登録管理部５１４は、副ＯＳから通知された割り込み要因を検証し、許容される割り込み要因を副ＯＳ対応の割り込み要因として登録する。
【００７８】
［シーケンス２］
シーケンス２は、
ステートＳ１０２：副ＯＳ初期化完了から、
ステートＳ１０３：副ＯＳ割り込み禁止状態
の状態遷移である。
この状態遷移の際に、副ＯＳは、主ＯＳに対して、副ＯＳが割り込み禁止状態であることを通知する。図５に示す副ＯＳ割り込み管理部５１２に対する通知処理として実行される。
【００７９】
主ＯＳの副ＯＳ割り込み管理部５１２は、副ＯＳから、副ＯＳが割り込み禁止状態であることの通知を受領すると、マスク状態を管理する状態表（図６参照）に副ＯＳが割り込み禁止状態であることを登録する。例えば、割り込みの禁止状態を（０）、割り込みの許可状態を（１）として設定した割り込みマスクレジスタを制御して、副ＯＳが割り込み禁止状態であることを示す設定（マスク状態）とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることになる。
【００８０】
［シーケンス３］
シーケンス３は、
ステートＳ１０２：副ＯＳ初期化完了から、
ステートＳ１０４：副ＯＳ割り込み許可状態
の状態遷移である。
この状態遷移の際に、副ＯＳは、主ＯＳに対して、副ＯＳが割り込み許可状態であることを通知する。図５に示す副ＯＳ割り込み管理部５１２に対する通知処理として実行される。
【００８１】
主ＯＳの副ＯＳ割り込み管理部５１２は、副ＯＳから、副ＯＳが割り込み許可状態であることの通知を受領すると、マスク状態を管理する状態表（図６参照）に副ＯＳが割り込み許可状態であることを登録する。例えば、割り込みの禁止状態を（０）、割り込みの許可状態を（１）として設定した割り込みマスクレジスタを制御して、副ＯＳが割り込み許可状態であることを示す設定（マスク解除状態）とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることなく割り込み処理が実行される。
【００８２】
さらに、主ＯＳは、状態表をチェックし、現時点で保留された割り込みの存在を確認する。状態表には、各ＯＳが割り込み禁止にあるか割り込み許可にあるかのＯＳ状態情報と、発生割り込みの保留状態情報が記録されている。割り込みの保留情報は、図５に示す割り込み保留制御部５１９が状態表に書き込み、また、保留割り込みがある場合は、副ＯＳに通知する処理を実行する。
【００８３】
［シーケンス４］
シーケンス４は、
ステートＳ１０４：副ＯＳ割り込み許可状態
ステートＳ１０３：副ＯＳ割り込み禁止状態
の状態遷移である。
この状態遷移の際に、副ＯＳは、主ＯＳに対して、副ＯＳが、割り込み許可状態から割り込み禁止状態に変更されたことを通知する。図５に示す副ＯＳ割り込み管理部５１２に対する通知処理として実行される。
【００８４】
主ＯＳの副ＯＳ割り込み管理部５１２は、副ＯＳから、副ＯＳが、割り込み許可状態から割り込み禁止状態に変更されたとの通知を受領すると、マスク状態を管理する状態表（図６参照）の更新を行い、副ＯＳの状態登録情報を割り込み許可状態から割り込み禁止状態に変更する。例えば、割り込みの禁止状態を（０）、割り込みの許可状態を（１）として設定した割り込みマスクレジスタを制御して、副ＯＳが割り込み禁止状態であることを示す設定（マスク状態）とする。この設定において、ある割り込み要求があった場合、割り込み要求は、待機させられることになる。
【００８５】
［シーケンス５］
シーケンス５は、
ステートＳ１０３：副ＯＳ割り込み禁止状態
ステートＳ１０４：副ＯＳ割り込み許可状態
の状態遷移である。
この状態遷移の際に、副ＯＳは、主ＯＳに対して、副ＯＳが、割り込み禁止状態から割り込み許可状態に変更されたことを通知する。図５に示す副ＯＳ割り込み管理部５１２に対する通知処理として実行される。
【００８６】
主ＯＳの副ＯＳ割り込み管理部５１２は、副ＯＳから、副ＯＳが、割り込み禁止状態から割り込み許可状態に変更されたとの通知を受領すると、マスク状態を管理する状態表（図６参照）の更新を行い、副ＯＳの状態登録情報を割り込み禁止状態から割り込み許可状態に変更する。例えば、割り込みの禁止状態を（０）、割り込みの許可状態を（１）として設定した割り込みマスクレジスタを制御して、副ＯＳが割り込み許可状態であることを示す設定（マスク解除状態）とする。この設定において、ある割り込み要求があった場合、割り込み要求は実行される。
【００８７】
［シーケンス６］
シーケンス６は、
ステートＳ１０３：副ＯＳ割り込み禁止状態
において、
イベントＩ２０２：副ＯＳ用割り込み発生
が起きた場合の処理である。
主ＯＳは、［イベントＩ２０２：副ＯＳ用割り込み発生］を検出すると、副ＯＳの状態表を参照し、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合は、副ＯＳは、割り込み禁止状態にある。
主ＯＳは、副ＯＳが割り込み禁止状態にあることを確認すると、発生した割り込みを保留として、状態表に登録する。
この時点の発生割り込み処理は、実行されず、待機状態となる。
【００８８】
［シーケンス７］
シーケンス７は、
ステートＳ１０４：副ＯＳ割り込み許可状態
において、
イベントＩ２０２：副ＯＳ用割り込み発生
が起きた場合の処理である。
【００８９】
この処理では、主ＯＳがプロセッサを適用した処理を実行している場合と、副ＯＳがプロセッサを適用した処理を実行している場合とで異なる処理が実行される。
（ａ）主ＯＳ処理実行中
主ＯＳがプロセッサを適用した処理を実行している状態において、主ＯＳが、［イベントＩ２０２：副ＯＳ用割り込み発生］を検出すると、副ＯＳの状態表を参照し、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合（ステートＳ１０４）、副ＯＳは、割り込み許可状態にある。
主ＯＳは、副ＯＳが割り込み許可状態にあることを確認すると、発生した割り込みの優先度を検証する。ここでは、高優先度と、低優先度のいずれかに区分されているものとする。発生割り込みが、高優先度の場合の処理と、低優先度の場合の処理とについて、それぞれ説明する。
【００９０】
（ａ−１）発生割り込みが高優先度の場合
発生した割り込み要因が高優先度の割り込みである場合は、以下の（１）〜（７）の処理が実行される。以下において、［主ＯＳ］は主ＯＳの処理、［副ＯＳ］は副ＯＳの処理であることを示す。
（１）［主ＯＳ］状態表（図６参照）における割り込み対応の副ＯＳの対応データとして、発生した割り込みを処理中として登録する。
（２）［主ＯＳ］プロセッサの適用処理を主ＯＳから副ＯＳにスイッチする。このスイッチ処理は、図５に示す実行ＯＳ切り替え制部５１７の処理として実行される。
（３）［主ＯＳ］副ＯＳに割り込みを配送する。この処理は図５に示す割り込み配送部５１６の処理である。
（４）［副ＯＳ］発生した割り込み処理を実行する。
（５）［副ＯＳ］割り込み処理の完了後、割り込み処理の完了を主ＯＳに通知する。図５に示す割り込み処理完了通知部が副ＯＳからの完了通知を受領する。
（６）［主ＯＳ］状態表に登録されている処理の完了した割り込み処理に対応するエントリを削除する。
（７）［主ＯＳ］他に高優先度の割り込み処理がないことを確認し、副ＯＳから主ＯＳの処理にスイッチする。このスイッチ処理は、図５に示す実行ＯＳ切り替え制部５１７の処理として実行される。
【００９１】
以上の処理によって、副ＯＳ対応の高優先度の割り込み処理は、優先的に処理が実行される。次に、発生した割り込み要因が低優先度の割り込みである場合の処理について説明する。発生した割り込み要因が低優先度の割り込みである場合は、
主ＯＳは、状態表（図６参照）の割り込み対応の副ＯＳの保留割り込み情報として、発生割り込みを登録する。
この時点では、発生した割り込みは実行されず、待機することになる。
【００９２】
（ｂ）副ＯＳ処理実行中
副ＯＳがプロセッサを適用した処理を実行している状態では、以下の処理が実行される。以下において、［主ＯＳ］は主ＯＳの処理、［副ＯＳ］は副ＯＳの処理であることを示す。
（１）［主ＯＳ］副ＯＳ用割り込み発生を検出すると、副ＯＳの状態表を参照し、副ＯＳが割り込み許可状態にあるか、割り込み禁止状態にあるかを判定する。この場合（ステートＳ１０４）、副ＯＳは、割り込み許可状態にある。
（２）［主ＯＳ］副ＯＳが割り込み許可状態にあることを確認すると、状態表（図６参照）における割り込み対応の副ＯＳの対応データとして、発生した割り込みを処理中として登録する。
（３）［主ＯＳ］副ＯＳに割り込みを配送する。この処理は図５に示す割り込み配送部５１６の処理である。
（４）［副ＯＳ］発生した割り込み処理を実行する。
（５）［副ＯＳ］割り込み処理の完了後、割り込み処理の完了を主ＯＳに通知する。図５に示す割り込み処理完了通知部５１８が副ＯＳからの完了通知を受領する。
（６）［主ＯＳ］状態表に登録されている処理の完了した割り込み処理に対応するエントリを削除する。
【００９３】
このように、発生した割り込みに対応する副ＯＳがプロセッサを適用した処理を実行し、副ＯＳが割り込み許可状態にある場合は、割り込み処理を待機させることなく実行する。
【００９４】
以上の処理態様をまとめると、シーケンス７、すなわち、副ＯＳ用割り込みが発生し、副ＯＳが割り込み許可状態にある場合の割り込み処理態様は以下のようになる。
（Ａ）主ＯＳ動作中
（Ａ−１）発生割り込みが高優先度：割り込み処理実行
（Ａ−２）発生割り込みが低優先度：割り込み処理保留
（Ｂ）副ＯＳ動作中
発生割り込みの優先度に関わらず割り込み処理実行
の各処理が実行されることになる。
【００９５】
［シーケンス８］
シーケンス８は、
ステートＳ１０３：副ＯＳ割り込み禁止状態
において、
イベントＩ２０１：主ＯＳ用割り込み発生
が起きた場合の処理である。
【００９６】
この処理でも、主ＯＳがプロセッサを適用した処理を実行している場合と、副ＯＳがプロセッサを適用した処理を実行している場合とで異なる処理が実行される。
（ａ）主ＯＳ処理実行中
主ＯＳがプロセッサを適用した処理を実行している状態において、主ＯＳが、［イベントＩ２０１：主ＯＳ用割り込み発生］を検出すると、
主ＯＳに割り込みを配送し、発生した割り込み処理を実行する。
【００９７】
（ｂ）副ＯＳ処理実行中
プロセッサによる処理を副ＯＳが実行中の場合に、主ＯＳが、［イベントＩ２０１：主ＯＳ用割り込み発生］を検出すると、主ＯＳは、発生した割り込みの優先度を検証する。ここでは、高優先度と、低優先度のいずれかに区分されているものとする。発生割り込みが、高優先度の場合の処理と、低優先度の場合の処理とについて、それぞれ説明する。
【００９８】
（ｂ−１）発生割り込みが高優先度の場合
発生した割り込み要因が高優先度の割り込みである場合は、以下の（１）〜（７）の処理が実行される。以下において、［主ＯＳ］は主ＯＳの処理、［副ＯＳ］は副ＯＳの処理であることを示す。
（１）［主ＯＳ］プロセッサの適用処理を副ＯＳから主ＯＳにスイッチする。このスイッチ処理は、図５に示す実行ＯＳ切り替え制部５１７の処理として実行される。
（２）［主ＯＳ］発生した割り込み処理を実行する。
（３）［主ＯＳ］プロセッサ適用処理を主ＯＳから副ＯＳの処理にスイッチする。このスイッチ処理は、図５に示す実行ＯＳ切り替え制部５１７の処理として実行される。
【００９９】
以上の処理によって、主ＯＳ対応の高優先度の割り込み処理は、優先的に処理が実行される。次に、発生した割り込み要因が主ＯＳ対応であるが低優先度の割り込みである場合の処理について説明する。発生した割り込み要因が低優先度の割り込みである場合は、
主ＯＳは、状態表（図６参照）の割り込み対応の主ＯＳの保留割り込み情報として、発生割り込みを登録する。
この時点では、発生した割り込みは実行されず、待機することになる。
【０１００】
［シーケンス９］
シーケンス９は、
ステートＳ１０４：副ＯＳ割り込み許可状態
において、
イベントＩ２０１：主ＯＳ用割り込み発生
が起きた場合の処理である。
【０１０１】
この処理は、上述のシーケンス８の処理と全く同様の処理となる。すなわち、主ＯＳ対応の割り込み処理が発生した場合は、副ＯＳの状態、すなわち副ＯＳが割り込み許可状態にあるか割り込み禁止状態にあるかに関わらず、同一の処理が実行される。
主ＯＳ対応の割り込み処理が発生した場合（シーケンス８，９）の処理態様をまとめると、以下のようになる。
（Ａ）主ＯＳ動作中
発生割り込みの優先度に関わらず割り込み処理実行
（Ｂ）副ＯＳ動作中
（Ｂ−１）発生割り込みが高優先度：割り込み処理実行
（Ｂ−２）発生割り込みが低優先度：割り込み処理保留
以上の態様で、各処理が実行されることになる。
【０１０２】
図８にプロセッサを適用した処理を実行中のＯＳ（動作中ＯＳ）と、発生した割り込みの優先度（高低）、割り込み配送先ＯＳ、割り込み配送先ＯＳの割り込み許可状態との対応をまとめた図を示す。状態として設定可能なシナリオは図に示すように１６通りある。
【０１０３】
本発明の構成では、主ＯＳがすべての副ＯＳの状態情報、すなわち副ＯＳが、
［割り込み許可状態］にあるか、
［割り込み禁止状態］にあるか、
の状態情報（図７に示す状態表）を有し、これを管理する。
【０１０４】
副ＯＳ対応の割り込み処理に対する対応と、主ＯＳ対応の割り込み処理に対する対応をまとめると以下のようになる。
【０１０５】
［副ＯＳ対応の割り込み処理に対する対応］
副ＯＳ対応の割り込みが発生した場合には、
状態表を参照し、副ＯＳが割り込み禁止状態にある場合は、発生した割り込みを保留割り込みとして、状態表に登録する。（シーケンス６）
また、状態表を参照し、副ＯＳが割り込み許可状態にある場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様で割り込み処理の保留処理、または実行処理が行われる（シーケンス７）。
（Ａ）主ＯＳ動作中
（Ａ−１）発生割り込みが高優先度：割り込み処理実行
（Ａ−２）発生割り込みが低優先度：割り込み処理保留
（Ｂ）副ＯＳ動作中
発生割り込みの優先度に関わらず割り込み処理実行
の各処理が実行されることになる。
【０１０６】
［主ＯＳ対応の割り込み処理に対する対応］
主ＯＳ対応の割り込みが発生した場合は、プロセッサを適用した処理を実行中のＯＳが主ＯＳか副ＯＳかに応じて下記の処理態様で割り込み処理の保留処理、または実行処理が行われる（シーケンス８，９）。
（Ａ）主ＯＳ動作中
発生割り込みの優先度に関わらず割り込み処理実行
（Ｂ）副ＯＳ動作中
（Ｂ−１）発生割り込みが高優先度：割り込み処理実行
（Ｂ−２）発生割り込みが低優先度：割り込み処理保留
以上の態様で、各処理が実行されることになる。
【０１０７】
このように、本発明の構成では、主ＯＳがすべての副ＯＳの状態情報、すなわち副ＯＳが、［割り込み許可状態］にあるか、［割り込み禁止状態］にあるかの状態情報を保持し、この状態情報と、発生した割り込みの態様、すなわち、優先度と、主ＯＳ対応の割り込みであるか副ＯＳ対応の割り込みであるかの情報に基づいて、割り込みの実行、または保留を制御する。
【０１０８】
本発明の構成は、このように、副ＯＳに割り込みマスクの設定権限を与えず、副ＯＳから主ＯＳに対して、副ＯＳが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主ＯＳが、これらの通知情報に基づいて、副ＯＳの割り込みマスクの制御を行う構成としたので、副ＯＳ独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主ＯＳの意図に沿って、全ての割り込み処理の制御が可能となる。また、主ＯＳにおける副ＯＳ割り込みベクタ管理部５１３（図５参照）において、副ＯＳの割り込みベクタ領域を管理する構成としたので、個々のＯＳによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となる。前述したように、割り込みベクタは、割り込み要因によってそれぞれ規定されたメモリエリアのテーブルであり、例えば割り込み処理ルーチンの開始アドレス等から構成され、割り込みを受けたプロセッサは、このメモリ領域から割り込みハンドラのアドレスを調べ、そのアドレスにジャンプすることで割り込み処理が開始可能となるベクタであるが、この割り込みベクタを主ＯＳと、全ての副ＯＳとで共有することが可能となり、メモリ領域の削減が可能となる。
【０１０９】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１１０】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１１１】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１１２】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１１３】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１１４】
以上、説明したように、本発明の構成によれば、複数のオペレーションシステム（ＯＳ）が同時に動作するシステムにおいて、割り込み処理制御を実行する主ＯＳを設定して、主ＯＳによって割り込み制御を行なうことで、システム全体の割り込みマスク時間の削減、割り込み応答性の向上、効率的なデータ処理が実現される。
【０１１５】
本発明の構成によれば、割り込み処理制御を実行する主ＯＳを設定し、主ＯＳ以外の副ＯＳに割り込みマスクの設定権限を与えず、副ＯＳから主ＯＳに対して、副ＯＳが割り込み許可状態にあるか禁止状態にあるかの通知を実行し、主ＯＳが、これらの通知情報に基づいて、副ＯＳの割り込みマスクの制御を行う構成としたので、副ＯＳ独自のマスク制御によって、必要な割り込み処理が保留させられてしまうといった不具合を発生させることなく、主ＯＳの意図に沿って、全ての割り込み処理の制御が可能となり、必要な割り込み処理を優先的に処理させることが可能となる。
【０１１６】
また、本発明の構成によれば、主ＯＳに副ＯＳ割り込みベクタ管理部を設定し、主ＯＳでまとめて副ＯＳの割り込みベクタ領域を管理する構成としたので、個々のＯＳによる割り込みベクタ管理と異なり割り込みベクタの共有が可能となり、メモリ領域の削減が可能となる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の情報処理装置の構成例を示す図である。
【図２】プロセッサモジュールの構成例を示す図である。
【図３】本発明の情報処理装置のオペレーションシステム構成を説明する図である。
【図４】タイムシェアリングによる論理プロセッサと物理プロセッサとの対応付け処理について説明する図である。
【図５】本発明の情報処理装置における主ＯＳの機能構成について説明する図である。
【図６】本発明の情報処理装置における主ＯＳの管理するＯＳ状態情報および割り込み処理状態情報からなる状態表を示す図である。
【図７】副ＯＳの状態、および発生割り込みの態様に応じた処理シーケンスについて説明する図である。
【図８】プロセッサを適用した処理を実行中のＯＳ（動作中ＯＳ）と、発生した割り込みの優先度（高低）、割り込み配送先ＯＳ、割り込み配送先ＯＳの割り込み許可状態との対応をまとめた図である。
【符号の説明】
【０１１８】
１０１  プロセッサモジュール
１０２  グラフィックエンジン
１０３  メインメモリ（ＤＲＡＭ）
１０４  ＲＯＭ
１０５  ブリッジ
１０６  コントローラ
１０７  メモリカード
１１１  ホストバス
１１２  外部バス
１１３  インタフェース
１２１  入力部
１２２  出力部
１２３  ＨＤＤ
１２４  ドライブ
１２５  接続ポート
１２６  通信部
１２７  リムーバブル記録媒体
１２８  外部接続機器
２００  プロセッサモジュール
２０１  メインプロセッサグループ
２０２〜２０ｎ  サブプロセッサグループ
３０１  主ＯＳ
３０２，３０３  副ＯＳ（ゲストＯＳ）
３０４  副ＯＳ（システム制御ＯＳ）
３０５，３０６  ゲストＯＳアプリケーション
３０７  システム制御プログラム
５１０  主ＯＳ
５１１  割り込み優先度管理部
５１２  副ＯＳ割り込み管理部
５１３  副ＯＳ割り込みベクタ管理部
５１４  割り込み要因登録管理部
５１５  実行ＯＳ状態管理部
５１６  割り込み配送部
５１７  実行ＯＳ切り替え制御部
５１８  割り込み処理完了通知部
５１９  割り込み保留制御部
５２０  副ＯＳ
５３０  割り込み
【図１】
2006099331.tif 000003
【図２】
2006099331.tif 000004
【図３】
2006099331.tif 000005
【図４】
2006099331.tif 000006
【図５】
2006099331.tif 000007
【図６】
2006099331.tif 000008
【図７】
2006099331.tif 000009
【図８】
2006099331.tif 000010