(57)【要約】      （修正有）【課題】元のＯＳのメモリ領域に影響を与えずにＯＳの中核にかかわる処理である特権処理を実行することが可能な処理実行方法を提供する。【解決手段】第１のＯＳが機能する第１ＯＳ部１１と、第２のＯＳが機能する第２ＯＳ部１２と、を有する情報処理装置１０が行う処理実行方法であって、実行に特権が必要になる特権処理を第２ＯＳ部が発行すると、第１ＯＳ部と第２ＯＳ部とは異なる、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された冗長部１３に第２ＯＳ部の構成をコピーし、冗長部が特権処理を実行する。【選択図】図１
2020135555.tif 000002
【特許請求の範囲】
【請求項１】
第１のＯＳ（Operating System）が機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置が行う処理実行方法であって、
実行に特権が必要になる特権処理を前記第２ＯＳ部が発行すると、前記第１ＯＳ部と前記第２ＯＳ部とは異なる、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行する
処理実行方法。
【請求項２】
請求項１に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理に応じて、当該特権処理の内容に応じた実行命令を発行する
処理実行方法。
【請求項３】
請求項２に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理を排他的に実行する必要がある場合、前記第２ＯＳ部を停止させる前記実行命令を発行する
処理実行方法。
【請求項４】
請求項２又は請求項３に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理を排他的に実行する必要がない場合、前記第２ＯＳ部を停止させない前記実行命令を発行する
処理実行方法。
【請求項５】
請求項１から請求項４までのいずれか１項に記載の処理実行方法であって、
前記冗長部に前記第２ＯＳ部の構成をコピーする際、前記冗長部が有するメモリ中に終了処理のメモリイメージを上書きする
処理実行方法。
【請求項６】
請求項１から請求項５までのいずれか１項に記載の処理実行方法であって、
前記第２ＯＳ部が有するプロセッサのレジスタに格納されている情報を前記冗長部が有する冗長プロセッサにコピーするとともに、前記第２ＯＳ部が有するメモリに格納されている情報を前記冗長部が有する冗長ＯＳメモリにコピーすることで、前記第２ＯＳ部の構成を前記冗長部にコピーする
処理実行方法。
【請求項７】
請求項１から請求項６までのいずれか１項に記載の処理実行方法であって、
前記第１ＯＳ部が前記第２ＯＳ部の構成を前記冗長部にコピーし、
前記冗長部にコピーされた前記第２のＯＳが前記特権処理を実行する
処理実行方法。
【請求項８】
請求項１から請求項７までのいずれか１項に記載の処理実行方法であって、
前記冗長部による前記特権処理の実行後、前記第２ＯＳ部が有する共有メモリに実行結果を格納する
処理実行方法。
【請求項９】
請求項８に記載の処理実行方法であって、
前記特権処理の終了後、前記冗長部が有する冗長部用共有メモリに格納された前記特権処理の結果を前記第１ＯＳ部が読み出し、前記第１ＯＳ部は、読み出した結果を前記第２ＯＳ部が有する前記共有メモリに格納する
処理実行方法。
【請求項１０】
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する処理実行装置であって、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、前記第１ＯＳ部と前記第２ＯＳ部とは異なる、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行するコピー実行部を有する
処理実行装置。
【請求項１１】
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置に、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、前記第１ＯＳ部と前記第２ＯＳ部とは異なる、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行するコピー実行部を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理実行方法、処理実行装置、プログラムに関する。
【背景技術】
【０００２】
１台の情報処理装置に、複数のＯＳ（Operating System）を搭載することがある。
【０００３】
このような情報処理装置の一例として、例えば、特許文献１がある。特許文献１には、プロセッサが第１のオペレーティングシステム用のプロセッサと第２のオペレーティングシステム用のプロセッサとに論理的に分割されるとともに、メモリが第１のオペレーティングシステム用のメモリと第２のオペレーティングシステム用のメモリとに論理的に分割されたコンピュータが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２９０６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されているようなコンピュータにおいて、ＯＳの中核にかかわる処理のため特権レベルを与えられたプログラムを実行することがある。このようなプログラムを実行する際、プログラム内に不具合があると、ＯＳ自体が続行不能になりおそれがあった。
【０００６】
このような問題に対しては、ＯＳ中核の処理を小さくし可能な限り処理を分けて実行させる、権限レベルを複数用意する、例外が発生した場合のリカバリ処理により復旧させる、などの方法をとることができる。しかしながら、上記各方法の場合、設計に大きな労力を必要とするＯＳのアーキテクチェの変更が必要になる、修正によっては既存のユーザの運用に影響を及ぼすおそれがある、リカバリできない場合がある、という問題がそれぞれ生じていた。
【０００７】
このように、元のＯＳのメモリ領域に影響を与えずにＯＳの中核にかかわる処理である特権処理を実行することが難しい、という課題が依然として残っていた。
【０００８】
そこで、本発明の目的は、元のＯＳのメモリ領域に影響を与えずにＯＳの中核にかかわる処理である特権処理を実行することが難しい、という課題を解決する処理実行方法、処理実行装置、プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態である処理実行方法は、
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置が行う処理実行方法であって、
実行に特権が必要になる特権処理を前記第２ＯＳ部が発行すると、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行する
という構成をとる。
【００１０】
また、本発明の他の形態である処理実行装置は、
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する処理実行装置であって、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行するコピー実行部を有する
という構成をとる。
【００１１】
また、本発明の他の形態であるプログラムは、
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置に、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部が前記特権処理を実行するコピー実行部を実現させるためのプログラムである。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、元のＯＳのメモリ領域に影響を与えずにＯＳの中核にかかわる処理である特権処理を実行することが難しい、という課題を解決する処理実行方法、処理実行装置、プログラムを提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態において説明する情報処理装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態において説明する情報処理装置の論理的な構成の一例を示すブロック図である。
【図３】情報処理装置の構成図における処理の流れの一例を示す図である。
【図４】終了処理の一例を示す図である。
【図５】非同期命令の場合の処理の流れの一例を示す図である。
【図６】本発明の第１の実施形態において説明する情報処理装置の動作の一例を示すフローチャートである。
【図７】本発明の第１の実施形態において説明する情報処理装置の動作の一例を示すフローチャートである。
【図８】本発明の第１の実施形態において説明する情報処理装置の動作の一例を示すフローチャートである。
【図９】本発明の第２の実施形態における処理実行装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
［第１の実施形態］
本発明の第１の実施形態を図１から図８までを参照して説明する。図１は、情報処理装置１０の構成の一例を示すブロック図である。図２は、情報処理装置１０の論理的な構成の一例を示すブロック図である。図３は、情報処理装置１０の構成図における処理の流れの一例を示す図である。図４は、終了処理の一例を示す図である。図５は、非同期命令の場合の処理の流れの一例を示す図である。図６から図８までは、情報処理装置１０の動作の一例を示すフローチャートである。
【００１５】
本発明の第１の実施形態においては、第１ＯＳ（Operating System）７１０が機能する第１ＯＳ部１１と、第２ＯＳ７２０が機能する第２ＯＳ部１２と、を有するとともに、ディスクや通信などのデバイスを割り当てていない冗長部１３を有する情報処理装置１０（処理実行装置）について説明する。後述するように、本実施形態における情報処理装置１０は、第２ＯＳ部１２がＯＳの中核にかかわる処理であり実行に特権が必要となる特権処理を発行すると、第２ＯＳ部１２の構成を冗長部１３０にコピーする。そして、第２ＯＳ部１２の構成をコピーすることで冗長部１３０に生成した第２ＯＳ’に特権処理を実行させる。このように、冗長部１３０に生成した第２ＯＳ’で特権処理を実行することで、情報処理装置１０は、元のＯＳの動作に影響を与えるおそれなく、特権処理の実行を行う。
【００１６】
情報処理装置１０は、第１ＯＳ７１０と第２ＯＳ７２０の２つのＯＳが動作する情報処理装置である。図１は、情報処理装置１０の構成の一例を示している。図１を参照すると、情報処理装置１０は、プロセッサ２０と、メモリ３０と、第２ＯＳ部用共有メモリ４１と、冗長部用共有メモリ４２と、システム起動時に最初に動作するファームウェアを格納する記憶装置であるＦＷ５１と、不揮発性メモリであるＮＶＲＡＭ（Non-Volatile Random Access Memory）５２と、を有している。また、情報処理装置１０には、システムバス６０を介して、キーボード５３、ディスプレイ５４、ディスク５５、外部入出力装置５６、などが接続されている。
【００１７】
図１で示すように、プロセッサ２０は、第１プロセッサ２１と第２プロセッサ２２と冗長プロセッサ２３とに論理的に分割されている。同様に、メモリ３０は、第１ＯＳメモリ３１と第２ＯＳメモリ３２と冗長ＯＳメモリ３３とに論理的に分割されている。
【００１８】
このように、情報処理装置１０は、第１プロセッサ２１と第１ＯＳメモリ３１とを含む第１ＯＳ部１１と、第２プロセッサ２２と第２ＯＳメモリ３２と第２ＯＳ部用共有メモリ４１とを含む第２ＯＳ部１２と、冗長プロセッサ２３と冗長ＯＳメモリ３３と冗長部用共有メモリ４２とを含む冗長部１３とに論理的に分割されている。つまり、情報処理装置１０は、第１ＯＳ部１１と第２ＯＳ部１２とを有するとともに、第１ＯＳ部１１や第２ＯＳ部１２とは異なる構成である冗長部１３を有している。また、キーボード５３とディスプレイ５４とディスク５５とが第１ＯＳ用に論理的に分割されており、外部入出力装置５６が第２ＯＳ用に論理的に分割されている。
【００１９】
なお、情報処理装置１０を論理的に分割する手段は、既知のものを用いて構わない。例えば、情報処理装置１０は、特開２００１−２９０６６５号に記載されている方法を用いて、情報処理装置１０が有する構成を第１ＯＳ部１１と第２ＯＳ部１２と冗長部１３とに論理的に分割することが出来る。
【００２０】
図２は、情報処理装置１０が有する論理的な構成の一例である。図２を参照すると、情報処理装置１０は、第１ＯＳ７１０と、第２ＯＳ７２０と、第２ＯＳ用エミュレータ７３０と、を有している。
【００２１】
なお、第１ＯＳ７１０及び第１ＯＳ７１０が有する各機能は、例えば、記憶装置に格納されたプログラムを第１プロセッサ２１が実行することで実現される。また、第２ＯＳ７２０及び第２ＯＳ７２０が有する各機能と、第２ＯＳ用エミュレータ７３及び第２ＯＳ用エミュレータ７３が有する各機能は、例えば、記憶装置に格納されたプログラムを第２プロセッサ２２が実行することで実現される。
【００２２】
第２ＯＳ７２０は、プログラムが特権処理を発行すると、当該特権処理の実行を冗長部１３で実行させるための処理を開始する。また、第２ＯＳ７２０は、冗長部１３を活用して実行された特権処理の結果を受け取る。また、冗長部１３において、コピーされた第２ＯＳ（第２ＯＳ’）は、特権処理を実行する。
【００２３】
図２を参照すると、第２ＯＳ７２０は、例えば、カーネル７２１と、スケジューラアドレス通知部７２２と、例外処理アドレス通知部７２３と、を有している。また、カーネル７２１は、バイパス処理依頼部７２１１と、バイパス処理結果取得部７２１２と、を有している。
【００２４】
第２ＯＳ用エミュレータ７３０は、バイパス処理依頼部７２１１で発行された命令に応じて第２ＯＳ７２０をサスペンド（一時的に停止）したり、バイパス処理依頼部７２１１で発行された命令を第２ＯＳ部用共有メモリ４１に書き込んだりする。また、冗長部１３において、コピーされた第２ＯＳ用エミュレータ（第２ＯＳ’用エミュレータ）は、第２ＯＳ７２０のサスペンドを解除したり第２ＯＳ’が実行した特権処理の結果を冗長部用共有メモリ４２に格納したりする。
【００２５】
図２を参照すると、第２ＯＳ用エミュレータ７３０は、例えば、実行部７３１と、終了処理部７３２と、を有している。
【００２６】
第１ＯＳ７１０は、割り込みに応じて、第２プロセッサ２２のレジスタに格納されている情報を冗長プロセッサ２３にコピーするとともに、第２ＯＳメモリ３２に格納されている情報を冗長ＯＳメモリ３３にコピーする。また、上記コピーする際、第１ＯＳ７１０は、スケジューラアドレス通知部７２２や例外処理アドレス通知部７２３から通知された情報を用いて、終了処理のメモリイメージ上書きを行う。さらに、第１ＯＳ７１０は、冗長部１３による特権処理の実行後、冗長部用共有メモリ４２に格納された特権処理の結果を読み出して、読み出した特権処理の結果を第２ＯＳ部用共有メモリ４１に格納する。
【００２７】
図２を参照すると、第１ＯＳ７１０は、例えば、特権処理用コピー実行部７１１（コピー実行部）を有している。
【００２８】
例えば、情報処理装置１０は、以上説明したような第１ＯＳ７１０と、第２ＯＳ７２０と、第２ＯＳ用エミュレータ７３０と、を有している。
【００２９】
図３は、特権処理を冗長部１３に実行させる際の処理の一例を示している。後述するように、特権処理の内容に応じて、冗長部１３に実行させる際の処理の内容が変わることになる。つまり、第２ＯＳ部１２をサスペンドさせて排他的な処理を行うか、第２ＯＳ部１２をサスペンドさせずに処理を行うか、が変わることになる。以下、図３を参照しつつ図２を用いて説明した各構成についてより詳細に説明する。
【００３０】
第２ＯＳ７２０のプログラムは、ＯＳの中核にかかわる処理である特権処理を発行する（図３の（１））。すると、バイパス処理依頼部７２１１は、発行された特権処理を受け付ける。そして、バイパス処理依頼部７２１１は、受け付けた特権処理の内容に応じた実行命令を発行する（図３の（２））。例えば、このようなバイパス処理依頼部７２１１の処理により、特権処理を冗長部１３で実行させる処理が開始する。また、この際、バイパス処理依頼部７２１１は、受け付けた特権処理の内容に基づいて、特権処理を排他的に実行する必要があるか否か判断する。
【００３１】
特権処理の結果が他の処理に影響するなど、特権処理の内容から特権処理を排他的に実行する必要があると判断される場合、バイパス処理依頼部７２１１は、「冗長領域で実行」命令を発行する（図３の（３））。これにより、第２ＯＳ部１２をサスペンドさせつつ冗長部１３に特権処理を実行させる処理が開始する。また、バイパス処理依頼部７２１１が実行判断を行って命令を発行する際、スケジューラアドレス通知部７２２は、スケジューラなどが利用する処理後の共通処理領域アドレスを示す情報を第１ＯＳ７１０へ通知する。また、例外処理アドレス通知部７２３は、例外処理アドレスを示す情報を第１ＯＳ７１０へ通知する。なお、特権処理の内容から特権処理を排他的に実行する必要がないと判断される場合、バイパス処理依頼部７２１１は、「冗長領域で実行（非同期）」命令を発行する。これにより、第２ＯＳ部１２をサスペンドさせないで冗長部１３に特権処理を実行させる処理が開始することになる。「冗長領域で実行（非同期）」命令を発行する場合の処理の詳細は後述する。
【００３２】
第２ＯＳ用エミュレータ７３０の実行部７３１は、「冗長領域で実行」命令に応じて、第２ＯＳ７２０をサスペンドさせる（図３の（４））。そして、実行部７３１は、バイパス処理依頼部７２１１が発行した「冗長領域で実行」命令の情報を第２ＯＳ部用共有メモリ４１に格納する（図３の（５））。その後、第２ＯＳ７２０（または、第２ＯＳ用エミュレータ７３０）は、第１ＯＳ７１０へ割り込みを行う（図３の（６））。
【００３３】
第１ＯＳ７１０の特権処理用コピー実行部７１１は、割り込みを受け付ける。すると、特権処理用コピー実行部７１１は、第２ＯＳ部用共有メモリ４１を参照して、格納された命令の情報を受け取る（図３の（７））。
【００３４】
特権処理用コピー実行部７１１は、受け取った情報に応じて、第２プロセッサ２２のレジスタに格納されている情報を冗長プロセッサ２３にコピーするとともに、第２ＯＳメモリ３２に格納されている情報を冗長ＯＳメモリ３３にコピーする（図３の（８））。また、上記コピーする際、第１ＯＳ７１０は、スケジューラアドレス通知部７２２や例外処理アドレス通知部７２３から通知されたアドレスを用いて、終了処理のメモリイメージ上書きを行う。
【００３５】
図４は、終了処理のメモリイメージ上書きの一例を示している。図４で示すように、特権処理用コピー実行部７１１は、スケジューラアドレス通知部７２２や例外処理アドレス通知部７２３から通知されたアドレスに終了処理のメモリイメージ上書きを行う。終了処理には、例えば、特権処理の結果を冗長部用共有メモリ４２に格納する旨を示す情報や、特権処理の結果を冗長部用共有メモリ４２に格納したあと第１ＯＳ７１０へ割り込みを行う旨を示す情報などが含まれている。
【００３６】
上述した処理を行った後、特権処理用コピー実行部７１１は、冗長ＯＳメモリ３３に構築された第２ＯＳ’に対して、割り込み処理を行う（図３の（９））。
【００３７】
冗長部１３にコピーされた第２ＯＳ用エミュレータ（第２ＯＳ’用エミュレータ）は、第２ＯＳ’のサスペンドを解除する（図３の（１０））。
【００３８】
冗長部１３にコピーされた第２ＯＳ（つまり、第２ＯＳ’）は、特権処理を実行する（図３の（１１））。
【００３９】
特権処理に成功した場合、冗長ＯＳメモリ３３上の終了処理のエリアに到達する（図３の（１２））。すると、冗長部１３にコピーされた第２ＯＳ用エミュレータ（第２ＯＳ’用エミュレータ）の終了処理部７３２は、終了処理の結果を示す状態を冗長部用共有メモリ４２にセットする。そして、終了処理部７３２は、第１ＯＳ７１０に対して割り込み処理を行う（図３の（１３））。一方、特権処理に失敗した場合、冗長ＯＳメモリ３３上の例外用の終了処理エリアに到達する（図３の（１２’））。すると、終了処理部７３２は、終了処理の結果を示す状態を冗長部用共有メモリ４２にセットする。そして、終了処理部７３２は、第１ＯＳ７１０に対して割り込み処理を行う（図３の（１３’））。
【００４０】
第１ＯＳ７１０は、割り込みを受け付ける。すると、第１ＯＳ７１０の特権処理用コピー実行部７１１は、特権処理の結果に応じた情報を冗長部用共有メモリ４２から取得して、第２ＯＳ部用共有メモリ４１に取得した情報を格納する（図３の（１４））。そして、第１ＯＳ７１０は、第２ＯＳ７２０に対して割り込みを行う（図３の（１５））。
【００４１】
第２ＯＳ用エミュレータ７３０は、第２ＯＳ７２０のサスペンドを解除する。
【００４２】
第２ＯＳ７２０は、自身の特権処理をスキップする（図３の（１６））。そして、第２ＯＳ７２０は、第２ＯＳ部用共有メモリ４１を参照して、特権処理の実行結果を受け取る（図３の（１７））。
【００４３】
以上が、特権処理を排他的に実行させる必要がある場合の処理の流れの一例である。第１ＯＳ７１０と、第２ＯＳ７２０と、第２ＯＳ用エミュレータ７３０とは、上述したような処理を行う構成を有している。
【００４４】
なお、特権処理を排他的に実行する必要がないと判断される場合、バイパス処理依頼部７２１１は、「冗長領域で実行」命令の代わりに「冗長領域で実行（非同期）」命令を発行する（図３の（３））。また、バイパス処理依頼部７２１１は、第２ＯＳ７２０に特権処理をスキップさせる。この場合、第２ＯＳ用エミュレータ７３０の実行部７３１は、「冗長領域で実行（非同期）」命令であるため、第２ＯＳ７２０をサスペンドさせない。また、第２ＯＳ’や第２ＯＳ７２のサスペンドを解除する処理が省略される。
【００４５】
上記のような特権処理を排他的に実行する必要がない場合の処理の一例を図５で示す。図５を参照すると、特権処理を排他的に実行する必要がないと判断される場合、第２ＯＳ７２０は、特権処理をスキップして通常のＯＳ処理を続行する。一方、冗長部１３にコピーされた第２ＯＳ（つまり、第２ＯＳ’）は、特権処理を実行して終了処理を行う。このように、特権処理を排他的に実行する必要がない場合、第２ＯＳ７２０による通常のＯＳ処理と冗長部１３にコピーされた第２ＯＳ（つまり、第２ＯＳ’）による特権処理とが並行して実行される。
【００４６】
続いて、図６から図８までを参照して、情報処理装置１０の動作の一例について説明する。図６から図８までは、情報処理装置１０の動作の一例を示すフローチャートである。図６を参照すると、第２ＯＳ７２０のプログラムは、ＯＳの中核にかかわる処理である特権処理を発行する（ステップＳ１０１。図３の（１））。すると、バイパス処理依頼部７２１１は、発行された特権処理を受け付ける。そして、バイパス処理依頼部７２１１は、受け付けた特権処理の内容などに基づいて、当該特権処理を排他的に実行する必要があるか否か判断する（ステップＳ１０２。図３の（２））。
【００４７】
特権処理の結果が他の処理に影響するなど、特権処理の内容から特権処理を排他的に実行する必要があると判断される場合（ステップＳ１０３、同期命令）、バイパス処理依頼部７２１１は、「冗長領域で実行」命令を発行する（ステップＳ１０４。図３の（３））。一方、特権処理の内容から特権処理を排他的に実行する必要がないと判断される場合（ステップＳ１０３、非同期命令）、バイパス処理依頼部７２１１は、「冗長領域で実行（非同期）」命令を発行する。
【００４８】
なお、バイパス処理依頼部７２１１が実行判断を行って「冗長領域で実行」命令、又は、「冗長領域で実行（非同期）」命令を発行する際、スケジューラアドレス通知部７２２は、スケジューラなどが利用する処理後の共通処理領域アドレスを示す情報を第１ＯＳ７１０へ通知する。また、例外処理アドレス通知部７２３は、例外処理アドレスを示す情報を第１ＯＳ７１０へ通知する。
【００４９】
実行部７３１は、「冗長領域で実行」命令に応じて、第２ＯＳ７２０をサスペンドさせる（ステップＳ１０５。図３の（４））。そして、実行部７３１は、バイパス処理依頼部７２１１が発行した「冗長領域で実行」命令の情報を第２ＯＳ部用共有メモリ４１に格納する（ステップＳ１０６。図３の（５））。その後、第２ＯＳ７２０（または、第２ＯＳ用エミュレータ７３０）は、第１ＯＳ７１０へ割り込みを行う（ステップＳ１０７。図３の（６））。
【００５０】
第１ＯＳ７１０の特権処理用コピー実行部７１１は、割り込みを受け付ける。すると、特権処理用コピー実行部７１１は、第２ＯＳ部用共有メモリ４１を参照して、格納された命令の情報を受け取る（ステップＳ１０８。図３の（７））。
【００５１】
特権処理用コピー実行部７１１は、受け取った情報に応じて、第２プロセッサ２２のレジスタに格納されている情報を冗長プロセッサ２３にコピーするとともに、第２ＯＳメモリ３２に格納されている情報を冗長ＯＳメモリ３３にコピーする（ステップＳ１０９。図３の（８））。また、上記コピーする際、第１ＯＳ７１０は、スケジューラアドレス通知部７２２や例外処理アドレス通知部７２３から通知されたアドレスを用いて、終了処理のメモリイメージ上書きを行う。
【００５２】
特権処理用コピー実行部７１１は、冗長ＯＳメモリ３３に構築された第２ＯＳ’に対して、割り込み処理を行う（ステップＳ１１０。図３の（９））。
【００５３】
冗長部１３にコピーされた第２ＯＳ用エミュレータ（第２ＯＳ’用エミュレータ）は、第２ＯＳ’のサスペンドを解除する（ステップＳ１１１。図３の（１０））。
【００５４】
続いて、図７を参照すると、冗長部１３にコピーされた第２ＯＳ（つまり、第２ＯＳ’）は、特権処理を実行する（ステップＳ１２１。図３の（１１））。
【００５５】
特権処理に成功した場合（ステップＳ１２２、成功）、冗長ＯＳメモリ３３上の終了処理のエリアに到達する（ステップＳ１２３。図３の（１２））。すると、冗長部１３にコピーされた第２ＯＳ用エミュレータ（第２ＯＳ’用エミュレータ）の終了処理部７３２は、終了処理の結果を示す状態を冗長部用共有メモリ４２にセットする。そして、終了処理部７３２は、第１ＯＳ７１０に対して割り込み処理を行う（ステップＳ１２４。図３の（１３））。一方、特権処理に失敗した場合（ステップＳ１２２、失敗）、冗長ＯＳメモリ３３上の例外用の終了処理エリアに到達する（ステップＳ１２５。図３の（１２’））。すると、終了処理部７３２は、終了処理の結果を示す状態を冗長部用共有メモリ４２にセットする。そして、終了処理部７３２は、第１ＯＳ７１０に対して割り込み処理を行う（ステップＳ１２６。図３の（１３’））。
【００５６】
第１ＯＳ７１０は、割り込みを受け付ける。すると、第１ＯＳ７１０の特権処理用コピー実行部７１１は、特権処理の結果に応じた情報を冗長部用共有メモリ４２から取得して、第２ＯＳ部用共有メモリ４１に取得した情報を格納する（ステップＳ１２７。図３の（１４））。そして、第１ＯＳ７１０は、第２ＯＳ７２０に対して割り込みを行う（ステップＳ１２８。図３の（１５））。
【００５７】
第２ＯＳ用エミュレータ７３０は、第２ＯＳ７２０のサスペンドを解除する。第２ＯＳ７２０は、自身の特権処理をスキップする（ステップＳ１２９。図３の（１６））。そして、第２ＯＳ７２０は、第２ＯＳ部用共有メモリ４１を参照して、特権処理の実行結果を受け取る（ステップＳ１３０。図３の（１７））。第２ＯＳ７２０は、特権処理の実行結果に何らかの不具合がある場合、特権処理の実行結果を受け取らず破棄するよう構成しても構わない。
【００５８】
また、図６及び図８を参照すると、特権処理の内容から特権処理を排他的に実行する必要がないと判断される場合（ステップＳ１０３、非同期命令）、バイパス処理依頼部７２１１は、「冗長領域で実行（非同期）」命令を発行する（ステップＳ１３１）。
【００５９】
実行部７３１は、「冗長領域で実行（非同期）」命令に応じて、第２ＯＳ７２０をサスペンドさせずに、バイパス処理依頼部７２１１が発行した「冗長領域で実行」命令の情報を第２ＯＳ部用共有メモリ４１に格納する（ステップＳ１３２）。その後、第２ＯＳ７２０（または、第２ＯＳ用エミュレータ７３０）は、第１ＯＳ７１０へ割り込みを行う（ステップＳ１３３）。
【００６０】
第１ＯＳ７１０の特権処理用コピー実行部７１１は、割り込みを受け付ける。すると、特権処理用コピー実行部７１１は、第２ＯＳ部用共有メモリ４１を参照して、格納された命令の情報を受け取る（ステップＳ１３４）。そして、特権処理用コピー実行部７１１は、受け取った情報に応じて、第２プロセッサ２２のレジスタに格納されている情報を冗長プロセッサ２３にコピーするとともに、第２ＯＳメモリ３２に格納されている情報を冗長ＯＳメモリ３３にコピーする（ステップＳ１３５）。また、上記コピーする際、第１ＯＳ７１０は、スケジューラアドレス通知部７２２や例外処理アドレス通知部７２３から通知されたアドレスを用いて、終了処理のメモリイメージ上書きを行う。その後、特権処理用コピー実行部７１１は、冗長ＯＳメモリ３３に構築された第２ＯＳ’に対して、割り込み処理を行う（ステップＳ１３６）。
【００６１】
第２ＯＳ’は、割り込みに応じて、特権処理を実行する（ステップＳ１３７）。特権処理の内容は、００５４段落〜００５５段落で既に説明した処理と同様である。そのため、説明は省略する。特権処理の終了後、終了処理部７３２は、第１ＯＳ７１０に対して割り込み処理を行うことになる。
【００６２】
第１ＯＳ７１０は、割り込みを受け付ける。すると、第１ＯＳ７１０の特権処理用コピー実行部７１１は、特権処理の結果に応じた情報を冗長部用共有メモリ４２から取得して、第２ＯＳ部用共有メモリ４１に取得した情報を格納する（ステップＳ１３８）。そして、第１ＯＳ７１０は、第２ＯＳ７２０に対して割り込みを行う（ステップＳ１３９）。
【００６３】
第２ＯＳ７２０は、割り込みを受け付ける（ステップＳ１４０）。そして、第２ＯＳ７２０は、第２ＯＳ部用共有メモリ４１を参照して、特権処理の実行結果を受け取る（ステップＳ１４１）。
【００６４】
以上が、情報処理装置１０の動作の一例である。
【００６５】
このように、情報処理装置１０は、第１ＯＳ部１１と、第２ＯＳ部１２と、ディスクや通信などのデバイスを割り当てていない冗長部１３と、を有している。また、情報処理装置１０は、第２ＯＳ部１２がＯＳの中核にかかわる処理である特権処理を発行すると、第２ＯＳ部１２の構成を冗長部１３０にコピーして、第２ＯＳ部１２の構成をコピーすることで冗長部１３０に生成した第２ＯＳ’に特権処理を実行させるよう構成されている。このような構成により、ディスクや通信などのデバイスを割り当てていない冗長部１３に特権処理を実行させることが出来る。その結果、情報処理装置１０は、仮に特権処理に何らかの不具合があった場合でも元のＯＳの動作に影響を与えるおそれなく、特権処理の実行を行うことが可能となる。
【００６６】
なお、本実施形態においては、冗長部１３は、ディスクや通信などのデバイスを割り当てていないとした。しかしながら、冗長部１３は、メモリ以外のＩ／Ｏ可能なデバイスに対して、読み込みのみ可能なよう構成しても構わない。換言すると、冗長部１３は、Ｉ／Ｏ可能なデバイスに対する書き込みを制限するよう構成しても構わない。冗長部１３をこのように構成する場合、ページフォルトの例外は、第２ＯＳ’の処理を完了とせず、ページインして続行することが出来る。
【００６７】
［第２の実施形態］
次に、図９を参照して、本発明の第２の実施形態について説明する。第２の実施形態では、処理実行装置８０の構成の概要について説明する。
【００６８】
処理実行装置８０は、第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する装置である。図９は、本実施形態に特徴的な処理実行装置８０の構成の一例を示している。図９を参照すると、処理実行装置８０は、たとえば、コピー実行部８１を有している。
【００６９】
例えば、処理実行装置８０は、ＣＰＵなどの演算装置と記憶装置とを有している。処理実行装置８０は、記憶装置に格納されたプログラムを演算装置が実行することで、上記処理部を実現する。
【００７０】
コピー実行部８１は、第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、第１ＯＳ部と第２ＯＳ部とは異なる冗長部に第２ＯＳ部の構成をコピーする。これにより、コピー実行部８１は、冗長部に特権処理を実行させる。
【００７１】
このように、処理実行装置８０は、コピー実行部８１を有している。このような構成により、コピー実行部８１は、冗長部に第２ＯＳ部の構成をコピーして、冗長部に特権処理を実行させることが出来る。本実施形態の場合、冗長部は、Ｉ／Ｏ可能なデバイスに対する書き込みが制限されている。そのため、仮に冗長部で実行した特権処理に不具合があった場合でも、当該特権処理の実行により問題が生じるおそれを低減させることが出来る。
【００７２】
また、上述した処理実行装置８０は、当該処理実行装置８０に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する処理実行装置に、第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、第１ＯＳ部と第２ＯＳ部とは異なる冗長部に第２ＯＳ部の構成をコピーし、冗長部に特権処理を実行させるコピー実行部８１を実現させるためのプログラムである。
【００７３】
また、上述した処理実行装置８０により実行される処理実行方法は、第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する処理実行装置が行う処理実行方法であって、実行に特権が必要になる特権処理を第２ＯＳ部が発行すると、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、第１ＯＳ部と第２ＯＳ部とは異なる冗長部に第２ＯＳ部の構成をコピーし、冗長部に特権処理を実行させる、という方法である。
【００７４】
上述した構成を有する、プログラム、又は、処理実行方法、の発明であっても、上記処理実行装置８０と同様の作用・効果を有するために、上述した本発明の目的を達成することが出来る。
【００７５】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における処理実行装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【００７６】
（付記１）
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置が行う処理実行方法であって、
実行に特権が必要になる特権処理を前記第２ＯＳ部が発行すると、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部に前記特権処理を実行させる
処理実行方法。
（付記２）
付記１に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理に応じて、当該特権処理の内容に応じた実行命令を発行する
処理実行方法。
（付記３）
付記２に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理を排他的に実行する必要がある場合、前記第２ＯＳ部を停止させる前記実行命令を発行する
処理実行方法。
（付記４）
付記２又は付記３に記載の処理実行方法であって、
前記第２ＯＳ部が発行した前記特権処理を排他的に実行する必要がない場合、前記第２ＯＳ部を停止させない前記実行命令を発行する
処理実行方法。
（付記５）
付記１から付記４までのいずれか１項に記載の処理実行方法であって、
前記冗長部に前記第２ＯＳ部の構成をコピーする際、前記冗長部が有するメモリ中に終了処理のメモリイメージを上書きする
処理実行方法。
（付記６）
付記１から付記５までのいずれか１項に記載の処理実行方法であって、
前記第２ＯＳ部が有するプロセッサのレジスタに格納されている情報を前記冗長部が有する冗長プロセッサにコピーするとともに、前記第２ＯＳ部が有するメモリに格納されている情報を前記冗長部が有する冗長ＯＳメモリにコピーすることで、前記第２ＯＳ部の構成を前記冗長部にコピーする
処理実行方法。
（付記７）
付記１から付記６までのいずれか１項に記載の処理実行方法であって、
前記第１ＯＳ部が前記第２ＯＳ部の構成を前記冗長部にコピーし、
前記冗長部にコピーされた前記第２のＯＳが前記特権処理を実行する
処理実行方法。
（付記８）
付記１から付記７までのいずれか１項に記載の処理実行方法であって、
前記冗長部による前記特権処理の実行後、前記第２ＯＳ部が有する共有メモリに実行結果を格納する
処理実行方法。
（付記９）
付記８に記載の処理実行方法であって、
前記特権処理の終了後、前記冗長部が有する冗長部用共有メモリに格納された前記特権処理の結果を前記第１ＯＳ部が読み出し、前記第１ＯＳ部は、読み出した結果を前記第２ＯＳ部が有する前記共有メモリに格納する
処理実行方法。
（付記１０）
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する処理実行装置であって、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部に前記特権処理を実行させるコピー実行部を有する
処理実行装置。
（付記１１）
第１のＯＳが機能する第１ＯＳ部と、第２のＯＳが機能する第２ＯＳ部と、を有する情報処理装置に、
前記第２ＯＳ部が発行した、実行に特権が必要になる特権処理に応じて、Ｉ／Ｏ可能なデバイスに対する書き込みが制限された、前記第１ＯＳ部と前記第２ＯＳ部とは異なる冗長部に前記第２ＯＳ部の構成をコピーし、前記冗長部に前記特権処理を実行させるコピー実行部を実現させるためのプログラム。
【００７７】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００７８】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【００７９】
１０  情報処理装置
１１  第１ＯＳ部
１２  第２ＯＳ部
１３  冗長部
２０  プロセッサ
２１  第１プロセッサ
２２  第２プロセッサ
２３  冗長プロセッサ
３０  メモリ
３１  第１ＯＳメモリ
３２  第２ＯＳメモリ
３３  冗長ＯＳメモリ
４１  第２ＯＳ部用共有メモリ
４２  冗長部用共有メモリ
５１  ＦＷ
５２  ＮＶＲＡＭ
５３  キーボード
５４  ディスプレイ
５５  ディスク
５６  外部入出力装置
６０  システムバス
７１０  第１ＯＳ
７１１  特権処理用コピー実行部
７２０  第２ＯＳ
７２１  カーネル
７２１１  バイパス処理依頼部
７２１２  バイパス処理結果取得部
７２２  スケジューラアドレス通知部
７２３  例外処理アドレス通知部
７３０  第２ＯＳ用エミュレータ
７３１  実行部
７３２  終了処理部
８０  処理実行装置
８１  コピー実行部
【図１】
2020135555.tif 000003
【図２】
2020135555.tif 000004
【図３】
2020135555.tif 000005
【図４】
2020135555.tif 000006
【図５】
2020135555.tif 000007
【図６】
2020135555.tif 000008
【図７】
2020135555.tif 000009
【図８】
2020135555.tif 000010
【図９】
2020135555.tif 000011