(57)【要約】【課題】マルチオペレーティングシステムの信頼性、処理能力を向上させること。【解決手段】ＯＳ２０１  からＯＳ２０２  へ切り替えるための切替命令Ａを、ＯＳ２０１  に対応する仮想メモリ空間４０１  の論理アドレスＮに仮想記憶させ、ＯＳ２０２  に対応する仮想メモリ空間４０２  の論理アドレスＮ＋１以降に各種命令を仮想記憶させておき、ＯＳ２０１  における複数のアクセス先（Ｉ／Ｏポート）のうち、オペレーティングシステム切り替えのトリガーとするアクセス先（Ｉ／Ｏポート：例えば、ＬＡＮカード）をアクセス禁止に設定し、ＯＳ２０１  は、ＯＳ２０１  が、アクセス禁止されているアクセス先へアクセスしようとした場合、これをトリガーとして、切替命令Ａにより、ＯＳ２０１  からＯＳ２０２  に切り替え、ＯＳ２０２  は、仮想メモリ空間４０２  の論理アドレスＮ＋１以降の各種命令を実行する。【選択図】      図４
2004171477.tif 000002
【特許請求の範囲】
【請求項１】
一つの計算機で稼動する第１のオペレーティングシステムおよび第２のオペレーティングシステムを制御するマルチオペレーティングシステム制御方法であって、
前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへ切り替えるための第１の切替命令を、前記第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに仮想記憶させる第１の仮想記憶工程と、
前記第２のオペレーティングシステムに対応する第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶させる第２の仮想記憶工程と、
前記第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定するアクセス禁止設定工程と、を含み、
前記第１のオペレーティングシステムは、前記第１のオペレーティングシステムが、アクセス禁止されている前記アクセス先へアクセスしようとした場合、これをトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行することを特徴とするマルチオペレーティングシステム制御方法。
【請求項２】
前記第２の仮想記憶工程では、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへ切り替えるための第２の切替命令を、前記第２の仮想メモリ空間の論理アドレスＮに仮想記憶させ、前記第１のオペレーティングシステムは、アクセス禁止されている前記アクセス先へアクセスしようとした場合をトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行した後、前記第２の切替命令により、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに切り替えることを特徴とする請求項１に記載のマルチオペレーティングシステム制御方法。
【請求項３】
前記第２のオペレーティングシステムは、前記第２の切替命令により切り替えを実行する前に、前記アクセス先に所定の処理を実行させることを特徴とする請求項２に記載のマルチオペレーティングシステム制御方法。
【請求項４】
前記アクセス先は、Ｉ／Ｏポートであることを特徴とする請求項１〜３のいずれか一つに記載のマルチオペレーティングシステム制御方法。
【請求項５】
アクセス禁止されている前記アクセス先は、データ通信を行うデータ通信ポートであることを特徴とする請求項１〜４のいずれか一つに記載のマルチオペレーティングシステム制御方法。
【請求項６】
前記第１の仮想記憶工程では、前記第１の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることを特徴とする請求項１〜５のいずれか一つに記載のマルチオペレーティングシステム制御方法。
【請求項７】
前記第２の仮想記憶工程では、前記第２の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることを特徴とする請求項２〜５のいずれか一つに記載のマルチオペレーティングシステム制御方法。
【請求項８】
請求項１〜７のいずれか一つに記載されたマルチオペレーティングシステム制御方法をコンピュータに実行させるプログラム。
【請求項９】
一つの計算機で稼動する第１のオペレーティングシステムおよび第２のオペレーティングシステムを制御するマルチオペレーティングシステム制御装置であって、
前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへ切り替えるための第１の切替命令を、前記第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに仮想記憶する第１の仮想記憶空間と、
前記第２のオペレーティングシステムに対応する第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶する第２の仮想記憶空間と、
前記第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定するアクセス禁止設定手段と、を備え、
前記第１のオペレーティングシステムは、前記第１のオペレーティングシステムが、アクセス禁止されている前記アクセス先へアクセスしようとした場合、これをトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行することを特徴とするマルチオペレーティングシステム制御装置。
【請求項１０】
前記第２の仮想記憶空間の論理アドレスＮには、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへ切り替えるための第２の切替命令が仮想記憶され、前記第１のオペレーティングシステムは、アクセス禁止されている前記アクセス先へアクセスしようとした場合をトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行した後、前記第２の切替命令により、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに切り替えることを特徴とする請求項９に記載のマルチオペレーティングシステム制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一台の計算機上で複数のオペレーティングシステムを稼動させるためのマルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置に関するものであり、特に、信頼性、処理能力を向上させることができるマルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置に関するものである。
【０００２】
【従来の技術】
通常の計算機では、１つのオペレーティングシステムが動作し、それが計算機のプロセッサ、メモリ、二次記憶装置等の計算機資源を管理し、計算機が効率良く動作できるように資源スケジュールを実施している。オペレーティングシステムには、様々な種類がある。バッチ処理に優れるものや、ＴＳＳ（Ｔｉｍｅ  Ｓｈａｒｉｎｇ  Ｓｙｓｔｅｍ）に優れるもの、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に優れているものなど様々である。
【０００３】
一方で、これら複数あるオペレーティングシステムを１台の計算機で同時に実行したいというニーズがある。例えば、大型計算機においては、実際の業務に伴うオンライン処理を実行するオペレーティングシステムと、開発用のオペレーティングシステムとを一台の計算機で動作させたいという要求がある。あるいは、ＧＵＩの整っているオペレーティングシステムと、実時間性に優れているオペレーティングシステムとを同時に稼働させたい等という要求もある。
【０００４】
しかしながら、個々のオペレーティングシステムは、単独で計算機資源の管理を実施することを前提として設計されている。従って、複数のオペレーティングシステムの共存は、何らかの機構なしには不可能である。
【０００５】
一台の計算機上で複数のオペレーティングシステムを動作させる機構としては、大型計算機で実現されている仮想計算機方式がある。図２３は、上記仮想計算機方式による従来のマルチオペレーティングシステムの構成例１を示すブロック図である。
【０００６】
同図に示したマルチオペレーティングシステムは、ハードウェア１、基盤ＯＳ２、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）モニタ３、仮想ＯＳ（オペレーティングシステム）４１  、仮想ＯＳ４２  および仮想ＯＳ４３  から構成されている。
【０００７】
ハードウェア１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、物理メモリ、入出力機器等である。基盤ＯＳ２およびＶＭモニタ３は、ハードウェア１の全てを制御している。ＶＭモニタ３は、仮想ＯＳ４１  〜４３  のそれぞれのハードウェア１に対するインタフェースをエミュレートする。仮想ＯＳ４１  〜４３  は、基盤ＯＳ２の上で走行する。すなわち、基盤ＯＳ２と仮想ＯＳ４１  〜４３  とは、主従関係にある。
【０００８】
また、一台の計算機で複数のオペレーティングシステムのインタフェースを提供する技術として、マイクロカーネル方式がある。図２４は、上記マイクロカーネル方式による従来のマルチオペレーティングシステムの構成例２を示すブロック図である。
【０００９】
同図に示したマルチオペレーティングシステムは、ハードウェア５、マイクロカーネル（制御プログラム）６、ＯＳ７１  、ＯＳ７２  およびＯＳ７３  から構成されている。
【００１０】
マイクロカーネル方式では、マイクロカーネル６の上に、ユーザに見せるオペレーティングシステム機能を提供するＯＳ７１  〜７３  が構築されている。ユーザはＯＳ７１  〜７３  を経由してハードウェア５（計算機資源）を利用する。マイクロカーネル６は、ＯＳ７１  〜７３  を制御する。
【００１１】
【特許文献１】
特開２００１−２１６７２号公報
【特許文献２】
特開平１１−１４９３８５号公報
【特許文献３】
特開２０００−３３０８０６号公報
【特許文献４】
特開２００１−１７５４８６号公報
【００１２】
【発明が解決しようとする課題】
ところで、前述したように、図２３に示した従来のマルチオペレーティングシステムにおいては、ハードウェア１を一つの基盤ＯＳ２が制御しているため、基盤ＯＳ２の停止により、システムダウンが生じ、信頼性が低いという問題があった。
【００１３】
また、同マルチオペレーティングシステムにおいては、ＶＭモニタ３により仮想ＯＳ４１  〜４３  のインタフェースをエミュレートしているため、エミュレートに処理時間がかかり、動作不具合や制限事項が多いという処理能力の問題があった。
【００１４】
ここで、基盤ＯＳ２を改造することにより、上記動作不具合や制限事項が少なくなるが、汎用性が低下したり、改造の手間がかかるというデメリットが生じる。
【００１５】
また、図２４に示した従来のマルチオペレーティングシステムにおいては、一つのマイクロカーネル６がＯＳ７１  〜７３  を制御しているため、マイクロカーネル６の停止により、システムダウンが生じ、信頼性が低いという問題があった。
【００１６】
本発明は、上記に鑑みてなされたもので、マルチオペレーティングシステムの信頼性、処理能力を向上させることができるマルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明にかかるマルチオペレーティングシステム制御方法にあっては、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへ切り替えるための第１の切替命令を、前記第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに仮想記憶させる第１の仮想記憶工程と、前記第２のオペレーティングシステムに対応する第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶させる第２の仮想記憶工程と、前記第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定するアクセス禁止設定工程と、を含み、前記第１のオペレーティングシステムは、前記第１のオペレーティングシステムが、アクセス禁止されている前記アクセス先へアクセスしようとした場合、これをトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行することを特徴とする。
【００１８】
この発明によれば、第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに第１の切替命令を仮想記憶させ、第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶させておき、さらに、第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定し、第１のオペレーティングシステムが、アクセス禁止されているアクセス先へアクセスしようとした場合、これをトリガーとして、第１の切替命令により、第１のオペレーティングシステムから第２のオペレーティングシステムに切り替え、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行することとしたので、従来の基盤ＯＳやＶＭモニタ等の共通部分が不要で、オペレーティングシステムの信頼性、処理能力を向上させることができる。
【００１９】
また、本発明によれば、従来の共通部分が不要であるため、第１のオペレーティングシステムと第２のオペレーティングシステムとを独立的に動作させることができ、セキュリティを向上させることができる。
【００２０】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、前記第２の仮想記憶工程では、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへ切り替えるための第２の切替命令を、前記第２の仮想メモリ空間の論理アドレスＮに仮想記憶させ、前記第１のオペレーティングシステムは、アクセス禁止されている前記アクセス先へアクセスしようとした場合をトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行した後、前記第２の切替命令により、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに切り替えることを特徴とする。
【００２１】
この発明によれば、第２の仮想メモリ空間の論理アドレスＮに第２の切替命令を仮想記憶させ、第１の切替命令により切り替えが行われてから、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行した後、第２の切替命令により、第２のオペレーティングシステムから第１のオペレーティングシステムに切り替えることとしたので、切り替えおよび切り戻しを円滑に行うことができる。
【００２２】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、前記第２のオペレーティングシステムは、前記第２の切替命令により切り替えを実行する前に、前記アクセス先に所定の処理を実行させることを特徴とする。
【００２３】
この発明によれば、第２の切替命令により切り替えを実行する前に、第２のオペレーティングシステムがアクセス先に所定の処理を実行させることとしたので、第１のオペレーティングシステムへの不正攻撃を防止することができる。
【００２４】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、前記アクセス先は、Ｉ／Ｏポートであることを特徴とする。
【００２５】
この発明によれば、アクセス先をＩ／Ｏポートとしたので、第１のオペレーティングシステムへの不正攻撃を防止することができる。
【００２６】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、アクセス禁止されている前記アクセス先は、データ通信を行うデータ通信ポートであることを特徴とする。
【００２７】
この発明によれば、アクセス禁止されているアクセス先を、データ通信を行うデータ通信ポートとしたので、データ通信を介しての第１のオペレーティングシステムへの不正攻撃を防止することができる。
【００２８】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、前記第１の仮想記憶工程では、前記第１の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることを特徴とする。
【００２９】
この発明によれば、第１の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、第１のオペレーティングシステム側での多重割り込みを回避することができる。
【００３０】
つぎの発明にかかるマルチオペレーティングシステム制御方法にあっては、前記第２の仮想記憶工程では、前記第２の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることを特徴とする。
【００３１】
この発明によれば、第２の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、第２のオペレーティングシステム側での多重割り込みを回避することができる。
【００３２】
つぎの発明にかかるプログラムは、上記の発明のいずれか一つに記載されたマルチオペレーティングシステム制御方法をコンピュータに実行させるプログラムであり、そのプログラムがコンピュータ読み取り可能となり、これによって、上記の発明のいずれか一つの動作をコンピュータによって実行することができる。
【００３３】
つぎの発明にかかるマルチオペレーティングシステム制御装置にあっては、一つの計算機で稼動する第１のオペレーティングシステムおよび第２のオペレーティングシステムを制御するマルチオペレーティングシステム制御装置であって、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムへ切り替えるための第１の切替命令を、前記第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに仮想記憶する第１の仮想記憶空間と、前記第２のオペレーティングシステムに対応する第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶する第２の仮想記憶空間と、前記第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定するアクセス禁止設定手段と、を備え、前記第１のオペレーティングシステムは、前記第１のオペレーティングシステムが、アクセス禁止されている前記アクセス先へアクセスしようとした場合、これをトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行することを特徴とする。
【００３４】
この発明によれば、第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに第１の切替命令を仮想記憶させ、第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶させておき、さらに、第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定し、第１のオペレーティングシステムが、アクセス禁止されているアクセス先へアクセスしようとした場合、これをトリガーとして、第１の切替命令により、第１のオペレーティングシステムから第２のオペレーティングシステムに切り替え、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行することとしたので、従来の基盤ＯＳやＶＭモニタ等の共通部分が不要で、オペレーティングシステムの信頼性、処理能力を向上させることができる。
【００３５】
また、この発明によれば、従来の共通部分が不要であるため、第１のオペレーティングシステムと第２のオペレーティングシステムとを独立的に動作させることができ、セキュリティを向上させることができる。
【００３６】
つぎの発明にかかるマルチオペレーティングシステム制御装置にあっては、前記第２の仮想記憶空間の論理アドレスＮには、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムへ切り替えるための第２の切替命令が仮想記憶され、前記第１のオペレーティングシステムは、アクセス禁止されている前記アクセス先へアクセスしようとした場合をトリガーとして、前記第１の切替命令により、前記第１のオペレーティングシステムから前記第２のオペレーティングシステムに切り替え、前記第２のオペレーティングシステムは、前記第２の仮想メモリ空間の論理アドレスＮ＋１以降の前記各種命令を実行した後、前記第２の切替命令により、前記第２のオペレーティングシステムから前記第１のオペレーティングシステムに切り替えることを特徴とする。
【００３７】
この発明によれば、第２の仮想メモリ空間の論理アドレスＮに第２の切替命令を仮想記憶させ、第１の切替命令により切り替えが行われてから、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行した後、第２の切替命令により、第２のオペレーティングシステムから第１のオペレーティングシステムに切り替えることとしたので、切り替えおよび切り戻しを円滑に行うことができる。
【００３８】
【発明の実施の形態】
以下、図面を参照して本発明にかかるマルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置の一実施の形態について詳細に説明する。
【００３９】
図１は、本発明にかかる一実施の形態の概略構成を示すブロック図である。この図に示したマルチオペレーティングシステムは、ハードウェア１０、ＯＳ２０１  、ＯＳ２０２  およびＡＰ（アプリケーションプログラム）３０１  〜３０４  、仮想ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）デバイスドライバ５０１  、ＬＡＮデバイスドライバ５０２  および共有メモリ領域６０から構成されている。
【００４０】
同マルチオペレーティングシステムでは、ＯＳ２０１  からＯＳ２０２  へ、またはＯＳ２０２  からＯＳ２０１  への切り替えが割り込み処理ルーチンの中で実行される。割り込みの発生要因としては、マルチオペレーティングシステムにおけるＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ポートのうちＬＡＮカード１７に対応するＩ／Ｏポートをアクセス禁止に予め設定しておき、同Ｉ／Ｏポートにアクセスがあった場合に発生する一般保護例外（例えば、米国インテル社のＩＡ−３２インテル（登録商標）のアーキテクチャでは、０ｘ０Ｄ）が挙げられる。ＬＡＮカード１７は、ＬＡＮ７０に接続されており、ネットワークインターフェースカードである。
【００４１】
ここで、同マルチオペレーティングシステムでは、ＯＳ２０１  がデータをＬＡＮカード１７経由でＬＡＮ７０へ送信する場合に、上記一般保護例外を発生させ、ＯＳ２０１  からＯＳ２０２  へ切り替え、ファイアウォールとしての機能を持たせたＯＳ２０２  からＬＡＮカード１７経由でＬＡＮ７０へデータを送信するというＯＳ切替制御が行われる。
【００４２】
また、ＯＳ２０１  がデータをＬＡＮカード１７経由で受信する場合には、上記一般保護例外を発生させ、ＯＳ２０１  からＯＳ２０２  へ切り替え、ファイアウォールとしての機能を持たせたＯＳ２０２  の下で、ＬＡＮカード１７でデータを受信し、該データをＯＳ２０１  へ渡すというＯＳ切替制御が行われる。
【００４３】
図２は、一実施の形態の具体的構成を示すブロック図である。この図において、図１の各部に対応する部分には同一の符号を付ける。同図において、ハードウェア１０は、計算機資源であり、制御部１１、物理メモリ１２、割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４、その他レジスタ１５、プログラムカウンタ１６、ＬＡＮカード１７や、図示しないキーボード、ディスプレイ等から構成されている。
【００４４】
ハードウェア１０には、マルチ構成のＯＳ２０１  およびＯＳ２０２  が存在している。ＯＳ２０１  およびＯＳ２０２  のそれぞれは、ハードウェア１０の計算機資源を管理し、割り込み処理ルーチンの中で切り替えられる。すなわち、ある時間を考えると、ハードウェア１０は、一つのＯＳ（ＯＳ２０１  またはＯＳ２０２  ）により占有される。
【００４５】
ＯＳ２０１  は、割り込み振分処理部２１１  、割り込み処理部２２１  、割り込みベクタテーブル２３１  、ページテーブル２４１  、レジスタ退避領域２５１  、Ｉ／Ｏ許可ビットマップ２６１  、カーネルスタック２７１  等から構成されている。ＡＰ３０１  およびＡＰ３０２  は、ＯＳ２０１  上で走行するアプリケーションプログラムである。
【００４６】
一方、ＯＳ２０２  は、ＯＳ２０１  に併設されており、割り込み振分処理部２１２  、割り込み処理部２２２  、割り込みベクタテーブル２３２  、ページテーブル２４２  、レジスタ退避領域２５２  、Ｉ／Ｏ許可ビットマップ２６２  、カーネルスタック２７２  等から構成されている。ＡＰ３０３  およびＡＰ３０４  は、ＯＳ２０２  上で走行するアプリケーションプログラムである。
【００４７】
ハードウェア１０において、制御部１１は、ＣＰＵ等であり、プログラム実行により各部を制御する。物理メモリ１２は、物理的に実在する大容量の記憶装置であり、図４（ａ）に示したように、仮想記憶制御方式に用いられ、各種命令やデータ等を実際に記憶する。
【００４８】
すなわち、一実施の形態においては、物理メモリ１２に対応して、仮想メモリ空間４０１  および仮想メモリ空間４０２  が仮想的に構築されている。仮想メモリ空間４０１  は、ＯＳ２０１  側に対応して設けられており、物理メモリ１２のＯＳ用物理メモリ領域１２ａ１  およびＡＰ用物理メモリ領域１２ｂ１  にマッピングされている。
【００４９】
具体的には、ＯＳ用仮想メモリ空間４０ａ１  は、ＯＳ２０１  で利用されるメモリ空間であり、ＯＳ用物理メモリ領域１２ａ１  にマッピングされている。ＡＰ用仮想メモリ空間４０ｂ１  は、ＡＰ３０１  およびＡＰ３０２  で利用されるメモリ空間であり、ＡＰ用物理メモリ領域１２ｂ１  にマッピングされている。
【００５０】
一方、仮想メモリ空間４０２  は、ＯＳ２０２  側に対応して設けられており、物理メモリ１２のＯＳ用物理メモリ領域１２ａ２  およびＡＰ用物理メモリ領域１２ｂ２  にマッピングされている。
【００５１】
具体的には、ＯＳ用仮想メモリ空間４０ａ２  は、ＯＳ２０２  で利用されるメモリ空間であり、ＯＳ用物理メモリ領域１２ａ２  にマッピングされている。ＡＰ用仮想メモリ空間４０ｂ２  は、ＡＰ３０３  およびＡＰ３０４  で利用されるメモリ空間であり、ＡＰ用物理メモリ領域１２ｂ２  にマッピングされている。
【００５２】
物理メモリ１２では、物理的な記憶単位に物理アドレスが付与されている。一方、仮想メモリ空間４０１  および仮想メモリ空間４０２  では、プログラム中で用いられる論理アドレスによって命令やデータが特定される。仮想記憶制御方式では、ページング方式、セグメンテーション方式、ページング／セグメンテーション方式により、論理アドレスを物理アドレスに変換している。
【００５３】
ページング方式では、アドレス変換がページと呼ばれるブロック単位（４キロバイト）で行われる。このため、ＯＳ２０１  においては、仮想メモリ空間４０１  の仮想ページが、物理メモリ１２のどの物理ページに対応しているかを表すページテーブル（変換テーブル）２４１  が設けられている。同様にして、ＯＳ２０２  においても、仮想メモリ空間４０２  のページが、物理メモリ１２のどのページに対応しているかを表すページテーブル（変換テーブル）２４２  が設けられている。
【００５４】
また、図４（ｂ）に示したように、仮想メモリ空間４０１  のＮ番地（論理アドレス）には、ＯＳ２０１  からＯＳ２０２  へ切り替えるための切替命令Ａが記憶されている。一方、仮想メモリ空間４０２  において、仮想メモリ空間４０１  のＮ番地と同一のＮ番地には、ＯＳ２０２  からＯＳ２０１  へ切り替えるための切替命令Ｂが記憶されている。
【００５５】
図２に戻り、割り込みベクタテーブルレジスタ１３は、後述する割り込みベクタテーブル２３１  または割り込みベクタテーブル２３２  の先頭論理アドレスを指すレジスタである。前記割り込みベクタテーブル２３１  または割り込みベクタテーブル２３２  のオフセットに格納されている論理アドレス先には、該当する割込番号の割り込み処理に対応する論理アドレスが格納されている。例えば、一般保護例外（割込番号０ｘ０Ｄ）の割り込みが発生すると、制御部１１（ＣＰＵ）は、前記割り込みベクタテーブル２３１  または割り込みベクタテーブル２３２  のオフセット０ｘ０Ｄ番地に格納されている論理アドレス先に格納されている論理アドレスにある一般保護例外に対応する割り込み処理ルーチンまでジャンプし、実行する。
【００５６】
ページテーブルレジスタ１４は、後述するページテーブル２４１  またはページテーブル２４２  へのページインデックスを格納するレジスタである。その他レジスタ１５は、汎用レジスタ、フラグレジスタ等である。プログラムカウンタ１６は、仮想メモリ空間から命令をフェッチする論理アドレスを１インクリメントする。ＬＡＮカード１７は、ＬＡＮ７０に接続されており、データ通信に関する制御を行うカードである。
【００５７】
ＯＳ２０１  において、割り込み振分処理部２１１  は、割り込み発生時に、割り込みベクタテーブルレジスタ１３が指す割り込みベクタテーブル２３１  を参照して、所定の割り込み処理ルーチンへジャンプさせる。なお、前記割り込み振分処理部２１１  の処理は、制御部１１（ＣＰＵ）が実行してもよい。
【００５８】
割り込み処理部２２１  は、割り込み処理ルーチン、ＯＳ切り替え処理（ＯＳ２０１  からＯＳ２０２  ）を実行する。割り込みベクタテーブル２３１  の各オフセットに格納されている論理アドレス先には、上述した割込番号毎の、割り込み処理に対応する論理アドレスが格納されている。ページテーブル２４１  は、仮想メモリ空間４０１（図４（ａ）参照）の各仮想ページと、物理メモリ１２の各物理ページとの対応関係を表すテーブルである。
【００５９】
レジスタ退避領域２５１  は、ＯＳ切り替え時に、切り替え前のＯＳに対応するレジスタ（割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４、その他レジスタ１５）の内容を退避するための領域である。具体的には、ＯＳ２０１  からＯＳ２０２  へ切り替えられる場合、レジスタ退避領域２５１  には、図４（ａ）に示したように、ＯＳ２０１  に対応するレジスタの内容が退避される。
【００６０】
Ｉ／Ｏ許可ビットマップ２６１  は、ＯＳ２０１  側よりＩ／Ｏポートへのアクセスの許可または禁止を規定するビットマップである。なお、実際には、Ｉ／Ｏ許可ビットマップ２６１  は、各タスクにそれぞれ存在するＴＳＳ（Ｔａｓｋ  Ｓｔａｔｅ  Ｓｅｇｍｅｎｔ）内にある。Ｉ／Ｏポートは、オペレーティングシステムで入出力機能を備えたデバイス（例えば、ＬＡＮカード１７）に対応するポートである。
【００６１】
図３はＩ／Ｏ許可ビットマップ２６１  の構成例を示す。Ｉ／Ｏ許可ビットマップ２６１  において、Ｉ／Ｏポートは、図示の如く、縦方向の１６進数表記（０００〜ＦＦＦ）と、横方向の１６進数表記（０〜Ｆ）との組み合わせからなるＩ／Ｏアドレスで特定される。当該Ｉ／Ｏポートへのアクセスが許可されている場合、Ｉ／Ｏ許可ビットマップ２６１  では、上記Ｉ／Ｏポートに対応するＩ／Ｏアドレスに「０」が設定される。
【００６２】
一方、当該Ｉ／Ｏポートへのアクセスが禁止されている場合、Ｉ／Ｏ許可ビットマップ２６１  では、上記Ｉ／Ｏポートに対応するＩ／Ｏアドレスに「１」が設定される。
【００６３】
Ｉ／Ｏ許可ビットマップ２６１  においては、Ｉ／Ｏアドレスが００２６（１６進数）〜００２Ａ（１６進数）の部分（太線で囲まれた部分）に「１」が設定されており、その他の部分に「０」が設定されている。
【００６４】
上記Ｉ／Ｏアドレスが００２６（１６進数）〜００２Ａ（１６進数）で特定されるＩ／Ｏポートは、ＬＡＮカード１７に対応している。すなわち、ＬＡＮカード１７は、アクセス禁止とされている。このＬＡＮカード１７にアクセスしようとした場合には、一般保護例外による割り込みが発生する。図２に示したカーネルスタック２７１  は、各種命令のオペランド等を格納する。
【００６５】
一方、ＯＳ２０２  において、割り込み振分処理部２１２  は、割り込み発生時に、割り込みベクタテーブルレジスタ１３が指す割り込みベクタテーブル２３２  を参照して、所定の割り込み処理ルーチンへジャンプさせる。なお、前記割り込み振分処理部２１２  の処理は、制御部１１（ＣＰＵ）が実行してもよい。
【００６６】
割り込み処理部２２２  は、割り込み処理ルーチン、ＯＳ切り替え処理（ＯＳ２０２  からＯＳ２０１  ）を実行する。割り込みベクタテーブル２３２  の各オフセットに格納されている論理アドレス先には、上述した割込番号毎の、割り込み処理に対応する論理アドレスが格納されている。ページテーブル２４２  は、仮想メモリ空間４０２（図４（ａ）参照）の各仮想ページと、物理メモリ１２の各物理ページとの対応関係を表すテーブルである。
【００６７】
レジスタ退避領域２５２  は、ＯＳ切り替え時に、切り替え前のＯＳに対応するレジスタ（割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４、その他レジスタ１５）の内容を退避するための領域である。具体的には、ＯＳ２０２  からＯＳ２０１  へ切り替えられる場合、レジスタ退避領域２５２  には、図４（ａ）に示したように、ＯＳ２０２  に対応するレジスタの内容が退避される。
【００６８】
Ｉ／Ｏ許可ビットマップ２６２  は、Ｉ／Ｏ許可ビットマップ２６１  と同一構成とされており、Ｉ／Ｏポートへのアクセスの許可または禁止を規定するビットマップである。カーネルスタック２７２  は、各種命令のオペランド等を格納する。なお、実際には、Ｉ／Ｏ許可ビットマップ２６２  も、各タスクにそれぞれ存在する上述したＴＳＳ内にある。
【００６９】
仮想ＬＡＮデバイスドライバ５０１  は、ＯＳ２０１  に対応して設けられており、ＬＡＮ通信のためのドライバである。この仮想ＬＡＮデバイスドライバ５０１  は、仮想的に設けられており、ＬＡＮデバイスドライバ５０２  の機能（ＬＡＮ通信のドライバ機能）をエミュレートする。ＬＡＮデバイスドライバ５０２  は、ＯＳ２０１  に対応して設けられており、ＬＡＮ通信のためのドライバである。共有メモリ領域６０は、ＬＡＮ通信時に、ＯＳ２０１  とＯＳ２０２  との間でデータを受け渡すためのメモリ領域（バッファ）であり、図５に示したように物理メモリ１２の一部領域である。
【００７０】
つぎに、図５を参照して、一実施の形態の動作原理について説明する。同図において、ＯＳ２０１  側でデータ送信要求が発生した場合、仮想ＬＡＮデバイスドライバ５０１  は、（１）で送信すべきデータを用意し、共有メモリ領域６０に格納する。（２）では、仮想ＬＡＮデバイスドライバ５０１  は、Ｉ／Ｏ命令を発行する。
【００７１】
これにより、Ｉ／Ｏ許可ビットマップ２６１  （図３参照）が参照され、この場合、当該Ｉ／Ｏアドレス（Ｉ／Ｏアドレス空間８０）に対応するＩ／Ｏポートがアクセス禁止に設定されているため、（３）では、一般保護例外が発生する。これにより、ＯＳがＯＳ２０１  からＯＳ２０２  （図４（ｂ）参照）に切り替えられる。
【００７２】
（４）では、Ｉ／Ｏ解析が行われ、（５）では、ＬＡＮデバイスドライバ５０２  が起動される。（６）では、共有メモリ領域６０に格納されているデータが別の領域にコピーされ、（７）では、Ｉ／Ｏ命令が発行され、データがＬＡＮカード１７経由でＬＡＮ７０へ送信される。（８）では、割り込みが復帰される（（９））。
【００７３】
つぎに、図６〜図１４を参照して、一実施の形態の動作例１および２について説明する。
【００７４】
（動作例１）
図６および図７は、一実施の形態の動作例１を説明する図である。動作例１では、仮想メモリ空間４０１  および仮想メモリ空間４０２  の各論理アドレスには、図６および図７に示した処理に対応する各種命令が割り当てられている。
【００７５】
また、動作例１では、ＯＳ２０１  がＬＡＮカード１７経由でデータを送信する場合について説明する。図６の例では、ＯＳ２０１  が動作状態にあり、ＯＳ２０２  が待機状態にあるものとする。この状態でデータ送信を行う場合、（ａ）では、ＯＳ２０１  は、仮想ＬＡＮデバイスドライバ５０１  にデータを渡す。仮想ＬＡＮデバイスドライバ５０１  は、データを共有メモリ領域６０に格納する。
【００７６】
（ｂ）では、仮想ＬＡＮデバイスドライバ５０１  は、ＬＡＮカード１７に対応するＩ／Ｏポート（例えば、Ｉ／Ｏアドレス＝２６（１６進数））をアクセスするためのＩ／Ｏ命令を発行する。この場合、図３に示したＩ／Ｏ許可ビットマップ２６１  において、上記２６（１６進数）に対応する部分に「１」（アクセス禁止）が設定されているため、ＯＳ２０１  側で一般保護例外の割り込みが発生し、制御部１１は、割り込みベクタテーブルレジスタ１３に上記一般保護例外に対応する割込番号を格納し、カーネルスタック２７１  に、一般保護例外を発生させた命令のオペランド等を格納する。
【００７７】
割り込み振分処理部２１１  は、（１）で、割り込みベクタテーブルレジスタ１３の割込番号に基づいて、割り込みベクタテーブル２３１  を参照し、一般保護例外の割り込み処理へジャンプする。
【００７８】
これにより、（２）で、割り込み処理部２２１  は、仮想メモリ空間４０１  のＬ番地で、カーネルスタック２７１  より命令オペランド等を取得し、Ｌ＋１番地で、該命令オペランドの比較により、割り込みがＬＡＮカード１７のＩ／ＯポートにアクセスするためのＩ／Ｏ命令で発生した一般保護例外による割り込みであるか否かを判断する。Ｌ＋２番地では、割り込み処理部２２１  は、上記判断結果が「Ｎｏ」である場合、Ｎ＋ｉ番地へジャンプする。
【００７９】
この場合、上記判断結果が「Ｙｅｓ」であるとすると、Ｌ＋３番地では、割り込み処理部２２１  は、割り込み禁止命令を実行する。これにより、他の割り込みを受け付けない状態とされる。
【００８０】
つぎに、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）では、ＯＳ２０１  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５１  に退避される。
【００８１】
つぎのＯＳ切り替え処理（ＩＤＴＲ切り替え命令）では、割り込みベクタテーブルレジスタ１３が、ＯＳ２０１  用からＯＳ２０２  用に切り替えられる。つぎのＯＳ切り替え処理（ページテーブルレジスタ変更命令）では、仮想メモリ空間４０１  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０１  用からＯＳ２０２  用に変更される。これにより、ＯＳ２０１  からＯＳ２０２  へ切り替えられる（（３））。
【００８２】
仮想メモリ空間４０２  において、つぎのＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）では、仮想メモリ空間４０２  のＮ＋１番地で、以前にレジスタ退避領域２５２  に退避されていたＯＳ２０２  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される（（４））。
【００８３】
つぎに、割り込み処理部２２２  は、割り込み許可命令を実行した後、割り込み処理ルーチンを順次実行する。つぎに、割り込み処理部２２２  は、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグをＯＮにする。このＬＡＮアクセスフラグは、ＯＳ２０１  からの指示に基づいて、データをＬＡＮカード１７（Ｉ／Ｏポート）から送信することを表す。
【００８４】
つぎに、割り込み処理部２２２  は、ＬＡＮデバイスドライバ５０２  をＣＡＬＬ（呼び出し）する（（５））。これにより、（６）で、ＬＡＮデバイスドライバ５０２  は、共有メモリ領域６０にあるデータを、共有メモリ領域６０の送信バッファにコピーする。つぎに、ＬＡＮデバイスドライバ５０２  は、上記データをＬＡＮ７０へ送信した後、復帰する（（７））。仮想メモリ空間４０２  のＳ番地では、ＩＲＥＴ（割り込み復帰命令）が実行される（（８））。
【００８５】
そして、図７に示した（９）では、ＬＡＮカード１７は、データ送信が終了したことを通知するため、ＬＡＮ割り込みを発生させる。これにより、仮想メモリ空間４０２  のＭ番地で、割り込み処理ルーチンが実行される（（１０））。
【００８６】
つぎに、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグが参照される。つぎに、上記ＬＡＮアクセスフラグがＯＦＦならば、割り込み処理部２２２  は、Ｎ＋Ｐ番地（ＩＲＥＴ）へジャンプする。この場合、ＬＡＮアクセスフラグがＯＮであるため、割り込み処理部２２２  は、ＬＡＮアクセスフラグをＯＮからＯＦＦに戻す。
【００８７】
つぎに、割り込み禁止命令が実行される。つぎのＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）では、ＯＳ２０２  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５２  に退避される。
【００８８】
つぎのＯＳ切り替え処理（ＩＤＴＲ切り替え命令）では、割り込みベクタテーブルレジスタ１３が、ＯＳ２０２  用からＯＳ２０１  用に切り替えられる。つぎのＯＳ切り替え処理（ページテーブルレジスタ変更命令）では、仮想メモリ空間４０２  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０２  用からＯＳ２０１  用に変更される。これにより、ＯＳ２０２  からＯＳ２０１  へ切り替えられる（（１１））。
【００８９】
仮想メモリ空間４０１  において、つぎのＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）では、仮想メモリ空間４０１  のＮ＋１番地で、先にレジスタ退避領域２５１  に退避されていたＯＳ２０１  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される（（１２））。
【００９０】
つぎに、割り込み許可命令が実行され、ＬＡＮ割り込みがソフトウェア割り込みにより発生される。つぎに、ＩＲＥＴ（割り込み復帰命令）が実行される（（１３））。これにより、割り込み処理部２２１  は、ＬＡＮ割り込み処理として、Ｎ＋ｉ番地で、割り込み処理ルーチンを順次実行する。そして、ＩＲＥＴ（割り込み復帰命令）が実行され、処理ルーチンが割り込み処理ルーチンから通常処理ルーチンへ復帰される（（１４））。
【００９１】
図８〜図１０は、上記動作例１を説明するフローチャートである。図８において、ステップＳＡ１では、ＯＳ２０１  は、仮想ＬＡＮデバイスドライバ５０１  にデータを渡す。仮想ＬＡＮデバイスドライバ５０１  は、データを共有メモリ領域６０に格納する。
【００９２】
ステップＳＡ２では、仮想ＬＡＮデバイスドライバ５０１  は、ＬＡＮカード１７に対応するＩ／ＯポートをアクセスするためのＩ／Ｏ命令を発行する。ステップＳＡ３では、図３に示したＩ／Ｏ許可ビットマップ２６１  において、Ｉ／Ｏポートに対応する部分に「１」（アクセス禁止）が設定されているものとし、ＯＳ２０１  側で一般保護例外の割り込みが発生する。
【００９３】
また、制御部１１は、割り込みベクタテーブルレジスタ１３に上記一般保護例外に対応する割込番号を格納し、カーネルスタック２７１  に、一般保護例外を発生させた命令のオペランド等を格納する。
【００９４】
ステップＳＡ４では、割り込み振分処理部２１１  は、割り込みベクタテーブルレジスタ１３より割込番号を取得する。ステップＳＡ５では、割り込み振分処理部２１１  は、割り込みベクタテーブルレジスタ１３の割込番号に基づいて、割り込みベクタテーブル２３１  を参照し、一般保護例外の割り込み処理のある論理アドレスへジャンプする。
【００９５】
ステップＳＡ６では、一般保護例外に対応する割り込み処理ルーチンが実行される。ステップＳＡ７では、割り込み処理部２２１  は、カーネルスタック２７１  より命令オペランド等を取得する。ステップＳＡ８では、割り込み処理部２２１  は、該命令オペランドの比較により、割り込みがＬＡＮカード１７のＩ／ＯポートにアクセスするためのＩ／Ｏ命令で発生した一般保護例外による割り込みであるか否かを判断する。
【００９６】
ステップＳＡ９では、割り込み処理部２２１  は、上記判断結果が「Ｎｏ」である場合、Ｎ＋ｉ番地へジャンプする。ステップＳＡ１０では、割り込み処理部２２１  は、上記判断結果が「Ｙｅｓ」であるため、割り込み禁止命令を実行する。
【００９７】
ステップＳＡ１１では、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）が実行され、ＯＳ２０１  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５１  に退避される。
【００９８】
ステップＳＡ１２では、ＯＳ切り替え処理（ＩＤＴＲ切り替え命令）が実行され、割り込みベクタテーブルレジスタ１３が、ＯＳ２０１  用からＯＳ２０２  用に切り替えられる。ステップＳＡ１３では、ＯＳ切り替え処理（ページテーブルレジスタ変更命令）が実行され、仮想メモリ空間４０１  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０１  用からＯＳ２０２  用に変更される。これにより、ＯＳ２０１  からＯＳ２０２  へ切り替えられる。
【００９９】
仮想メモリ空間４０２  において、ステップＳＡ１４では、ＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）が実行され、仮想メモリ空間４０２  のＮ＋１番地で、以前にレジスタ退避領域２５２  に退避されていたＯＳ２０２  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される。
【０１００】
ステップＳＡ１５では、割り込み処理部２２２  は、割り込み許可命令を実行する。ステップＳＡ１６では、割り込み処理部２２２  は、割り込み処理ルーチンを順次実行する。ステップＳＡ１７では、割り込み処理部２２２  は、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグをＯＮにする。
【０１０１】
ステップＳＡ１８では、割り込み処理部２２２  は、ＬＡＮデバイスドライバ５０２  をＣＡＬＬ（呼び出し）する。図９に示したステップＳＡ１９では、ＬＡＮデバイスドライバ５０２  は、共有メモリ領域６０にあるデータを、共有メモリ領域６０の送信バッファにコピーする。
【０１０２】
ステップＳＡ２０では、ＬＡＮデバイスドライバ５０２  は、上記データをＬＡＮ７０へ送信する。ステップＳＡ２１では、ＬＡＮデバイスドライバ５０２は、割り込み処理に復帰する。ステップＳＡ２２では、ＩＲＥＴ（割り込み復帰命令）が実行される。
【０１０３】
ステップＳＡ２３では、待機される。ステップＳＡ２４では、ＬＡＮカード１７は、データ送信が終了したことを通知するため、ＬＡＮ割り込みを発生させる。ステップＳＡ２５では、仮想メモリ空間４０２  のＭ番地で、割り込み処理ルーチンが実行される。
【０１０４】
ステップＳＡ２６では、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグが参照される。ステップＳＡ２７では、上記ＬＡＮアクセスフラグがＯＦＦならば、割り込み処理部２２２  は、Ｎ＋Ｐ番地（ＩＲＥＴ）へジャンプし、ステップＳＡ３２でＩＲＥＴ（割り込み復帰命令）が実行される。この場合、ＬＡＮアクセスフラグがＯＮであるため、割り込み処理部２２２  は、ＬＡＮアクセスフラグをＯＮからＯＦＦに戻す。
【０１０５】
ステップＳＡ２８では、割り込み禁止命令が実行される。ステップＳＡ２９では、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）が実行され、ＯＳ２０２  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５２  に退避される。
【０１０６】
ステップＳＡ３０では、ＯＳ切り替え処理（ＩＤＴＲ切り替え命令）が実行され、割り込みベクタテーブルレジスタ１３が、ＯＳ２０２  用からＯＳ２０１  用に切り替えられる。ステップＳＡ３１では、ＯＳ切り替え処理（ページテーブルレジスタ変更命令）が実行され、仮想メモリ空間４０２  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０２  用からＯＳ２０１  用に変更される。これにより、ＯＳ２０２  からＯＳ２０１  へ切り替えられる。
【０１０７】
仮想メモリ空間４０１  において、図１０に示したステップＳＡ３３では、ＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）が実行され、仮想メモリ空間４０１  のＮ＋１番地で、先にレジスタ退避領域２５１  に退避されていたＯＳ２０１  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される。
【０１０８】
ステップＳＡ３４では、割り込み許可命令が実行される。ステップＳＡ３５では、ＬＡＮ割り込みがソフトウェア割り込みにより発生される。ステップＳＡ３６では、ＩＲＥＴ（割り込み復帰命令）が実行される。
【０１０９】
ステップＳＡ３７では、一旦、ＯＳ２０１  に制御が戻り、ＬＡＮ割り込みが発生し、割り込み振分処理部２１１  で判別され、割り込み処理ルーチンにジャンプされる。ステップＳＡ３８では、割り込み処理部２２１  は、ＬＡＮ割り込み処理として、Ｎ＋ｉ番地で、割り込み処理ルーチンを実行する。ステップＳＡ３９では、ＩＲＥＴ（割り込み復帰命令）が実行され、処理ルーチンが割り込み処理ルーチンから通常処理ルーチンへ復帰される。
【０１１０】
（動作例２）
図１１および図１２は、一実施の形態の動作例２を説明する図である。動作例２では、仮想メモリ空間４０１  および仮想メモリ空間４０２  の各論理アドレスには、図１１および図１２に示した処理に対応する各種命令が割り当てられている。
【０１１１】
また、動作例２では、ＯＳ２０１  がＬＡＮカード１７経由でデータを受信する場合について説明する。図１１の例では、ＯＳ２０１  が動作状態にあり、ＯＳ２０２  が待機状態にあるものとする。この状態で、（ａ）では、ＬＡＮカード１７がデータを受信すると、ＬＡＮ割り込みが発生する。
【０１１２】
（ｂ）では、仮想ＬＡＮデバイスドライバ５０１  は、ＬＡＮカード１７に対応するＩ／Ｏポート（例えば、Ｉ／Ｏアドレス＝２６（１６進数））をアクセスするためのＩ／Ｏ命令を発行する。この場合、図３に示したＩ／Ｏ許可ビットマップ２６１  で上記Ｉ／Ｏポートに対応する部分に「１」（アクセス禁止）が設定されているため、ＯＳ２０１  側で一般保護例外の割り込みが発生し、制御部１１は、割り込みベクタテーブルレジスタ１３に上記一般保護例外に対応する割込番号を格納し、カーネルスタック２７１  に、一般保護例外を発生させた命令のオペランド等を格納する。
【０１１３】
割り込み振分処理部２１１  は、（１）で、割り込みベクタテーブルレジスタ１３の割込番号に基づいて、割り込みベクタテーブル２３１  を参照し、一般保護例外の割り込み処理へジャンプする。
【０１１４】
これにより、（２）で、割り込み処理部２２１  は、仮想メモリ空間４０１  のＬ番地で、カーネルスタック２７１  より命令オペランド等を取得し、Ｌ＋１番地で、該命令オペランドの比較により、割り込みがＬＡＮカード１７のＩ／ＯポートにアクセスするためのＩ／Ｏ命令で発生した一般保護例外による割り込みであるか否かを判断する。Ｌ＋２番地では、割り込み処理部２２１  は、上記判断結果が「Ｎｏ」である場合、Ｎ＋ｉ番地へジャンプする。
【０１１５】
この場合、上記判断結果が「Ｙｅｓ」であるとすると、Ｌ＋３番地では、割り込み処理部２２１  は、割り込み禁止命令を実行する。これにより、他の割り込みを受け付けない状態とされる。
【０１１６】
つぎに、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）では、ＯＳ２０１  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５１  に退避される。
【０１１７】
つぎのＯＳ切り替え処理（ＩＤＴＲ切り替え命令）では、割り込みベクタテーブルレジスタ１３が、ＯＳ２０１  用からＯＳ２０２  用に切り替えられる。つぎのＯＳ切り替え処理（ページテーブルレジスタ変更命令）では、仮想メモリ空間４０１  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０１  用からＯＳ２０２  用に変更される。これにより、ＯＳ２０１  からＯＳ２０２  へ切り替えられる（（３））。
【０１１８】
仮想メモリ空間４０２  において、つぎのＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）では、仮想メモリ空間４０２  のＮ＋１番地で、以前にレジスタ退避領域２５２  に退避されていたＯＳ２０２  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される（（４））。
【０１１９】
つぎに、割り込み処理部２２２  は、割り込み許可命令を実行した後、割り込み処理ルーチンを順次実行する。つぎに、割り込み処理部２２２  は、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグをＯＮにする。
【０１２０】
つぎに、ＬＡＮ割り込みがソフトウェア割り込みにより発生される。つぎに、ＩＲＥＴ（割り込み復帰命令）が実行される（（５））。これにより、図１２において、割り込み処理部２２１  は、ＬＡＮ割り込み処理として、Ｘ番地で、割り込み処理ルーチンを順次実行する。つぎに、割り込み処理部２２２  は、ＬＡＮデバイスドライバ５０２  をＣＡＬＬ（呼び出し）する（（６））。
【０１２１】
ＬＡＮデバイスドライバ５０２  は、受信したデータを共有メモリ領域６０にコピーする。これにより、上記データは、ＯＳ２０１  で取得可能とされる。つぎに、処理が、ＬＡＮ割り込み処理に復帰される（（７））。つぎに、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグが参照される。つぎに、上記ＬＡＮアクセスフラグがＯＦＦならば、割り込み処理部２２２  は、Ｎ＋Ｐ番地（ＩＲＥＴ）へジャンプする。この場合、ＬＡＮアクセスフラグがＯＮであるため、割り込み処理部２２２  は、ＬＡＮアクセスフラグをＯＮからＯＦＦに戻す。
【０１２２】
つぎに、割り込み禁止命令が実行される。つぎのＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）では、ＯＳ２０２  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５２  に退避される。
【０１２３】
つぎのＯＳ切り替え処理（ＩＤＴＲ切り替え命令）では、割り込みベクタテーブルレジスタ１３が、ＯＳ２０２  用からＯＳ２０１  用に切り替えられる。つぎのＯＳ切り替え処理（ページテーブルレジスタ変更命令）では、仮想メモリ空間４０２  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０２  用からＯＳ２０１  用に変更される。これにより、ＯＳ２０２  からＯＳ２０１  へ切り替えられる（（９））。
【０１２４】
仮想メモリ空間４０１  において、つぎのＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）では、仮想メモリ空間４０１  のＮ＋１番地で、先にレジスタ退避領域２５１  に退避されていたＯＳ２０１  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される（（１０））。
【０１２５】
つぎに、割り込み許可命令が実行され、ＬＡＮ割り込みがソフトウェア割り込みにより発生される。つぎに、ＩＲＥＴ（割り込み復帰命令）が実行される（（１１））。
【０１２６】
図１３および図１４は、上記動作例２を説明するフローチャートである。図１３において、ステップＳＢ１では、ＬＡＮカード１７がデータを受信すると、ＬＡＮ割り込みが発生する。
【０１２７】
ステップＳＢ２では、仮想ＬＡＮデバイスドライバ５０１  は、ＬＡＮカード１７に対応するＩ／ＯポートをアクセスするためのＩ／Ｏ命令を発行する。ステップＳＢ３では、図３に示したＩ／Ｏ許可ビットマップ２６１  において、Ｉ／Ｏポートに対応する部分に「１」（アクセス禁止）が設定されているものとし、ＯＳ２０１  側で一般保護例外の割り込みが発生する。
【０１２８】
また、制御部１１は、割り込みベクタテーブルレジスタ１３に上記一般保護例外に対応する割込番号を格納し、カーネルスタック２７１  に、一般保護例外を発生させた命令のオペランド等を格納する。
【０１２９】
ステップＳＢ４では、割り込み振分処理部２１１  は、割り込みベクタテーブルレジスタ１３より割込番号を取得する。ステップＳＢ５では、割り込み振分処理部２１１  は、割り込みベクタテーブルレジスタ１３の割込番号に基づいて、割り込みベクタテーブル２３１  を参照し、一般保護例外の割り込み処理のある論理アドレスへジャンプする。
【０１３０】
ステップＳＢ６では、一般保護例外に対応する割り込み処理ルーチンが実行される。ステップＳＢ７では、割り込み処理部２２１  は、カーネルスタック２７１  より命令オペランド等を取得する。ステップＳＢ８では、割り込み処理部２２１  は、該命令オペランドの比較により、割り込みがＬＡＮカード１７のＩ／ＯポートにアクセスするためのＩ／Ｏ命令で発生した一般保護例外による割り込みであるか否かを判断する。
【０１３１】
ステップＳＢ９では、割り込み処理部２２１  は、上記判断結果が「Ｎｏ」である場合、Ｎ＋ｉ番地へジャンプする。ステップＳＢ１０では、割り込み処理部２２１  は、上記判断結果が「Ｙｅｓ」であるため、割り込み禁止命令を実行する。
【０１３２】
ステップＳＢ１１では、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）が実行され、ＯＳ２０１  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５１  に退避される。
【０１３３】
ステップＳＢ１２では、ＯＳ切り替え処理（ＩＤＴＲ切り替え命令）が実行され、割り込みベクタテーブルレジスタ１３が、ＯＳ２０１  用からＯＳ２０２  用に切り替えられる。ステップＳＢ１３では、ＯＳ切り替え処理（ページテーブルレジスタ変更命令）が実行され、仮想メモリ空間４０１  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０１  用からＯＳ２０２  用に変更される。これにより、ＯＳ２０１  からＯＳ２０２  へ切り替えられる。
【０１３４】
仮想メモリ空間４０２  において、ステップＳＢ１４では、ＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）が実行され、仮想メモリ空間４０２  のＮ＋１番地で、以前にレジスタ退避領域２５２  に退避されていたＯＳ２０２  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される。
【０１３５】
ステップＳＢ１５では、割り込み処理部２２２  は、割り込み許可命令を実行する。ステップＳＢ１６では、割り込み処理部２２２  は、割り込み処理ルーチンを順次実行する。ステップＳＢ１７では、割り込み処理部２２２  は、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグをＯＮにする。
【０１３６】
ステップＳＢ１８では、ＬＡＮ割り込みがソフトウェア割り込みにより発生される。ステップＳＢ１９では、ＩＲＥＴ（割り込み復帰命令）が実行される。
【０１３７】
図１４に示したステップＳＢ２０では、割り込み処理ルーチンが実行され、データの送信時のＬＡＮ割り込みか、または受信時のＬＡＮ割り込みかが判別される。ステップＳＢ２１では、割り込み処理部２２２  は、ＬＡＮデバイスドライバ５０２  をＣＡＬＬ（呼び出し）する。
【０１３８】
ステップＳＢ２２では、ＬＡＮデバイスドライバ５０２  は、受信したデータを共有メモリ領域６０にコピーする。これにより、上記データは、ＯＳ２０１  で取得可能とされる。ステップＳＢ２３では、処理が、ＬＡＮ割り込み処理に復帰される。
【０１３９】
ステップＳＢ２４では、レジスタ退避領域２５２  にあるＯＳ２０１  のＬＡＮアクセスフラグが参照される。ステップＳＢ２５では、上記ＬＡＮアクセスフラグがＯＦＦならば、割り込み処理部２２２  は、Ｎ＋Ｐ番地（ＩＲＥＴ）へジャンプし、ステップＳＢ３０でＩＲＥＴ（割り込み復帰命令）を実行する。この場合、ＬＡＮアクセスフラグがＯＮであるため、割り込み処理部２２２  は、ＬＡＮアクセスフラグをＯＮからＯＦＦに戻す。
【０１４０】
ステップＳＢ２６では、割り込み禁止命令が実行される。ステップＳＢ２７では、ＯＳ切り替え処理（レジスタをレジスタ退避領域に退避）が実行され、ＯＳ２０２  に対応する割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５の内容がレジスタ退避領域２５２  に退避される。
【０１４１】
ステップＳＢ２８では、ＯＳ切り替え処理（ＩＤＴＲ切り替え命令）が実行され、割り込みベクタテーブルレジスタ１３が、ＯＳ２０２  用からＯＳ２０１  用に切り替えられる。ステップＳＢ２９では、ＯＳ切り替え処理（ページテーブルレジスタ変更命令）が実行され、仮想メモリ空間４０２  のＮ番地で、ページテーブルレジスタ１４がＯＳ２０２  用からＯＳ２０１  用に変更される。これにより、ＯＳ２０２  からＯＳ２０１  へ切り替えられる。
【０１４２】
仮想メモリ空間４０１  において、ステップＳＢ３１では、ＯＳ切り替え処理（レジスタ退避領域からレジスタを復帰）が実行され、仮想メモリ空間４０１  のＮ＋１番地で、先にレジスタ退避領域２５１  に退避されていたＯＳ２０１  用のレジスタの内容が割り込みベクタテーブルレジスタ１３、ページテーブルレジスタ１４およびその他レジスタ１５にそれぞれ復帰される。ステップＳＢ３２では、割り込み許可命令が実行される。ステップＳＢ３３では、ＩＲＥＴ（割り込み復帰命令）が実行される。
【０１４３】
図１５（ａ）〜図１５（ｄ）は、上述した一実施の形態の応用例１〜４を説明する図である。図１５（ａ）に示した応用例１は、新旧ＯＳを共存させ、システム更改時に利用する例である。新ＯＳは、例えば、ＯＳ２０１  に対応している。一方、旧ＯＳは、ＯＳ２０２  に対応している。
【０１４４】
図１５（ｂ）に示した応用例２は、ソース公開ＯＳを活用し、ソース非公開ＯＳのリリースを待たずに、ソース公開ＯＳ側で新機能をスピード開発する例である。ソース非公開ＯＳは、ソースコードが公開されていないオペレーティングシステムであり、例えば、ＯＳ２０１  に対応している。一方、ソース公開ＯＳは、ソースコードが公開されているオペレーティングシステムであり、ＯＳ２０２  に対応している。
【０１４５】
図１５（ｃ）に示した応用例３は、専用ＯＳと汎用ＯＳとを共存させる例である。専用ＯＳは、リアルタイム性等に特化する機能を分担し、例えば、ＯＳ２０１  に対応している。一方、汎用ＯＳは、マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）等であり、ＧＵＩ機能を分担し、ＯＳ２０２  に対応している。
【０１４６】
図１５（ｄ）に示した応用例４は、資源を分割する例であり、ＯＳ１とＯＳ２の使用目的により使用方法が異なる例である。ＯＳ１は、例えば、ＯＳ２０１  に対応している。一方、ＯＳ２は、ＯＳ２０２  に対応している。
【０１４７】
図１６は、一実施の形態をシステム移行に適用した場合を説明する図である。同図において、従来の移行作業では、一度に、旧端末に実装されている旧ＯＳの全モジュールを新端末の新ＯＳに移行させる必要があり、安全面で不安が残る。
【０１４８】
これに対して、マルチオペレーティングシステムがあると、旧端末に実装されている旧ＯＳの各モジュールを中間端末の旧ＯＳに安全を確認しながら移行させる。つぎに、中間端末において、旧ＯＳの各モジュールを新ＯＳに安全を確認しながら移行させる。
【０１４９】
つぎに、中間端末の新ＯＳの全モジュールを、新端末の新ＯＳに一度に移行させる。この場合、新ＯＳ間での移行であるため、問題が発生しない。マルチＯＳによる移行は、ある特定のモジュールに急いで新機能をつける場合に有効である。
【０１５０】
図１７は、一実施の形態を高セキュリティゲートウェイに適用した場合を説明する図である。同図において、ハードウェアは、マルチオペレーティングシステム（ＯＳ１およびＯＳ２）を備えており、ＮＩＣ（ネットワークインタフェースカード）を経由してインターネットに接続されている。このハードウェアは、高セキュリティゲートウェイとして機能する。
【０１５１】
ＯＳ１は、ユーザが使用するＡＰ（アプリケーションプログラム）１を管理するとともに、通信ログをＤＫ（ディスク）１に蓄積する。一方、ＯＳ２は、インターネットからの通信パケットを監視し、監視ログをＤＫ２に蓄積する。
【０１５２】
また、ＯＳ２では、ＮＩＣを直接制御し、通信を行う。このため、ＯＳ２は、ＯＳ１の通信を支援するため、ＮＩＣの対ソフトウェア提供インタフェースを疑似した疑似ＮＩＣ−Ｉ／ＦをＯＳ１に提供している。ＡＰ２は、パケット監視ログ収集用のアプリケーションプログラムであり、ＯＳ２上で動作する。
【０１５３】
また、ＡＰ２は、通信パケットを外から見るだけで、通信パケットに含まれる実行コードを処理しないため、ウイルスに感染しない。ＤＫ２に蓄積される監視ログは、悪意の第三者による改竄がなされないようになっている。従って、攻撃の痕跡を残すことが可能となる。
【０１５４】
ここで、ユーザの環境（ＯＳ１等）に対して、セキュリティの攻撃が行われた場合、ＯＳ１の通信ログが改竄されることが考えられる。しかしながら、一実施の形態では、マルチオペレーティングシステムにより、ＯＳ１とＯＳ２の監視ログが別々に管理されるため、攻撃者の追跡を行うことが可能となる。これにより、当該セキュリティゲートウェイへの攻撃を抑止する効果が期待できる。
【０１５５】
図１８は、一実施の形態をデスクトップＧｒｉｄ端末に適用した場合を説明する図である。同図において、ハードウェアは、マルチオペレーティングシステム（ＯＳ１およびＯＳ２）を備えており、ＮＩＣを経由してインターネットに接続されている。インターネットには、Ｇｒｉｄサーバが接続されている。ハードウェアは、デスクトップＧｒｉｄ端末として機能する。
【０１５６】
デスクトップＧｒｉｄ端末は、ユーザが計算機を利用しない間に、大きな計算の一部を割り当てて計算を実現しようとするデスクトップＧｒｉｄ計算を行うための端末である。ここで、ユーザ側から見ると、内容が不明な上記計算が自身の計算機環境に及ぼす悪影響が心配となる。
【０１５７】
そこで、同図では、自身の計算機環境をＯＳ１で管理し、Ｇｒｉｄ計算の処理環境をＯＳ２で管理することにより、上記悪影響を排除できる。つまり、Ｇｒｉｄ計算で利用されるデータやプログラムは、全てＯＳ２の制御下のみで管理され実行される。一方、ＯＳ１の制御下にあるＤＫ１やＭＥＭ（メモリ）１という計算機資源には、アクセスが許可されない。従って、Ｇｒｉｄ計算のプログラムからの悪影響が排除される。
【０１５８】
図１９は、一実施の形態を遠隔管理端末に適用した場合を説明する図である。同図において、ハードウェアは、マルチオペレーティングシステム（ＯＳ１およびＯＳ２）を備えており、ＮＩＣを経由してネットワークに接続されている。ネットワークには、システム管理者マシンや他のマシンが接続されている。ハードウェアは、遠隔管理端末として機能する。
【０１５９】
同図において、ユーザが管理できる範疇をＯＳ１に制限し、ＯＳ２の管理をネットワークを介してシステム管理者マシンで行うように構成されている。これにより、オフィス環境などで利用するパーソナルコンピュータのデフォルト環境を、システム管理者がＯＳ２の管理下で構築し、一方、ユーザ個人の好みや状況に応じて利用する環境を、ユーザがＯＳ１の管理下で構築することができる。
【０１６０】
したがって、ユーザ個人の環境設定により、システム側で用意した環境が動作不具合になることが防止される。ＯＳ２は、システム管理者マシンでシステム管理者により管理され、システム側で設計された環境を提供する。ユーザは、該環境を利用する場合、ＯＳ２のファイル情報をＯＳ１に読み込んで起動するか、または、ＯＳ２に起動を依頼してクライアント／サーバの形態で実行する。
【０１６１】
図２０は、一実施の形態を高効率ネットサービス提供端末に適用した場合を説明する図である。同図において、ハードウェアは、マルチオペレーティングシステム（ＯＳ１およびＯＳ２）を備えており、ＮＩＣを経由してネットワークに接続されている。ネットワークには、コンテンツプロバイダサーバや他のマシンが接続されている。ハードウェアは、高効率ネットサービス提供端末として機能する。
【０１６２】
同図においては、高効率ネットサービス提供端末は、遠隔管理端末（図１９参照）と同様にして、一方のＯＳ１をユーザの管理下、他方のＯＳ２をネットサービスの管理下として、例えば、封切り前のコンテンツを事前にＯＳ２の管理下（ＤＫ２）に配信しておき、封切り時刻にＯＳ１の管理下のＤＫ１からのコンテンツの即時利用を実現する端末である。
【０１６３】
コンテンツは、ネットワークを介して、コンテンツプロバイダサーバからＯＳ２の管理下のＤＫ２に配信された後、ユーザの希望により、ＤＫ２からＯＳ１の管理下のＤＫ１へ当該コンテンツが提供され、即時利用が可能となる。このように、コンテンツプロバイダサーバでは、事前配信により、ダウンロードアクセスの集中が防止される。
【０１６４】
図２１は、一実施の形態を高セキュリティＷｅｂサービス提供サーバに適用した場合を説明する図である。同図において、ハードウェアは、マルチオペレーティングシステム（ＯＳ１およびＯＳ２）を備えており、ＮＩＣを経由してネットワークに接続されている。ネットワークには、Ｗｅｂ閲覧端末が接続されている。ハードウェアは、高セキュリティＷｅｂサービス提供サーバとして機能する。
【０１６５】
同図の高セキュリティＷｅｂサービス提供サーバにおいては、外部からアクセスできる環境がＯＳ２で、ローカルユーザだけがアクセスできる環境がＯＳ１で構築される。
【０１６６】
例えば、Ｗｅｂ公開コンテンツや利用ログは、ＯＳ２の管理下のＤＫ２に格納される。一方、公開したくないデータ等は、ＯＳ１の管理下のＤＫ１に格納される。この場合、設定ミス等により、公開したくない情報を誤ってＷｅｂ上で公開してしまうという事態が回避される。また、外部から悪意の第三者による攻撃をＯＳ２側が受けた場合であっても、ＯＳ１では、ネットワーク機能を除き、動作することが可能となる。
【０１６７】
以上説明したように、一実施の形態によれば、図４に示したように、ＯＳ２０１  に対応する仮想メモリ空間４０１  のＮ番地に切替命令Ａを仮想記憶させ、仮想メモリ空間４０２  のＮ＋１番地以降に各種命令を仮想記憶させておき、さらに、ＯＳ２０１  における複数のアクセス先（Ｉ／Ｏポート）のうち、オペレーティングシステム切り替えのトリガーとするアクセス先（Ｉ／Ｏポート：例えば、ＬＡＮカード１７）をアクセス禁止に設定し、ＯＳ２０１が、アクセス禁止されているアクセス先（Ｉ／Ｏポート）へアクセスしようとした場合、これをトリガーとして、切替命令Ａにより、ＯＳ２０１  からＯＳ２０２  に切り替え、ＯＳ２０２  が、仮想メモリ空間４０２  のＮ＋１番地以降の各種命令を実行することとしたので、従来の基盤ＯＳやＶＭモニタ等の共通部分が不要で、オペレーティングシステムの信頼性、処理能力を向上させることができる。
【０１６８】
また、一実施の形態によれば、従来の共通部分が不要であるため、ＯＳ２０１  とＯＳ２０２  とを独立的に動作させることができ、セキュリティを向上させることができる。
【０１６９】
また、一実施の形態によれば、仮想メモリ空間４０２  のＮ番地に切替命令Ｂを仮想記憶させ、切替命令Ａにより切り替えが行われてから、ＯＳ２０２  が、仮想メモリ空間４０２  のＮ＋１番地以降の各種命令を実行した後、切替命令Ｂにより、ＯＳ２０２  からＯＳ２０１  に切り替えることとしたので、切り替えおよび切り戻しを円滑に行うことができる。
【０１７０】
また、一実施の形態によれば、切替命令Ｂにより切り替えを実行する前に、ＯＳ２０２  がアクセス先（ＬＡＮカード１７）に所定の処理（データ送信等）を実行させることとしたので、ＯＳ２０１  への不正攻撃を防止することができる。
【０１７１】
また、一実施の形態によれば、アクセス先をＩ／Ｏポートとしたので、ＯＳ２０１  への不正攻撃を防止することができる。
【０１７２】
また、一実施の形態によれば、アクセス禁止されているアクセス先を、データ通信を行うＬＡＮカード１７（データ通信ポート）としたので、データ通信を介してのＯＳ２０１  への不正攻撃を防止することができる。
【０１７３】
また、一実施の形態によれば、仮想メモリ空間４０１  のＮ番地の前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、ＯＳ２０１  側での多重割り込みを回避することができる。
【０１７４】
また、一実施の形態によれば、仮想メモリ空間４０２  のＮ番地の前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、ＯＳ２０２  側での多重割り込みを回避することができる。
【０１７５】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０１７６】
例えば、前述した一実施の形態においては、マルチオペレーティングシステム制御を実現するためのプログラムを図２２に示したコンピュータ読み取り可能な記録媒体２００に記録して、この記録媒体２００に記録されたプログラムを同図に示したコンピュータ１００に読み込ませ、実行することにより各機能を実現してもよい。
【０１７７】
同図に示したコンピュータ１００は、上記プログラムを実行するＣＰＵ１１０と、キーボード、マウス等の入力装置１２０と、各種データを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０と、演算パラメータ等を記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４０と、記録媒体２００からプログラムを読み取る読取装置１５０と、ディスプレイ、プリンタ等の出力装置１６０と、装置各部を接続するバス１７０とから構成されている。
【０１７８】
ＣＰＵ１１０は、読取装置１５０を経由して記録媒体２００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した機能を実現する。なお、記録媒体２００としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
【０１７９】
【発明の効果】
以上説明したように、本発明によれば、第１のオペレーティングシステムに対応する第１の仮想メモリ空間の論理アドレスＮに第１の切替命令を仮想記憶させ、第２の仮想メモリ空間の論理アドレスＮ＋１以降に各種命令を仮想記憶させておき、さらに、第１のオペレーティングシステムにおける複数のアクセス先のうち、オペレーティングシステム切り替えのトリガーとするアクセス先をアクセス禁止に設定し、第１のオペレーティングシステムが、アクセス禁止されているアクセス先へアクセスしようとした場合、これをトリガーとして、第１の切替命令により、第１のオペレーティングシステムから第２のオペレーティングシステムに切り替え、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行することとしたので、従来の基盤ＯＳやＶＭモニタ等の共通部分が不要で、オペレーティングシステムの信頼性、処理能力を向上させることができるという効果を奏する。
【０１８０】
また、本発明によれば、従来の共通部分が不要であるため、第１のオペレーティングシステムと第２のオペレーティングシステムとを独立的に動作させることができ、セキュリティを向上させることができるという効果を奏する。
【０１８１】
また、本発明によれば、第２の仮想メモリ空間の論理アドレスＮに第２の切替命令を仮想記憶させ、第１の切替命令により切り替えが行われてから、第２のオペレーティングシステムが、第２の仮想メモリ空間の論理アドレスＮ＋１以降の各種命令を実行した後、第２の切替命令により、第２のオペレーティングシステムから第１のオペレーティングシステムに切り替えることとしたので、切り替えおよび切り戻しを円滑に行うことができるという効果を奏する。
【０１８２】
また、本発明によれば、第２の切替命令により切り替えを実行する前に、第２のオペレーティングシステムがアクセス先に所定の処理を実行させることとしたので、第１のオペレーティングシステムへの不正攻撃を防止することができるという効果を奏する。
【０１８３】
また、本発明によれば、アクセス先をＩ／Ｏポートとしたので、第１のオペレーティングシステムへの不正攻撃を防止することができるという効果を奏する。
【０１８４】
また、本発明によれば、アクセス禁止されているアクセス先を、データ通信を行うデータ通信ポートとしたので、データ通信を介しての第１のオペレーティングシステムへの不正攻撃を防止することができるという効果を奏する。
【０１８５】
また、本発明によれば、第１の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、第１のオペレーティングシステム側での多重割り込みを回避することができるという効果を奏する。
【０１８６】
また、本発明によれば、第２の仮想メモリ空間の論理アドレスＮの前後に割り込み禁止命令および割り込み許可命令を仮想記憶させることとしたので、第２のオペレーティングシステム側での多重割り込みを回避することができるという効果を奏する。
【０１８７】
また、本発明によれば、上記の発明のいずれか一つに記載されたマルチオペレーティングシステム制御方法をコンピュータに実行させるようにしたので、プログラムがコンピュータ読み取り可能となり、これによって、上記の発明のいずれか一つの動作をコンピュータによって実行することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる一実施の形態の概略構成を示すブロック図である。
【図２】同一実施の形態の具体的構成を示すブロック図である。
【図３】図２に示したＩ／Ｏ許可ビットマップを示す図である。
【図４】同一実施の形態の動作原理を説明する図である。
【図５】同一実施の形態の動作原理を説明する図である。
【図６】同一実施の形態の動作例１を説明する図である。
【図７】同一実施の形態の動作例１を説明する図である。
【図８】同一実施の形態の動作例１を説明するフローチャートである。
【図９】同一実施の形態の動作例１を説明するフローチャートである。
【図１０】同一実施の形態の動作例１を説明するフローチャートである。
【図１１】同一実施の形態の動作例２を説明する図である。
【図１２】同一実施の形態の動作例２を説明する図である。
【図１３】同一実施の形態の動作例２を説明するフローチャートである。
【図１４】同一実施の形態の動作例２を説明するフローチャートである。
【図１５】同一実施の形態の応用例１〜４を説明する図である。
【図１６】同一実施の形態をシステム移行に適用した場合を説明する図である。
【図１７】同一実施の形態を高セキュリティゲートウェイに適用した場合を説明する図である。
【図１８】同一実施の形態をデスクトップＧｒｉｄ端末に適用した場合を説明する図である。
【図１９】同一実施の形態を遠隔管理端末に適用した場合を説明する図である。
【図２０】同一実施の形態を高効率ネットサービス提供端末に適用した場合を説明する図である。
【図２１】同一実施の形態を高セキュリティＷｅｂサービス提供サーバに適用した場合を説明する図である。
【図２２】同一実施の形態の変形例の構成を示すブロック図である。
【図２３】従来のマルチオペレーティングシステムの構成例１を示すブロック図である。
【図２４】従来のマルチオペレーティングシステムの構成例２を示すブロック図である。
【符号の説明】
１０  ハードウェア
１７  ＬＡＮカード
２０１  ，２０２  ＯＳ
１１  制御部
１２  物理メモリ
２１１  ，２１２  割り込み振分処理部
２２１  ，２２２  割り込み処理部
２６１  ，２６２  Ｉ／Ｏ許可ビットマップ
４０１  ，４０２  仮想メモリ空間
【図１】
2004171477.tif 000003
【図２】
2004171477.tif 000004
【図３】
2004171477.tif 000005
【図４】
2004171477.tif 000006
【図５】
2004171477.tif 000007
【図６】
2004171477.tif 000008
【図７】
2004171477.tif 000009
【図８】
2004171477.tif 000010
【図９】
2004171477.tif 000011
【図１０】
2004171477.tif 000012
【図１１】
2004171477.tif 000013
【図１２】
2004171477.tif 000014
【図１３】
2004171477.tif 000015
【図１４】
2004171477.tif 000016
【図１５】
2004171477.tif 000017
【図１６】
2004171477.tif 000018
【図１７】
2004171477.tif 000019
【図１８】
2004171477.tif 000020
【図１９】
2004171477.tif 000021
【図２０】
2004171477.tif 000022
【図２１】
2004171477.tif 000023
【図２２】
2004171477.tif 000024
【図２３】
2004171477.tif 000025
【図２４】
2004171477.tif 000026