JPH11149385A - マルチos構成方法 - Google Patents

マルチos構成方法

Info

Publication number
JPH11149385A
JPH11149385A JP10008299A JP829998A JPH11149385A JP H11149385 A JPH11149385 A JP H11149385A JP 10008299 A JP10008299 A JP 10008299A JP 829998 A JP829998 A JP 829998A JP H11149385 A JPH11149385 A JP H11149385A
Authority
JP
Japan
Prior art keywords
operating system
interrupt
procedure
configuration method
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10008299A
Other languages
English (en)
Other versions
JP3546678B2 (ja
Inventor
Tomonori Sekiguchi
知紀 関口
Toshiaki Arai
利明 新井
Shigenori Kaneko
茂則 金子
Hiroshi Ono
大野  洋
Taro Inoue
太郎 井上
Takashi Shibata
隆 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP00829998A priority Critical patent/JP3546678B2/ja
Publication of JPH11149385A publication Critical patent/JPH11149385A/ja
Application granted granted Critical
Publication of JP3546678B2 publication Critical patent/JP3546678B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】本発明は、従来の仮想計算機方式の複雑でオー
バヘッドの大きいOS制御方式に対し、ソフトウエアだ
けで容易に一台の計算機で複数OSを同時走行する方式
を提供する。本発明によれば、第一のOSから完全に独
立して動作する新機能を完全に計算機に組み込むことが
でき、それにより割込応答時間の短縮や信頼性の向上を
実現できる。 【解決手段】第一のOSと他のOSが管理するハードウ
ェア資源を分割する手順と、他のOSを起動する手順
と、実行OSを切替える手順と、割り込み要因により割
り込み処理するOSを決定し、適切な割り込みハンドラ
を起動する手順により、複数のOSの同時実行を実現す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一台の計算機上で複
数のオペレーティングシステムを稼働させるマルチOS
構成方法に関する。
【0002】
【従来の技術】通常の計算機では1つのオペレーティン
グシステムが動作し、それが計算機のプロセッサ、メモ
リ、および、二次記憶装置等の計算機資源を管理し、計
算機が効率良く動作できるように資源スケジュールを実
施している。オペレーティングシステムには様々な種類
がある。バッチ処理に優れるものや、TSS(TimeSharingS
ystem)に優れるもの、GUI(Graphical User Interface)
に優れているものなど様々である。
【0003】一方で、これら複数あるオペレーティング
システムを1台の計算機で同時に実行したいというニー
ズがある。例えば、大型計算機においては、実際の業務
に伴うオンライン処理を実行するオペレーティングシス
テムと、開発用のオペレーティングシステムを一台の計
算機で動作させたいという要求がある。あるいは、GU
Iの整っているオペレーティングシステムと、実時間性
に優れているオペレーティングシステムを同時に稼働さ
せたい等という要求もある。
【0004】しかしながら、個々のオペレーティングシ
ステムは、単独で計算機資源の管理を実施することを仮
定しており、複数のオペレーティングシステムの共存
は、何らかの機構なしには不可能である。
【0005】一台の計算機上で複数のオペレーティング
システムを動作させる機構としては、大型計算機で実現
されている仮想計算機方式(OSシリーズ第11巻 V
M、岡崎 世雄他著、共立出版株式会社)がある。仮想
計算機方式では、仮想計算機制御プログラムが全ハード
ウェア資源を占有して管理し、それを仮想化して仮想計
算機を構成する。仮想計算機を構成する制御部は、物理
メモリ、入出力機器装置、外部割り込み等を仮想化す
る。
【0006】例えば、分割された物理メモリは、各仮想
計算機に対してはあたかも0番地から始まる物理メモリ
のように振舞い、入出力装置を識別する装置番号も同様
に仮想化されている。更に、磁気ディスクの記憶領域も
分割して磁気ディスク装置の仮想化まで実現している。
【0007】各オペレーティングシステムは、制御プロ
グラムにより構築された仮想計算機上で実行されるよう
に制御プログラムによりスケジュールされる。 しか
し、大型計算機における仮想計算機方式では、計算機資
源を完全に仮想化、および、分割しようとするため、仮
想計算機を構成する制御部分が複雑であり問題である。
【0008】また、特別なハードウェア支援がない場
合、仮想計算機上で動作するオペレーティングシステム
が発行する制御レジスタの設定、入出力命令等の特権命
令は、仮想計算機制御プログラムによりエミュレートし
なければならないため、オーバーヘッドが大きくなり問
題である。実際、仮想計算機を実装している大型計算機
では、仮想計算機用に特別なプロセッサ機能やマイクロ
コード等のハードウェアを追加してオーバーヘッドの削
減を図っている。仮想計算機方式は、完全に計算機資源
を仮想化することを目的としているため複雑であり、更
に、仮想計算機の高性能化のためには特殊なハードウェ
ア機構が必要であり問題である。
【0009】一方、一台の計算機で複数のオペレーティ
ングシステムのインターフェイスを提供する技術とし
て、マイクロカーネルがある。マイクロカーネルでは、
マイクロカーネルの上に、ユーザに見せるオペレーティ
ングシステム機能を提供するオペレーティングシステム
サーバを構築し、ユーザはそのサーバを経由して計算機
資源を利用する。オペレーティングシステム毎のサーバ
を用意すれば、ユーザに様々のオペレーティングシステ
ム環境を提供することができる。
【0010】しかし、マイクロカーネル方式では、オペ
レーティングシステムサーバをマイクロカーネルに合わ
せて新規に構築する必要がある。多くの場合、現在ある
オペレーティングシステムをマイクロカーネル上で動作
するように変更することになるが、スケジューリング、
メモリ管理等のカーネルの中枢部分も変更することにな
り、変更箇所が多く、また、変更箇所がオペレーティン
グシステムの中枢部分に及ぶため変更作業が複雑で容易
でなく問題である。
【0011】また、オペレーティングシステムサーバは
マイクロカーネルのサービスを利用することになるが、
これは通常のオペレーティングシステムではないことで
あり、オーバーヘッドとなり性能低下をもたらす。
【0012】
【発明が解決しようとする課題】従来の仮想計算機方式
は、複数のオペレーティングシステムを同時に動作させ
るために、全計算機資源を仮想化する手法によってい
た。しかし、この方式では制御プログラムが複雑になる
問題がある。更に、この方式では特権命令のエミュレー
ションが必要となるため、性能を得るには特別なハード
ウェアが必要であり問題である。
【0013】本発明は、オペレーティングシステムの初
期化処理部分、割り込み管理部分の変更、および、割り
込み管理プログラムの追加により、特別なハードウェア
なしで複数オペレーティングシステムの同時実行を実現
する。本発明では、特権命令のエミュレーションは不要
なため、各オペレーティングシステムの実行に新たなオ
ーバーヘッドは伴わない。
【0014】本発明によれば、第一のオペレーティング
システムを補完する機能を容易に追加でき、高機能な計
算機システムの構築が可能になる。更に、デバイスドラ
イバとは異なり、第一のオペレーティングシステムとは
全く独立して動作する機能を組み込むことができるた
め、第一のオペレーティングシステムに依存しない高信
頼化機能を追加することも可能になる。
【0015】また、マイクロカーネル方式で複数のマル
チオペレーティングシステム環境を構成する方法では、
それぞれのオペレーティングシステムのインターフェイ
スを提供するオペレーティングシステムサーバの構築が
難しいという問題がある。本発明によれば、オペレーテ
ィングシステムへの変更は初期化部分と割り込み管理部
分のみに限定されるため、簡単にマルチオペレーティン
グシステム環境を構成できる。
【0016】
【課題を解決するための手段】本発明は、第一のOSに
おいて、第二のOSが必要とする物理メモリ、外部デバ
イス等の計算機資源を予約し、どちらのOSからも独立
した管理プログラムが外部割り込みを横取りして、割り
込み要因によりどのOSの割り込みハンドラを起動すべ
きか決定し、OSの実行状態により割り込みハンドラを
起動するタイミングを決定して、それの基づいて各OS
の割り込みハンドラを起動することにより、2つのOS
を一台の計算機で動作させる。
【0017】
【発明の実施の形態】本発明の実施の形態について説明
する。
【0018】以下、図面を用いて本発明の実施の形態に
ついて説明する。図1は本発明の実施の形態における計
算機100の構成を示す図である。
【0019】計算機100は、プロセッサ101、主記
憶装置102、バス109、割り込み信号線110、ク
ロック割り込み生成器111、割り込み制御装置11
2、ブート手順を格納している記憶装置118、およ
び、割り込みバス119より構成されている。
【0020】割り込み信号線110は、外部の入出力機
器と割り込み制御装置112を接続している。外部機器
が割り込みを発生すると、割り込み信号線110を経由
して割り込み制御装置112が信号を受けとり、割り込
み制御装置112は、この信号を数値化して、割り込み
バス119を介してプロセッサ101に渡す。
【0021】クロック割り込み生成器111は、周期的
な割り込みを生成する。
【0022】割り込み制御装置112は、外部機器から
の割り込み要求を受け付け、要求元にしたがって数値化
された割り込み信号を生成し、プロセッサ101に送
る。また、プロセッサ101からの指示により、特定の
機器からの割り込み信号をプロセッサ101に通知しな
いようにすることができるとする。
【0023】プロセッサ101は、演算装置103、割
り込みテーブルレジスタ104、ページテーブルレジス
タ105、および、アドレス変換装置106より構成さ
れている。
【0024】割り込みテーブルレジスタ104は、割り
込みテーブル107の仮想アドレスを指し示している。
割り込みテーブルの詳細については後述するが、割り込
み番号毎の割り込みハンドラの開始アドレスを記録して
いる。図1で、割り込みテーブルレジスタ104と割り
込みテーブル107の接続を破線で記載しているのは、
割り込みテーブルレジスタ104が割り込みテーブルの
仮想アドレスを指し示すためである。割り込みが発生す
ると、プロセッサ101は割り込み制御装置112から
数値化された割り込み番号を受ける。この番号をインデ
ックスとして割り込みテーブル107より割り込みハン
ドラアドレスを取得し、割り込みハンドラに制御を渡
す。
【0025】ページテーブルレジスタ105は、ページ
テーブル108を指し示している。ページテーブルレジ
スタ105は、ページテーブル108の物理アドレスを
格納している。
【0026】アドレス変換装置106は、演算装置が要
求する命令アドレス、あるいは、オペランドが格納され
ているアドレスを受けとり、ページテーブルレジスタ1
05の指しているページテーブル108の内容に基づき
仮想−実アドレス変換を実施する。
【0027】計算機100には外部入出力装置としてキ
ーボード113、ディスプレイ114、磁気ディスク1
15、その他の外部機器116、および、117が接続
している。ディスプレイ114を除く機器は割り込み信
号線110により割り込み制御装置112に接続してい
る。
【0028】主記憶装置102の内容について簡単に説
明する。現在、計算機101では2つのオペレーティン
グシステムが動作している。それぞれを第一のオペレー
ティングシステム、第二のオペレーティングシステムと
呼ぶことにする。また、計算機を起動すると第一のOS
が起動するように設定されており、外部機器116、お
よび、117は第二のOSにより管理される機器である
とする。
【0029】第一のOSは、起動時の初期化処理で、そ
の他のオペレーティングシステム用に、この場合は第二
のOS用に物理メモリ領域を予約する。つまり、第一の
OSが、第二のOS用に予約された物理メモリ領域を利
用できないように物理メモリ領域を確保する。図1は、
この奪った領域に第二のOSがロードされている様子を
示している。
【0030】更に、第一のOSの初期化過程では、第一
のOSから外部機器116、および、117の利用する
割り込み番号や入出力アドレスを、既に利用済みである
として予約する。
【0031】また、第一のOSは、すべてのオペレーテ
ィングシステムから参照可能な共通領域を持つ。その共
通領域に、割り込みテーブル107、割り込み管理プロ
グラム、割り込みハンドラ、各オペレーティングシステ
ムから呼びだし可能なインターフェイスモジュール等を
格納する。
【0032】本発明の実施の形態の、動作概要について
説明する。本実施の形態では、第二のOSは第一のOS
よりも優先して動作する。優先して動作するとは、第一
のOSは第二のOSがアイドル状態であるときのみ動作
可能であることを示す。第二のOSの処理が終了しない
限り、第一のOSは動作できない。
【0033】また、第二のOSが管理するデバイスが割
り込みを発生すると、第一のOSの処理は中断され、制
御は第二のOSに移る。第二のOS実行中に第一の割り
込みが発生しても、その割り込み処理は第一のOSが実
行されるまで延期される。
【0034】さらに、第一のOSと第二のOSは明確に
区分されており、割り込みハンドラなどを配置する共通
領域以外は、互いにアクセスできないようにする。これ
により、2つのオペレーティングシステムが誤って互い
の領域にアクセスして障害が起きることを防いでいる。
【0035】以下、上記の機能を実現する本発明の実施
形態について説明する。
【0036】図2は、本発明の実施の形態における2つ
のオペレーティングシステムの関係を概念的に示した図
である。それぞれのオペレーティングシステムは、それ
ぞれ独立したアドレス空間を保持する。201は第一の
OSの仮想空間で、202は第二のOSの仮想空間を示
している。ここで、第二のOSの空間202に対応する
実記憶は、図1の主記憶102の第二のOSの領域にな
る。
【0037】仮想空間の一部分には、共通領域203が
マップされる。共通領域203に対応する実記憶は、図
1の主記憶102の共通領域として示した領域である。
共通領域203は、もともとは第一のOSのカーネルの
領域の一部である。第二のOSをロードする手順が、ア
ドレス空間202を構築する時に、共通領域203をア
ドレス空間202にマッピングするように第二のOS用
のページテーブルを作成する。この手順については後述
する。
【0038】図2は、各オペレーティングシステムが管
理するハードウェアを示している。第一のOSは、キー
ボード113、ディスプレイ114、および、磁気ディ
スク115を、第二のOSは入出力装置116、およ
び、117を管理することを示している。クロック11
1と割り込み制御装置112は、もともとは第一のOS
が管理しているハードウェアであるが、共通領域203
中のプログラムが管理することを示している。
【0039】次に、ページテーブルの構成について説明
する。図3は、本発明の実施の実施の形態でのページテ
ーブルの構成を示している。
【0040】300がページテーブルである。ページテ
ーブル300は、プロセッサ101の仮想アドレス空間
の仮想ページ毎に、それぞれの仮想ページを記述するエ
ントリを持っている。それぞれのエントリは、有効ビッ
ト301と、物理ページ番号302により構成される。
【0041】有効ビット301は、その仮想ページに対
応する物理ページが割り当てられているか、つまり、仮
想−実アドレス変換が可能かを示している。例えば、ペ
ージテーブル300の仮想ページ3は、有効ビットがセ
ットされていないので、仮想ページ3に対応する物理ペ
ージが存在しないことを示している。有効ビット301
がセットされていない仮想ページへのアクセスが発生す
ると、プロセッサはページフォルトを発生する。
【0042】物理ページ番号302は、仮想ページに対
応する物理ページ番号を記録している。
【0043】アドレス変換装置106は、ページテーブ
ルレジスタ105の指し示しているページテーブルの内
容を参照して、演算装置103の生成する仮想アドレス
を実アドレスに変換する。プロセッサ101は、変換に
より得られた実アドレスにより主記憶装置102を参照
する。
【0044】ページテーブルを切替えることにより独立
した空間を構築することができ、図2に示した第一のオ
ペレーティングシステムの空間、および、第二のオペレ
ーティングシステムの空間の構築が可能である。また、
共通領域203については、両方のオペレーティングシ
ステムのページテーブルの共通領域に対応する部分に、
同じ物理ページをマップするように設定しておけば、共
通領域を実現できる。
【0045】次に、割り込みテーブルの構成について説
明する。図4は、割り込みテーブルの構成を示してい
る。
【0046】400が割り込みテーブルである。割り込
みテーブル400は、プロセッサ101が割り込み制御
装置112から受ける割り込み番号毎の、割り込みハン
ドラの仮想アドレス401を記録している。プロセッサ
101は割り込み要求を割り込み制御装置112から受
けると、割り込み番号に対応する割り込みハンドラのア
ドレスを、割り込みテーブルレジスタ104の指し示し
ている割り込みテーブル400から取得し、そのアドレ
スに制御を移すことで割り込み処理を開始する。
【0047】図5は、割り込み制御装置112を示して
いる。割り込み制御装置112は、割り込みマスクレジ
スタ501、および、選択装置502を持っている。
【0048】割り込みを発生する入出力装置は、割り込
み信号線110により割り込み制御装置112と接続す
る。入出力機器の発生する割り込みは、割り込み信号線
110のどの信号線に接続するかにより優先順位が付け
られる。ここでは、割り込み0番に対応する割り込み信
号がもっとも優先度が高い割り込みであるとする。
【0049】割り込み信号線110は、選択装置502
に接続している。選択装置502は、割り込み信号を受
けると、プロセッサがその割り込みを受け付けたことを
通知するまで、未処理の割り込みがあることを記録して
いる。
【0050】割り込みマスクレジスタ501は、入出力
機器の発生した割り込みをプロセッサに通知してよいか
を記録している。割り込みマスクレジスタ501は、プ
ロセッサ101から入出力命令により設定可能である。
【0051】選択装置502は、割り込み信号線110
から割り込み要求を受けた時と、割り込みマスクレジス
タ501の内容が書き換えられた時に、選択装置502
が記録している未処理割り込みと、割り込みマスクレジ
スタ502の内容を比較して、プロセッサに割り込みを
通知するかどうかを決める。具体的には、選択装置50
2が記録している未処理割り込みのうち、割り込みマス
クレジスタ501に割り込み可能と設定されていて、優
先度の最も高い割り込みから順にプロセッサに通知す
る。選択した割り込みについて、選択装置502は、通
知する割り込み信号に対応する数字信号を、割り込みバ
ス119経由でプロセッサ101に送る。
【0052】プロセッサ101は、割り込みを受けた時
に、入出力命令により選択装置502に記録されている
未処理割り込み記録を解消できる。
【0053】次に、本発明の実施の形態における、計算
機のブート手順について説明する。
【0054】ブート手順の始めの部分は、読みとり専用
記憶装置である118に格納されている。記憶装置11
8は、プロセッサの物理アドレス空間のある決められた
アドレスにマップされるようにバス109を介してプロ
セッサ101に接続している。この手順は、ハードウェ
ア構成の検出、オペレーティングシステムカーネルをロ
ードするプログラムの主記憶へのローディングを実施す
る。
【0055】プロセッサ101がリセットされると、プ
ロセッサ101は予め定められた物理アドレスに制御を
移す。記憶装置118は、この時に実行されるプログラ
ムを格納しており、プロセッサ101がリセットされた
時にこのプログラムに制御を渡せるように物理アドレス
空間にマップされている。
【0056】記憶装置118に格納されているプログラ
ムは、磁気ディスク装置112に格納されている第一の
OSのカーネルローダを主記憶装置102にロードして
実行する。カーネルローダは、磁気ディスク装置112
の予め定められた位置にあり、記憶装置118に格納さ
れたプログラムは、容易にこれを見つけることができ
る。
【0057】カーネルローダの処理手順について説明す
る。図6は、本発明の実施の形態における、オペレーテ
ィングシステムのカーネルローダの処理手順を示すフロ
ーチャートである。
【0058】このカーネルローダは、オペレーティング
システムのファイルシステム構造を理解して、ファイル
名よりファイルの格納位置を特定し、主記憶に読み込む
ことができるよう構成されている。
【0059】カーネルローダの処理手順について説明す
る。まず、カーネルにパラメータとして渡す主記憶リス
ト1101、ロードモジュールリスト1104、およ
び、デバイスリスト1102を初期化し、カーネル用の
ページテーブル領域を割り当てる(ステップ601)。
3つのリストの構成については後述する。
【0060】主記憶リスト1101は、主記憶装置10
2の利用状況を示すデータ構造であり、カーネルローダ
が以降の処理で物理メモリの割り当てをする場合は、主
記憶リスト1101を参照、および、変更して実施す
る。
【0061】次に、ハードウェア構成の検査(ステップ
602)、および、ハードウェア構成データの作成(ス
テップ603)を実施する。ステップ602において
は、計算機100にどのような接続されているかハード
ウェアが検査する。続くステップ603では、ステップ
602の結果に基づいてハードウェア構成に関するデー
タ構造であるデバイスリスト1102を作成する。オペ
レーティングシステムカーネルは、このデバイスリスト
1102を参照してカーネル初期化処理を実施する。
【0062】次に、オペレーティングシステムカーネル
の構成情報700を磁気ディスク装置112より読み込
み、パラメータテーブル1100に構成情報のアドレス
を設定する(ステップ604)。オペレーティングシス
テムのカーネルは、カーネル本体のファイルと、その他
のデバイスドライバのファイルといったように、複数の
ファイルから構成されていても良い。構成情報700
は、予め決められたファイル名で磁気ディスク112に
格納されており、ロードプログラムはこれを見つけるこ
とができる。
【0063】本発明の実施形態におけるカーネル構成情
報のデータ構造を図7に示す。700は、カーネル構成
情報を記録しているファイルの内容を示している。構成
情報ファイル700は、カーネルローダやオペレーティ
ングシステムが参照するデータを格納している。格納さ
れているデータには名前がつけられており、プログラム
は名前からそれに対応するデータを取得することができ
る。図7の例では、名前がオブジェクトファイル(70
1)というエントリがあり、そのデータが702に格納
されている。また、secondary OSには、第二のOS用の
データ(704)を格納しているとする。
【0064】カーネルローダの処理手順の説明を続け
る。構成情報700を読み込んだ後、構成情報700中
のオブジェクトファイルという名前のつけられたデータ
に格納されているカーネル構成ファイルのすべてについ
て、主記憶装置102に読み込み(ステップ606)、
ロードモジュールリスト1104にエントリを追加し
(ステップ607)、カーネル用のページテーブルの設
定(ステップ608)を実施する。ここでは、kern
el、driver1、および、driver2という
ファイル名のオブジェクトファイルをロードする。
【0065】ロードモジュールリストエントリの追加
と、カーネル用のページテーブルの設定は、主記憶10
2にロードしたオブジェクトファイルに格納されている
データにしたがって実施する。カーネルを構成するオブ
ジェクトファイルには、そのファイル内容をマップする
仮想アドレス、ファイルの大きさなどが含まれている。
これを参照してページテーブルを構築する。オブジェク
トファイルのデータ構造については後述する。
【0066】最後に、ページテーブルレジスタ105
を、構築したページテーブルのアドレスに設定し、プロ
セッサを仮想アドレス変換モードに移行させ(ステップ
609)、構築した主記憶リスト1101、デバイスリ
スト1102、カーネル構成情報テーブル1103、お
よび、ロードオブジェクトリスト1104の組から成る
パラメータテーブル1110をパラメータとして、カー
ネルの初期化ルーチンに制御を渡す(ステップ61
0)。カーネルのエントリポイントは、カーネルファイ
ル内のデータに記録されている。
【0067】次に、カーネルを構成するオブジェクトフ
ァイルの構造について説明する。図8は、本発明の実施
の形態での、カーネルを構成するオブジェクトファイル
の構造を示す図である。
【0068】800は、オブジェクトファイル全体を示
している。オブジェクトファイル800は、801ない
し811のヘッダ部分と、812ないし813のセクシ
ョン部分より構成される。
【0069】ヘッダ部分の構成について説明する。ヘッ
ダマップアドレス801とヘッダサイズ802は、オブ
ジェクトファイル800ヘッダ部分のカーネル空間での
格納位置を記述している。ヘッダ部分は、ヘッダマップ
アドレス801に記録されているアドレスに読み込まれ
る。
【0070】初期化エントリ803は、オブジェクトフ
ァイル800の初期化用ルーチンのアドレスを記録して
いる。カーネルは、カーネル初期化時に各オブジェクト
ファイルの初期化ルーチンを呼ぶときに、各オブジェク
トファイルの初期化エントリ803を参照して初期化ル
ーチンを見つける。
【0071】セクション数804は、オブジェクトファ
イル800に含まれているセクションの数を記録してい
る。セクションとは、オブジェクトファイル内の連続し
ているデータ領域で、これを単位としてカーネルの仮想
空間へのマッピングを決定する。例えば、オブジェクト
ファイルは、実行コードが格納されているセクション
と、そのオブジェクトファイルが参照するデータを格納
しているセクションを含んでいる。これらのセクション
はオブジェクトファイル作成時にコンパイラにより作成
される。
【0072】外部参照テーブルオフセット805と外部
参照テーブルサイズ806は、このオブジェクトファイ
ル内の実行コードが参照する、他のオブジェクトファイ
ルの公開参照の情報を格納する外部参照テーブル810
を記述している。外部参照テーブル810は、オブジェ
クトファイル800のヘッダ部分に含まれており、外部
参照テーブルオフセット805は、ヘッダの先頭からの
外部参照テーブル810のオフセットを記録している。
【0073】公開参照テーブルオフセット807と公開
参照テーブルサイズ808は、このオブジェクトファイ
ルが他のオブジェクトファイルの実行コードに公開して
いるモジュールとデータの情報を格納している公開参照
テーブル811を記述している。公開参照テーブル81
1は、オブジェクトファイル800のヘッダ部分に含ま
れており、公開参照テーブルオフセット807は、ヘッ
ダの先頭からの公開参照テーブル811のオフセットを
記録している。
【0074】セクションデータ809は、オブジェクト
ファイル800に含まれる各セクションについてのデー
タを格納している。セクションデータは、セクション数
804の数だけある。セクションデータの構成について
は後述する。
【0075】セクションデータの後に外部参照テーブル
810と、公開参照テーブル811が続き、ヘッダ部分
を構成する。
【0076】ヘッダ部分の後には、各セクションの本体
812、813が格納されている。
【0077】セクションデータ809の構成について説
明する。セクション開始オフセット820とセクション
サイズ821は、オブジェクトファイル800内での、
当該セクションの開始オフセットと、当該セクションの
大きさを記録している。
【0078】セクションは、セクションマップアドレス
822に記録されたアドレスに配置されるようにカーネ
ルの仮想空間にマップされる。セクション名称823に
は、当該セクションの名前を示す文字列が格納されてい
る。
【0079】外部参照テーブルの構造について説明す
る。図9は、外部参照テーブルの構造を示している。テ
ーブル810の先頭には、このテーブルに含まれる外部
参照情報の数901が格納されている。
【0080】続いて、オブジェクトファイル名902、
外部参照名903が格納されている。オブジェクトファ
イル名902と外部参照名903は、文字列テーブル9
05へのオフセット値を格納しており、実際の文字列に
よる名称は文字列テーブル905内に格納されている。
【0081】外部参照アドレス904には、この当該外
部参照エントリで記述される外部参照の実際のアドレス
が格納される。カーネルは、オブジェクトファイルを主
記憶にロードするときに、当該の外部参照を含むオブジ
ェクトファイルの公開参照のテーブルを参照して関数、
あるいは、データのアドレスを取得し、外部参照アドレ
ス904に設定する。オブジェクトファイルの実行コー
ドは、外部関数アドレス904に格納されたアドレスを
参照して、他のオブジェクトファイル内の関数の呼び出
しや、データの参照をするようコンパイルされており、
他オブジェクトモジュールにある関数の実行や、データ
参照が可能である。
【0082】オブジェクトファイル名902、外部参照
名903、および、外部参照アドレス904が1つの外
部参照を定義し、外部参照数901に記録されている数
だけ、これらのエントリが連続して配置される。その後
に、文字列テーブル905が格納される。文字列テーブ
ルは、オブジェクトファイル名や、外部参照名の文字列
を格納している。
【0083】公開参照テーブルの構造について説明す
る。図10は、公開参照テーブルの構造を示す図であ
る。
【0084】テーブル811の先頭には、この公開参照
テーブル811により他のオブジェクトモジュールに公
開される参照名の数1001が記録されている。1つの
公開参照は、公開参照名1002と公開参照アドレス1
003により記述される。公開参照名1002は、文字
列テーブル1004へのオフセット値を格納しており、
実際の文字列による名前は文字列テーブル1004に格
納されている。公開参照アドレス1003は、この参照
に対応するアドレスを格納している。
【0085】次に、ステップ601から始まるブート手
順が作成するハードウェア構成データと、ロードオブジ
ェクトデータの構成について説明する。図11がハード
ウェア構成データとロードオブジェクトデータの構成を
示す図である。
【0086】パラメータテーブル1100は、カーネル
ローダが作成するデータ構造である。パラメータテーブ
ル1100から始まる3つのリストは、ローダが構築す
るカーネルの仮想空間に配置されるので、カーネルから
参照可能である。
【0087】パラメータテーブル1100は、ローダが
構築した3つのリストの先頭へのポインタと、1つのテ
ーブルへのポインタを保持している。3つのリストと
は、主記憶リスト1101、デバイスリスト1102、
および、ロードオブジェクトリスト1104で、1つの
テーブルはカーネル構成情報テーブル1103である。
それぞれについて説明する。
【0088】主記憶リスト1101は、主記憶ブロック
記述データ1110のリストである。主記憶ブロック記
述データ1110は、ベースアドレス1111、ブロッ
クサイズ1112、ブロック利用状況1113、およ
び、次の主記憶ブロック記述データへのポインタ111
4から構成されている。
【0089】主記憶ブロック記述データは、ある連続し
た主記憶領域についての利用状況を記録している。ベー
スアドレス1111は連続領域の開始物理アドレスを示
し、ブロックサイズ1112は連続領域の大きさを格納
している。ブロック利用状況1113は、当該連続領域
が未使用であるか、あるいは、ローダにより割り当て済
みであるかを示す値が格納されている。そして、次エン
トリへのポインタ1114によりリストを構成してい
る。図11では、1110の次のエントリは1120で
ある。主記憶リスト1101を参照することで、物理メ
モリの利用状態を知ることができる。
【0090】デバイスリスト1102は、カーネルロー
ダが検出したハードウェアデバイスに関するデータを格
納しており、ステップ603で作成されている。デバイ
スリスト1103は、デバイスデータ1150からなる
リストである。デバイスデータ1150は、デバイスタ
イプ1151、デバイス情報1152、および、次のデ
バイスデータへのポインタ1153より構成される。
【0091】デバイスタイプ1151は、このデバイス
データエントリ1150により記述されるデバイスの種
類を示す値が格納されている。デバイス情報1152
は、デバイスの種類に特有なデータを格納している。例
えば、割り込み番号やI/Oアドレスなどがそれに相当
する。そして、次エントリへのポインタ1153により
リストを構成している。
【0092】カーネル構成情報テーブルへのポインタ1
103は、カーネルローダが主記憶102に読み込んだ
カーネル構成情報ファイル700の内容を指し示してい
る。
【0093】ロードオブジェクトリスト1104は、カ
ーネルローダが主記憶にロードしたオブジェクトファイ
ルに関するデータを保持している。ロードオブジェクト
リストは、ロードオブジェクトデータ1130のリスト
である。ロードオブジェクトデータ1130は、オブジ
ェクトファイル名1131、オブジェクトアドレス11
32、および、次のロードオブジェクトデータへのポイ
ンタ1133より構成されている。
【0094】オブジェクトファイル名1131は、ロー
ドオブジェクトデータ1130により記述されているオ
ブジェクトファイルのファイル名である。オブジェクト
アドレス1132は、当該オブジェクトファイルのヘッ
ダ領域がロードされているカーネル空間のアドレスを格
納している。そして、次エントリへのポインタ1133
によりリストを構成している。
【0095】ロードオブジェクトリスト1104は、カ
ーネルローダがカーネルを構成するオブジェクトファイ
ルを読み込む時に同時に作成している(ステップ60
7)。
【0096】次に、本発明の実施の形態における第一の
OSの初期化手順について説明する。図12は、第一の
OSの初期化手順を示すフローチャートである。
【0097】まず、パラメータとして渡されたパラメー
タテーブル1100中のロードオブジェクトリスト11
04を参照して、カーネルローダがロードしたオブジェ
クトファイルの外部参照アドレス解決を実施する(ステ
ップ1201)。アドレス解決では、各オブジェクトフ
ァイルにある外部参照テーブル810の、外部参照アド
レス904を決定する。アドレスは、各オブジェクトフ
ァイルの公開参照テーブル811を参照して決定する。
【0098】続く、ステップ1202では、カーネル起
動時のパラメータとして渡されたパラメータテーブル1
100の主記憶リスト1101を参照して、第二のOS
用に主記憶領域を確保する。
【0099】具体的には、カーネル構成情報テーブル7
00より第二のOSの情報を取り出す。図7の例では、
第二のOSの構成情報は704に格納されている。この
構成情報704を参照して、確保すべき主記憶の大きさ
を決定する。そして、主記憶リスト1101の空きブロ
ックエントリの内容を変更して、主記憶領域を割り当て
る。この処理は、第一のOSが空きメモリ管理を始める
前に実施する。
【0100】これにより、第一のOSから見ると、第二
のOSに割り当てた主記憶領域は存在しないことにな
り、第一のOSから参照されることがなくなる。したが
って、割り当てた領域は、第二のOSが自由に使うこと
のできる主記憶領域となる。これは、図1の第二のOS
の領域に相当する。
【0101】次のステップ1203では、カーネル内部
のデータ構造の初期化を実施する。この初期化には、後
で述べるデバイス管理テーブルの初期化も含む。
【0102】ステップ1204では、第二のOSが管理
するデバイスを予約する。ここで予約するとは、第一の
OSから利用できないようにすることである。具体的に
は、第一のOSが管理しているデバイス管理テーブルへ
の登録を実施する。
【0103】第二のOSが管理するデバイス資源は、パ
ラメータテーブル1100のカーネル構成情報テーブル
1103の指すテーブル700に格納されている、第二
のOSの構成情報を参照して決める。この実施形態で
は、図7の704に格納されているデータがそれに相当
する。
【0104】デバイス管理テーブルについて説明する。
図13は、第一のOSのデバイス管理テーブルの構造を
示した図である。デバイス管理テーブルは、割り込みベ
クタ管理テーブル1300と、I/Oアドレス管理リス
ト1310の2つのデータ構造からなる。
【0105】割り込みベクタ管理テーブル1300は、
プロセッサ101が受け付ける各割り込み番号につい
て、第一のOSがその割り込み番号を利用するかどうか
を示す値を格納している。カーネルは、デバイスドライ
バが初期化時に割り込み番号を要求した場合に、このテ
ーブル1300を検査し、要求された割り込み番号が利
用されているか検査し、そうでない場合にのみ要求され
た割り込み番号を使用する権利をデバイスドライバに与
える。既に利用済みであると記されている場合は、その
デバイスは第一のOSからは利用できないことになる。
【0106】図2の入出力装置116と117を例とし
て説明する。入出力装置116と117は、それぞれ割
り込み番号4と5と要求すると仮定する。入出力装置1
16と117は、第二のOSが管理するデバイスであ
る。入出力装置116と117の要求する割り込み番号
は、カーネル構成情報テーブル700の第二のOSの構
成情報704に記録されている。ステップ1204で
は、この構成情報704を参照して、割り込みベクタ管
理テーブルの、割り込み番号4と5のエントリに利用中
であることを示す値を格納する。この処理は、第一のO
Sがデバイス管理を開始する前に実施するため、第一の
OSは、入出力装置116と117にアクセスすること
ができなくなり、装置116と117を第二のOSの管
理下におくことができる。
【0107】I/Oアドレス管理リスト1310につい
ても同様である。I/Oアドレス管理リスト1310
は、I/Oアドレス範囲を表現するエントリ1320か
らなるリストである。エントリ1320は、第一のOS
が利用するI/Oアドレス範囲1321と、リストを構
成するための次のエントリへのポインタ1322からな
る。割り込みベクタ管理テーブル1300と同様、デバ
イスドライバが初期化時にI/Oアドレス範囲を要求し
た場合、カーネルは、そのアドレス範囲が既に利用され
ているかI/Oアドレス管理リスト1310により検査
し、未使用である場合、このリスト1310にエントリ
を追加して、利用許可を与える。
【0108】第二のOSが管理するデバイスが要求する
I/Oアドレス範囲は、割り込み番号と同様にカーネル
構成情報テーブル700に格納されているので、それを
参照すれば要求アドレスを知ることができ、第一のOS
がデバイス管理を開始する前にI/Oアドレスを予約で
きる。
【0109】ステップ1202の処理により、第一のO
Sから完全に独立した第二のOS専用の空間を構築する
ことが可能になる。さらに、ステップ1204の処理に
より、第一のOS上で動作するユーザプログラムは、第
二のオペレーティングシステムが管理するデバイス、こ
の例では、入出力装置116と117へのアクセスが不
可能になる。また、装置116と117の割り込み番号
とI/Oアドレスを利用するデバイスドライバを導入す
ることを禁止できる。
【0110】この2つのステップの処理の効果として、
第一のOSが関知しない部分に第二のOSを導入するこ
とが可能になる。
【0111】続くステップ1205、ないし、ステップ
1207は通常のオペレーティングシステムの初期化処
理と同じである。ステップ1205のシステムデバイス
の初期化では、カーネルが直接管理するシステムデバイ
スの初期化を実施する。システムデバイスとは、クロッ
ク割り込みなど、第一のOSの実行に不可欠で、第一の
OSが必ず存在していると仮定しているデバイスであ
る。
【0112】ステップ1206では、カーネルローダが
ロードしたオブジェクトファイルについて、それぞれの
初期化エントリを実行する。初期化エントリアドレス
は、オブジェクトファイルのヘッダ部分に格納されてい
る。最後に、初期プロセスを作成する(ステップ120
7)。
【0113】次に、本発明の実施の形態における、第二
のOSのロード手順について説明する。図14は、第二
のOSのロード手順を示すフローチャートである。
【0114】まず、第二のOS用に割り当てた物理メモ
リ領域に、第二のOSのオブジェクトファイルを読み込
む必要がある。しかし、第二のOSの物理メモリ領域
は、そのままでは第一のOSから書き込むことはできな
いので、割り当てた物理メモリ領域を第一のOSの仮想
空間に一時的にマッピングする(ステップ1401)。
【0115】ステップ1402では、マッピングした領
域に、第一のOSのファイル読み込み手順を利用して、
第二のOSのオブジェクトファイルを読み込む。なお、
第二のOSのオブジェクトファイルの形式は、第一のO
Sのオブジェクトファイル形式800と同じ形式である
とする。
【0116】次に、第二のOS用のページテーブルを作
成する(ステップ1403)。このページテーブルも第二
のOS用の領域に作成する。この時に、第一のOSと共
有する部分について、第二のOSの空間からも参照でき
るように、ページテーブルを構築する。
【0117】共通領域203について、割り込み処理や
共通データの管理を実施するデバイスドライバ(以下サ
ポートドライバ)をロードした領域を共通領域203と
する。このデバイスドライバがロードされたアドレス
は、ロードオブジェクトリスト1104より知ることが
できる。また、続くステップ1404で、第二のOSの
カーネルの外部参照を解決する。但し、第二のOSが直
接参照できる他のオブジェクトファイルの参照は、共通
領域203に配置されている関数とデータ、つまり、サ
ポートドライバの公開参照のみである。したがって、こ
こでは、サポートドライバのオブジェクトファイルのヘ
ッダ部分に格納されている公開参照テーブル811を参
照して、第二のOSのカーネルオブジェクトファイルの
外部参照テーブル810の外部アドレス904を決定す
る。
【0118】次に、第二のOSの公開参照のアドレス
を、共通領域のデータ領域に割り当てられた外部参照ア
ドレステーブルに書き込む。共通領域となっているサポ
ートドライバは、第一のOSのデバイスドライバとし
て、第一のOSの機構にしたがって読み込むため、第二
のOSの公開参照とリンクすることはできない。
【0119】ここでは、サポートドライバのデータ領域
内に必要な外部参照名と、それに対応する外部アドレス
を格納するテーブルを予め用意しておく。サポートドラ
イバの実行コードは、このテーブルを参照して第二のO
Sのカーネルの公開関数の呼びだし、公開データの参照
を実施するように記述する。そして、第二のOSのロー
ド時に、このテーブルの外部アドレス欄にサポートドラ
イバの公開参照のアドレスを書き込むこととする。
【0120】これで、第二のOS領域の設定を終了し、
第一のOSのカーネル領域にマップした、第二のOS用
の物理メモリ領域のマッピングを解除する(ステップ1
406)。
【0121】次に、OSコンテクストテーブル1510
の第二のOSのコンテクストと、OS識別変数1530
を設定する(ステップ1407)。OSコンテクスト
は、実行オペレーティングシステムを切り替えるときに
参照するデータ構造で、ページテーブルアドレス値とス
タックポインタの初期値とで構成する。ここでは、ペー
ジテーブルレジスタ値として第二のOSをマップするペ
ージテーブルのアドレスを、スタックポインタ値として
第二のOSのカーネルスタックの初期アドレスを設定す
る。OS識別変数1530には、第一のOSが実行中で
あることを示す値を格納する。OSコンテクストテーブ
ル1510とOS識別変数1530については後述す
る。
【0122】次に、第二のOSの初期化モジュールを実
行する(ステップ1408)。これには、オペレーティ
ングシステム空間の切替が伴う。オペレーティングシス
テムの切替えについては、別のフローチャートにより説
明する。また、第二のOSの初期化モジュールは公開参
照になっており、サポートドライバはそのアドレスを知
ることができる。
【0123】最後に、ステップ1409にて、現在の割
り込みテーブル104に登録されている第一のOSの割
り込みハンドラのアドレスを、割り込み識別テーブル1
520のハンドラの欄1522にコピーし、割り込みテ
ーブルレジスタ値を、サポートドライバに割り当てた割
り込みテーブルのアドレスに変更する。これは、プロセ
ッサ101の割り込みテーブルレジスタ104の変更に
より実施する。
【0124】割り込みテーブルをサポートドライバ内の
テーブルに変更するのは、割り込み発生時にどちらのオ
ペレーティングシステムが実行していても、常にプロセ
ッサ101の仮想アドレス空間に割り込みテーブルが存
在している必要があるためである。割り込みテーブルに
登録される割り込みハンドラも、サポートドライバ内に
配置する。サポートドライバの領域は、ステップ140
3にて、第二のOSの仮想空間にもマッピングして共通
領域203とするので、いつでも参照できることにな
る。サポートドライバの割り込み処理については後述す
る。
【0125】また、ステップ1409では、第一のOS
の割り込み管理情報も変更する。具体的には、割り込み
禁止レベルに関連するデータ構造を変更するが、これに
ついては後述する。
【0126】共通領域203に格納するデータ構造につ
いて説明する。図15は、共通領域203のうちのデー
タ領域1500に格納するデータ構造を示した図であ
る。図15にしたがって順に説明する。
【0127】1510は、OSコンテクストテーブルで
ある。OSコンテクストテーブル1510は、第一のO
Sと第二のOSとの間の切替えに必要なデータを保持す
る。この実施の形態では、第一のOSは第二のOSがア
イドル状態の時のみ走行できるとする。この場合、第一
のOS実行中のある時点で第二のOSへの切替が起こ
り、第二のOSの実行が終了した時点で、第一のOSに
制御を戻せば良い。
【0128】したがって、それぞれで保存しておかなけ
ればならないコンテクストは1組で良い。第一のOSの
コンテクストについては、OS切替が要求された時点で
のページテーブルレジスタ値1511と、スタックポイ
ンタ値1512を保存しておけば、第二のOS実行終了
後に、第一のOSに制御を復帰させることができる。
【0129】また、第一のOSから第二のOSへ制御を
切り替えるときには第二のOSは動作していない。した
がって、第二のOSのコンテクストは、ページテーブル
アドレスもスタックポインタも固定の値でよい。第二の
OSのページテーブルレジスタ値1513とスタックポ
インタ値1514は、第二のOSをロードするときに設
定する(ステップ1407)。
【0130】1520は、割り込み識別テーブルであ
る。割り込み識別テーブル1520は、外部割り込みの
割り込み番号毎に、どちらのオペレーティングシステム
が割り込みを処理するかを示す値1521と、割り込み
ハンドラのアドレス1522が記録されている。外部割
込みが発生すると、共通領域203内の割り込みハンド
ラが割り込みを捕獲し、この割り込み識別テーブル15
20の処理OS1521を参照して、どちらのOSに処
理させるかを決定し、ハンドラ1522のアドレスへ制
御を渡す。割り込み処理の詳細については、後述する。
【0131】1530は、実行中のオペレーティングシ
ステムを示す値を格納しているOS識別変数である。こ
の変数1530は、ステップ1601から始まるOS切
り替え手順でOS切り替えの度に設定する。割り込み処
理では、この変数1530を参照して割り込み処理手順
を決定する。
【0132】1540は、第二のOSの実行中に、第一
のOSが管理しているデバイスの割り込みが発生したか
を示す遅延割り込み状態変数である。この変数1540
は、どの割り込み番号の割り込みが発生したかを記録し
ている。OS切り替え手順は、第二のOSの実行が終了
したときにこの変数1540を検査して、割り込み処理
を起動するか決定する(ステップ1608)。
【0133】オペレーティングシステムの切替え手順に
ついて説明する。図16は、本発明の実施の形態におけ
る、オペレーティングシステムの切替え手順を示すフロ
ーチャートである。この切り替え手順は、第一のOSの
実行中に呼び出され、第二のOSの切り替えを実施す
る。
【0134】図16に示した手順は、第二のOSへの切
り替え後に実行する第二のOSのモジュールのアドレス
と、そのモジュールへ渡す引数を引数として受ける。第
二のOSのモジュールのアドレスは、共通領域203内
に設定した、外部参照アドレステーブルを参照すれば知
ることができる。
【0135】まず、始めのステップ1601で、現在の
スタックポインタ値とページテーブルレジスタ値を、O
Sコンテクストテーブル1510の、第一のOSのコン
テクストとして保存する。ステップ1601では、現在
のスタックポインタ値を1512に、現在のページテー
ブルレジスタ105の値を1511に保存する。
【0136】他のレジスタコンテクストについて、OS
コンテクストテーブル1510に保存する必要はない。
必要があれば、第一のOSのスタックに保存すればよ
い。
【0137】スタックポインタとページテーブルレジス
タ値を保存した後、ステップ1602にて、ページテー
ブルレジスタ105に第二のOSを仮想空間にマップす
るページテーブルのアドレスを設定する。これは、OS
コンテクストテーブル1510の1513に記録されて
いる。更に、スタックポインタを第二のOS用に設定す
る。これも、テーブル1600の第二のOSのスタック
ポインタ1514に格納されている。
【0138】次のステップ1603で、第一のOSの割
り込み状態を示す遅延割り込み状態変数1540をクリ
アする。状態変数1540は、第二のOS実行中に発生
した、第一のOSが管理しているデバイスからの割り込
みの発生状況を記録する変数である。第二のOSを実行
する前に、これをクリアしておく。
【0139】そして、現在実行中のOSの示しているO
S識別変数1530を、第二のOSを示す値に書き換え
る(ステップ1604)。スタックポインタ、ページテ
ーブルレジスタ105、および、OS識別変数1530
は、常に一貫した値になっていなければならないので、
ここまでのステップ1601、ないし、1604は全て
の外部割り込みを禁止した状態で実行しなければならな
い。
【0140】続くステップ1605で、引数として渡さ
れたモジュールのアドレスへ制御を移し、第二のオペレ
ーティングシステムに制御を渡す。本発明のこの実施の
形態においては、第一のOSは第二のOSが実行してい
ない時、つまり、第二のOSがアイドル状態のときだけ
実行できるとする。したがって、第二のOSの処理が終
了した時に、ステップ1606へ制御が戻る。
【0141】ステップ1606では、ステップ1601
でOSコンテクストテーブル15100に保存したペー
ジテーブルレジスタ値1511と、スタックポインタ値
1512のそれぞれを回復する。続くステップ1607
で、OS識別変数1530を第一のOSが実行中である
ことを示す値に変更する。この2つのステップの処理も
割り込みを禁止した状態で実行しなければならない。
【0142】次に、第二のOSの実行中に発生した、第
一のOSが管理するデバイスの外部割り込みを処理す
る。まず、ステップ1608では、遅延割り込み状態変
数1540を検査して、割り込みが発生したかどうか検
査する。発生していない場合は、OS切替え手順は終了
し、呼出元に復帰する。
【0143】そうでない場合、割り込みが発生している
場合は、ステップ1609を実行する。このステップで
は、第二のOSの実行中に発生した割り込みを、第一の
OSが管理している延期割り込み状態変数に、未処理の
割り込みがある旨を記録する。続いて、第一のOSの割
り込み処理を起動する(ステップ1610)。全ての割
り込み処理が終了した時に、OS切替え手順の呼出元に
復帰する。
【0144】本発明の実施の形態における割り込み処理
について説明する。図17は、本実施形態の割り込み処
理手順を示すフローチャートである。この手順を実行す
るモジュールは、割り込みハンドラとしてプロセッサの
割り込みテーブル107に登録される。さらに、この割
り込みハンドラは、両方のオペレーティングシステムか
ら参照できる共通領域203に配置する。
【0145】外部割り込みが発生して、プロセッサ10
1により割り込みハンドラが起動されると、割り込みハ
ンドラは割り込み要因を検査し、割り込みを発生したデ
バイスが第一のOSが管理するデバイスか、第二のOS
が管理するデバイスか判定する(ステップ1701)。
この判定は、割り込み識別テーブル1520を割り込み
番号をインデックスとしてOS欄1521を参照するこ
とより実施する。第一のOSのデバイスである場合はス
テップ1702へ、第二のOSのデバイスの場合はステ
ップ1705へ進む。例えば、図15でいえば、割り込
み番号が1であれば第一のOSの割り込みであり、割り
込み番号4であれば第二のOSの割り込みとなる。
【0146】割り込みが第一のOSのデバイスの割り込
みである場合、ステップ1702を実行する。ステップ
1702では、割り込み発生時に実行していたOSを判
定する。この判定は、OS識別変数1530を参照して
実施する。実行中のOSが第一のOSの場合はステップ
1703へ、第二のOSの場合はステップ1704へ進
む。
【0147】ステップ1703から始まる処理は、第一
のOSが管理しているデバイスが、第一のOSを実行中
に割り込みを発生した場合の処理である。ステップ17
03では、あたかもステップ1701から始まる処理が
存在せず、第一のOSの割り込みハンドラが、直接プロ
セッサ101から制御を受けたように見えるようにコン
テクストを設定する。ここでコンテクストとは、スタッ
クの内容やレジスタの内容を示す。そして、第一のOS
の割り込みハンドラへ制御を渡す。第一のOSの割り込
みハンドラのアドレスは、割り込み識別テーブル152
0のハンドラ欄1522に格納されている。例えば、割
り込み番号1の割り込みであるならば、1をインデック
スとして割り込み識別テーブルを参照して、ハンドラア
ドレスを求める。
【0148】この場合、ステップ1701から始まる手
順には制御は戻らず、第一のOSが処理を続ける。
【0149】第一のOSが管理しているデバイスが、第
二のOSを実行中に割り込みを発生した場合、ステップ
1704を実行する。ステップ1704では、遅延割り
込み状態変数1540に割り込みを発生したデバイスの
割り込み番号を記録する。割り込みハンドラの処理はこ
れで終了する。この場合の割り込みの処理は、実行OS
が第一のOSに切り替わったときに実行される(ステッ
プ1608)。
【0150】発生した外部割込みが、第二のOSが管理
するデバイスの割り込みだった場合、ステップ1705
へ進み、どちらのOSが実行中であるか検査する。ここ
でも、OS識別変数1530によって実行中のOSを判
定する。第一のOSが実行中の場合は、ステップ170
6へ、第二のOSが実行中の場合はステップ1711へ
進む。
【0151】第二のOSが管理するデバイスの割り込み
が、第二のOSの実行中に発生した場合、ステップ17
11を実行する。ステップ1711は、第二のOSの割
り込みハンドラを起動する。第二のOSの割り込みハン
ドラのアドレスは、割り込み識別テーブル1520のハ
ンドラ欄1522に記録されている。第二のOSの割り
込みハンドラ処理が終了して制御が戻ってきたら、この
割り込みハンドラも終了し、割り込まれた時のコンテク
ストを回復して制御を元に戻す。
【0152】第二のOSが管理するデバイスの外部割込
みが、第一のOSの実行中に発生した場合、ステップ1
706を実行する。この場合は、第一のOSの実行より
も第二のOSの処理を優先して実行する。
【0153】まず、ステップ1706では、コンテクス
トを保存する。ここでのコンテクストとは、割り込み処
理が終了した後で第一のOSに戻すときに、割り込まれ
たときの状態を回復するのに必要なスタックの内容とレ
ジスタの内容を示す。このコンテクストは、第一のOS
のカーネルのスタックに保存する。
【0154】続いて、実行OSの切り替えと第二のOS
の割り込み処理の起動を実行する(ステップ1707、
1708)。これは、ステップ1601から始まる手順
により実行する。
【0155】第二のOSの処理が終了した時点で、第一
のOSへの切り替えを実行し(ステップ1709)、割
り込み時のコンテクストを回復し(ステップ171
0)、第一のOSの処理を再開する。ステップ1709
の処理は、必ずしも、ステップ1701から始まる処理
と同一のモジュール内で実行されなくてもよい。第一の
OSへの切り替えにより処理はこのモジュールへ復帰す
る。
【0156】2つのオペレーティングシステムで共有し
ているクロック割り込みの処理について説明する。クロ
ック割り込みはは、共通領域内の割り込みハンドラによ
り捕獲する。この割り込みハンドラでは、まず、第二の
OSのクロック割り込み用の割り込みハンドラを実行す
る。第二のOSの割り込みハンドラはハンドラ2欄15
23に格納されている。第二のOSの割り込みハンドラ
の実行が終了したら、図17のステップ1702から始
まる処理により第一のOSの割り込み処理を実行する。
第一の割り込みハンドラのアドレスはハンドラ欄152
2に格納されている。
【0157】次に、第一のOSの割り込み制御部分につ
いて説明する。これは、第一のOSの割り込み制御によ
って、誤って第二のOSが管理するデバイスの割り込み
が禁止にされてしまわないようにするための処理であ
る。
【0158】第一のOSは、割り込み禁止レベルにより
割り込みを制御しているとする。割り込み禁止レベル
は、オペレーティングシステムのカーネル内の割り込み
処理の延長で動作する部分と、そうでない部分との間の
排他制御を実現するために必要となる機構である。
【0159】第一のOSは、割り込み制御装置112を
プログラムすることで割り込み禁止レベルを実現する。
つまり、割り込み制御装置112の割り込みマスクレジ
スタ502をプログラムして、選択的に外部割り込みを
マスクにする。第一のOSは第二のOSについて全く知
らないので、第一のOSが割り込み禁止レベルを変更し
たときに、第二のOSのデバイスの割り込みがマスクさ
れてしまう可能性がある。これを防ぐために、第一のO
Sの割り込み制御部分を変更する。
【0160】図18は、割り込み禁止レベルを実現する
第一のOSが管理しているデータ構造を示している。1
800は、割り込み禁止レベルテーブルである。それぞ
れの割り込みレベルは数値で表現され、それぞれの割り
込み禁止レベルについて、何番の外部割り込みをマスク
するかを示している。テーブル1800のチェックのつ
けられているところは割り込みをマスクする設定するこ
とを示している。例えば、割り込み禁止テーブル180
0では、割り込み禁止レベル0では、どの割り込みもマ
スクされないことを示している。また、割り込み禁止レ
ベル3では、割り込み番号3、ないし、5の割り込みを
割り込み制御装置112によりマスクすることを示して
いる。割り込み禁止レベル5では、すべての割り込みが
割り込み制御装置112によりマスクされる。
【0161】本発明では、第二のOSの初期化時に、こ
の割り込み禁止レベルテーブル1800を変更する(ス
テップ1409)。ステップ1409では、第二のOS
が管理するデバイスが発生する割り込みについて、第一
のOSがそれらの割り込みをマスクしないように割り込
み禁止レベルテーブルを変更する。具体的には、割り込
み識別テーブル1520のOS欄1521を参照して、
第二のOSが管理する割り込み番号について、割り込み
禁止レベルテーブル1800のチェックをクリアする。
【0162】この例では、割り込み番号4と5が第二の
OSが処理する割り込みとなっている。したがって、割
り込み禁止レベルテーブル1800のすべての割り込み
禁止レベルの、割り込み番号4と5の欄(1801と1
802のすべて)をクリアする。
【0163】これにより、第一のOSが割り込み禁止レ
ベルを変更しても、第二のOSが管理するデバイスの割
り込みはマスクされなくなる。
【0164】以上により、一台の計算機で2つのオペレ
ーティングシステムを同時に動作させることが可能にな
る。
【0165】本発明によれば、第一のOSに変更を加え
て2つのオペレーティングシステムを同時に動作させる
場合、変更箇所がオペレーティングシステムカーネルの
初期化部分、デバイス資源予約、および、割り込み禁止
制御部分に限定されるため、簡単に2つのオペレーティ
ングシステムを動作させることが可能になる。
【0166】仮想計算機による方式では、物理メモリや
I/Oチャネルを仮想化するために特権命令のエミュレ
ーションが必要になるが、これをソフトウェアで実現す
るとオーバーヘッドが大きくなり問題である。仮想計算
機方式では、このオーバーヘッド削減のために、特殊な
ハードウェアを持つことが多くなっている。しかし、本
発明では、それぞれのデバイスについて、デバイスを管
理するオペレーティングシステムを予め決定し、さら
に、物理メモリについて利用できる範囲を初期化時に決
定することにより、オペレーティングシステム同士が互
いに干渉しないようにして、仮想計算機でのような複雑
なソフトウェアによる制御を廃止し、高速化のためのハ
ードウェアも不要とした。
【0167】本発明によれば、第一のOSの機能を補完
するOSを容易に追加することが可能である。従来技術
においても、第一のOSの構成要素として、例えばデバ
イスドライバとして新たな機能をカーネルに追加するこ
とは可能である。しかし、第一のOSの構成要素として
しまったのでは、その構成要素は第一のOSの管理下で
しか動作できない問題がある。つまり、第一のOSが障
害により停止してしまったとき、追加した機能モジュー
ルも動作することはできないのである。
【0168】本発明によれば、新たな機能を実現する構
成要素を、第一のOSと独立して構成することができ、
第一のOSが停止してしまったとしても、その機能モジ
ュールだけは継続して動作することが可能になる。この
実施形態については、後述する。信頼性を要求される機
能モジュールを第二のOSとして組み込めば、第一のO
Sが停止してしまったときでも、何らかの回復処理を実
現させるといったことが可能になる。このように本発明
は、計算機システムの高信頼化を実現する手段となり得
る発明である。
【0169】また、この実施形態では、第二のOSが第
一のOSに優先して処理を実行するとして説明した。第
一のOSは、第二のOSがアイドル時にしか動作できな
いことや、第二のOSの割り込みはいつでもすぐに処理
することにより、第二のOSを優先させている。これに
より、第一のOSが実時間処理に適合していなくても、
第二のOSとして実時間処理に向くOSを導入すれば、
第一のOSの特徴を活かしたままで、実時間処理性能に
優れた計算機システムを構築することが可能になる。例
えば、第一のOSが優れたGUI(Graphical UserInter
face)を持っているが実時間処理性能に欠ける場合、第
一のOSよりも優先して動作する実時間処理向きオペレ
ーティングシステムを第二のOSとして導入してやるこ
とで、GUIにも優れ、実時間処理にも優れた計算機シ
ステムの構築ができる。
【0170】このように、本発明は、特別なハードウェ
アの支援なしで、第一のOSに欠けている機能を容易に
導入する方法であり、さらに、その機能は第一のOSと
は全く独立して動作させることを可能にする。
【0171】次に、本発明の第二の実施形態について説
明する。第二の実施形態は、これまで説明してきた実施
の形態の拡張である。この実施の形態では、第一のOS
が障害により停止しても動作しつづける第二のOSの導
入が実現可能である。
【0172】第一の実施形態に加えて、第一OS実行状
態変数1550を共通領域に置く。この変数1550
は、第一のOSが通常動作しているか、そうでないかを
示す値を格納している。この変数1550は、第二のO
Sをロードする時の処理で、通常動作を示す値に初期化
する。
【0173】図19は、本発明の第二の実施の形態の第
一のOSの停止処理手順を示すフローチャートである。
この処理手順は、第一のOSの停止処理を実行するモジ
ュールを変更して実装する。
【0174】まず、第一のOSの停止処理モジュールに
制御がきたら、第一OS実行状態変数1550を第一の
OSが停止していることを示す値に設定する(ステップ
1901)。その後、第一のOSの停止処理を実行する
(ステップ1902)。最後に、第一のOSへの割り込
みをマスクして、第二のOSが処理するデバイスの割り
込みを許可して(ステップ1903)、割り込みが発生
するまで待つ(ステップ1904)。割り込みが発生す
ると、実行OSの切り替えられ、第二のOSが処理を実
行する。
【0175】更に、実行OS切り替え手順を変更する。
第一の実施の形態では、ステップ1601から始まる手
順により実行OSの切り替えを実行した。第二の実施の
形態では、この手順で第二のOSのモジュールを実行し
た後、つまり、ステップ1605の後で、第一OS実行
状態変数1550を検査する。ここで、第一OS実行状
態変数1550が、第一のOSが停止していることを示
す値になっているならば、ステップ1606以降の処理
を実行せずに、割り込み待ちを実行する。
【0176】以上のデータ構造と手順により、第一のO
Sが停止しても第二のOSの実行を継続することが可能
になる。この実施形態では、第一のOSの停止処理モジ
ュールを変更するとしたが、第一のOSがエラーにより
停止したときの停止処理過程で実行されるモジュールを
変更して、第一のOSの停止を検出して割り込み待ちを
しても同様の効果を実現できる。
【0177】本発明の第3の実施の形態について説明す
る。これまで説明してきた実施の形態では、カーネル本
体を変更することにより2つのOSの同時実行等を実現
してきた。第3の実施の形態では、カーネル本体を変更
せずに、前記の実施の形態の機能を実現する。
【0178】様々の種類のハードウェアをサポートする
オペレーティングシステムでは、ハードウェア依存の処
理がカーネル本体からは切り離されて、別のオブジェク
トファイルとして構成されている場合がある。例えば、
割り込み制御装置112が計算機により異なる場合や、
バス109の構成が異なってI/Oアドレス空間が計算
機により異なる場合である。
【0179】図20は、このようなオペレーティングシ
ステム、つまり、割り込み制御装置やバスなどの基盤と
なるハードウェアの違いを吸収するためのコードやデー
タがカーネル本体とは分離されたオブジェクトファイル
にある場合の、カーネル領域の様子を示した図である。
【0180】カーネル領域2000には、プロセッサ1
01のカーネルモードで実行されるモジュールや、オペ
レーティングシステムが管理するデータ構造がある。カ
ーネル本体2001は、メモリ管理、プロセススケジュ
ーリング、および、ファイルシステムなどの、ハードウ
ェア非依存の処理を実施するコードやデータを持ってい
る。カーネル本体2001とハードウェア依存部200
2の間には、ハードウェア依存部2002の提供しなけ
ればならないモジュールと、カーネル本体2001が提
供するモジュールに関する規約が定められている。ハー
ドウェア依存部2002をこの規約にあわせて構築すれ
ば、様々な計算機上でこのオペレーティングシステムを
動作させることが可能になる。
【0181】この規約に従ったハードウェア依存の処理
は、別オブジェクトファイルに分離され、カーネル本体
とは切り離された領域2002にマップされている。カ
ーネル本体2001とハードウェア依存部2002は、
第一の実施の形態の場合と同様の外部参照機構により互
いの公開モジュールを呼び出すことができ、見かけ上は
1つのカーネルとして機能する。
【0182】このような場合は、カーネル本体のオブジ
ェクトファイルを変更することなく、分離されたハード
ウェア依存の処理を実施するオブジェクトファイルの変
更により第一の実施の形態、および、第二の実施の形態
と同様の効果を得ることが可能である。
【0183】具体的には、分離されたオブジェクトファ
イルの処理において、物理メモリの割り当てが可能であ
ること、割り込みレベル管理処理を変更できること、お
よび、I/O資源の予約ができることが必要である。さ
らに、このオブジェクトファイル中にステップ1701
から始まる割り込みハンドラと割り込みテーブル107
を配置し、プロセッサの割り込みテーブルレジスタ10
4に登録する。そして、この分離されたオブジェクトフ
ァイルを共通領域203として第二のOSからも参照で
きるようにする。以上により、本発明の第一の実施の形
態と同様の効果を得ることができる。
【0184】さらに、ハードウェア依存オブジェクトフ
ァイルが、第一のOSが停止したときに実行されるモジ
ュールを持つ規定になっていれば、そのモジュールを変
更すれば第一のOSの停止を検出でき、本発明の第二の
実施の形態と同様の効果を得ることができる。
【0185】この実施の形態においては、カーネル本体
を変更する必要がない。これにより、変更しなければな
らない部分が更に限定できる、カーネル本体を変更する
よりも容易に実施可能となる。
【0186】次に、本発明の第4の実施の形態について
説明する。これまで説明してきた実施の形態では、共通
領域203に配置していたのはサポートドライバや、ハ
ードウェア依存オブジェクトファイルなどのオブジェク
トファイルであった。しかし、本当に共通領域203に
配置しなければならないモジュールとデータは、割り込
みテーブル107、ステップ1701から始まる割り込
みハンドラ、ステップ1601から始まるOS切り替え
手順、および、図15に示したデータ構造分だけであ
る。特に、第3の実施例でのようにハードウェア依存部
の処理を実施するオブジェクトファイル全体を共通領域
203として第二のOSからも参照できるようにしてし
まうと、第二のOSが誤って第一のOSのデータ構造に
アクセスしてしまう可能性が高くなり問題である。
【0187】第4の実施の形態では、オブジェクトファ
イルの特定のセクションのみを共通領域203として第
二のOSに見せる方法を提供する。この実施の形態で
は、オブジェクトファイルを生成するコンパイラが、命
令コードとデータを配置するセクションをプログラム上
で指定できる機能を持っている必要がある。
【0188】通常のオブジェクトファイルは、セクショ
ンとして命令コードを含むテキストセクションと、デー
タを含むデータセクションを持っている。これに加え
て、コンパイラの機能により共通領域203のためのセ
クションを追加する。さらに、オブジェクトファイルの
ヘッダ部分に格納されているセクションデータ809を
参照して共通領域セクションのアドレス範囲を決定し、
その部分だけを第二のOSに見せるようにページテーブ
ルを構築すればよい。
【0189】ハードウェア依存処理をするモジュールを
含むオブジェクトファイルを変更する場合を例として説
明する。変更個所のうち初期化に関連する部分、例え
ば、物理メモリの割り当て、I/O資源の予約、割り込
みレベル管理部分の変更は第二のOSに見せる必要はな
い。第二のOSからも参照できなければならないのは、
割り込みテーブル107、ステップ1701から始まる
割り込みハンドラ、ステップ1601から始まるOS切
り替え手順、および、図15に示したデータ構造分だけ
である。これらを、共通領域セクションに配置するよう
にプログラムを記述し、コンパイラの機能により共通領
域セクションを生成する。
【0190】図21は、生成されたオブジェクトファイ
ルの構成を示している。2100は、生成されたオブジ
ェクトファイルを示す。オブジェクトファイル2100
のヘッダ部の2101、ないし、2104は、オブジェ
クトファイル2100に含まれているセクションのデー
タを記述している。このうち2103と2104が、共
通領域203用に新規に作成したセクションを表現する
セクションデータである。対応するセクションは210
7と2108である。セクションデータ2103と21
04の内容にしたがってセクション2107と2108
のアドレスを求め、それらの領域だけを第二のOSのカ
ーネル領域にマップするように第二のOSのページテー
ブルを構成すれば、ハードウェア依存オブジェクトファ
イル2100の他の部分を第二のOSから隠すことがで
きる。
【0191】第4の実施の形態によれば、これまで説明
した実施の形態よりも、更にOS間の独立性を高めるこ
とができ、OS間の干渉の少ない安全な計算機システム
の構築が可能になる。
【0192】次に、本発明の第5の実施の形態について
説明する。第5の実施の形態では、マルチプロセッサ構
成の計算機で第二のOSを導入が可能になる。
【0193】図22は、本発明の第5の実施の形態での
計算機装置を示す図である。2200は計算機装置であ
る。計算機2200は2つのプロセッサ2201と22
02、および、主記憶装置2203を持っている。ま
た、第一の実施の形態と同様に、計算機起動プログラム
を格納している記憶装置2204を持っている。
【0194】プロセッサ2201と2202について、
プロセッサを起動したときと、初期化のための割り込み
を受けた時とでは、制御を渡す物理アドレスが異なるも
のとする。
【0195】記憶装置2204に格納されている初期化
割り込み処理プログラムは、予め定めた物理アドレスに
格納されている値を物理アドレスとして、そのアドレス
に制御を渡す。
【0196】また、バス2209を介して磁気ディスク
装置2206、クロック割り込み生成装置2207、お
よび、入出力装置2207等のデバイスが接続してい
る。割り込みを発生するデバイスは、割り込み制御装置
2205に接続し、更に、割り込みバス2211を介し
てプロセッサ2201と2202に接続している。各プ
ロセッサは他のプロセッサに割り込みを送ることができ
るとする。
【0197】割り込み制御装置2205について説明す
る。割り込み制御装置2205は、マルチプロセッサ構
成のための機能を持っている。割り込み制御装置220
5は、第一の実施の形態での割り込み制御装置112の
割り込みマスク機能に加えて、それぞれのデバイスから
の割り込みをどのプロセッサ、あるいは、プロセッサ群
に通知するかを指定する機能を持っている。
【0198】図23は、割り込み制御装置2205の構
成を示す図である。選択装置2301と割り込みマスク
レジスタ2302の働きは、第1の実施の形態と同じで
ある。それらに加えて、割り込み制御装置2205は、
割り込み配送テーブル2310と、割り込み送信装置2
305を持っている。
【0199】割り込み配送テーブル2310は、割り込
み制御装置2205に接続されたそれぞれのデバイスに
ついて、どのプロセッサ、あるいは、プロセッサ群に割
り込みを通知するかを示す値2311と、通知するとき
の割り込み番号2312を記録している。割り込み配送
テーブル2302は、I/O命令により変更することが
でき、自由に設定可能である。
【0200】図23の例では、割り込み0と1はCPU
0に、割り込み2はCPU1に配送するように設定され
ている。
【0201】割り込み送信装置2305は、選択装置2
301からの信号を受けて、割り込み配送テーブル23
10を参照して割り込み通知先と割り込み番号を決定す
る。そして、通知先と割り込み番号を表わす信号を割り
込みバス2211へ送信する。
【0202】計算機2200は、起動するとプロセッサ
2201だけが動作を開始するように構成されており、
プロセッサ2201が記憶装置2204に格納されてい
る起動プログラムを実行する。起動プログラムは、第一
の実施の形態の場合と同様に磁気ディスク装置2206
に格納されているカーネルローダを主記憶2203に読
み込み実行する。カーネルローダは、パラメータテーブ
ル1100を作成する。第5の実施の形態では、デバイ
スリストに計算機2200が何個のプロセッサを持って
いるかを示すデータが加えられる。
【0203】第一のOSのロード後、第一のOSの初期
化処理を実行する。初期化の過程で、非ブートプロセッ
サ以外のプロセッサ用の初期化ルーチンのアドレスを予
め定めた物理アドレスに格納し、プロセッサ2202に
初期化割り込みを送る。プロセッサ2202は初期化割
り込みを受けると、記憶装置2204に格納されている
プログラムを実行し、非ブートプロセッサ初期化ルーチ
ンに制御がわたる。非ブートプロセッサ初期化ルーチン
は、ページテーブルレジスタや割り込みテーブルレジス
タを設定して仮想アドレスモードに移行し、初期化処理
を続ける。
【0204】本発明の第5の実施の形態では、図12の
ステップ1204の第二のOS用のデバイスの予約のと
きに、プロセッサも第二のOS専用であると予約する。
ここでは、プロセッサ2202を予約するとして説明す
る。
【0205】マルチプロセッサ構成の場合、ステップ1
201から始まる第一のOSの初期化手順のシステムデ
バイスの初期化で、非ブートプロセッサに初期化割り込
みを送る。この場合、プロセッサ2201からプロセッ
サ2202に初期化割り込みが送られることになる。本
発明では、予約されているプロセッサについては初期化
割り込みを送らないことにする。したかって、カーネル
の初期化がされてもプロセッサ2202はまだ動作して
いない。
【0206】また、ステップ1205のシステムデバイ
スの初期化では、割り込み制御装置2205の初期化も
実施する。割り込み制御装置2205の初期化では、カ
ーネル構成情報ファイル700の第二のOSの構成デー
タ704を参照して、第二のOSが管理するデバイスの
割り込みがプロセッサ2202に送られるように割り込
み配送テーブル2310を設定する。
【0207】更に、図14のステップ1401から始ま
る第二のOSの初期化手順において、初期化ルーチンを
第二のOSの初期化ルーチンのアドレスに設定して、ス
テップ1407でプロセッサ2202に初期化割り込み
を送る。これにより、プロセッサ2202上で、第二の
OSが走行を開始する。
【0208】第1、ないし、第4の実施の形態と異な
り、第二のOSの管理するデバイスの割り込みは、すべ
て割り込み制御装置2205により、第二のOSが動作
しているプロセッサ2202へ送られる。このため、実
行OSを切り替える必要はなくなる。第一のOSはプロ
セッサ2201で動作し、第二のOSはプロセッサ22
02で動作することになる。したがって、ステップ17
01から始まる割り込み処理も不要になる。
【0209】第二のOSは、独自の割り込みテーブルを
プロセッサ2202の割り込みテーブルレジスタに設定
し、独自の割り込みハンドラを持てる。第一のOSの割
り込みテーブルを変更する必要はない。但し、第一のO
Sが割り込み制御装置2205の割り込みマスクレジス
タ2302を変更する場合は、第二のOSのデバイスか
らの割り込みをマスクしてしまわないように変更を加え
る必要がある。
【0210】第5の実施の形態においては、第1ないし
4の実施の形態よりも、性能の良い計算機システムの構
築か可能である。第1ないし4の実施の形態では、第一
のOSは第二のOSがアイドルしている間のみ動作可能
であったが、第5の実施の形態においては、第一のOS
は、プロセッサは奪われてはいるが常に動作することが
可能であり、同時に第二のOSも動作可能である。
【0211】更に、第5の実施の形態によれば、第一の
OSと第二のOSとで共有しなければならない領域を小
さくできる。第1ないし4の実施の形態では、共通領域
203に、割り込みテーブル、割り込みハンドラや割り
込み処理に付随するデータ構造、および、OS切り替え
コードを置かなければならなかった。第5の実施の形態
では、これらはすべて必要なくなり、互いのOSが相手
のOSを誤って破壊してしまう可能性を低くできる。
【0212】次に、本発明の第6の実施の形態について
説明する。これまで説明した実施形態が2つのOSを同
時実行する方式であるのに対し、第6の実施形態は2つ
以上の複数のOSを同時実行する方式である。
【0213】第一の実施形態では、第二のOSが第一の
OSよりも優先して実行するように制御するが、ここで
説明する方式では、複数のOS間に実行優先度を設定可
能である。例えば、割り込みについては、実行中のOS
の優先度よりも低い優先度のOSが管理する割り込みの
処理は延期される。実行中のOSの優先度よりも高い優
先度のOSが管理する割り込みが発生した場合は、即座
に実行OSを切替え割り込み処理を開始する。
【0214】また、実行中のOSが自分よりの優先度の
高いOSのモジュールを呼び出す場合は即座に実行OS
を切替えてモジュール呼び出しを実施する。その逆の場
合、つまり、優先度の低いOSの側での処理が必要にな
る場合は、そのOSが実行権を得るまで要求された処理
を延期するように制御する。
【0215】図24は、本発明の第6の実施形態の計算
機構成を示した図である。計算機構成はこれまでの実施
例と同じであるが、主記憶装置102に複数のOSがロ
ードされている様子を示している。各オペレーティング
システムは、ステップ1401に示した第二のOSをロ
ードする手順と同じ手順でロードできる。
【0216】図25は、複数のOSの関係を概念的に示
した図である。第一の実施の形態では2つのOSであっ
たのに対し、ここでは第一のOS以外に複数のOSが1
つのプロセッサ上で動作していることを示している。
【0217】第一のOSの一部である共通領域が他の第
2、第3、および、第NのOSの論理空間202、25
03、および、2504にマップされ全OSから共通に
利用できることを示している。各OSの論理空間への共
通領域のマッピングは、ステップ1401に示した手順
により実施する。
【0218】更に、各OSはそれぞれが管理する外部機
器を持っていることを示している。第二のOSは機器1
16と117、第三のOSは機器2505と2506、
第NのOSは機器2507を管理することを示してい
る。これらの機器を制御するためのI/Oアドレス範
囲、および、割り込み番号は、図7に示すカーネル構成
情報ファイル700に格納しておけば良い。図7では第
二のOS用の構成情報のみを格納しているように記述し
たが、他に第三、第四のOSの構成情報を格納してお
く。ステップ1201からの初期化手順では、第二のO
Sだけでなく第一のOS以外の全てのOSの資源を予約
して、第一のOSが第一のOS以外のOSが管理するデ
バイスへアクセスすることを禁止する。
【0219】ステップ1201から始まる手順では、ス
テップ1202で第二のOS用の主記憶を確保してい
る。これを、第一のOS以外の複数のOS用の主記憶を
確保する処理とする。また、ステップ1204は第二の
OSが管理するデバイスを予約する処理であるが、これ
を第一のOS以外のOSが管理するデバイス資源を予約
する処理とする。
【0220】本実施形態における第一のOSの初期化手
順を図26に示す。ステップ2602と2604がステ
ップ1202と1204に対応している。ステップ26
04は、カーネル構成情報ファイル700を参照して第
一OS以外のOSのデバイス資源を予約する。
【0221】この時、同時に割り込み管理テーブル15
20の処理OS1521も設定する。また、各OSの構
成情報には、デバイス資源の他にOSの優先度も記述す
る。
【0222】図27は、共通領域203に配置するデー
タ構造を示す図である。図15に示したデータ構造と比
較して、割り込み識別テーブル1520、OS識別変数
1530、および、遅延割り込み状態変数1540は同
一のデータ構造である。OSコンテクストテーブル27
10は、1510を拡張したデータ構造となっている。
【0223】テーブル2710は、各OSの実行を切替
える時に必要になるデータを保存している。ページテー
ブル設定値2701とスタックポインタ設定2702
は、あるOSを実行中に他のOSのモジュールを呼び出
す時に設定するページテーブルとスタックポインタのア
ドレスを示している。また、ページテーブル保存値27
03とスタックポインタ保存値2704は、優先度の高
いOSへの切替を実施した時の優先度が低い方のOSの
ページテーブル値、および、スタックポインタ値を保存
している。
【0224】実行状態2705は、それぞれのOSにつ
いて稼働中であるか、および、処理待ち中であるかを示
す値を格納する。ここで稼働中であるかとは、OSが起
動されているかを示す。ある瞬間に実行中であることを
示しているわけではない。各OSの起動処理は実行状態
2705を設定する。
【0225】また処理待ち中であるとは、そのOSがア
イドル状態でないことを示す。つまり、優先度の高いO
Sが実行中のため走行待ち状態にあることを示す。処理
待ち中については、具体的にどの処理が待ちになってい
るかを記述してもよい。
【0226】優先度2706は、各OSの実行優先度を
格納する。優先度は、第一OSの初期化処理手順のステ
ップ2605で、構成ファイル700より読み出し設定
する。
【0227】実行OSの切替え手順について、第二のO
Sが実行中であるとして説明する。また、OSの実行優
先度が第一より第二、第二より第三の方が優先度が高く
設定されているとする。第二のOSの処理により第三の
OS上のプロセスが走行可能になったとする。この場
合、第三のOS内部のプロセス起動モジュールを実行し
て第三のOS上のプロセスをスケジュールする。ここ
で、第三のOSは第二のOSよりも優先度が高いので、
実行OSを即座に切替えて第三のOSのモジュールが実
行される。切替え処理では現在のページテーブルアドレ
スとスタックポインタ値を、第二のOSのページテーブ
ル保存値2703とスタックポインタ保存2704値に
格納し、第三のOSのページテーブル設定値2701と
スタックポインタ設定値2702をページテーブルレジ
スタとスタックポインタに設定して実行OSを切替え
る。
【0228】第二のOSが第一のOSのモジュールを呼
び出す場合、第一のOSの優先度は第二のOSの優先度
よりも低いため、呼び出しは延期する。この場合、呼び
出し要因を実行状態2705記録しておき、第一のOS
が実行権を得た時に、すなわち、第二、および、第三の
OSが処理を終了した時に、モジュール呼び出しを実施
する。
【0229】図28は、実行OSの切替え手順を示すフ
ローチャートである。ステップ2801からの処理の大
部分は図16に示したステップ1601からの処理と同
じである。この手順は、OSの優先度については考慮し
ていないが、この手順を呼び出す前に呼出先OSの優先
度と実行中OSの優先度を比較して、実際に呼び出して
良い場合はステップ2801からの処理を実施すれば良
い。
【0230】ステップ2801から始まる処理は、切替
先OSと呼び出しモジュールのアドレスを引数として受
ける。ステップ2801では、現在のページテーブルア
ドレスとスタックポインタを、OSコンテクストテーブ
ル2710の現在実行中のOSのページテーブル保存値
2703と、スタックポインタ保存値2704に保存す
る。現在実行中のOSは、OS識別変数1530により
判定できる。
【0231】次のステップ2802では、OSコンテク
ストテーブル2710より切替先OSのページテーブル
設定値2701とスタックポインタ設定値2702を取
得し、ページテーブルとスタックの切替え処理を実施す
る。
【0232】ステップ2803では、遅延割り込み状態
をクリアする。優先度が実行中のOS以上で、切替先未
満のOSが管理するデバイスの遅延割り込み状態154
0をクリアする。
【0233】例えば、第一のOSから第三のOSのモジ
ュールを呼び出すとする。この場合、ステップ2803
では第一のOSと第二のOSが管理するデバイスの遅延
割り込み状態1540をクリアする。
【0234】続くステップ2804では、OSコンテク
ストテーブル2710の現在実行中のOSの実行状態2
705を処理待ち中に設定し、ステップ2805でOS
識別変数を切替先OSに設定し、ステップ2806で引
数として渡されたモジュールを呼び出す。
【0235】切替先のOSは実施すべき処理がなくなっ
た時点で、ステップ2807へ制御を戻す。ステップ2
807では、OSコンテクストテーブルの各OSの実行
状態2705と優先度2706を参照して、最も優先度
が高い処理待ち中のOSを見つける。
【0236】ステップ2808は、ステップ2807で
選択したOSのコンテクストを、OSコンテクストテー
ブル2710のページテーブル保存値2703とスタッ
クポインタ保存値2704より回復する。
【0237】次のステップ2809で、OS識別変数1
530を選択したOSに設定する。
【0238】OSコンテクストテーブル2700の実行
状態2705に延期されている処理があることが記録さ
れている場合は、その延期されている処理を実行する
(ステップ2810)。
【0239】続く処理では、遅延された割り込みを処理
する。ステップ2812は、遅延割り込み状態1540
を参照して、ステップ2807で選択されたOSが処理
すべき割り込みが発生していないかを検査する。選択さ
れたOSがどの割り込み番号の割り込みを管理している
かは、割り込み識別テーブル1520の処理OS152
1を参照すれば分かる。
【0240】ステップ2812の検査の結果、処理待ち
の割り込みが発生していると判定した場合はステップ2
813へ進む。ステップ2813では、処理しなければ
ならない割り込みが発生していることを選択されたOS
が認識できるように選択されたOSのデータ構造を設定
する。続くステップ2814は、割り込み識別テーブル
1520を参照して、処理する割り込みの割り込みハン
ドラ1522を呼び出す。ハンドラの処理終了後、回復
したコンテクストにしたがって、選択されたOSの実行
を再開する。
【0241】処理待ち割り込みがなければ、そのまま回
復したコンテクストにしたがって、選択されたOSの実
行を再開する。
【0242】割り込み処理について説明する。図29
は、割り込み処理手順を示すフローチャートである。図
29に示す手順を実行するルーチンはプロセッサ103
の割り込みハンドラとして割り込みテーブル400に登
録される。また、全てのOSから参照可能な共通領域に
配置される。
【0243】処理手順について説明する。まず、ステッ
プ2901では、割り込み要因より割り込みを処理する
OSを決定する。処理OSは、割り込み識別テーブル1
520の処理OS1521に記録されており、これを参
照して決定する。
【0244】割り込み発生時のOSと割り込み処理OS
が同一ならば(ステップ2902)、割り込み識別テー
ブル1520に登録されている割り込みハンドラ152
2を実行する(ステップ2903)。ハンドラ処理終了
時に割り込まれた処理を再開する。
【0245】割り込み発生時のOSと割り込み処理OS
が異なる場合は、2つのOSの優先度を比較する(ステ
ップ2904)。実行中のOSの優先度の方が高い場
合、ステップ2905へ進み、遅延割り込み状態変数1
540を設定して、割り込まれた処理を再開する。
【0246】割り込み処理OSの優先度の方が実行中の
OSよりも高い場合は、ステップ2906へ進み、割り
込み処理を開始する。
【0247】ステップ2906では、割り込み識別テー
ブル1520より割り込みハンドラアドレス1522を
取得する。続いて、割り込み発生時のコンテクストを保
存し(ステップ2907)、割り込みハンドラを呼び出
す(ステップ2908)。割り込みハンドラの呼び出し
は、図28のステップ2801から始まる手順により実
施する。
【0248】その後、割り込まれたOSに制御が戻った
時に、割り込み発生時のコンテクストを回復し(ステッ
プ2910)、割り込まれた処理を再開する。
【0249】次に、共通領域203に配置する処理モジ
ュールについて述べる。共通領域203には、ステップ
2801からのOS切替えモジュールと2901から始
まる割り込みハンドラを配置する。この他の全てのOS
から呼び出されるモジュールも共通領域203に配置す
る。例えば、各OSの割り込みハンドラを割り込み識別
テーブル1520に登録するモジュールや、OSコンテ
クストテーブル2710の実行状態2705を設定する
モジュールである。
【0250】各OSは、それぞれの初期化処理で共通領
域203の登録モジュールを呼び出して割り込みハンド
ラを登録することにより、外部割り込みの処理が可能に
なる。また、何らかの処理により実行中のOSの優先度
よりも低い優先度の他のOSの処理が可能になる場合、
実行状態2705に処理待ち中であること、あるいは、
処理待ちの要因を示す値を設定しなければならない。こ
の場合も、共通領域203内の実行状態設定モジュール
を呼び出すことにより設定する。
【0251】本実施形態によれば、第一のOSの他に複
数のOSを1つのプロセッサで実行可能となり、特別な
機能に特化したOSを組み合わせることが可能となる。
例えば、リアルタイム性に優れたOSと計算機の信頼性
を補完するOSとを組み合わせて、第一のOSの機能を
補うことができる。各OSは独立しているのでさまざま
のOSを組み合わせることができ、用途に応じた第一の
OSの機能拡張が可能になる。更に、これまで説明した
実施形態により得られる効果も損なわれることはない。
【0252】更に、OS間に優先度を設定できるので、
リアルタイムOSの優先度を最も高く設定するといった
設定も可能である。これにより、各OSの優れている機
能を有効に利用することが可能になる。
【0253】本発明の第7の実施の形態について説明す
る。本実施形態は、第6の実施の形態の拡張である。第
7の実施の形態では、複数動作している内のあるOSが
障害停止した場合に、他の残ったOSが実行継続可能な
制御方法を示す。
【0254】各OSの障害処理モジュールは、OSの実
行を停止する時に、OSコンテクストテーブル2710
の実行状態2705を、停止中であると設定しなければ
ならない。これは、前記実施形態の、共通領域203に
配置した実行状態設定モジュールの呼び出しにより実施
する。
【0255】また、各OSは、他のOSが実行を停止し
た時に呼び出されるOS停止通知ハンドラを持ち、割り
込みハンドラと同様に共通領域203内のデータ構造に
登録する。
【0256】次に、実行状態設定モジュールの処理につ
いて説明する。図30は、本モジュールの処理を示した
フローチャートである。第三のOSが停止したとして説
明する。
【0257】ステップ3001では、OSコンテクスト
テーブル2710の実行状態2705を設定する。
【0258】ステップ3002では、設定された実行状
態を検査する。もし、OS実行停止に設定されたらなら
ば、ステップ3003へ進む。そうでなければモジュー
ルの処理は終了する。
【0259】ステップ3003では、停止したOSより
も優先度が高い稼働中のOSのOS停止通知ハンドラを
呼び出す。呼び出しは、ステップ2801からのOS切
替えにより呼び出す。優先度が低いOSについては、実
行状態2706にOS停止ハンドラ実行待ちであること
を記録する。また、各OSのOS停止通知ハンドラは、
割り込みハンドラと同様に、各OSの初期化時に共通領
域内に配置されたデータ領域に登録されるものとする。
【0260】実行OS切替え処理では、切替先のOSが
実行を停止していないかを検査する処理が必要である。
図28のフローチャートにしたがって説明する。
【0261】まず、切替え処理を始める前に、切替先が
稼働中かを検査しなければならない。ステップ2801
の前に、OSコンテクストテーブル2710の実行状態
2705を検査して、稼働中でなければ切替え処理を終
了させる。
【0262】更に、ステップ2807での次の実行OS
の選択では、処理待ち中のOSの検索対象から稼働して
いないOSを除外するようにする。
【0263】選択したOSの実行を再開する前に、選択
したOSの実行状態2705を検査し、OS停止通知ハ
ンドラの実行待ちが記録されているならば、OS停止通
知ハンドラを実行する。
【0264】次に、割り込み処理について説明する。図
29のフローチャートにしたがって説明する。ステップ
2901の割り込み処理OS決定の後、処理OSが稼働
中か検査する。ここで稼働中でないと判定した場合、割
り込みを解除して割り込まれた処理を再開させるように
する。
【0265】以上の処理により、第一のOS以外に複数
のOSが1つのプロセッサ上で同時に動作している時に
いくつかのOSが障害により停止しても、他の残りのO
Sは動作を継続することが可能になる。
【0266】また、各OSの障害停止が他のOSに通知
されるので、OS間で連携して処理を実施している場合
でも、その通知をもとに各OSで障害処理を実施するこ
とが可能であり、計算機全体としての信頼性を高めるこ
とができる。
【0267】これまで述べた実施の形態では、それぞれ
のOSは互いに異なるOSであっても、同一のOSが含
まれていても良い。
【0268】
【発明の効果】本発明は、特別なハードウェアの支援な
しで、第一のOSに欠けている機能を容易に導入する方
法であり、さらに、その機能は第一のOSとは全く独立
して動作させることを可能にする。
【0269】本発明によれば、第一のOSに対する変更
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に2つのオペレーティングシス
テムを同時に動作させることが可能になる。
【0270】仮想計算機による方式で発生するオーバー
ヘッドについて、本発明では、それぞれのデバイスにつ
いて、デバイスを管理するオペレーティングシステムを
予め決定し、さらに、物理メモリについて利用できる範
囲を初期化時に決定することにより、オペレーティング
システム同士が互いに干渉しないようにして、仮想計算
機でのような複雑なソフトウェアによる制御を廃止し、
命令エミュレーションによるオーバーヘッドも削減し、
高速化のためのハードウェアも不要とした。
【0271】従来技術においても、第一のOSの構成要
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二のOSとして組み込めば、第
一のOSが停止してしまったときでも、何らかの回復処
理を実現させるといったことが可能になる。
【0272】また、第一のOSは、第二のOSがアイド
ル時にしか動作できないことや、第二のOSの割り込み
はいつでもすぐに処理することにより、第二のOSを優
先させることができる。これにより、第一のOSが実時
間処理に適合していなくても、第二のOSとして実時間
処理に向くOSを導入すれば、第一のOSの特徴を活か
したままで、実時間処理性能に優れた計算機システムを
構築することが可能になる。
【0273】また、第一のOSのカーネルが、カーネル
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで2つのオペレーティングシステムを同時に動作させ
ることが可能になる。これにより、更に変更しなければ
ならない部分が限定されるため、カーネル本体を変更す
るよりも容易に実施可能となる。
【0274】また、プログラムの記述によりオブジェク
トファイル中に自由にセクションを設けることができる
ならば、それを利用して第一のOSと第二のOSとで共
通に参照する必要のある領域を特別なセクションに閉じ
込めることで、OS間の独立性を高めることができ、O
S間の干渉の少ない安全な計算機システムの構築が可能
になる。
【0275】本発明によれば、第一のOSに対する変更
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に複数のオペレーティングシス
テムを同時に動作させることが可能になる。
【0276】複数のオペレーティングシステムを動作実
行させた場合でも、上に示した効果を得ることができ
る。
【0277】従来技術においても、第一のOSの構成要
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二、第三のOSとして組み込め
ば、第一のOSが停止してしまったときでも、何らかの
回復処理を実現させるといったことが可能になる。
【0278】また、第一のOSの他に複数のOSを1つ
のプロセッサで実行可能なことにより、特別な機能に特
化したOSを組み合わせることが可能となる。例えば、
リアルタイム性に優れたOSと計算機の信頼性を補完す
るOSとを組み合わせて、第一のOSの機能を補うこと
ができる。各OSは独立しているのでさまざまのOSを
組み合わせることができ、他の効果を損なうことなく用
途に応じた第一のOSの機能拡張が可能になる。
【0279】また、複数のOS間に実行優先度を設定で
きることにより、第一のOSが実時間処理に適合してい
なくても、実時間処理に向く第二のOSを最高優先度に
設定すれば、第一、および、第二のOS以外のOSの特
徴を活かしたままで、実時間処理性能に優れた計算機シ
ステムを構築できすることが可能となる。
【0280】また、第一のOSのカーネルが、カーネル
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで複数のオペレーティングシステムを同時に動作させ
ることが可能になる。また、プログラムの記述によりオ
ブジェクトファイル中に自由にセクションを設けること
ができるならば、それを利用して全てのOSで共通に参
照する必要のある領域を特別なセクションに閉じ込める
ことで、OS間の独立性を高めることができ、OS間の
干渉の少ない安全な計算機システムの構築が可能にな
る。
【図面の簡単な説明】
【図1】本発明の実施の形態の、計算機構成を示す図で
ある。
【図2】本発明の実施の形態の、計算機構成を示す図で
ある。
【図3】本発明の実施の形態の、ページテーブルの構成
を示す図である。
【図4】本発明の実施の形態の、割り込みテーブルの構
成を示す図である。
【図5】本発明の実施の形態の、割り込み制御装置の構
成を示す図である。
【図6】本発明の実施の形態の、計算機のブート手順を
示すフローチャートである。
【図7】本発明の実施の形態の、第一のOSのカーネル
構成情報ファイルの構成を示す図である。
【図8】本発明の実施の形態の、オブジェクトファイル
の構成を示す図である。
【図9】本発明の実施の形態の、オブジェクトファイル
の構成を示す図である。
【図10】本発明の実施の形態の、オブジェクトファイ
ルの構成を示す図である。
【図11】本発明の実施の形態の、カーネル起動パラメ
ータテーブルのデータ構造を示す図である。
【図12】本発明の実施の形態の、第一のOSの初期化
手順を示すフローチャートである。
【図13】本発明の実施の形態の、第一のOSのデバイ
ス管理テーブルのデータ構造を示す図である。
【図14】本発明の実施の形態の、第二のOSの起動手
順を示すフローチャートである。
【図15】本発明の実施の形態の、第一のOSと第二の
OSが共有するデータ構造を示す図である。
【図16】本発明の実施の形態の、実行OSの切り替え
手順を示すフローチャートである。
【図17】本発明の実施の形態の、割り込み処理手順を
示すフローチャートである。
【図18】本発明の実施の形態の、第一のOSの割り込
みマスク処理のためのデータ構造を示す図である。
【図19】本発明の第2の実施の形態の、第一のOSの
障害停止処理を示すフローチャートである。
【図20】本発明の第3の実施の形態の、第一のOSと
第二のOSのカーネル領域の構成を示す図である。
【図21】本発明の第4の実施の形態の、オブジェクト
ファイルの構成を示す図である。
【図22】本発明の第5の実施の形態の、計算機システ
ムの構成を示す図である。
【図23】本発明の第5の実施の形態の、割り込み制御
装置の構成を示す図である。
【図24】本発明の第6の実施の形態の、計算機構成を
示す図である。
【図25】本発明の第6の実施の形態の、計算機構成を
示す図である。
【図26】本発明の第6の実施の形態の、第一のOSの
初期化手順を示すフローチャートである。
【図27】本発明の第6の実施の形態の、全てのOSが
共有するデータ構造を示す図である。
【図28】本発明の第6の実施の形態の、実行OSの切
り替え手順を示すフローチャートである。
【図29】本発明の第6の実施の形態の、割り込み処理
手順を示すフローチャートである。
【図30】本発明の第6の実施の形態の、OS実行状態
設定手順を示すフローチャートである。
【符合の説明】
100は計算機、101はプロセッサ、102は主記憶
装置、103は演算装置、104は割り込みレジスタ、
105はページテーブルレジスタ、106はアドレス変
換装置、107は割り込みテーブル、108はページテ
ーブル、109はバス、110は割込み信号線、111
はクロック生成装置、112は割り込み制御装置、11
3ないし117は外部入出力装置、118は割り込みバ
スである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大野 洋 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 井上 太郎 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 柴田 隆 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】計算機の制御方法に関し、第一のオペレー
    ティングシステムの起動時に他のオペレーティングシス
    テムが利用するハードウェア資源を第一のOSの管理対
    象から外して他のオペレーティングシステムに与える手
    順と、すべてのオペレーティングシステムで共有してい
    る領域に配置した共通の割り込み処理手順とを有し、前
    記割り込み処理手順が各オペレーティングシステムの実
    行をスケジュールすることにより、各オペレーティング
    システムが実行する特権命令のエミュレート処理、およ
    び、装置なしで、複数のオペレーティングシステムを一
    台の計算機で同時に動作させることを特徴とするマルチ
    OS構成方法。
  2. 【請求項2】請求項1のマルチOS構成方法であって、
    第一のオペレーティングシステムの初期化処理時に、第
    二のオペレーティングシステム用のハードウェア資源を
    第一のオペレーティングシステムの初期化以降の処理で
    はアクセスできないように予約する手順と、予約した物
    理メモリに第二のオペレーティングシステムをロードし
    て第一のオペレーティングシステムとは別の仮想アドレ
    ス空間で第二のオペレーティングシステムを起動する手
    順と、第一のオペレーティングシステムのカーネル領域
    の一部分を第二のオペレーティングシステムと共有する
    ように設定する手順と、第二のオペレーティングシステ
    ムが受け取る外部割り込みについて、第一のオペレーテ
    ィングシステムからは割り込み禁止にできないように第
    一のオペレーティングシステムのデータ構造を変更する
    手順とを有することを特徴とするマルチOS構成方法。
  3. 【請求項3】請求項1のマルチOS構成方法であって、
    割り込みを捕獲したときに割り込み要因よりどのオペレ
    ーティングシステムに割り込み処理させるかを決定する
    手順と、第一のオペレーティングシステムから第二のオ
    ペレーティングシステムのモジュールを呼び出す手順
    と、第二のオペレーティングシステムの処理が終了した
    ときに第一のオペレーティングシステムに復帰する手順
    を有することにより、2つのオペレーティングシステム
    を一台の計算機上で同時に動作させることを特徴とする
    マルチOS構成方法。
  4. 【請求項4】請求項1ないし3のマルチOS構成方法で
    あって、第一のオペレーティングシステムが回復不可能
    な障害で停止したときに第二のオペレーティングシステ
    ムにそのことを通知する手順と、停止時に第二のオペレ
    ーティングシステムが管理しているデバイスの割り込み
    を許可する手順と、第二のオペレーティングシステムの
    処理終了時に、第一のオペレーティングシステムが停止
    しているかを判定し、停止している場合は割り込み待ち
    を実施する手順を有することにより、第一のオペレーテ
    ィングシステムが停止しても第二のオペレーティングシ
    ステムが動作を継続できることを特徴とするマルチOS
    構成方法。
  5. 【請求項5】請求項1ないし4のマルチOS構成方法で
    あって、両方のオペレーティングシステムで共有しなけ
    ればならない命令コードとデータを専用の領域に閉じ込
    めたカーネルオブジェクトファイルを利用し、第二のオ
    ペレーティングシステム起動時に第一のカーネルオブジ
    ェクトファイルの前記領域を見つけ、その領域のみを共
    有領域に設定する手順を有することで、共有領域を小さ
    くできることを特徴とするマルチOS構成方法。
  6. 【請求項6】請求項1ないし5のマルチOS構成方法で
    あって、第二のオペレーティングシステムの実行中に第
    一のオペレーティングシステムの管理するデバイスから
    の割り込みを受けたときにはそれを記録する手順、ある
    いは、装置と、第二のオペレーティングシステムの処理
    が終了して第一のオペレーティングシステムに制御を戻
    す時に、第二のオペレーティングシステム実行中に発生
    した割り込みの処理を開始する手順と、第二のオペレー
    ティングシステムが管理しているデバイスからの割り込
    みは、第一のオペレーティングシステムが実行中であっ
    ても即座にオペレーティングシステムを切り替えて割り
    込み処理を開始する手順とを有し、これらの手順により
    第一のオペレーティングシステムを、第二のオペレーテ
    ィングシステムのアイドル時だけ動作するようにスケジ
    ュールして、第二のオペレーティングシステムが管理す
    るデバイスが発生する割り込みに対する応答時間を短縮
    することを特徴とするマルチOS構成方法。
  7. 【請求項7】請求項1ないし5のマルチOS構成方法で
    あって、複数のプロセッサと、外部機器からの割り込み
    を特定のプロセッサ、あるいは、プロセッサ群に通知す
    ることを指定できる装置を持っている計算機で、第一の
    オペレーティングシステムの初期化時に第二のオペレー
    ティングシステム用にプロセッサを予約する手順と、第
    二のオペレーティングシステムを前記手順で予約したプ
    ロセッサで起動する手順と、外部機器からの割り込みを
    それぞれの機器を管理するオペレーティングシステムが
    走行しているプロセッサ、あるいは、プロセッサ群に通
    知するように設定する手順を有することを特徴とするマ
    ルチOS構成方法。
  8. 【請求項8】計算機の制御方法に関し、第一のオペレー
    ティングシステムが起動時に読み込まれる複数のファイ
    ルから構成されていて、ハードウェア依存の処理がカー
    ネル本体のファイルから分離されている場合に、前記ハ
    ードウェア依存処理ファイルを変更して、請求項1ない
    し7を実現することを特徴とするマルチOS構成方法。
  9. 【請求項9】請求項1のマルチOS構成方法であって、
    第一のオペレーティングシステムの初期化処理時に、他
    の複数のオペレーティングシステム用のハードウェア資
    源を第一のオペレーティングシステムの初期化以降の処
    理ではアクセスできないように予約する手順と、予約し
    た物理メモリに他の複数のオペレーティングシステムを
    ロードして第一のオペレーティングシステムとは別の仮
    想アドレス空間で他のオペレーティングシステムを起動
    する手順と、第一のオペレーティングシステムのカーネ
    ル領域の一部分を他の複数のオペレーティングシステム
    と共有するように設定する手順とを有することにより、
    1プロセッサの計算機で複数のオペレーティングシステ
    ムが動作可能であることを特徴とするマルチOS構成方
    法。
  10. 【請求項10】請求項9のマルチOS構成方法であっ
    て、第一のオペレーティングシステムの内の他の複数の
    オペレーティングシステムと共有している領域にあるモ
    ジュールを介して、実行中のオペレーティングシステム
    以外のオペレーティングシステムのモジュールを呼び出
    す手順を有することを特徴とするマルチOS構成方法。
  11. 【請求項11】請求項9ないし10のマルチOS構成方
    法であって、割り込みを捕獲したときに割り込み要因よ
    り複数実行されているオペレーティングシステムのうち
    のどのオペレーティングシステムに割り込み処理させる
    かを決定する手順と、前記手順により決定したオペレー
    ティングシステムの割り込み処理モジュールを呼び出す
    手順と、割り込み発生時に実行していたオペレーティン
    グシステムに制御を戻す手順を有することにより、1つ
    のプロセッサを有する計算機で複数のオペレーティング
    システムを同時に動作させることを特徴とするマルチO
    S構成方法。
  12. 【請求項12】請求項9ないし10のマルチOS構成方
    法であって、1つ以上のオペレーティングシステムが回
    復不可能な障害で停止したときに、他の停止していない
    複数のオペレーティングシステムにそのことを通知する
    手順と、停止しているオペレーティングシステムが管理
    している割り込みを禁止する手順と、停止したオペレー
    ティングシステムのモジュール呼び出しを禁止する手順
    を有することにより、停止した以外の複数のオペレーテ
    ィングシステムが動作を継続できることを特徴とするマ
    ルチOS構成方法。
  13. 【請求項13】請求項9ないし10のマルチOS構成方
    法であって、複数のオペレーティングシステムで共有し
    なければならない命令コードとデータを専用の領域に閉
    じ込めたオブジェクトファイルを利用し、第一のオペレ
    ーティングシステム以外のオペレーティングシステム起
    動時に第一のオペレーティングシステムのオブジェクト
    ファイルの前記領域を見つけ、その領域のみを共有領域
    に設定する手順を有することで、共有領域を小さくでき
    ることを特徴とするマルチOS構成方法。
  14. 【請求項14】請求項9ないし10のマルチOS構成方
    法であって、複数のオペレーティングシステムの間に実
    行優先度を設定する手順を有することを特徴とするマル
    チOS構成方法。
  15. 【請求項15】請求項14のマルチOS構成方法であっ
    て、実行中のオペレーティングシステムが他のオペレー
    ティングシステムのモジュールを呼び出す時に、実行中
    のオペレーティングシステムの優先度が呼出先のオペレ
    ーティングシステムの優先度よりも低ければ、即座に実
    行オペレーティングシステムを切替えてモジュール呼び
    出しを実施する手順と、実行中のオペレーティングシス
    テムの優先度が呼出先のオペレーティングシステムの優
    先度よりも高ければ、モジュール呼び出し要求があるこ
    とを記録して呼び出しを延期し、呼出先のオペレーティ
    ングシステムよりも優先度の高いオペレーティングシス
    テムの処理が終了して、呼出先のオペレーティングシス
    テムが実行可能になった時にモジュール呼び出しを実施
    する手順を有することを特徴とするマルチOS構成方
    法。
  16. 【請求項16】請求項14のマルチOS構成方法であっ
    て、実行中のオペレーティングシステムAの優先度より
    も低い優先度のオペレーティングシステムBが処理する
    割り込みが発生した時にそれを記録して処理を延期する
    手順、あるいは、装置と、オペレーティングシステムA
    の処理が終了してオペレーティングシステムBが実行さ
    れる時に、オペレーティングシステムA実行中に発生し
    た割り込みの処理を開始する手順と、実行中のオペレー
    ティングシステムよりも優先度の高いオペレーティング
    システムが管理しているデバイスからの割り込みは、即
    座に実行オペレーティングシステムを切り替えて割り込
    み処理を開始する手順とを有し、優先度の高いオペレー
    ティングシステムが管理するデバイスが発生する割り込
    みに対する応答時間を短縮することを特徴とするマルチ
    OS構成方法。
  17. 【請求項17】請求項16のマルチOS構成方法であっ
    て、各オペレーティングシステムが管理する割り込み
    と、各オペレーティングシステムに割り当てられている
    優先度と、実行中のオペレーティングにしたがって、外
    部機器からの割り込みの許可と禁止の設定をする手段を
    有することを特徴とするマルチOS構成方法。
  18. 【請求項18】請求項9ないし17のマルチOS構成方
    法であって、複数のプロセッサと、外部機器からの割り
    込みを特定のプロセッサ、あるいは、プロセッサ群に通
    知することを指定できる装置を持っている計算機で、第
    一のオペレーティングシステムの初期化時に他の複数の
    オペレーティングシステム用にプロセッサを予約する手
    順と、他の複数のオペレーティングシステムを前記手順
    で予約したプロセッサで起動する手順と、外部機器から
    の割り込みをそれぞれの機器を管理するオペレーティン
    グシステムが走行しているプロセッサ、あるいは、プロ
    セッサ群に通知するように設定する手順を有することを
    特徴とするマルチOS構成方法。
  19. 【請求項19】請求項9のマルチOS構成方法であっ
    て、第一のオペレーティングシステム以外のオペレーテ
    ィングシステムが受け取る外部割り込みについて、第一
    のオペレーティングシステムからは前記割り込みを禁止
    にできないように第一のオペレーティングシステムのデ
    ータ構造を変更する手順とを有することを特徴とするマ
    ルチOS構成方法。
  20. 【請求項20】請求項1ないし6、および、請求項8な
    いし17のマルチOS構成方法であって、1つのプロセ
    ッサで複数のオペレーティングシステムを動作させるこ
    とを特徴とするマルチOS構成方法。
JP00829998A 1997-09-12 1998-01-20 マルチos構成方法 Expired - Fee Related JP3546678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00829998A JP3546678B2 (ja) 1997-09-12 1998-01-20 マルチos構成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24817897 1997-09-12
JP9-248178 1997-09-12
JP00829998A JP3546678B2 (ja) 1997-09-12 1998-01-20 マルチos構成方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2000391839A Division JP2001216172A (ja) 1997-09-12 2000-12-20 マルチos構成方法
JP2003319222A Division JP2004038995A (ja) 1997-09-12 2003-09-11 マルチos構成方法

Publications (2)

Publication Number Publication Date
JPH11149385A true JPH11149385A (ja) 1999-06-02
JP3546678B2 JP3546678B2 (ja) 2004-07-28

Family

ID=26342792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00829998A Expired - Fee Related JP3546678B2 (ja) 1997-09-12 1998-01-20 マルチos構成方法

Country Status (1)

Country Link
JP (1) JP3546678B2 (ja)

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001093032A1 (en) * 2000-05-31 2001-12-06 Hitachi, Ltd. Computer system, method of controlling computer, and medium storing control program
JP2002318719A (ja) * 2001-04-24 2002-10-31 Hitachi Ltd 高信頼計算機システム
EP1318645A3 (en) * 2001-12-05 2005-04-20 Hitachi, Ltd. Network system enabling transmission control
JP2005228323A (ja) * 2004-02-12 2005-08-25 Internatl Business Mach Corp <Ibm> テクノロジの利用に関する追跡ならびに請求書作成の方法およびシステム
JP2005327269A (ja) * 2004-04-30 2005-11-24 Microsoft Corp マルチメディアコンソール上のシステムアプリケーション
JP2006012122A (ja) * 2004-04-30 2006-01-12 Microsoft Corp マルチメディアコンソール内の並列システムアプリケーション
US6996828B1 (en) 1997-09-12 2006-02-07 Hitachi, Ltd. Multi-OS configuration method
US7069519B1 (en) 1999-09-24 2006-06-27 Hitachi, Ltd. Method, apparatus and navigation apparatus for sharing display by plural operating systems
EP1703385A2 (en) 2005-03-18 2006-09-20 Fujitsu Limited Operating system switchover method
JP2006522971A (ja) * 2003-04-09 2006-10-05 ジャルナ エスアー オペレーティングシステム
US7127723B2 (en) 2000-03-02 2006-10-24 Hitachi, Ltd. Information processing apparatus with multiple operating systems
US7243266B2 (en) 2003-10-09 2007-07-10 Hitachi, Ltd. Computer system and detecting method for detecting a sign of failure of the computer system
JP2007323142A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 情報処理装置およびその制御方法
US7366814B2 (en) 2005-11-28 2008-04-29 Hitachi, Ltd. Heterogeneous multiprocessor system and OS configuration method thereof
JP2008251000A (ja) * 2007-03-16 2008-10-16 Symantec Corp フェイルセーフ式コンピュータ支援アシスタント
JP2009032241A (ja) * 2008-06-05 2009-02-12 Hitachi Ltd 計算機システム及び計算機制御方法,制御プログラムを格納した記憶媒体
US7529861B2 (en) 2006-07-25 2009-05-05 Ntt Docomo, Inc. Peripheral switching device and a peripheral switching control device
JP2009175971A (ja) * 2008-01-23 2009-08-06 Hitachi Ltd 制御装置
WO2009113394A1 (ja) * 2008-03-14 2009-09-17 三菱電機株式会社 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
US8032786B2 (en) 2007-06-06 2011-10-04 Hitachi, Ltd. Information-processing equipment and system therefor with switching control for switchover operation
WO2011148447A1 (ja) * 2010-05-24 2011-12-01 パナソニック株式会社 仮想計算機システム、領域管理方法、及びプログラム
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
JP2012089147A (ja) * 2006-05-26 2012-05-10 Intel Corp ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
JP2013515293A (ja) * 2009-12-24 2013-05-02 ▲華▼▲為▼▲終▼端有限公司 組み込みシステムにおけるオペレーティングシステムを管理するための方法と装置
JP2013517552A (ja) * 2010-01-13 2013-05-16 マーベル・イスラエル・(エム・アイ・エス・エル)・リミテッド メディア処理のためのハードウェア仮想化
DE112010005951T5 (de) 2010-10-22 2013-07-25 Mitsubishi Electric Corporation Unterbrechungssignal-Annahmevorrichtung und Computervorrichtung
US8555285B2 (en) 2003-08-26 2013-10-08 Fujitsu Limited Executing a general-purpose operating system as a task under the control of a real-time operating system
EP2808786A1 (en) 2013-05-31 2014-12-03 Hitachi Ltd. Method of controlling computer system and computer system
JP2015526789A (ja) * 2012-06-15 2015-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクション実行におけるプログラム割り込みフィルタ処理
US9361124B2 (en) 2013-06-13 2016-06-07 Hitachi, Ltd. Computer system and startup method
US9740521B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Constrained transaction execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9766925B2 (en) 2012-06-15 2017-09-19 International Business Machines Corporation Transactional processing
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9792125B2 (en) 2012-06-15 2017-10-17 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9811337B2 (en) 2012-06-15 2017-11-07 International Business Machines Corporation Transaction abort processing
US9851978B2 (en) 2012-06-15 2017-12-26 International Business Machines Corporation Restricted instructions in transactional execution
US9977740B2 (en) 2014-03-07 2018-05-22 Hitachi, Ltd. Nonvolatile storage of host and guest cache data in response to power interruption
US9983883B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US10185588B2 (en) 2012-06-15 2019-01-22 International Business Machines Corporation Transaction begin/end instructions
US10223214B2 (en) 2012-06-15 2019-03-05 International Business Machines Corporation Randomized testing within transactional execution
US10289564B2 (en) 2015-07-08 2019-05-14 Hitachi, Ltd. Computer and memory region management method
US10599435B2 (en) 2012-06-15 2020-03-24 International Business Machines Corporation Nontransactional store instruction
JP2023503110A (ja) * 2019-11-22 2023-01-26 華為技術有限公司 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置
CN115981924A (zh) * 2022-12-26 2023-04-18 元心信息科技集团有限公司 设备控制方法、电子设备及存储介质

Cited By (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996828B1 (en) 1997-09-12 2006-02-07 Hitachi, Ltd. Multi-OS configuration method
US7069519B1 (en) 1999-09-24 2006-06-27 Hitachi, Ltd. Method, apparatus and navigation apparatus for sharing display by plural operating systems
US7127723B2 (en) 2000-03-02 2006-10-24 Hitachi, Ltd. Information processing apparatus with multiple operating systems
WO2001093032A1 (en) * 2000-05-31 2001-12-06 Hitachi, Ltd. Computer system, method of controlling computer, and medium storing control program
US7210043B2 (en) 2001-04-24 2007-04-24 Hitachi, Ltd. Trusted computer system
JP2002318719A (ja) * 2001-04-24 2002-10-31 Hitachi Ltd 高信頼計算機システム
EP1318645A3 (en) * 2001-12-05 2005-04-20 Hitachi, Ltd. Network system enabling transmission control
US7047407B2 (en) 2001-12-05 2006-05-16 Hitachi, Ltd. Network system enabling transmission control
US9361121B2 (en) 2002-03-29 2016-06-07 Intel Corporation System and method for execution of a secured environment initialization instruction
JP2011243216A (ja) * 2002-03-29 2011-12-01 Intel Corp 安全な環境を初期化する命令を実行するシステムおよび方法
US10175994B2 (en) 2002-03-29 2019-01-08 Intel Corporation System and method for execution of a secured environment initialization instruction
JP2014089753A (ja) * 2002-03-29 2014-05-15 Intel Corp 安全な環境を初期化する命令を実行するプロセッサ、方法、システム及び媒体
US10042649B2 (en) 2002-03-29 2018-08-07 Intel Corporation System and method for execution of a secured environment initialization instruction
US9990208B2 (en) 2002-03-29 2018-06-05 Intel Corporation System and method for execution of a secured environment initialization instruction
US10031759B2 (en) 2002-03-29 2018-07-24 Intel Corporation System and method for execution of a secured environment initialization instruction
JP2006522971A (ja) * 2003-04-09 2006-10-05 ジャルナ エスアー オペレーティングシステム
US8555285B2 (en) 2003-08-26 2013-10-08 Fujitsu Limited Executing a general-purpose operating system as a task under the control of a real-time operating system
US7243266B2 (en) 2003-10-09 2007-07-10 Hitachi, Ltd. Computer system and detecting method for detecting a sign of failure of the computer system
JP2005228323A (ja) * 2004-02-12 2005-08-25 Internatl Business Mach Corp <Ibm> テクノロジの利用に関する追跡ならびに請求書作成の方法およびシステム
US8707317B2 (en) 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
JP2006012122A (ja) * 2004-04-30 2006-01-12 Microsoft Corp マルチメディアコンソール内の並列システムアプリケーション
JP2005327269A (ja) * 2004-04-30 2005-11-24 Microsoft Corp マルチメディアコンソール上のシステムアプリケーション
EP1703385A3 (en) * 2005-03-18 2009-01-21 Fujitsu Limited Operating system switchover method
EP1703385A2 (en) 2005-03-18 2006-09-20 Fujitsu Limited Operating system switchover method
US7366814B2 (en) 2005-11-28 2008-04-29 Hitachi, Ltd. Heterogeneous multiprocessor system and OS configuration method thereof
JP2012089147A (ja) * 2006-05-26 2012-05-10 Intel Corp ポイントツーポイント相互接続システム上のセキュアな環境初期化命令の実行
US8973094B2 (en) 2006-05-26 2015-03-03 Intel Corporation Execution of a secured environment initialization instruction on a point-to-point interconnect system
JP2007323142A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 情報処理装置およびその制御方法
US7529861B2 (en) 2006-07-25 2009-05-05 Ntt Docomo, Inc. Peripheral switching device and a peripheral switching control device
JP2008251000A (ja) * 2007-03-16 2008-10-16 Symantec Corp フェイルセーフ式コンピュータ支援アシスタント
US8032786B2 (en) 2007-06-06 2011-10-04 Hitachi, Ltd. Information-processing equipment and system therefor with switching control for switchover operation
JP2009175971A (ja) * 2008-01-23 2009-08-06 Hitachi Ltd 制御装置
JPWO2009113394A1 (ja) * 2008-03-14 2011-07-21 三菱電機株式会社 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
US8484452B2 (en) 2008-03-14 2013-07-09 Mitsubishi Electric Corporation Multi-operating system (OS) booting apparatus, multi-OS booting program, recording medium, and multi-OS booting method
DE112009000612T5 (de) 2008-03-14 2011-03-10 Mitsubishi Electric Corp. Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
WO2009113394A1 (ja) * 2008-03-14 2009-09-17 三菱電機株式会社 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
JP2009032241A (ja) * 2008-06-05 2009-02-12 Hitachi Ltd 計算機システム及び計算機制御方法,制御プログラムを格納した記憶媒体
JP2013515293A (ja) * 2009-12-24 2013-05-02 ▲華▼▲為▼▲終▼端有限公司 組み込みシステムにおけるオペレーティングシステムを管理するための方法と装置
JP2013517552A (ja) * 2010-01-13 2013-05-16 マーベル・イスラエル・(エム・アイ・エス・エル)・リミテッド メディア処理のためのハードウェア仮想化
US9063868B2 (en) 2010-05-24 2015-06-23 Panasonic Intellectual Property Corporation Of America Virtual computer system, area management method, and program
JP5612681B2 (ja) * 2010-05-24 2014-10-22 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、領域管理方法、及びプログラム
WO2011148447A1 (ja) * 2010-05-24 2011-12-01 パナソニック株式会社 仮想計算機システム、領域管理方法、及びプログラム
KR101475640B1 (ko) * 2010-10-22 2014-12-22 미쓰비시덴키 가부시키가이샤 인터럽트 신호 접수 장치 및 컴퓨터 장치
US9361251B2 (en) 2010-10-22 2016-06-07 Mitsubishi Electric Corporation Interrupt signal accepting apparatus and computer apparatus managing operations of at least two operating systems
DE112010005951T5 (de) 2010-10-22 2013-07-25 Mitsubishi Electric Corporation Unterbrechungssignal-Annahmevorrichtung und Computervorrichtung
US10430199B2 (en) 2012-06-15 2019-10-01 International Business Machines Corporation Program interruption filtering in transactional execution
US10599435B2 (en) 2012-06-15 2020-03-24 International Business Machines Corporation Nontransactional store instruction
US9766925B2 (en) 2012-06-15 2017-09-19 International Business Machines Corporation Transactional processing
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9792125B2 (en) 2012-06-15 2017-10-17 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9811337B2 (en) 2012-06-15 2017-11-07 International Business Machines Corporation Transaction abort processing
US9851978B2 (en) 2012-06-15 2017-12-26 International Business Machines Corporation Restricted instructions in transactional execution
US9858082B2 (en) 2012-06-15 2018-01-02 International Business Machines Corporation Restricted instructions in transactional execution
US11080087B2 (en) 2012-06-15 2021-08-03 International Business Machines Corporation Transaction begin/end instructions
US9983915B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9983881B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9983883B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US9983882B2 (en) 2012-06-15 2018-05-29 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US10719415B2 (en) 2012-06-15 2020-07-21 International Business Machines Corporation Randomized testing within transactional execution
US9996360B2 (en) 2012-06-15 2018-06-12 International Business Machines Corporation Transaction abort instruction specifying a reason for abort
US9740521B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Constrained transaction execution
US10684863B2 (en) 2012-06-15 2020-06-16 International Business Machines Corporation Restricted instructions in transactional execution
US10606597B2 (en) 2012-06-15 2020-03-31 International Business Machines Corporation Nontransactional store instruction
US10185588B2 (en) 2012-06-15 2019-01-22 International Business Machines Corporation Transaction begin/end instructions
US10223214B2 (en) 2012-06-15 2019-03-05 International Business Machines Corporation Randomized testing within transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US10353759B2 (en) 2012-06-15 2019-07-16 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
JP2015526789A (ja) * 2012-06-15 2015-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクション実行におけるプログラム割り込みフィルタ処理
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US10558465B2 (en) 2012-06-15 2020-02-11 International Business Machines Corporation Restricted instructions in transactional execution
US9495172B2 (en) 2013-05-31 2016-11-15 Hitachi, Ltd. Method of controlling computer system and computer system
EP2808786A1 (en) 2013-05-31 2014-12-03 Hitachi Ltd. Method of controlling computer system and computer system
US9361124B2 (en) 2013-06-13 2016-06-07 Hitachi, Ltd. Computer system and startup method
US9977740B2 (en) 2014-03-07 2018-05-22 Hitachi, Ltd. Nonvolatile storage of host and guest cache data in response to power interruption
US10289564B2 (en) 2015-07-08 2019-05-14 Hitachi, Ltd. Computer and memory region management method
JP2023503110A (ja) * 2019-11-22 2023-01-26 華為技術有限公司 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置
CN115981924A (zh) * 2022-12-26 2023-04-18 元心信息科技集团有限公司 设备控制方法、电子设备及存储介质
CN115981924B (zh) * 2022-12-26 2023-10-13 元心信息科技集团有限公司 设备控制方法、电子设备及存储介质

Also Published As

Publication number Publication date
JP3546678B2 (ja) 2004-07-28

Similar Documents

Publication Publication Date Title
JP3546678B2 (ja) マルチos構成方法
US7712104B2 (en) Multi OS configuration method and computer system
US9304794B2 (en) Virtual machine control method and virtual machine system using prefetch information
EP4195020B1 (en) Computer device, exception processing method and interrupt processing method
US9009701B2 (en) Method for controlling a virtual machine and a virtual machine system
EP2296089B1 (en) Operating systems
CN100392598C (zh) 操作系统
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
JP2539913B2 (ja) デ―タ処理システム
JP2007507779A (ja) オペレーティングシステム
JP2001216172A (ja) マルチos構成方法
JP4026667B2 (ja) マルチos構成方法
US7096472B2 (en) Systems and methods for ensuring atomicity of processes in a multitasking computing environment
US11385927B2 (en) Interrupt servicing in userspace
JP2001236237A (ja) マルチos構成方法
JP2001175486A (ja) 計算機システム
JP2004038995A (ja) マルチos構成方法
JPS6097440A (ja) 仮想多重プロセツサ装置
JP2022055002A (ja) 情報処理装置、情報処理方法および情報処理プログラム
JPS6139135A (ja) 仮想計算機システムにおけるインタバル・タイマ割り込み制御装置
Halvorsen et al. Operating System Fundamentals

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees