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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
バヘッドの大きいOS制御方式に対し、ソフトウエアだ
けで容易に一台の計算機で複数OSを同時走行する方式
を提供する。本発明によれば、第一のOSから完全に独
立して動作する新機能を完全に計算機に組み込むことが
でき、それにより割込応答時間の短縮や信頼性の向上を
実現できる。 【解決手段】第一のOSと他のOSが管理するハードウ
ェア資源を分割する手順と、他のOSを起動する手順
と、実行OSを切替える手順と、割り込み要因により割
り込み処理するOSを決定し、適切な割り込みハンドラ
を起動する手順により、複数のOSの同時実行を実現す
る。
Description
数のオペレーティングシステムを稼働させるマルチOS
構成方法に関する。
グシステムが動作し、それが計算機のプロセッサ、メモ
リ、および、二次記憶装置等の計算機資源を管理し、計
算機が効率良く動作できるように資源スケジュールを実
施している。オペレーティングシステムには様々な種類
がある。バッチ処理に優れるものや、TSS(TimeSharingS
ystem)に優れるもの、GUI(Graphical User Interface)
に優れているものなど様々である。
システムを1台の計算機で同時に実行したいというニー
ズがある。例えば、大型計算機においては、実際の業務
に伴うオンライン処理を実行するオペレーティングシス
テムと、開発用のオペレーティングシステムを一台の計
算機で動作させたいという要求がある。あるいは、GU
Iの整っているオペレーティングシステムと、実時間性
に優れているオペレーティングシステムを同時に稼働さ
せたい等という要求もある。
ステムは、単独で計算機資源の管理を実施することを仮
定しており、複数のオペレーティングシステムの共存
は、何らかの機構なしには不可能である。
システムを動作させる機構としては、大型計算機で実現
されている仮想計算機方式(OSシリーズ第11巻 V
M、岡崎 世雄他著、共立出版株式会社)がある。仮想
計算機方式では、仮想計算機制御プログラムが全ハード
ウェア資源を占有して管理し、それを仮想化して仮想計
算機を構成する。仮想計算機を構成する制御部は、物理
メモリ、入出力機器装置、外部割り込み等を仮想化す
る。
計算機に対してはあたかも0番地から始まる物理メモリ
のように振舞い、入出力装置を識別する装置番号も同様
に仮想化されている。更に、磁気ディスクの記憶領域も
分割して磁気ディスク装置の仮想化まで実現している。
グラムにより構築された仮想計算機上で実行されるよう
に制御プログラムによりスケジュールされる。 しか
し、大型計算機における仮想計算機方式では、計算機資
源を完全に仮想化、および、分割しようとするため、仮
想計算機を構成する制御部分が複雑であり問題である。
合、仮想計算機上で動作するオペレーティングシステム
が発行する制御レジスタの設定、入出力命令等の特権命
令は、仮想計算機制御プログラムによりエミュレートし
なければならないため、オーバーヘッドが大きくなり問
題である。実際、仮想計算機を実装している大型計算機
では、仮想計算機用に特別なプロセッサ機能やマイクロ
コード等のハードウェアを追加してオーバーヘッドの削
減を図っている。仮想計算機方式は、完全に計算機資源
を仮想化することを目的としているため複雑であり、更
に、仮想計算機の高性能化のためには特殊なハードウェ
ア機構が必要であり問題である。
ングシステムのインターフェイスを提供する技術とし
て、マイクロカーネルがある。マイクロカーネルでは、
マイクロカーネルの上に、ユーザに見せるオペレーティ
ングシステム機能を提供するオペレーティングシステム
サーバを構築し、ユーザはそのサーバを経由して計算機
資源を利用する。オペレーティングシステム毎のサーバ
を用意すれば、ユーザに様々のオペレーティングシステ
ム環境を提供することができる。
レーティングシステムサーバをマイクロカーネルに合わ
せて新規に構築する必要がある。多くの場合、現在ある
オペレーティングシステムをマイクロカーネル上で動作
するように変更することになるが、スケジューリング、
メモリ管理等のカーネルの中枢部分も変更することにな
り、変更箇所が多く、また、変更箇所がオペレーティン
グシステムの中枢部分に及ぶため変更作業が複雑で容易
でなく問題である。
マイクロカーネルのサービスを利用することになるが、
これは通常のオペレーティングシステムではないことで
あり、オーバーヘッドとなり性能低下をもたらす。
は、複数のオペレーティングシステムを同時に動作させ
るために、全計算機資源を仮想化する手法によってい
た。しかし、この方式では制御プログラムが複雑になる
問題がある。更に、この方式では特権命令のエミュレー
ションが必要となるため、性能を得るには特別なハード
ウェアが必要であり問題である。
期化処理部分、割り込み管理部分の変更、および、割り
込み管理プログラムの追加により、特別なハードウェア
なしで複数オペレーティングシステムの同時実行を実現
する。本発明では、特権命令のエミュレーションは不要
なため、各オペレーティングシステムの実行に新たなオ
ーバーヘッドは伴わない。
システムを補完する機能を容易に追加でき、高機能な計
算機システムの構築が可能になる。更に、デバイスドラ
イバとは異なり、第一のオペレーティングシステムとは
全く独立して動作する機能を組み込むことができるた
め、第一のオペレーティングシステムに依存しない高信
頼化機能を追加することも可能になる。
チオペレーティングシステム環境を構成する方法では、
それぞれのオペレーティングシステムのインターフェイ
スを提供するオペレーティングシステムサーバの構築が
難しいという問題がある。本発明によれば、オペレーテ
ィングシステムへの変更は初期化部分と割り込み管理部
分のみに限定されるため、簡単にマルチオペレーティン
グシステム環境を構成できる。
おいて、第二のOSが必要とする物理メモリ、外部デバ
イス等の計算機資源を予約し、どちらのOSからも独立
した管理プログラムが外部割り込みを横取りして、割り
込み要因によりどのOSの割り込みハンドラを起動すべ
きか決定し、OSの実行状態により割り込みハンドラを
起動するタイミングを決定して、それの基づいて各OS
の割り込みハンドラを起動することにより、2つのOS
を一台の計算機で動作させる。
する。
ついて説明する。図1は本発明の実施の形態における計
算機100の構成を示す図である。
憶装置102、バス109、割り込み信号線110、ク
ロック割り込み生成器111、割り込み制御装置11
2、ブート手順を格納している記憶装置118、およ
び、割り込みバス119より構成されている。
器と割り込み制御装置112を接続している。外部機器
が割り込みを発生すると、割り込み信号線110を経由
して割り込み制御装置112が信号を受けとり、割り込
み制御装置112は、この信号を数値化して、割り込み
バス119を介してプロセッサ101に渡す。
な割り込みを生成する。
の割り込み要求を受け付け、要求元にしたがって数値化
された割り込み信号を生成し、プロセッサ101に送
る。また、プロセッサ101からの指示により、特定の
機器からの割り込み信号をプロセッサ101に通知しな
いようにすることができるとする。
り込みテーブルレジスタ104、ページテーブルレジス
タ105、および、アドレス変換装置106より構成さ
れている。
込みテーブル107の仮想アドレスを指し示している。
割り込みテーブルの詳細については後述するが、割り込
み番号毎の割り込みハンドラの開始アドレスを記録して
いる。図1で、割り込みテーブルレジスタ104と割り
込みテーブル107の接続を破線で記載しているのは、
割り込みテーブルレジスタ104が割り込みテーブルの
仮想アドレスを指し示すためである。割り込みが発生す
ると、プロセッサ101は割り込み制御装置112から
数値化された割り込み番号を受ける。この番号をインデ
ックスとして割り込みテーブル107より割り込みハン
ドラアドレスを取得し、割り込みハンドラに制御を渡
す。
テーブル108を指し示している。ページテーブルレジ
スタ105は、ページテーブル108の物理アドレスを
格納している。
求する命令アドレス、あるいは、オペランドが格納され
ているアドレスを受けとり、ページテーブルレジスタ1
05の指しているページテーブル108の内容に基づき
仮想−実アドレス変換を実施する。
ーボード113、ディスプレイ114、磁気ディスク1
15、その他の外部機器116、および、117が接続
している。ディスプレイ114を除く機器は割り込み信
号線110により割り込み制御装置112に接続してい
る。
明する。現在、計算機101では2つのオペレーティン
グシステムが動作している。それぞれを第一のオペレー
ティングシステム、第二のオペレーティングシステムと
呼ぶことにする。また、計算機を起動すると第一のOS
が起動するように設定されており、外部機器116、お
よび、117は第二のOSにより管理される機器である
とする。
の他のオペレーティングシステム用に、この場合は第二
のOS用に物理メモリ領域を予約する。つまり、第一の
OSが、第二のOS用に予約された物理メモリ領域を利
用できないように物理メモリ領域を確保する。図1は、
この奪った領域に第二のOSがロードされている様子を
示している。
のOSから外部機器116、および、117の利用する
割り込み番号や入出力アドレスを、既に利用済みである
として予約する。
ィングシステムから参照可能な共通領域を持つ。その共
通領域に、割り込みテーブル107、割り込み管理プロ
グラム、割り込みハンドラ、各オペレーティングシステ
ムから呼びだし可能なインターフェイスモジュール等を
格納する。
説明する。本実施の形態では、第二のOSは第一のOS
よりも優先して動作する。優先して動作するとは、第一
のOSは第二のOSがアイドル状態であるときのみ動作
可能であることを示す。第二のOSの処理が終了しない
限り、第一のOSは動作できない。
り込みを発生すると、第一のOSの処理は中断され、制
御は第二のOSに移る。第二のOS実行中に第一の割り
込みが発生しても、その割り込み処理は第一のOSが実
行されるまで延期される。
区分されており、割り込みハンドラなどを配置する共通
領域以外は、互いにアクセスできないようにする。これ
により、2つのオペレーティングシステムが誤って互い
の領域にアクセスして障害が起きることを防いでいる。
形態について説明する。
のオペレーティングシステムの関係を概念的に示した図
である。それぞれのオペレーティングシステムは、それ
ぞれ独立したアドレス空間を保持する。201は第一の
OSの仮想空間で、202は第二のOSの仮想空間を示
している。ここで、第二のOSの空間202に対応する
実記憶は、図1の主記憶102の第二のOSの領域にな
る。
マップされる。共通領域203に対応する実記憶は、図
1の主記憶102の共通領域として示した領域である。
共通領域203は、もともとは第一のOSのカーネルの
領域の一部である。第二のOSをロードする手順が、ア
ドレス空間202を構築する時に、共通領域203をア
ドレス空間202にマッピングするように第二のOS用
のページテーブルを作成する。この手順については後述
する。
理するハードウェアを示している。第一のOSは、キー
ボード113、ディスプレイ114、および、磁気ディ
スク115を、第二のOSは入出力装置116、およ
び、117を管理することを示している。クロック11
1と割り込み制御装置112は、もともとは第一のOS
が管理しているハードウェアであるが、共通領域203
中のプログラムが管理することを示している。
する。図3は、本発明の実施の実施の形態でのページテ
ーブルの構成を示している。
ーブル300は、プロセッサ101の仮想アドレス空間
の仮想ページ毎に、それぞれの仮想ページを記述するエ
ントリを持っている。それぞれのエントリは、有効ビッ
ト301と、物理ページ番号302により構成される。
応する物理ページが割り当てられているか、つまり、仮
想−実アドレス変換が可能かを示している。例えば、ペ
ージテーブル300の仮想ページ3は、有効ビットがセ
ットされていないので、仮想ページ3に対応する物理ペ
ージが存在しないことを示している。有効ビット301
がセットされていない仮想ページへのアクセスが発生す
ると、プロセッサはページフォルトを発生する。
応する物理ページ番号を記録している。
ルレジスタ105の指し示しているページテーブルの内
容を参照して、演算装置103の生成する仮想アドレス
を実アドレスに変換する。プロセッサ101は、変換に
より得られた実アドレスにより主記憶装置102を参照
する。
した空間を構築することができ、図2に示した第一のオ
ペレーティングシステムの空間、および、第二のオペレ
ーティングシステムの空間の構築が可能である。また、
共通領域203については、両方のオペレーティングシ
ステムのページテーブルの共通領域に対応する部分に、
同じ物理ページをマップするように設定しておけば、共
通領域を実現できる。
明する。図4は、割り込みテーブルの構成を示してい
る。
みテーブル400は、プロセッサ101が割り込み制御
装置112から受ける割り込み番号毎の、割り込みハン
ドラの仮想アドレス401を記録している。プロセッサ
101は割り込み要求を割り込み制御装置112から受
けると、割り込み番号に対応する割り込みハンドラのア
ドレスを、割り込みテーブルレジスタ104の指し示し
ている割り込みテーブル400から取得し、そのアドレ
スに制御を移すことで割り込み処理を開始する。
いる。割り込み制御装置112は、割り込みマスクレジ
スタ501、および、選択装置502を持っている。
み信号線110により割り込み制御装置112と接続す
る。入出力機器の発生する割り込みは、割り込み信号線
110のどの信号線に接続するかにより優先順位が付け
られる。ここでは、割り込み0番に対応する割り込み信
号がもっとも優先度が高い割り込みであるとする。
に接続している。選択装置502は、割り込み信号を受
けると、プロセッサがその割り込みを受け付けたことを
通知するまで、未処理の割り込みがあることを記録して
いる。
機器の発生した割り込みをプロセッサに通知してよいか
を記録している。割り込みマスクレジスタ501は、プ
ロセッサ101から入出力命令により設定可能である。
から割り込み要求を受けた時と、割り込みマスクレジス
タ501の内容が書き換えられた時に、選択装置502
が記録している未処理割り込みと、割り込みマスクレジ
スタ502の内容を比較して、プロセッサに割り込みを
通知するかどうかを決める。具体的には、選択装置50
2が記録している未処理割り込みのうち、割り込みマス
クレジスタ501に割り込み可能と設定されていて、優
先度の最も高い割り込みから順にプロセッサに通知す
る。選択した割り込みについて、選択装置502は、通
知する割り込み信号に対応する数字信号を、割り込みバ
ス119経由でプロセッサ101に送る。
に、入出力命令により選択装置502に記録されている
未処理割り込み記録を解消できる。
機のブート手順について説明する。
記憶装置である118に格納されている。記憶装置11
8は、プロセッサの物理アドレス空間のある決められた
アドレスにマップされるようにバス109を介してプロ
セッサ101に接続している。この手順は、ハードウェ
ア構成の検出、オペレーティングシステムカーネルをロ
ードするプログラムの主記憶へのローディングを実施す
る。
ロセッサ101は予め定められた物理アドレスに制御を
移す。記憶装置118は、この時に実行されるプログラ
ムを格納しており、プロセッサ101がリセットされた
時にこのプログラムに制御を渡せるように物理アドレス
空間にマップされている。
ムは、磁気ディスク装置112に格納されている第一の
OSのカーネルローダを主記憶装置102にロードして
実行する。カーネルローダは、磁気ディスク装置112
の予め定められた位置にあり、記憶装置118に格納さ
れたプログラムは、容易にこれを見つけることができ
る。
る。図6は、本発明の実施の形態における、オペレーテ
ィングシステムのカーネルローダの処理手順を示すフロ
ーチャートである。
システムのファイルシステム構造を理解して、ファイル
名よりファイルの格納位置を特定し、主記憶に読み込む
ことができるよう構成されている。
る。まず、カーネルにパラメータとして渡す主記憶リス
ト1101、ロードモジュールリスト1104、およ
び、デバイスリスト1102を初期化し、カーネル用の
ページテーブル領域を割り当てる(ステップ601)。
3つのリストの構成については後述する。
2の利用状況を示すデータ構造であり、カーネルローダ
が以降の処理で物理メモリの割り当てをする場合は、主
記憶リスト1101を参照、および、変更して実施す
る。
602)、および、ハードウェア構成データの作成(ス
テップ603)を実施する。ステップ602において
は、計算機100にどのような接続されているかハード
ウェアが検査する。続くステップ603では、ステップ
602の結果に基づいてハードウェア構成に関するデー
タ構造であるデバイスリスト1102を作成する。オペ
レーティングシステムカーネルは、このデバイスリスト
1102を参照してカーネル初期化処理を実施する。
の構成情報700を磁気ディスク装置112より読み込
み、パラメータテーブル1100に構成情報のアドレス
を設定する(ステップ604)。オペレーティングシス
テムのカーネルは、カーネル本体のファイルと、その他
のデバイスドライバのファイルといったように、複数の
ファイルから構成されていても良い。構成情報700
は、予め決められたファイル名で磁気ディスク112に
格納されており、ロードプログラムはこれを見つけるこ
とができる。
報のデータ構造を図7に示す。700は、カーネル構成
情報を記録しているファイルの内容を示している。構成
情報ファイル700は、カーネルローダやオペレーティ
ングシステムが参照するデータを格納している。格納さ
れているデータには名前がつけられており、プログラム
は名前からそれに対応するデータを取得することができ
る。図7の例では、名前がオブジェクトファイル(70
1)というエントリがあり、そのデータが702に格納
されている。また、secondary OSには、第二のOS用の
データ(704)を格納しているとする。
る。構成情報700を読み込んだ後、構成情報700中
のオブジェクトファイルという名前のつけられたデータ
に格納されているカーネル構成ファイルのすべてについ
て、主記憶装置102に読み込み(ステップ606)、
ロードモジュールリスト1104にエントリを追加し
(ステップ607)、カーネル用のページテーブルの設
定(ステップ608)を実施する。ここでは、kern
el、driver1、および、driver2という
ファイル名のオブジェクトファイルをロードする。
と、カーネル用のページテーブルの設定は、主記憶10
2にロードしたオブジェクトファイルに格納されている
データにしたがって実施する。カーネルを構成するオブ
ジェクトファイルには、そのファイル内容をマップする
仮想アドレス、ファイルの大きさなどが含まれている。
これを参照してページテーブルを構築する。オブジェク
トファイルのデータ構造については後述する。
を、構築したページテーブルのアドレスに設定し、プロ
セッサを仮想アドレス変換モードに移行させ(ステップ
609)、構築した主記憶リスト1101、デバイスリ
スト1102、カーネル構成情報テーブル1103、お
よび、ロードオブジェクトリスト1104の組から成る
パラメータテーブル1110をパラメータとして、カー
ネルの初期化ルーチンに制御を渡す(ステップ61
0)。カーネルのエントリポイントは、カーネルファイ
ル内のデータに記録されている。
ァイルの構造について説明する。図8は、本発明の実施
の形態での、カーネルを構成するオブジェクトファイル
の構造を示す図である。
している。オブジェクトファイル800は、801ない
し811のヘッダ部分と、812ないし813のセクシ
ョン部分より構成される。
ダマップアドレス801とヘッダサイズ802は、オブ
ジェクトファイル800ヘッダ部分のカーネル空間での
格納位置を記述している。ヘッダ部分は、ヘッダマップ
アドレス801に記録されているアドレスに読み込まれ
る。
ァイル800の初期化用ルーチンのアドレスを記録して
いる。カーネルは、カーネル初期化時に各オブジェクト
ファイルの初期化ルーチンを呼ぶときに、各オブジェク
トファイルの初期化エントリ803を参照して初期化ル
ーチンを見つける。
イル800に含まれているセクションの数を記録してい
る。セクションとは、オブジェクトファイル内の連続し
ているデータ領域で、これを単位としてカーネルの仮想
空間へのマッピングを決定する。例えば、オブジェクト
ファイルは、実行コードが格納されているセクション
と、そのオブジェクトファイルが参照するデータを格納
しているセクションを含んでいる。これらのセクション
はオブジェクトファイル作成時にコンパイラにより作成
される。
参照テーブルサイズ806は、このオブジェクトファイ
ル内の実行コードが参照する、他のオブジェクトファイ
ルの公開参照の情報を格納する外部参照テーブル810
を記述している。外部参照テーブル810は、オブジェ
クトファイル800のヘッダ部分に含まれており、外部
参照テーブルオフセット805は、ヘッダの先頭からの
外部参照テーブル810のオフセットを記録している。
参照テーブルサイズ808は、このオブジェクトファイ
ルが他のオブジェクトファイルの実行コードに公開して
いるモジュールとデータの情報を格納している公開参照
テーブル811を記述している。公開参照テーブル81
1は、オブジェクトファイル800のヘッダ部分に含ま
れており、公開参照テーブルオフセット807は、ヘッ
ダの先頭からの公開参照テーブル811のオフセットを
記録している。
ファイル800に含まれる各セクションについてのデー
タを格納している。セクションデータは、セクション数
804の数だけある。セクションデータの構成について
は後述する。
810と、公開参照テーブル811が続き、ヘッダ部分
を構成する。
812、813が格納されている。
明する。セクション開始オフセット820とセクション
サイズ821は、オブジェクトファイル800内での、
当該セクションの開始オフセットと、当該セクションの
大きさを記録している。
822に記録されたアドレスに配置されるようにカーネ
ルの仮想空間にマップされる。セクション名称823に
は、当該セクションの名前を示す文字列が格納されてい
る。
る。図9は、外部参照テーブルの構造を示している。テ
ーブル810の先頭には、このテーブルに含まれる外部
参照情報の数901が格納されている。
外部参照名903が格納されている。オブジェクトファ
イル名902と外部参照名903は、文字列テーブル9
05へのオフセット値を格納しており、実際の文字列に
よる名称は文字列テーブル905内に格納されている。
部参照エントリで記述される外部参照の実際のアドレス
が格納される。カーネルは、オブジェクトファイルを主
記憶にロードするときに、当該の外部参照を含むオブジ
ェクトファイルの公開参照のテーブルを参照して関数、
あるいは、データのアドレスを取得し、外部参照アドレ
ス904に設定する。オブジェクトファイルの実行コー
ドは、外部関数アドレス904に格納されたアドレスを
参照して、他のオブジェクトファイル内の関数の呼び出
しや、データの参照をするようコンパイルされており、
他オブジェクトモジュールにある関数の実行や、データ
参照が可能である。
名903、および、外部参照アドレス904が1つの外
部参照を定義し、外部参照数901に記録されている数
だけ、これらのエントリが連続して配置される。その後
に、文字列テーブル905が格納される。文字列テーブ
ルは、オブジェクトファイル名や、外部参照名の文字列
を格納している。
る。図10は、公開参照テーブルの構造を示す図であ
る。
テーブル811により他のオブジェクトモジュールに公
開される参照名の数1001が記録されている。1つの
公開参照は、公開参照名1002と公開参照アドレス1
003により記述される。公開参照名1002は、文字
列テーブル1004へのオフセット値を格納しており、
実際の文字列による名前は文字列テーブル1004に格
納されている。公開参照アドレス1003は、この参照
に対応するアドレスを格納している。
順が作成するハードウェア構成データと、ロードオブジ
ェクトデータの構成について説明する。図11がハード
ウェア構成データとロードオブジェクトデータの構成を
示す図である。
ローダが作成するデータ構造である。パラメータテーブ
ル1100から始まる3つのリストは、ローダが構築す
るカーネルの仮想空間に配置されるので、カーネルから
参照可能である。
構築した3つのリストの先頭へのポインタと、1つのテ
ーブルへのポインタを保持している。3つのリストと
は、主記憶リスト1101、デバイスリスト1102、
および、ロードオブジェクトリスト1104で、1つの
テーブルはカーネル構成情報テーブル1103である。
それぞれについて説明する。
記述データ1110のリストである。主記憶ブロック記
述データ1110は、ベースアドレス1111、ブロッ
クサイズ1112、ブロック利用状況1113、およ
び、次の主記憶ブロック記述データへのポインタ111
4から構成されている。
た主記憶領域についての利用状況を記録している。ベー
スアドレス1111は連続領域の開始物理アドレスを示
し、ブロックサイズ1112は連続領域の大きさを格納
している。ブロック利用状況1113は、当該連続領域
が未使用であるか、あるいは、ローダにより割り当て済
みであるかを示す値が格納されている。そして、次エン
トリへのポインタ1114によりリストを構成してい
る。図11では、1110の次のエントリは1120で
ある。主記憶リスト1101を参照することで、物理メ
モリの利用状態を知ることができる。
ダが検出したハードウェアデバイスに関するデータを格
納しており、ステップ603で作成されている。デバイ
スリスト1103は、デバイスデータ1150からなる
リストである。デバイスデータ1150は、デバイスタ
イプ1151、デバイス情報1152、および、次のデ
バイスデータへのポインタ1153より構成される。
データエントリ1150により記述されるデバイスの種
類を示す値が格納されている。デバイス情報1152
は、デバイスの種類に特有なデータを格納している。例
えば、割り込み番号やI/Oアドレスなどがそれに相当
する。そして、次エントリへのポインタ1153により
リストを構成している。
103は、カーネルローダが主記憶102に読み込んだ
カーネル構成情報ファイル700の内容を指し示してい
る。
ーネルローダが主記憶にロードしたオブジェクトファイ
ルに関するデータを保持している。ロードオブジェクト
リストは、ロードオブジェクトデータ1130のリスト
である。ロードオブジェクトデータ1130は、オブジ
ェクトファイル名1131、オブジェクトアドレス11
32、および、次のロードオブジェクトデータへのポイ
ンタ1133より構成されている。
ドオブジェクトデータ1130により記述されているオ
ブジェクトファイルのファイル名である。オブジェクト
アドレス1132は、当該オブジェクトファイルのヘッ
ダ領域がロードされているカーネル空間のアドレスを格
納している。そして、次エントリへのポインタ1133
によりリストを構成している。
ーネルローダがカーネルを構成するオブジェクトファイ
ルを読み込む時に同時に作成している(ステップ60
7)。
OSの初期化手順について説明する。図12は、第一の
OSの初期化手順を示すフローチャートである。
タテーブル1100中のロードオブジェクトリスト11
04を参照して、カーネルローダがロードしたオブジェ
クトファイルの外部参照アドレス解決を実施する(ステ
ップ1201)。アドレス解決では、各オブジェクトフ
ァイルにある外部参照テーブル810の、外部参照アド
レス904を決定する。アドレスは、各オブジェクトフ
ァイルの公開参照テーブル811を参照して決定する。
動時のパラメータとして渡されたパラメータテーブル1
100の主記憶リスト1101を参照して、第二のOS
用に主記憶領域を確保する。
00より第二のOSの情報を取り出す。図7の例では、
第二のOSの構成情報は704に格納されている。この
構成情報704を参照して、確保すべき主記憶の大きさ
を決定する。そして、主記憶リスト1101の空きブロ
ックエントリの内容を変更して、主記憶領域を割り当て
る。この処理は、第一のOSが空きメモリ管理を始める
前に実施する。
のOSに割り当てた主記憶領域は存在しないことにな
り、第一のOSから参照されることがなくなる。したが
って、割り当てた領域は、第二のOSが自由に使うこと
のできる主記憶領域となる。これは、図1の第二のOS
の領域に相当する。
のデータ構造の初期化を実施する。この初期化には、後
で述べるデバイス管理テーブルの初期化も含む。
するデバイスを予約する。ここで予約するとは、第一の
OSから利用できないようにすることである。具体的に
は、第一のOSが管理しているデバイス管理テーブルへ
の登録を実施する。
ラメータテーブル1100のカーネル構成情報テーブル
1103の指すテーブル700に格納されている、第二
のOSの構成情報を参照して決める。この実施形態で
は、図7の704に格納されているデータがそれに相当
する。
図13は、第一のOSのデバイス管理テーブルの構造を
示した図である。デバイス管理テーブルは、割り込みベ
クタ管理テーブル1300と、I/Oアドレス管理リス
ト1310の2つのデータ構造からなる。
プロセッサ101が受け付ける各割り込み番号につい
て、第一のOSがその割り込み番号を利用するかどうか
を示す値を格納している。カーネルは、デバイスドライ
バが初期化時に割り込み番号を要求した場合に、このテ
ーブル1300を検査し、要求された割り込み番号が利
用されているか検査し、そうでない場合にのみ要求され
た割り込み番号を使用する権利をデバイスドライバに与
える。既に利用済みであると記されている場合は、その
デバイスは第一のOSからは利用できないことになる。
て説明する。入出力装置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の管
理下におくことができる。
ても同様である。I/Oアドレス管理リスト1310
は、I/Oアドレス範囲を表現するエントリ1320か
らなるリストである。エントリ1320は、第一のOS
が利用するI/Oアドレス範囲1321と、リストを構
成するための次のエントリへのポインタ1322からな
る。割り込みベクタ管理テーブル1300と同様、デバ
イスドライバが初期化時にI/Oアドレス範囲を要求し
た場合、カーネルは、そのアドレス範囲が既に利用され
ているかI/Oアドレス管理リスト1310により検査
し、未使用である場合、このリスト1310にエントリ
を追加して、利用許可を与える。
I/Oアドレス範囲は、割り込み番号と同様にカーネル
構成情報テーブル700に格納されているので、それを
参照すれば要求アドレスを知ることができ、第一のOS
がデバイス管理を開始する前にI/Oアドレスを予約で
きる。
Sから完全に独立した第二のOS専用の空間を構築する
ことが可能になる。さらに、ステップ1204の処理に
より、第一のOS上で動作するユーザプログラムは、第
二のオペレーティングシステムが管理するデバイス、こ
の例では、入出力装置116と117へのアクセスが不
可能になる。また、装置116と117の割り込み番号
とI/Oアドレスを利用するデバイスドライバを導入す
ることを禁止できる。
第一のOSが関知しない部分に第二のOSを導入するこ
とが可能になる。
1207は通常のオペレーティングシステムの初期化処
理と同じである。ステップ1205のシステムデバイス
の初期化では、カーネルが直接管理するシステムデバイ
スの初期化を実施する。システムデバイスとは、クロッ
ク割り込みなど、第一のOSの実行に不可欠で、第一の
OSが必ず存在していると仮定しているデバイスであ
る。
ロードしたオブジェクトファイルについて、それぞれの
初期化エントリを実行する。初期化エントリアドレス
は、オブジェクトファイルのヘッダ部分に格納されてい
る。最後に、初期プロセスを作成する(ステップ120
7)。
のOSのロード手順について説明する。図14は、第二
のOSのロード手順を示すフローチャートである。
リ領域に、第二のOSのオブジェクトファイルを読み込
む必要がある。しかし、第二のOSの物理メモリ領域
は、そのままでは第一のOSから書き込むことはできな
いので、割り当てた物理メモリ領域を第一のOSの仮想
空間に一時的にマッピングする(ステップ1401)。
域に、第一のOSのファイル読み込み手順を利用して、
第二のOSのオブジェクトファイルを読み込む。なお、
第二のOSのオブジェクトファイルの形式は、第一のO
Sのオブジェクトファイル形式800と同じ形式である
とする。
成する(ステップ1403)。このページテーブルも第二
のOS用の領域に作成する。この時に、第一のOSと共
有する部分について、第二のOSの空間からも参照でき
るように、ページテーブルを構築する。
共通データの管理を実施するデバイスドライバ(以下サ
ポートドライバ)をロードした領域を共通領域203と
する。このデバイスドライバがロードされたアドレス
は、ロードオブジェクトリスト1104より知ることが
できる。また、続くステップ1404で、第二のOSの
カーネルの外部参照を解決する。但し、第二のOSが直
接参照できる他のオブジェクトファイルの参照は、共通
領域203に配置されている関数とデータ、つまり、サ
ポートドライバの公開参照のみである。したがって、こ
こでは、サポートドライバのオブジェクトファイルのヘ
ッダ部分に格納されている公開参照テーブル811を参
照して、第二のOSのカーネルオブジェクトファイルの
外部参照テーブル810の外部アドレス904を決定す
る。
を、共通領域のデータ領域に割り当てられた外部参照ア
ドレステーブルに書き込む。共通領域となっているサポ
ートドライバは、第一のOSのデバイスドライバとし
て、第一のOSの機構にしたがって読み込むため、第二
のOSの公開参照とリンクすることはできない。
内に必要な外部参照名と、それに対応する外部アドレス
を格納するテーブルを予め用意しておく。サポートドラ
イバの実行コードは、このテーブルを参照して第二のO
Sのカーネルの公開関数の呼びだし、公開データの参照
を実施するように記述する。そして、第二のOSのロー
ド時に、このテーブルの外部アドレス欄にサポートドラ
イバの公開参照のアドレスを書き込むこととする。
第一のOSのカーネル領域にマップした、第二のOS用
の物理メモリ領域のマッピングを解除する(ステップ1
406)。
の第二のOSのコンテクストと、OS識別変数1530
を設定する(ステップ1407)。OSコンテクスト
は、実行オペレーティングシステムを切り替えるときに
参照するデータ構造で、ページテーブルアドレス値とス
タックポインタの初期値とで構成する。ここでは、ペー
ジテーブルレジスタ値として第二のOSをマップするペ
ージテーブルのアドレスを、スタックポインタ値として
第二のOSのカーネルスタックの初期アドレスを設定す
る。OS識別変数1530には、第一のOSが実行中で
あることを示す値を格納する。OSコンテクストテーブ
ル1510とOS識別変数1530については後述す
る。
行する(ステップ1408)。これには、オペレーティ
ングシステム空間の切替が伴う。オペレーティングシス
テムの切替えについては、別のフローチャートにより説
明する。また、第二のOSの初期化モジュールは公開参
照になっており、サポートドライバはそのアドレスを知
ることができる。
り込みテーブル104に登録されている第一のOSの割
り込みハンドラのアドレスを、割り込み識別テーブル1
520のハンドラの欄1522にコピーし、割り込みテ
ーブルレジスタ値を、サポートドライバに割り当てた割
り込みテーブルのアドレスに変更する。これは、プロセ
ッサ101の割り込みテーブルレジスタ104の変更に
より実施する。
テーブルに変更するのは、割り込み発生時にどちらのオ
ペレーティングシステムが実行していても、常にプロセ
ッサ101の仮想アドレス空間に割り込みテーブルが存
在している必要があるためである。割り込みテーブルに
登録される割り込みハンドラも、サポートドライバ内に
配置する。サポートドライバの領域は、ステップ140
3にて、第二のOSの仮想空間にもマッピングして共通
領域203とするので、いつでも参照できることにな
る。サポートドライバの割り込み処理については後述す
る。
の割り込み管理情報も変更する。具体的には、割り込み
禁止レベルに関連するデータ構造を変更するが、これに
ついては後述する。
いて説明する。図15は、共通領域203のうちのデー
タ領域1500に格納するデータ構造を示した図であ
る。図15にしたがって順に説明する。
ある。OSコンテクストテーブル1510は、第一のO
Sと第二のOSとの間の切替えに必要なデータを保持す
る。この実施の形態では、第一のOSは第二のOSがア
イドル状態の時のみ走行できるとする。この場合、第一
のOS実行中のある時点で第二のOSへの切替が起こ
り、第二のOSの実行が終了した時点で、第一のOSに
制御を戻せば良い。
ればならないコンテクストは1組で良い。第一のOSの
コンテクストについては、OS切替が要求された時点で
のページテーブルレジスタ値1511と、スタックポイ
ンタ値1512を保存しておけば、第二のOS実行終了
後に、第一のOSに制御を復帰させることができる。
切り替えるときには第二のOSは動作していない。した
がって、第二のOSのコンテクストは、ページテーブル
アドレスもスタックポインタも固定の値でよい。第二の
OSのページテーブルレジスタ値1513とスタックポ
インタ値1514は、第二のOSをロードするときに設
定する(ステップ1407)。
る。割り込み識別テーブル1520は、外部割り込みの
割り込み番号毎に、どちらのオペレーティングシステム
が割り込みを処理するかを示す値1521と、割り込み
ハンドラのアドレス1522が記録されている。外部割
込みが発生すると、共通領域203内の割り込みハンド
ラが割り込みを捕獲し、この割り込み識別テーブル15
20の処理OS1521を参照して、どちらのOSに処
理させるかを決定し、ハンドラ1522のアドレスへ制
御を渡す。割り込み処理の詳細については、後述する。
ステムを示す値を格納しているOS識別変数である。こ
の変数1530は、ステップ1601から始まるOS切
り替え手順でOS切り替えの度に設定する。割り込み処
理では、この変数1530を参照して割り込み処理手順
を決定する。
のOSが管理しているデバイスの割り込みが発生したか
を示す遅延割り込み状態変数である。この変数1540
は、どの割り込み番号の割り込みが発生したかを記録し
ている。OS切り替え手順は、第二のOSの実行が終了
したときにこの変数1540を検査して、割り込み処理
を起動するか決定する(ステップ1608)。
ついて説明する。図16は、本発明の実施の形態におけ
る、オペレーティングシステムの切替え手順を示すフロ
ーチャートである。この切り替え手順は、第一のOSの
実行中に呼び出され、第二のOSの切り替えを実施す
る。
り替え後に実行する第二のOSのモジュールのアドレス
と、そのモジュールへ渡す引数を引数として受ける。第
二のOSのモジュールのアドレスは、共通領域203内
に設定した、外部参照アドレステーブルを参照すれば知
ることができる。
スタックポインタ値とページテーブルレジスタ値を、O
Sコンテクストテーブル1510の、第一のOSのコン
テクストとして保存する。ステップ1601では、現在
のスタックポインタ値を1512に、現在のページテー
ブルレジスタ105の値を1511に保存する。
コンテクストテーブル1510に保存する必要はない。
必要があれば、第一のOSのスタックに保存すればよ
い。
タ値を保存した後、ステップ1602にて、ページテー
ブルレジスタ105に第二のOSを仮想空間にマップす
るページテーブルのアドレスを設定する。これは、OS
コンテクストテーブル1510の1513に記録されて
いる。更に、スタックポインタを第二のOS用に設定す
る。これも、テーブル1600の第二のOSのスタック
ポインタ1514に格納されている。
り込み状態を示す遅延割り込み状態変数1540をクリ
アする。状態変数1540は、第二のOS実行中に発生
した、第一のOSが管理しているデバイスからの割り込
みの発生状況を記録する変数である。第二のOSを実行
する前に、これをクリアしておく。
S識別変数1530を、第二のOSを示す値に書き換え
る(ステップ1604)。スタックポインタ、ページテ
ーブルレジスタ105、および、OS識別変数1530
は、常に一貫した値になっていなければならないので、
ここまでのステップ1601、ないし、1604は全て
の外部割り込みを禁止した状態で実行しなければならな
い。
れたモジュールのアドレスへ制御を移し、第二のオペレ
ーティングシステムに制御を渡す。本発明のこの実施の
形態においては、第一のOSは第二のOSが実行してい
ない時、つまり、第二のOSがアイドル状態のときだけ
実行できるとする。したがって、第二のOSの処理が終
了した時に、ステップ1606へ制御が戻る。
でOSコンテクストテーブル15100に保存したペー
ジテーブルレジスタ値1511と、スタックポインタ値
1512のそれぞれを回復する。続くステップ1607
で、OS識別変数1530を第一のOSが実行中である
ことを示す値に変更する。この2つのステップの処理も
割り込みを禁止した状態で実行しなければならない。
一のOSが管理するデバイスの外部割り込みを処理す
る。まず、ステップ1608では、遅延割り込み状態変
数1540を検査して、割り込みが発生したかどうか検
査する。発生していない場合は、OS切替え手順は終了
し、呼出元に復帰する。
場合は、ステップ1609を実行する。このステップで
は、第二のOSの実行中に発生した割り込みを、第一の
OSが管理している延期割り込み状態変数に、未処理の
割り込みがある旨を記録する。続いて、第一のOSの割
り込み処理を起動する(ステップ1610)。全ての割
り込み処理が終了した時に、OS切替え手順の呼出元に
復帰する。
について説明する。図17は、本実施形態の割り込み処
理手順を示すフローチャートである。この手順を実行す
るモジュールは、割り込みハンドラとしてプロセッサの
割り込みテーブル107に登録される。さらに、この割
り込みハンドラは、両方のオペレーティングシステムか
ら参照できる共通領域203に配置する。
1により割り込みハンドラが起動されると、割り込みハ
ンドラは割り込み要因を検査し、割り込みを発生したデ
バイスが第一のOSが管理するデバイスか、第二のOS
が管理するデバイスか判定する(ステップ1701)。
この判定は、割り込み識別テーブル1520を割り込み
番号をインデックスとしてOS欄1521を参照するこ
とより実施する。第一のOSのデバイスである場合はス
テップ1702へ、第二のOSのデバイスの場合はステ
ップ1705へ進む。例えば、図15でいえば、割り込
み番号が1であれば第一のOSの割り込みであり、割り
込み番号4であれば第二のOSの割り込みとなる。
みである場合、ステップ1702を実行する。ステップ
1702では、割り込み発生時に実行していたOSを判
定する。この判定は、OS識別変数1530を参照して
実施する。実行中のOSが第一のOSの場合はステップ
1703へ、第二のOSの場合はステップ1704へ進
む。
のOSが管理しているデバイスが、第一のOSを実行中
に割り込みを発生した場合の処理である。ステップ17
03では、あたかもステップ1701から始まる処理が
存在せず、第一のOSの割り込みハンドラが、直接プロ
セッサ101から制御を受けたように見えるようにコン
テクストを設定する。ここでコンテクストとは、スタッ
クの内容やレジスタの内容を示す。そして、第一のOS
の割り込みハンドラへ制御を渡す。第一のOSの割り込
みハンドラのアドレスは、割り込み識別テーブル152
0のハンドラ欄1522に格納されている。例えば、割
り込み番号1の割り込みであるならば、1をインデック
スとして割り込み識別テーブルを参照して、ハンドラア
ドレスを求める。
順には制御は戻らず、第一のOSが処理を続ける。
二のOSを実行中に割り込みを発生した場合、ステップ
1704を実行する。ステップ1704では、遅延割り
込み状態変数1540に割り込みを発生したデバイスの
割り込み番号を記録する。割り込みハンドラの処理はこ
れで終了する。この場合の割り込みの処理は、実行OS
が第一のOSに切り替わったときに実行される(ステッ
プ1608)。
するデバイスの割り込みだった場合、ステップ1705
へ進み、どちらのOSが実行中であるか検査する。ここ
でも、OS識別変数1530によって実行中のOSを判
定する。第一のOSが実行中の場合は、ステップ170
6へ、第二のOSが実行中の場合はステップ1711へ
進む。
が、第二のOSの実行中に発生した場合、ステップ17
11を実行する。ステップ1711は、第二のOSの割
り込みハンドラを起動する。第二のOSの割り込みハン
ドラのアドレスは、割り込み識別テーブル1520のハ
ンドラ欄1522に記録されている。第二のOSの割り
込みハンドラ処理が終了して制御が戻ってきたら、この
割り込みハンドラも終了し、割り込まれた時のコンテク
ストを回復して制御を元に戻す。
みが、第一のOSの実行中に発生した場合、ステップ1
706を実行する。この場合は、第一のOSの実行より
も第二のOSの処理を優先して実行する。
トを保存する。ここでのコンテクストとは、割り込み処
理が終了した後で第一のOSに戻すときに、割り込まれ
たときの状態を回復するのに必要なスタックの内容とレ
ジスタの内容を示す。このコンテクストは、第一のOS
のカーネルのスタックに保存する。
の割り込み処理の起動を実行する(ステップ1707、
1708)。これは、ステップ1601から始まる手順
により実行する。
のOSへの切り替えを実行し(ステップ1709)、割
り込み時のコンテクストを回復し(ステップ171
0)、第一のOSの処理を再開する。ステップ1709
の処理は、必ずしも、ステップ1701から始まる処理
と同一のモジュール内で実行されなくてもよい。第一の
OSへの切り替えにより処理はこのモジュールへ復帰す
る。
ているクロック割り込みの処理について説明する。クロ
ック割り込みはは、共通領域内の割り込みハンドラによ
り捕獲する。この割り込みハンドラでは、まず、第二の
OSのクロック割り込み用の割り込みハンドラを実行す
る。第二のOSの割り込みハンドラはハンドラ2欄15
23に格納されている。第二のOSの割り込みハンドラ
の実行が終了したら、図17のステップ1702から始
まる処理により第一のOSの割り込み処理を実行する。
第一の割り込みハンドラのアドレスはハンドラ欄152
2に格納されている。
いて説明する。これは、第一のOSの割り込み制御によ
って、誤って第二のOSが管理するデバイスの割り込み
が禁止にされてしまわないようにするための処理であ
る。
割り込みを制御しているとする。割り込み禁止レベル
は、オペレーティングシステムのカーネル内の割り込み
処理の延長で動作する部分と、そうでない部分との間の
排他制御を実現するために必要となる機構である。
プログラムすることで割り込み禁止レベルを実現する。
つまり、割り込み制御装置112の割り込みマスクレジ
スタ502をプログラムして、選択的に外部割り込みを
マスクにする。第一のOSは第二のOSについて全く知
らないので、第一のOSが割り込み禁止レベルを変更し
たときに、第二のOSのデバイスの割り込みがマスクさ
れてしまう可能性がある。これを防ぐために、第一のO
Sの割り込み制御部分を変更する。
第一のOSが管理しているデータ構造を示している。1
800は、割り込み禁止レベルテーブルである。それぞ
れの割り込みレベルは数値で表現され、それぞれの割り
込み禁止レベルについて、何番の外部割り込みをマスク
するかを示している。テーブル1800のチェックのつ
けられているところは割り込みをマスクする設定するこ
とを示している。例えば、割り込み禁止テーブル180
0では、割り込み禁止レベル0では、どの割り込みもマ
スクされないことを示している。また、割り込み禁止レ
ベル3では、割り込み番号3、ないし、5の割り込みを
割り込み制御装置112によりマスクすることを示して
いる。割り込み禁止レベル5では、すべての割り込みが
割り込み制御装置112によりマスクされる。
の割り込み禁止レベルテーブル1800を変更する(ス
テップ1409)。ステップ1409では、第二のOS
が管理するデバイスが発生する割り込みについて、第一
のOSがそれらの割り込みをマスクしないように割り込
み禁止レベルテーブルを変更する。具体的には、割り込
み識別テーブル1520のOS欄1521を参照して、
第二のOSが管理する割り込み番号について、割り込み
禁止レベルテーブル1800のチェックをクリアする。
OSが処理する割り込みとなっている。したがって、割
り込み禁止レベルテーブル1800のすべての割り込み
禁止レベルの、割り込み番号4と5の欄(1801と1
802のすべて)をクリアする。
ベルを変更しても、第二のOSが管理するデバイスの割
り込みはマスクされなくなる。
ーティングシステムを同時に動作させることが可能にな
る。
て2つのオペレーティングシステムを同時に動作させる
場合、変更箇所がオペレーティングシステムカーネルの
初期化部分、デバイス資源予約、および、割り込み禁止
制御部分に限定されるため、簡単に2つのオペレーティ
ングシステムを動作させることが可能になる。
I/Oチャネルを仮想化するために特権命令のエミュレ
ーションが必要になるが、これをソフトウェアで実現す
るとオーバーヘッドが大きくなり問題である。仮想計算
機方式では、このオーバーヘッド削減のために、特殊な
ハードウェアを持つことが多くなっている。しかし、本
発明では、それぞれのデバイスについて、デバイスを管
理するオペレーティングシステムを予め決定し、さら
に、物理メモリについて利用できる範囲を初期化時に決
定することにより、オペレーティングシステム同士が互
いに干渉しないようにして、仮想計算機でのような複雑
なソフトウェアによる制御を廃止し、高速化のためのハ
ードウェアも不要とした。
するOSを容易に追加することが可能である。従来技術
においても、第一のOSの構成要素として、例えばデバ
イスドライバとして新たな機能をカーネルに追加するこ
とは可能である。しかし、第一のOSの構成要素として
しまったのでは、その構成要素は第一のOSの管理下で
しか動作できない問題がある。つまり、第一のOSが障
害により停止してしまったとき、追加した機能モジュー
ルも動作することはできないのである。
成要素を、第一のOSと独立して構成することができ、
第一のOSが停止してしまったとしても、その機能モジ
ュールだけは継続して動作することが可能になる。この
実施形態については、後述する。信頼性を要求される機
能モジュールを第二のOSとして組み込めば、第一のO
Sが停止してしまったときでも、何らかの回復処理を実
現させるといったことが可能になる。このように本発明
は、計算機システムの高信頼化を実現する手段となり得
る発明である。
一のOSに優先して処理を実行するとして説明した。第
一のOSは、第二のOSがアイドル時にしか動作できな
いことや、第二のOSの割り込みはいつでもすぐに処理
することにより、第二のOSを優先させている。これに
より、第一のOSが実時間処理に適合していなくても、
第二のOSとして実時間処理に向くOSを導入すれば、
第一のOSの特徴を活かしたままで、実時間処理性能に
優れた計算機システムを構築することが可能になる。例
えば、第一のOSが優れたGUI(Graphical UserInter
face)を持っているが実時間処理性能に欠ける場合、第
一のOSよりも優先して動作する実時間処理向きオペレ
ーティングシステムを第二のOSとして導入してやるこ
とで、GUIにも優れ、実時間処理にも優れた計算機シ
ステムの構築ができる。
アの支援なしで、第一のOSに欠けている機能を容易に
導入する方法であり、さらに、その機能は第一のOSと
は全く独立して動作させることを可能にする。
明する。第二の実施形態は、これまで説明してきた実施
の形態の拡張である。この実施の形態では、第一のOS
が障害により停止しても動作しつづける第二のOSの導
入が実現可能である。
態変数1550を共通領域に置く。この変数1550
は、第一のOSが通常動作しているか、そうでないかを
示す値を格納している。この変数1550は、第二のO
Sをロードする時の処理で、通常動作を示す値に初期化
する。
一のOSの停止処理手順を示すフローチャートである。
この処理手順は、第一のOSの停止処理を実行するモジ
ュールを変更して実装する。
制御がきたら、第一OS実行状態変数1550を第一の
OSが停止していることを示す値に設定する(ステップ
1901)。その後、第一のOSの停止処理を実行する
(ステップ1902)。最後に、第一のOSへの割り込
みをマスクして、第二のOSが処理するデバイスの割り
込みを許可して(ステップ1903)、割り込みが発生
するまで待つ(ステップ1904)。割り込みが発生す
ると、実行OSの切り替えられ、第二のOSが処理を実
行する。
第一の実施の形態では、ステップ1601から始まる手
順により実行OSの切り替えを実行した。第二の実施の
形態では、この手順で第二のOSのモジュールを実行し
た後、つまり、ステップ1605の後で、第一OS実行
状態変数1550を検査する。ここで、第一OS実行状
態変数1550が、第一のOSが停止していることを示
す値になっているならば、ステップ1606以降の処理
を実行せずに、割り込み待ちを実行する。
Sが停止しても第二のOSの実行を継続することが可能
になる。この実施形態では、第一のOSの停止処理モジ
ュールを変更するとしたが、第一のOSがエラーにより
停止したときの停止処理過程で実行されるモジュールを
変更して、第一のOSの停止を検出して割り込み待ちを
しても同様の効果を実現できる。
る。これまで説明してきた実施の形態では、カーネル本
体を変更することにより2つのOSの同時実行等を実現
してきた。第3の実施の形態では、カーネル本体を変更
せずに、前記の実施の形態の機能を実現する。
オペレーティングシステムでは、ハードウェア依存の処
理がカーネル本体からは切り離されて、別のオブジェク
トファイルとして構成されている場合がある。例えば、
割り込み制御装置112が計算機により異なる場合や、
バス109の構成が異なってI/Oアドレス空間が計算
機により異なる場合である。
ステム、つまり、割り込み制御装置やバスなどの基盤と
なるハードウェアの違いを吸収するためのコードやデー
タがカーネル本体とは分離されたオブジェクトファイル
にある場合の、カーネル領域の様子を示した図である。
01のカーネルモードで実行されるモジュールや、オペ
レーティングシステムが管理するデータ構造がある。カ
ーネル本体2001は、メモリ管理、プロセススケジュ
ーリング、および、ファイルシステムなどの、ハードウ
ェア非依存の処理を実施するコードやデータを持ってい
る。カーネル本体2001とハードウェア依存部200
2の間には、ハードウェア依存部2002の提供しなけ
ればならないモジュールと、カーネル本体2001が提
供するモジュールに関する規約が定められている。ハー
ドウェア依存部2002をこの規約にあわせて構築すれ
ば、様々な計算機上でこのオペレーティングシステムを
動作させることが可能になる。
は、別オブジェクトファイルに分離され、カーネル本体
とは切り離された領域2002にマップされている。カ
ーネル本体2001とハードウェア依存部2002は、
第一の実施の形態の場合と同様の外部参照機構により互
いの公開モジュールを呼び出すことができ、見かけ上は
1つのカーネルとして機能する。
ェクトファイルを変更することなく、分離されたハード
ウェア依存の処理を実施するオブジェクトファイルの変
更により第一の実施の形態、および、第二の実施の形態
と同様の効果を得ることが可能である。
イルの処理において、物理メモリの割り当てが可能であ
ること、割り込みレベル管理処理を変更できること、お
よび、I/O資源の予約ができることが必要である。さ
らに、このオブジェクトファイル中にステップ1701
から始まる割り込みハンドラと割り込みテーブル107
を配置し、プロセッサの割り込みテーブルレジスタ10
4に登録する。そして、この分離されたオブジェクトフ
ァイルを共通領域203として第二のOSからも参照で
きるようにする。以上により、本発明の第一の実施の形
態と同様の効果を得ることができる。
ァイルが、第一のOSが停止したときに実行されるモジ
ュールを持つ規定になっていれば、そのモジュールを変
更すれば第一のOSの停止を検出でき、本発明の第二の
実施の形態と同様の効果を得ることができる。
を変更する必要がない。これにより、変更しなければな
らない部分が更に限定できる、カーネル本体を変更する
よりも容易に実施可能となる。
説明する。これまで説明してきた実施の形態では、共通
領域203に配置していたのはサポートドライバや、ハ
ードウェア依存オブジェクトファイルなどのオブジェク
トファイルであった。しかし、本当に共通領域203に
配置しなければならないモジュールとデータは、割り込
みテーブル107、ステップ1701から始まる割り込
みハンドラ、ステップ1601から始まるOS切り替え
手順、および、図15に示したデータ構造分だけであ
る。特に、第3の実施例でのようにハードウェア依存部
の処理を実施するオブジェクトファイル全体を共通領域
203として第二のOSからも参照できるようにしてし
まうと、第二のOSが誤って第一のOSのデータ構造に
アクセスしてしまう可能性が高くなり問題である。
イルの特定のセクションのみを共通領域203として第
二のOSに見せる方法を提供する。この実施の形態で
は、オブジェクトファイルを生成するコンパイラが、命
令コードとデータを配置するセクションをプログラム上
で指定できる機能を持っている必要がある。
ンとして命令コードを含むテキストセクションと、デー
タを含むデータセクションを持っている。これに加え
て、コンパイラの機能により共通領域203のためのセ
クションを追加する。さらに、オブジェクトファイルの
ヘッダ部分に格納されているセクションデータ809を
参照して共通領域セクションのアドレス範囲を決定し、
その部分だけを第二のOSに見せるようにページテーブ
ルを構築すればよい。
含むオブジェクトファイルを変更する場合を例として説
明する。変更個所のうち初期化に関連する部分、例え
ば、物理メモリの割り当て、I/O資源の予約、割り込
みレベル管理部分の変更は第二のOSに見せる必要はな
い。第二のOSからも参照できなければならないのは、
割り込みテーブル107、ステップ1701から始まる
割り込みハンドラ、ステップ1601から始まるOS切
り替え手順、および、図15に示したデータ構造分だけ
である。これらを、共通領域セクションに配置するよう
にプログラムを記述し、コンパイラの機能により共通領
域セクションを生成する。
ルの構成を示している。2100は、生成されたオブジ
ェクトファイルを示す。オブジェクトファイル2100
のヘッダ部の2101、ないし、2104は、オブジェ
クトファイル2100に含まれているセクションのデー
タを記述している。このうち2103と2104が、共
通領域203用に新規に作成したセクションを表現する
セクションデータである。対応するセクションは210
7と2108である。セクションデータ2103と21
04の内容にしたがってセクション2107と2108
のアドレスを求め、それらの領域だけを第二のOSのカ
ーネル領域にマップするように第二のOSのページテー
ブルを構成すれば、ハードウェア依存オブジェクトファ
イル2100の他の部分を第二のOSから隠すことがで
きる。
した実施の形態よりも、更にOS間の独立性を高めるこ
とができ、OS間の干渉の少ない安全な計算機システム
の構築が可能になる。
説明する。第5の実施の形態では、マルチプロセッサ構
成の計算機で第二のOSを導入が可能になる。
計算機装置を示す図である。2200は計算機装置であ
る。計算機2200は2つのプロセッサ2201と22
02、および、主記憶装置2203を持っている。ま
た、第一の実施の形態と同様に、計算機起動プログラム
を格納している記憶装置2204を持っている。
プロセッサを起動したときと、初期化のための割り込み
を受けた時とでは、制御を渡す物理アドレスが異なるも
のとする。
割り込み処理プログラムは、予め定めた物理アドレスに
格納されている値を物理アドレスとして、そのアドレス
に制御を渡す。
装置2206、クロック割り込み生成装置2207、お
よび、入出力装置2207等のデバイスが接続してい
る。割り込みを発生するデバイスは、割り込み制御装置
2205に接続し、更に、割り込みバス2211を介し
てプロセッサ2201と2202に接続している。各プ
ロセッサは他のプロセッサに割り込みを送ることができ
るとする。
る。割り込み制御装置2205は、マルチプロセッサ構
成のための機能を持っている。割り込み制御装置220
5は、第一の実施の形態での割り込み制御装置112の
割り込みマスク機能に加えて、それぞれのデバイスから
の割り込みをどのプロセッサ、あるいは、プロセッサ群
に通知するかを指定する機能を持っている。
成を示す図である。選択装置2301と割り込みマスク
レジスタ2302の働きは、第1の実施の形態と同じで
ある。それらに加えて、割り込み制御装置2205は、
割り込み配送テーブル2310と、割り込み送信装置2
305を持っている。
み制御装置2205に接続されたそれぞれのデバイスに
ついて、どのプロセッサ、あるいは、プロセッサ群に割
り込みを通知するかを示す値2311と、通知するとき
の割り込み番号2312を記録している。割り込み配送
テーブル2302は、I/O命令により変更することが
でき、自由に設定可能である。
0に、割り込み2はCPU1に配送するように設定され
ている。
301からの信号を受けて、割り込み配送テーブル23
10を参照して割り込み通知先と割り込み番号を決定す
る。そして、通知先と割り込み番号を表わす信号を割り
込みバス2211へ送信する。
2201だけが動作を開始するように構成されており、
プロセッサ2201が記憶装置2204に格納されてい
る起動プログラムを実行する。起動プログラムは、第一
の実施の形態の場合と同様に磁気ディスク装置2206
に格納されているカーネルローダを主記憶2203に読
み込み実行する。カーネルローダは、パラメータテーブ
ル1100を作成する。第5の実施の形態では、デバイ
スリストに計算機2200が何個のプロセッサを持って
いるかを示すデータが加えられる。
化処理を実行する。初期化の過程で、非ブートプロセッ
サ以外のプロセッサ用の初期化ルーチンのアドレスを予
め定めた物理アドレスに格納し、プロセッサ2202に
初期化割り込みを送る。プロセッサ2202は初期化割
り込みを受けると、記憶装置2204に格納されている
プログラムを実行し、非ブートプロセッサ初期化ルーチ
ンに制御がわたる。非ブートプロセッサ初期化ルーチン
は、ページテーブルレジスタや割り込みテーブルレジス
タを設定して仮想アドレスモードに移行し、初期化処理
を続ける。
ステップ1204の第二のOS用のデバイスの予約のと
きに、プロセッサも第二のOS専用であると予約する。
ここでは、プロセッサ2202を予約するとして説明す
る。
201から始まる第一のOSの初期化手順のシステムデ
バイスの初期化で、非ブートプロセッサに初期化割り込
みを送る。この場合、プロセッサ2201からプロセッ
サ2202に初期化割り込みが送られることになる。本
発明では、予約されているプロセッサについては初期化
割り込みを送らないことにする。したかって、カーネル
の初期化がされてもプロセッサ2202はまだ動作して
いない。
スの初期化では、割り込み制御装置2205の初期化も
実施する。割り込み制御装置2205の初期化では、カ
ーネル構成情報ファイル700の第二のOSの構成デー
タ704を参照して、第二のOSが管理するデバイスの
割り込みがプロセッサ2202に送られるように割り込
み配送テーブル2310を設定する。
る第二のOSの初期化手順において、初期化ルーチンを
第二のOSの初期化ルーチンのアドレスに設定して、ス
テップ1407でプロセッサ2202に初期化割り込み
を送る。これにより、プロセッサ2202上で、第二の
OSが走行を開始する。
り、第二のOSの管理するデバイスの割り込みは、すべ
て割り込み制御装置2205により、第二のOSが動作
しているプロセッサ2202へ送られる。このため、実
行OSを切り替える必要はなくなる。第一のOSはプロ
セッサ2201で動作し、第二のOSはプロセッサ22
02で動作することになる。したがって、ステップ17
01から始まる割り込み処理も不要になる。
プロセッサ2202の割り込みテーブルレジスタに設定
し、独自の割り込みハンドラを持てる。第一のOSの割
り込みテーブルを変更する必要はない。但し、第一のO
Sが割り込み制御装置2205の割り込みマスクレジス
タ2302を変更する場合は、第二のOSのデバイスか
らの割り込みをマスクしてしまわないように変更を加え
る必要がある。
4の実施の形態よりも、性能の良い計算機システムの構
築か可能である。第1ないし4の実施の形態では、第一
のOSは第二のOSがアイドルしている間のみ動作可能
であったが、第5の実施の形態においては、第一のOS
は、プロセッサは奪われてはいるが常に動作することが
可能であり、同時に第二のOSも動作可能である。
OSと第二のOSとで共有しなければならない領域を小
さくできる。第1ないし4の実施の形態では、共通領域
203に、割り込みテーブル、割り込みハンドラや割り
込み処理に付随するデータ構造、および、OS切り替え
コードを置かなければならなかった。第5の実施の形態
では、これらはすべて必要なくなり、互いのOSが相手
のOSを誤って破壊してしまう可能性を低くできる。
説明する。これまで説明した実施形態が2つのOSを同
時実行する方式であるのに対し、第6の実施形態は2つ
以上の複数のOSを同時実行する方式である。
OSよりも優先して実行するように制御するが、ここで
説明する方式では、複数のOS間に実行優先度を設定可
能である。例えば、割り込みについては、実行中のOS
の優先度よりも低い優先度のOSが管理する割り込みの
処理は延期される。実行中のOSの優先度よりも高い優
先度のOSが管理する割り込みが発生した場合は、即座
に実行OSを切替え割り込み処理を開始する。
高いOSのモジュールを呼び出す場合は即座に実行OS
を切替えてモジュール呼び出しを実施する。その逆の場
合、つまり、優先度の低いOSの側での処理が必要にな
る場合は、そのOSが実行権を得るまで要求された処理
を延期するように制御する。
機構成を示した図である。計算機構成はこれまでの実施
例と同じであるが、主記憶装置102に複数のOSがロ
ードされている様子を示している。各オペレーティング
システムは、ステップ1401に示した第二のOSをロ
ードする手順と同じ手順でロードできる。
した図である。第一の実施の形態では2つのOSであっ
たのに対し、ここでは第一のOS以外に複数のOSが1
つのプロセッサ上で動作していることを示している。
2、第3、および、第NのOSの論理空間202、25
03、および、2504にマップされ全OSから共通に
利用できることを示している。各OSの論理空間への共
通領域のマッピングは、ステップ1401に示した手順
により実施する。
器を持っていることを示している。第二の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が管理するデ
バイスへアクセスすることを禁止する。
テップ1202で第二のOS用の主記憶を確保してい
る。これを、第一のOS以外の複数のOS用の主記憶を
確保する処理とする。また、ステップ1204は第二の
OSが管理するデバイスを予約する処理であるが、これ
を第一のOS以外のOSが管理するデバイス資源を予約
する処理とする。
順を図26に示す。ステップ2602と2604がステ
ップ1202と1204に対応している。ステップ26
04は、カーネル構成情報ファイル700を参照して第
一OS以外のOSのデバイス資源を予約する。
20の処理OS1521も設定する。また、各OSの構
成情報には、デバイス資源の他にOSの優先度も記述す
る。
タ構造を示す図である。図15に示したデータ構造と比
較して、割り込み識別テーブル1520、OS識別変数
1530、および、遅延割り込み状態変数1540は同
一のデータ構造である。OSコンテクストテーブル27
10は、1510を拡張したデータ構造となっている。
える時に必要になるデータを保存している。ページテー
ブル設定値2701とスタックポインタ設定2702
は、あるOSを実行中に他のOSのモジュールを呼び出
す時に設定するページテーブルとスタックポインタのア
ドレスを示している。また、ページテーブル保存値27
03とスタックポインタ保存値2704は、優先度の高
いOSへの切替を実施した時の優先度が低い方のOSの
ページテーブル値、および、スタックポインタ値を保存
している。
いて稼働中であるか、および、処理待ち中であるかを示
す値を格納する。ここで稼働中であるかとは、OSが起
動されているかを示す。ある瞬間に実行中であることを
示しているわけではない。各OSの起動処理は実行状態
2705を設定する。
イドル状態でないことを示す。つまり、優先度の高いO
Sが実行中のため走行待ち状態にあることを示す。処理
待ち中については、具体的にどの処理が待ちになってい
るかを記述してもよい。
格納する。優先度は、第一OSの初期化処理手順のステ
ップ2605で、構成ファイル700より読み出し設定
する。
Sが実行中であるとして説明する。また、OSの実行優
先度が第一より第二、第二より第三の方が優先度が高く
設定されているとする。第二のOSの処理により第三の
OS上のプロセスが走行可能になったとする。この場
合、第三のOS内部のプロセス起動モジュールを実行し
て第三のOS上のプロセスをスケジュールする。ここ
で、第三のOSは第二のOSよりも優先度が高いので、
実行OSを即座に切替えて第三のOSのモジュールが実
行される。切替え処理では現在のページテーブルアドレ
スとスタックポインタ値を、第二のOSのページテーブ
ル保存値2703とスタックポインタ保存2704値に
格納し、第三のOSのページテーブル設定値2701と
スタックポインタ設定値2702をページテーブルレジ
スタとスタックポインタに設定して実行OSを切替え
る。
び出す場合、第一のOSの優先度は第二のOSの優先度
よりも低いため、呼び出しは延期する。この場合、呼び
出し要因を実行状態2705記録しておき、第一のOS
が実行権を得た時に、すなわち、第二、および、第三の
OSが処理を終了した時に、モジュール呼び出しを実施
する。
ローチャートである。ステップ2801からの処理の大
部分は図16に示したステップ1601からの処理と同
じである。この手順は、OSの優先度については考慮し
ていないが、この手順を呼び出す前に呼出先OSの優先
度と実行中OSの優先度を比較して、実際に呼び出して
良い場合はステップ2801からの処理を実施すれば良
い。
先OSと呼び出しモジュールのアドレスを引数として受
ける。ステップ2801では、現在のページテーブルア
ドレスとスタックポインタを、OSコンテクストテーブ
ル2710の現在実行中のOSのページテーブル保存値
2703と、スタックポインタ保存値2704に保存す
る。現在実行中のOSは、OS識別変数1530により
判定できる。
ストテーブル2710より切替先OSのページテーブル
設定値2701とスタックポインタ設定値2702を取
得し、ページテーブルとスタックの切替え処理を実施す
る。
をクリアする。優先度が実行中のOS以上で、切替先未
満のOSが管理するデバイスの遅延割り込み状態154
0をクリアする。
ュールを呼び出すとする。この場合、ステップ2803
では第一のOSと第二のOSが管理するデバイスの遅延
割り込み状態1540をクリアする。
ストテーブル2710の現在実行中のOSの実行状態2
705を処理待ち中に設定し、ステップ2805でOS
識別変数を切替先OSに設定し、ステップ2806で引
数として渡されたモジュールを呼び出す。
た時点で、ステップ2807へ制御を戻す。ステップ2
807では、OSコンテクストテーブルの各OSの実行
状態2705と優先度2706を参照して、最も優先度
が高い処理待ち中のOSを見つける。
選択したOSのコンテクストを、OSコンテクストテー
ブル2710のページテーブル保存値2703とスタッ
クポインタ保存値2704より回復する。
530を選択したOSに設定する。
状態2705に延期されている処理があることが記録さ
れている場合は、その延期されている処理を実行する
(ステップ2810)。
する。ステップ2812は、遅延割り込み状態1540
を参照して、ステップ2807で選択されたOSが処理
すべき割り込みが発生していないかを検査する。選択さ
れたOSがどの割り込み番号の割り込みを管理している
かは、割り込み識別テーブル1520の処理OS152
1を参照すれば分かる。
の割り込みが発生していると判定した場合はステップ2
813へ進む。ステップ2813では、処理しなければ
ならない割り込みが発生していることを選択されたOS
が認識できるように選択されたOSのデータ構造を設定
する。続くステップ2814は、割り込み識別テーブル
1520を参照して、処理する割り込みの割り込みハン
ドラ1522を呼び出す。ハンドラの処理終了後、回復
したコンテクストにしたがって、選択されたOSの実行
を再開する。
復したコンテクストにしたがって、選択されたOSの実
行を再開する。
は、割り込み処理手順を示すフローチャートである。図
29に示す手順を実行するルーチンはプロセッサ103
の割り込みハンドラとして割り込みテーブル400に登
録される。また、全てのOSから参照可能な共通領域に
配置される。
プ2901では、割り込み要因より割り込みを処理する
OSを決定する。処理OSは、割り込み識別テーブル1
520の処理OS1521に記録されており、これを参
照して決定する。
が同一ならば(ステップ2902)、割り込み識別テー
ブル1520に登録されている割り込みハンドラ152
2を実行する(ステップ2903)。ハンドラ処理終了
時に割り込まれた処理を再開する。
が異なる場合は、2つのOSの優先度を比較する(ステ
ップ2904)。実行中のOSの優先度の方が高い場
合、ステップ2905へ進み、遅延割り込み状態変数1
540を設定して、割り込まれた処理を再開する。
OSよりも高い場合は、ステップ2906へ進み、割り
込み処理を開始する。
ブル1520より割り込みハンドラアドレス1522を
取得する。続いて、割り込み発生時のコンテクストを保
存し(ステップ2907)、割り込みハンドラを呼び出
す(ステップ2908)。割り込みハンドラの呼び出し
は、図28のステップ2801から始まる手順により実
施する。
時に、割り込み発生時のコンテクストを回復し(ステッ
プ2910)、割り込まれた処理を再開する。
ュールについて述べる。共通領域203には、ステップ
2801からのOS切替えモジュールと2901から始
まる割り込みハンドラを配置する。この他の全てのOS
から呼び出されるモジュールも共通領域203に配置す
る。例えば、各OSの割り込みハンドラを割り込み識別
テーブル1520に登録するモジュールや、OSコンテ
クストテーブル2710の実行状態2705を設定する
モジュールである。
域203の登録モジュールを呼び出して割り込みハンド
ラを登録することにより、外部割り込みの処理が可能に
なる。また、何らかの処理により実行中のOSの優先度
よりも低い優先度の他のOSの処理が可能になる場合、
実行状態2705に処理待ち中であること、あるいは、
処理待ちの要因を示す値を設定しなければならない。こ
の場合も、共通領域203内の実行状態設定モジュール
を呼び出すことにより設定する。
数のOSを1つのプロセッサで実行可能となり、特別な
機能に特化したOSを組み合わせることが可能となる。
例えば、リアルタイム性に優れたOSと計算機の信頼性
を補完するOSとを組み合わせて、第一のOSの機能を
補うことができる。各OSは独立しているのでさまざま
のOSを組み合わせることができ、用途に応じた第一の
OSの機能拡張が可能になる。更に、これまで説明した
実施形態により得られる効果も損なわれることはない。
リアルタイムOSの優先度を最も高く設定するといった
設定も可能である。これにより、各OSの優れている機
能を有効に利用することが可能になる。
る。本実施形態は、第6の実施の形態の拡張である。第
7の実施の形態では、複数動作している内のあるOSが
障害停止した場合に、他の残ったOSが実行継続可能な
制御方法を示す。
行を停止する時に、OSコンテクストテーブル2710
の実行状態2705を、停止中であると設定しなければ
ならない。これは、前記実施形態の、共通領域203に
配置した実行状態設定モジュールの呼び出しにより実施
する。
た時に呼び出されるOS停止通知ハンドラを持ち、割り
込みハンドラと同様に共通領域203内のデータ構造に
登録する。
いて説明する。図30は、本モジュールの処理を示した
フローチャートである。第三のOSが停止したとして説
明する。
テーブル2710の実行状態2705を設定する。
態を検査する。もし、OS実行停止に設定されたらなら
ば、ステップ3003へ進む。そうでなければモジュー
ルの処理は終了する。
も優先度が高い稼働中のOSのOS停止通知ハンドラを
呼び出す。呼び出しは、ステップ2801からのOS切
替えにより呼び出す。優先度が低いOSについては、実
行状態2706にOS停止ハンドラ実行待ちであること
を記録する。また、各OSのOS停止通知ハンドラは、
割り込みハンドラと同様に、各OSの初期化時に共通領
域内に配置されたデータ領域に登録されるものとする。
実行を停止していないかを検査する処理が必要である。
図28のフローチャートにしたがって説明する。
稼働中かを検査しなければならない。ステップ2801
の前に、OSコンテクストテーブル2710の実行状態
2705を検査して、稼働中でなければ切替え処理を終
了させる。
の選択では、処理待ち中のOSの検索対象から稼働して
いないOSを除外するようにする。
したOSの実行状態2705を検査し、OS停止通知ハ
ンドラの実行待ちが記録されているならば、OS停止通
知ハンドラを実行する。
29のフローチャートにしたがって説明する。ステップ
2901の割り込み処理OS決定の後、処理OSが稼働
中か検査する。ここで稼働中でないと判定した場合、割
り込みを解除して割り込まれた処理を再開させるように
する。
のOSが1つのプロセッサ上で同時に動作している時に
いくつかのOSが障害により停止しても、他の残りのO
Sは動作を継続することが可能になる。
されるので、OS間で連携して処理を実施している場合
でも、その通知をもとに各OSで障害処理を実施するこ
とが可能であり、計算機全体としての信頼性を高めるこ
とができる。
のOSは互いに異なるOSであっても、同一のOSが含
まれていても良い。
しで、第一のOSに欠けている機能を容易に導入する方
法であり、さらに、その機能は第一のOSとは全く独立
して動作させることを可能にする。
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に2つのオペレーティングシス
テムを同時に動作させることが可能になる。
ヘッドについて、本発明では、それぞれのデバイスにつ
いて、デバイスを管理するオペレーティングシステムを
予め決定し、さらに、物理メモリについて利用できる範
囲を初期化時に決定することにより、オペレーティング
システム同士が互いに干渉しないようにして、仮想計算
機でのような複雑なソフトウェアによる制御を廃止し、
命令エミュレーションによるオーバーヘッドも削減し、
高速化のためのハードウェアも不要とした。
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二のOSとして組み込めば、第
一のOSが停止してしまったときでも、何らかの回復処
理を実現させるといったことが可能になる。
ル時にしか動作できないことや、第二のOSの割り込み
はいつでもすぐに処理することにより、第二のOSを優
先させることができる。これにより、第一のOSが実時
間処理に適合していなくても、第二のOSとして実時間
処理に向くOSを導入すれば、第一のOSの特徴を活か
したままで、実時間処理性能に優れた計算機システムを
構築することが可能になる。
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで2つのオペレーティングシステムを同時に動作させ
ることが可能になる。これにより、更に変更しなければ
ならない部分が限定されるため、カーネル本体を変更す
るよりも容易に実施可能となる。
トファイル中に自由にセクションを設けることができる
ならば、それを利用して第一のOSと第二のOSとで共
通に参照する必要のある領域を特別なセクションに閉じ
込めることで、OS間の独立性を高めることができ、O
S間の干渉の少ない安全な計算機システムの構築が可能
になる。
点は、オペレーティングシステムカーネルの初期化部
分、デバイス資源予約、および、割り込み禁止制御部分
に限定されるため、簡単に複数のオペレーティングシス
テムを同時に動作させることが可能になる。
行させた場合でも、上に示した効果を得ることができ
る。
素として新たな機能をカーネルに追加することは可能で
あるが、第一のOSが停止してしまったとき、追加した
機能モジュールも動作することはできない問題があっ
た。本発明によれば、新たな機能を実現する構成要素
を、第一のOSと独立して構成しておけば、第一のOS
が停止してしまったとしても、その機能モジュールだけ
は継続して動作することが可能になる。信頼性が要求さ
れる機能モジュールを第二、第三のOSとして組み込め
ば、第一のOSが停止してしまったときでも、何らかの
回復処理を実現させるといったことが可能になる。
のプロセッサで実行可能なことにより、特別な機能に特
化したOSを組み合わせることが可能となる。例えば、
リアルタイム性に優れたOSと計算機の信頼性を補完す
るOSとを組み合わせて、第一のOSの機能を補うこと
ができる。各OSは独立しているのでさまざまのOSを
組み合わせることができ、他の効果を損なうことなく用
途に応じた第一のOSの機能拡張が可能になる。
きることにより、第一のOSが実時間処理に適合してい
なくても、実時間処理に向く第二のOSを最高優先度に
設定すれば、第一、および、第二のOS以外のOSの特
徴を活かしたままで、実時間処理性能に優れた計算機シ
ステムを構築できすることが可能となる。
本体とハードウェア依存の処理を実行するオブジェクト
ファイルとに分離されている場合、カーネル本体を変更
しなくとも、後者のオブジェクトファイルを変更するこ
とで複数のオペレーティングシステムを同時に動作させ
ることが可能になる。また、プログラムの記述によりオ
ブジェクトファイル中に自由にセクションを設けること
ができるならば、それを利用して全てのOSで共通に参
照する必要のある領域を特別なセクションに閉じ込める
ことで、OS間の独立性を高めることができ、OS間の
干渉の少ない安全な計算機システムの構築が可能にな
る。
ある。
ある。
を示す図である。
成を示す図である。
成を示す図である。
示すフローチャートである。
構成情報ファイルの構成を示す図である。
の構成を示す図である。
の構成を示す図である。
ルの構成を示す図である。
ータテーブルのデータ構造を示す図である。
手順を示すフローチャートである。
ス管理テーブルのデータ構造を示す図である。
順を示すフローチャートである。
OSが共有するデータ構造を示す図である。
手順を示すフローチャートである。
示すフローチャートである。
みマスク処理のためのデータ構造を示す図である。
障害停止処理を示すフローチャートである。
第二のOSのカーネル領域の構成を示す図である。
ファイルの構成を示す図である。
ムの構成を示す図である。
装置の構成を示す図である。
示す図である。
示す図である。
初期化手順を示すフローチャートである。
共有するデータ構造を示す図である。
り替え手順を示すフローチャートである。
手順を示すフローチャートである。
設定手順を示すフローチャートである。
装置、103は演算装置、104は割り込みレジスタ、
105はページテーブルレジスタ、106はアドレス変
換装置、107は割り込みテーブル、108はページテ
ーブル、109はバス、110は割込み信号線、111
はクロック生成装置、112は割り込み制御装置、11
3ないし117は外部入出力装置、118は割り込みバ
スである。
Claims (20)
- 【請求項1】計算機の制御方法に関し、第一のオペレー
ティングシステムの起動時に他のオペレーティングシス
テムが利用するハードウェア資源を第一のOSの管理対
象から外して他のオペレーティングシステムに与える手
順と、すべてのオペレーティングシステムで共有してい
る領域に配置した共通の割り込み処理手順とを有し、前
記割り込み処理手順が各オペレーティングシステムの実
行をスケジュールすることにより、各オペレーティング
システムが実行する特権命令のエミュレート処理、およ
び、装置なしで、複数のオペレーティングシステムを一
台の計算機で同時に動作させることを特徴とするマルチ
OS構成方法。 - 【請求項2】請求項1のマルチOS構成方法であって、
第一のオペレーティングシステムの初期化処理時に、第
二のオペレーティングシステム用のハードウェア資源を
第一のオペレーティングシステムの初期化以降の処理で
はアクセスできないように予約する手順と、予約した物
理メモリに第二のオペレーティングシステムをロードし
て第一のオペレーティングシステムとは別の仮想アドレ
ス空間で第二のオペレーティングシステムを起動する手
順と、第一のオペレーティングシステムのカーネル領域
の一部分を第二のオペレーティングシステムと共有する
ように設定する手順と、第二のオペレーティングシステ
ムが受け取る外部割り込みについて、第一のオペレーテ
ィングシステムからは割り込み禁止にできないように第
一のオペレーティングシステムのデータ構造を変更する
手順とを有することを特徴とするマルチOS構成方法。 - 【請求項3】請求項1のマルチOS構成方法であって、
割り込みを捕獲したときに割り込み要因よりどのオペレ
ーティングシステムに割り込み処理させるかを決定する
手順と、第一のオペレーティングシステムから第二のオ
ペレーティングシステムのモジュールを呼び出す手順
と、第二のオペレーティングシステムの処理が終了した
ときに第一のオペレーティングシステムに復帰する手順
を有することにより、2つのオペレーティングシステム
を一台の計算機上で同時に動作させることを特徴とする
マルチOS構成方法。 - 【請求項4】請求項1ないし3のマルチOS構成方法で
あって、第一のオペレーティングシステムが回復不可能
な障害で停止したときに第二のオペレーティングシステ
ムにそのことを通知する手順と、停止時に第二のオペレ
ーティングシステムが管理しているデバイスの割り込み
を許可する手順と、第二のオペレーティングシステムの
処理終了時に、第一のオペレーティングシステムが停止
しているかを判定し、停止している場合は割り込み待ち
を実施する手順を有することにより、第一のオペレーテ
ィングシステムが停止しても第二のオペレーティングシ
ステムが動作を継続できることを特徴とするマルチOS
構成方法。 - 【請求項5】請求項1ないし4のマルチOS構成方法で
あって、両方のオペレーティングシステムで共有しなけ
ればならない命令コードとデータを専用の領域に閉じ込
めたカーネルオブジェクトファイルを利用し、第二のオ
ペレーティングシステム起動時に第一のカーネルオブジ
ェクトファイルの前記領域を見つけ、その領域のみを共
有領域に設定する手順を有することで、共有領域を小さ
くできることを特徴とするマルチOS構成方法。 - 【請求項6】請求項1ないし5のマルチOS構成方法で
あって、第二のオペレーティングシステムの実行中に第
一のオペレーティングシステムの管理するデバイスから
の割り込みを受けたときにはそれを記録する手順、ある
いは、装置と、第二のオペレーティングシステムの処理
が終了して第一のオペレーティングシステムに制御を戻
す時に、第二のオペレーティングシステム実行中に発生
した割り込みの処理を開始する手順と、第二のオペレー
ティングシステムが管理しているデバイスからの割り込
みは、第一のオペレーティングシステムが実行中であっ
ても即座にオペレーティングシステムを切り替えて割り
込み処理を開始する手順とを有し、これらの手順により
第一のオペレーティングシステムを、第二のオペレーテ
ィングシステムのアイドル時だけ動作するようにスケジ
ュールして、第二のオペレーティングシステムが管理す
るデバイスが発生する割り込みに対する応答時間を短縮
することを特徴とするマルチOS構成方法。 - 【請求項7】請求項1ないし5のマルチOS構成方法で
あって、複数のプロセッサと、外部機器からの割り込み
を特定のプロセッサ、あるいは、プロセッサ群に通知す
ることを指定できる装置を持っている計算機で、第一の
オペレーティングシステムの初期化時に第二のオペレー
ティングシステム用にプロセッサを予約する手順と、第
二のオペレーティングシステムを前記手順で予約したプ
ロセッサで起動する手順と、外部機器からの割り込みを
それぞれの機器を管理するオペレーティングシステムが
走行しているプロセッサ、あるいは、プロセッサ群に通
知するように設定する手順を有することを特徴とするマ
ルチOS構成方法。 - 【請求項8】計算機の制御方法に関し、第一のオペレー
ティングシステムが起動時に読み込まれる複数のファイ
ルから構成されていて、ハードウェア依存の処理がカー
ネル本体のファイルから分離されている場合に、前記ハ
ードウェア依存処理ファイルを変更して、請求項1ない
し7を実現することを特徴とするマルチOS構成方法。 - 【請求項9】請求項1のマルチOS構成方法であって、
第一のオペレーティングシステムの初期化処理時に、他
の複数のオペレーティングシステム用のハードウェア資
源を第一のオペレーティングシステムの初期化以降の処
理ではアクセスできないように予約する手順と、予約し
た物理メモリに他の複数のオペレーティングシステムを
ロードして第一のオペレーティングシステムとは別の仮
想アドレス空間で他のオペレーティングシステムを起動
する手順と、第一のオペレーティングシステムのカーネ
ル領域の一部分を他の複数のオペレーティングシステム
と共有するように設定する手順とを有することにより、
1プロセッサの計算機で複数のオペレーティングシステ
ムが動作可能であることを特徴とするマルチOS構成方
法。 - 【請求項10】請求項9のマルチOS構成方法であっ
て、第一のオペレーティングシステムの内の他の複数の
オペレーティングシステムと共有している領域にあるモ
ジュールを介して、実行中のオペレーティングシステム
以外のオペレーティングシステムのモジュールを呼び出
す手順を有することを特徴とするマルチOS構成方法。 - 【請求項11】請求項9ないし10のマルチOS構成方
法であって、割り込みを捕獲したときに割り込み要因よ
り複数実行されているオペレーティングシステムのうち
のどのオペレーティングシステムに割り込み処理させる
かを決定する手順と、前記手順により決定したオペレー
ティングシステムの割り込み処理モジュールを呼び出す
手順と、割り込み発生時に実行していたオペレーティン
グシステムに制御を戻す手順を有することにより、1つ
のプロセッサを有する計算機で複数のオペレーティング
システムを同時に動作させることを特徴とするマルチO
S構成方法。 - 【請求項12】請求項9ないし10のマルチOS構成方
法であって、1つ以上のオペレーティングシステムが回
復不可能な障害で停止したときに、他の停止していない
複数のオペレーティングシステムにそのことを通知する
手順と、停止しているオペレーティングシステムが管理
している割り込みを禁止する手順と、停止したオペレー
ティングシステムのモジュール呼び出しを禁止する手順
を有することにより、停止した以外の複数のオペレーテ
ィングシステムが動作を継続できることを特徴とするマ
ルチOS構成方法。 - 【請求項13】請求項9ないし10のマルチOS構成方
法であって、複数のオペレーティングシステムで共有し
なければならない命令コードとデータを専用の領域に閉
じ込めたオブジェクトファイルを利用し、第一のオペレ
ーティングシステム以外のオペレーティングシステム起
動時に第一のオペレーティングシステムのオブジェクト
ファイルの前記領域を見つけ、その領域のみを共有領域
に設定する手順を有することで、共有領域を小さくでき
ることを特徴とするマルチOS構成方法。 - 【請求項14】請求項9ないし10のマルチOS構成方
法であって、複数のオペレーティングシステムの間に実
行優先度を設定する手順を有することを特徴とするマル
チOS構成方法。 - 【請求項15】請求項14のマルチOS構成方法であっ
て、実行中のオペレーティングシステムが他のオペレー
ティングシステムのモジュールを呼び出す時に、実行中
のオペレーティングシステムの優先度が呼出先のオペレ
ーティングシステムの優先度よりも低ければ、即座に実
行オペレーティングシステムを切替えてモジュール呼び
出しを実施する手順と、実行中のオペレーティングシス
テムの優先度が呼出先のオペレーティングシステムの優
先度よりも高ければ、モジュール呼び出し要求があるこ
とを記録して呼び出しを延期し、呼出先のオペレーティ
ングシステムよりも優先度の高いオペレーティングシス
テムの処理が終了して、呼出先のオペレーティングシス
テムが実行可能になった時にモジュール呼び出しを実施
する手順を有することを特徴とするマルチOS構成方
法。 - 【請求項16】請求項14のマルチOS構成方法であっ
て、実行中のオペレーティングシステムAの優先度より
も低い優先度のオペレーティングシステムBが処理する
割り込みが発生した時にそれを記録して処理を延期する
手順、あるいは、装置と、オペレーティングシステムA
の処理が終了してオペレーティングシステムBが実行さ
れる時に、オペレーティングシステムA実行中に発生し
た割り込みの処理を開始する手順と、実行中のオペレー
ティングシステムよりも優先度の高いオペレーティング
システムが管理しているデバイスからの割り込みは、即
座に実行オペレーティングシステムを切り替えて割り込
み処理を開始する手順とを有し、優先度の高いオペレー
ティングシステムが管理するデバイスが発生する割り込
みに対する応答時間を短縮することを特徴とするマルチ
OS構成方法。 - 【請求項17】請求項16のマルチOS構成方法であっ
て、各オペレーティングシステムが管理する割り込み
と、各オペレーティングシステムに割り当てられている
優先度と、実行中のオペレーティングにしたがって、外
部機器からの割り込みの許可と禁止の設定をする手段を
有することを特徴とするマルチOS構成方法。 - 【請求項18】請求項9ないし17のマルチOS構成方
法であって、複数のプロセッサと、外部機器からの割り
込みを特定のプロセッサ、あるいは、プロセッサ群に通
知することを指定できる装置を持っている計算機で、第
一のオペレーティングシステムの初期化時に他の複数の
オペレーティングシステム用にプロセッサを予約する手
順と、他の複数のオペレーティングシステムを前記手順
で予約したプロセッサで起動する手順と、外部機器から
の割り込みをそれぞれの機器を管理するオペレーティン
グシステムが走行しているプロセッサ、あるいは、プロ
セッサ群に通知するように設定する手順を有することを
特徴とするマルチOS構成方法。 - 【請求項19】請求項9のマルチOS構成方法であっ
て、第一のオペレーティングシステム以外のオペレーテ
ィングシステムが受け取る外部割り込みについて、第一
のオペレーティングシステムからは前記割り込みを禁止
にできないように第一のオペレーティングシステムのデ
ータ構造を変更する手順とを有することを特徴とするマ
ルチOS構成方法。 - 【請求項20】請求項1ないし6、および、請求項8な
いし17のマルチOS構成方法であって、1つのプロセ
ッサで複数のオペレーティングシステムを動作させるこ
とを特徴とするマルチOS構成方法。
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)
| 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 | 元心信息科技集团有限公司 | 设备控制方法、电子设备及存储介质 |
-
1998
- 1998-01-20 JP JP00829998A patent/JP3546678B2/ja not_active Expired - Fee Related
Cited By (78)
| 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 |