JP2001175486A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JP2001175486A
JP2001175486A JP36315499A JP36315499A JP2001175486A JP 2001175486 A JP2001175486 A JP 2001175486A JP 36315499 A JP36315499 A JP 36315499A JP 36315499 A JP36315499 A JP 36315499A JP 2001175486 A JP2001175486 A JP 2001175486A
Authority
JP
Japan
Prior art keywords
computer
access
execution authority
execution
resource
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.)
Pending
Application number
JP36315499A
Other languages
English (en)
Inventor
Masahide Sato
雅英 佐藤
Toshiaki Arai
利明 新井
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 JP36315499A priority Critical patent/JP2001175486A/ja
Publication of JP2001175486A publication Critical patent/JP2001175486A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 複数OSを共存させ、特別なハードウェアに
よるOS間資源保護機構なしに、OS間の資源保護を実
現することのできる計算機システムを得る。 【解決手段】 OS間で資源を保護するために、通常、
最高の実行権限を有して動作するOSの実行権限レベル
を下げて動作させ、保護すべき資源にアクセスした場合
に例外が発生するようにプロセッサを設定する。これに
より、実行権限を下げて動作させているOSが、保護す
べき資源にアクセスしようとしたことがプロセッサに通
知される。例外が通知された場合のエミュレーション処
理を登録するために、OS毎の割り込みテーブルを設置
し、実行権限を下げて動作させるOSの割り込みテーブ
ルに例外が通知された場合に実行すべきエミュレーショ
ン処理を登録する。これにより、実行権限を下げて動作
させているOSが保護すべき資源にアクセスする前に、
本当にアクセスして良いかチェックしてからアクセスを
エミュレーションするため、保護すべき資源へのアクセ
スを制限できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムに
係り、特に、1台の計算機上で複数のオペレーティング
システム(OS)を稼動させるマルチOS動作環境にお
けるOS間資源保護を図った計算機システムに関する。
【0002】
【従来の技術】通常の計算機システムは、計算機上に1
つのOSを動作させ、そのOSが計算機のプロセッサ、
メモリ、及び、二次記憶装置等の計算機資源を管理し、
計算機が効率よく動作できるように資源スケジュールを
実施している。そして、OSのコード及びデータへのア
クセスは、各プログラムに与えられた実行権限により制
御されている。例えば、インテルアーキテクチャ(イン
テル・アーキテクチャ・ソフトウェア・デベロッパーズ
・マニュアル参照)の計算機は、計算機上で動作するプ
ログラムに対して、4段階の実行権限を与えることがで
き、これにより、上位レベルの実行権限を持つプログラ
ムのコードあるいはデータ領域を、下位レベルの実行権
限を持つプログラムから保護することができる。
【0003】また、OSには、様々な種類があり、バッ
チ処理に優れるものや、TSS(Time sharing Syste
m) に優れているもの、GUI(Graphical User Interf
ace)に優れているものなどが存在している。
【0004】一方、このような様々なOSを1台の計算
機で同時に実行したいというニーズがある。例えば、大
型計算機においては、実際に業務に伴うオンライン処理
を実行するOSと、開発用のOSとを1台の計算機で同
時に稼動させたいという要求がある。また、GUIに優
れているOSと、実時間性に優れているOSとを同時に
稼動させたい等の要求もある。
【0005】しかし、個々のOSは、単独で計算機資源
管理を実施することを仮定しており、複数のOSを共存
させるためには、何らかの機構が必要である。
【0006】1台の計算機で複数のOSを動作させる機
構に関する従来技術として、例えば、「OSシリーズ第
11巻VM,岡崎世雄他著、共立出版株式会社発行」に
記載された大型計算機で実現されている仮想計算機方式
が知られている。この従来技術による仮想計算機方式
は、仮想計算機制御プログラムが全ハードウェア資源を
占有して管理し、それを仮想化して仮想計算機を構成す
るものである。そして、この仮想計算機を構成する制御
部は、物理メモリ、入出力機器装置、外部割込み等を仮
想化する。しかし、この仮想計算機方式は、計算機資源
を完全に仮想化して分割しようとするため、仮想計算機
を構成する制御部が複雑となり、また、仮想計算機の高
性能化のために、特別なプロセッサ機能やマイクロコー
ド等のハードウェア等の特殊なハードウェア機構が必要
であるという問題点を有している。
【0007】また、1台の計算機で複数のOSのインタ
ーフェースを提供する方式として、マイクロカーネル方
式が知られている。マイクロカーネル方式は、マイクロ
カーネルの上に、ユーザに提供するOS機能のインタフ
ェースを提供するOSサーバを構築し、ユーザにそのサ
ーバを経由して計算機資源を利用させるものである。こ
の従来技術は、OS毎のサーバを用意することにより、
ユーザに様々なOS環境を提供することができる。しか
し、このマイクロカーネル方式は、OSサーバをマイク
ロカーネルに合わせて新規に構築する必要があり、多く
の場合、現在あるOSをマイクロカーネル上で動作する
ように変更することになるが、スケジューリング、メモ
リ管理等のカーネルの中枢部分も変更することになり、
変更箇所が多く、また、変更箇所がOSの中枢部分に及
ぶため変更作業が複雑であるという問題点を有してい
る。
【0008】前述した仮想計算機方式及びマイクロカー
ネル方式の問題点を解決ことのできる他の従来技術とし
て、例えば、特開平11−149385号公報等に記載
された技術が知られている。この従来技術は、第1のO
Sが、第2のOSが必要とする物理メモリ、外部デバイ
ス等の計算機資源を予約し、どちらのOSからも独立し
た管理プログラムが外部割り込みを横取りして、割り込
み要因により、どのOSの割り込みハンドラを起動すべ
きかを決定し、OSの実行状態により割り込みハンドラ
を起動するタイミングを決定して、それに基づいて各O
Sの割り込みハンドラを起動することにより、2つのO
Sを1台の計算機で動作させるというものである。
【0009】
【発明が解決しようとする課題】前述した特開平11−
149385号公報記載の従来技術は、次のような問題
点を有している。
【0010】前述したように、通常のOSは、単独で計
算機資源の管理を実施することを前提として構築されて
いるおり、OSのコード及びデータ領域を保護するため
に、計算機の保護機構を使用し、OSに最高レベルの実
行権限を与え、ユーザプログラムには、OSよりも低い
実行権限を与えて動作させることにより、OSをユーザ
プログラムから保護している。このようなOSを特開平
11−149385号公報記載の方法で、1台の計算機
上に複数共存させ、各OSに最高レベルの実行権限を与
えた場合、この従来技術は、特定のOSが使用する計算
機資源を他のOSから隠蔽するとはいえ、ハードウェア
的にアクセスを制限することができず、障害によって
は、特定のOSの障害が共存している他のOSの動作に
影響を与える場合があるという問題点を生じさせる。特
に、現用系とテスト系とを共存させた場合、通常、テス
ト系には障害要因が潜んでいる可能性が現行系よりも大
きいため、テスト系の障害が現用系にも影響することに
なり、この点が大きな問題となる。
【0011】前述したように、1台の計算機上で共存し
ている複数のOS間の保護を実現するためには、特別な
ハードウェア保護機構が必要となる。また、仮想計算機
方式で複数OSを共存させる場合、高性能化のための特
別なハードウェア機構を持っていない計算機は、共存し
ているOSすべてに関してソフトウェア的なエミュレー
ション処理が必要となり、性能的に問題となる。
【0012】本発明の第1の目的は、前述した従来技術
の問題点を解決し、高性能化のための特別なハードウェ
アなしに複数のOSを共存させることが可能な計算機環
境において、特別なハードウェアによるOS間資源保護
機構なしにOS間の資源保護を実現することのできる計
算機システムを提供することにある。
【0013】また、本発明の第2の目的は、高性能化の
ための特別なハードウェアなしに複数のOSを共存させ
ることが可能な計算機環境、特に、現行系とテスト系と
が共存する環境において、テスト系のみにエミュレーシ
ョン処理を実施させることにより、現行系の性能を落と
すことなくOS間の資源保護を行うことができる計算機
システムを提供することにある。
【0014】
【課題を解決するための手段】本発明によれば前記目的
は、計算機資源のアクセス権を制限可能な実行権限レベ
ルを複数有し、1つの計算機上で、複数のオペレーティ
ングシステムが独自のアドレス空間と、オペレーティン
グシステム間共通のアドレス空間とを有し、プロセッサ
を複数のオペレーティングシステムにより共有して動作
する計算機システムにおいて、オペレーティングシステ
ムが実施する処理を代替するエミュレーション手段と、
オペレーティングシステムの実行権限レベルを変更する
OS実行権限設定手段と、オペレーティングシステムの
計算機資源へのアクセス可否情報が設定されているアク
セスチェックテーブルと、オペレーティングシステムが
計算機資源にアクセスしようとするときにアクセスチェ
ックテーブルを検査するアクセスチェック手段とを備
え、複数のオペレーティングシステムからアクセス可能
な計算機資源を保護することにより達成される。
【0015】また、本発明によれば、前述において、オ
ペレーティングシステム起動時に当該オペレーティング
システムの実行権限を指定するOS実行権限指定インタ
フェースを備えることにより、すでにロードされている
オペレーティングシステムに対して、そのオペレーティ
ングシステムの実行権限レベルを指定するOS実行権限
指定インタフェースと、オペレーティングシステムの実
行権限を変更するOS実行権限設定手段とをさらに備え
ることにより、また、オペレーティングシステムがアク
セス可能な計算機資源をアクセスチェックテーブルに登
録するアクセス情報設定手段を有し、オペレーティング
システム毎の計算機資源アクセス可否情報を登録するこ
とにより達成される。
【0016】本発明は、前述の構成を備えることによ
り、OS間で資源を保護するために、通常、最高の実行
権限を有して動作するOSの実行権限レベルを下げて動
作させ、保護すべき資源にアクセスした場合に例外が発
生するようにプロセッサを設定することができ、これに
より、実行権限を下げて動作させているOSが、保護す
べき資源にアクセスしようとしたことをプロセッサに通
知することができる。
【0017】また、本発明は、例外が通知された場合の
エミュレーション処理を登録するために、OS毎の割り
込みテーブルが設置されており、このテーブルに、実行
権限を下げて動作させるOSの割り込みテーブルに例外
が通知された場合に実行すべきエミュレーション処理を
登録する。これにより、実行権限を下げて動作させてい
るOSが保護すべき資源にアクセスする前に、本当にア
クセスして良いか否かをチェックしてからアクセスをエ
ミュレーションすることにより、保護すべき資源へのア
クセスを制限することができる。
【0018】また、本発明は、特定のOSがアクセスで
きる資源を登録するアクセスチェックテーブル登録手段
を設けることにより、そのOSがアクセスする資源のア
クセス情報を登録しておくことができる。
【0019】さらに、本発明は、OSの起動時あるいは
動作時に、そのOSに与える実行権限レベルを指定する
実行権限設定手段を設けているので、共存する特定のO
Sに対して、実行権限レベルを指定することができる。
【0020】さらに、本発明は、実行権限を下げて動作
するOSのためのエミュレーション処理を登録するエミ
ュレーション処理を登録することができ、これにより、
実行権限を下げたOSに対するエミュレーション処理を
設定することができる。
【0021】
【発明の実施の形態】以下、本発明による計算機システ
ムの一実施形態を図面により詳細に説明する。
【0022】図1は本発明の実施形態による計算機シス
テムの構成を示すブロック図であり、まず、本発明の実
施形態による計算機システムの構成の概要を説明する。
図1において、100は計算機、101はプロセッサ、
102は演算装置、103はコードセグメントレジス
タ、104はデータセグメントレジスタ、105はセグ
メントテーブルレジスタ、106は割り込みテーブルレ
ジスタ、107はページテーブルレジスタ、108はア
ドレス変換装置、109は主記憶装置、110は主記憶
装置の共通領域、111は第2OSの領域、112は第
1OSの領域、113は割り込みコントローラ、114
はROM、115は割り込みバス、116はバス、11
7は割り込み信号線、118はキーボード、119はデ
ィスプレイ、120は磁気ディスク装置、121、12
2は外部機器、130はクロック割り込み生成器であ
る。
【0023】計算機100は、図1に示すように、プロ
セッサ101、主記憶装置109、バス116、割り込
み信号線117、割り込みコントローラ113、ブート
手順を格納している記憶装置(ROM)114、割り込
みバス115、クロック割り込み生成器130を備えて
構成されている。このように構成される計算機100に
おいて、割り込み信号線117は、外部入出力機器11
8〜122と割り込みコントローラ113とを接続して
いる。割り込みコントローラ113は、外部機器が割り
込みを発生すると、割り込み信号線117を経由して信
号を受け取り、割り込みコントローラ113がこの信号
を数値化して、割り込みバス115を介してプロセッサ
101に渡す。また、クロック割り込み生成器130
は、周期的な割り込みを発生する。
【0024】プロセッサ101は、演算装置102、コ
ードセグメントレジスタ103、データセグメントレジ
スタ104、セグメントテーブルレジスタ105、割り
込みテーブルレジスタ106、ページテーブルレジスタ
107、アドレス変換装置108を備えて構成されてい
る。
【0025】セグメントテーブルレジスタ105は、セ
グメントテーブル127の仮想アドレスを格納してい
る。セグメントテーブル127の詳細は後述するが、プ
ログラムが動作するときに使用するメモリ領域の範囲に
関する情報を格納している。
【0026】コードセグメントレジスタ103は、プロ
グラムが動作するときに使用される命令コードを格納し
ている領域の情報を有するセグメントテーブル内のエン
トリの番号及び命令を実行するときの実行権限レベルを
格納している。
【0027】データセグメントレジスタ104は、プロ
グラムが動作するときに使用されるデータを格納してい
る領域の情報を有するセグメントテーブル内エントリの
番号及び当該領域をアクセスするための命令を実行する
ときに必要な実行権限レベルを格納している。
【0028】計算機100は、実行権限レベル0〜3の
4つの実行権限レベルを有しており、その権限は、レベ
ル0が最上位の実行権限レベルであり、レベル1、レベ
ル2、レベル3の順に実行権限が低くなる。すなわち、
命令実行の観点で実行権限レベルを見た場合、実行権限
レベル0は、計算機全体の制御をするシステム操作命令
を実行するための命令を実行するための権限レベルであ
り、プロセッサが提供している命令セットのすべてを実
行することができる権限レベルである。そして、その他
の実行権限レベルは、システム操作命令以外の命令を実
行する権限レベルである。また、メモリアクセスに関し
て見れば、実行権限レベル3のプログラムは、アクセス
のために必要な実行権限レベルが3のデータ領域に対し
てのみアクセス可能であり、実行権限レベル2のプログ
ラムは、アクセスのための権限レベルが、2と3のデー
タ領域にアクセスすることが可能であり、実行権限レベ
ル1のプログラムは、アクセスのための権限レベルが、
1と2と3のデータ領域にアクセス可能であり、実行権
限レベル0のプログラムは、アクセスのためのレベルが
どのレベルであってもデータ領域にアクセス可能であ
る。
【0029】割り込みテーブルレジスタ106は、割り
込みテーブル123の仮想アドレスを指し示している。
割り込みテーブル123の詳細については後述するが、
割り込み番号毎の割り込みハンドラの開始アドレスを記
憶している。割り込みが発生すると、プロセッサ101
は、割り込みコントローラ113から数値化された割り
込み番号を受け取り、この番号をインデックスとして割
り込みテーブル123により割り込みハンドラアドレス
を取得し、割り込みハンドラに制御を渡す。また、割り
込みテーブル123は、計算機100に接続されている
機器からの割り込みだけでなく、プロセッサ内で発生し
た例外についても、例外が発生したときの処理を登録し
ている。
【0030】ページテーブルレジスタ107は、ページ
テーブル128を指し示している。ページテーブルレジ
スタは、ページテーブル128の物理アドレスを格納し
ている。
【0031】アドレス変換装置108は、演算装置10
2が要求する命令アドレスあるいはオペランドが格納さ
れているアドレスを受け取り、ページテーブルレジスタ
107が指しているページテーブル128の内容に基づ
いて、仮想アドレス−物理アドレス変換を実施する。さ
らに、アドレス変換装置108は、仮想アドレス−物理
アドレス変換の前に、演算装置が要求するアドレスへの
アクセス可否のチェックを行い、アクセス不可の場合、
例外としてプロセッサに通知する。
【0032】計算機100には、外部入出力装置とし
て、キーボード118、ディスプレイ119、磁気ディ
スク装置120、その他の外部機器121及び122が
接続されている。ディスプレイ119を除く機器は、割
り込み信号線117により割り込みコントローラ113
に接続されている。
【0033】次に、計算機100上で第1OSと第2O
Sとの2つのOSが動作しているものとして、主記憶装
置109の内容について説明する。なお、ここでは、計
算機100を起動すると、第1OSが起動するように設
定されており、外部機器121、122は第2OSによ
り管理される機器であるとする。
【0034】第1OSは、計算機100の起動時に、そ
の他のOS用、この場合、第2OS用に物理メモリ領域
を予約する。すなわち、第1OSが、第2OS用に予約
された物理メモリ領域を利用できないように物理メモリ
領域を確保する。図1には、この予約した領域に第2O
Sがロードされている様子を示している。また、第1O
Sの初期化課程において、第1OSから外部機器12
1、122の利用する割り込み番号や入出力アドレス
が、すでに利用済みであるとして予約される。
【0035】第1OSは、全てのOSから参照可能な共
通領域110を持つ。その共通領域110には、割り込
みテーブル123、アクセスチェックテーブル129、
OS実行権限設定手段126、割り込みハンドラ12
5、エミュレーション手段124等が格納されている。
また、第1OS領域112及び第2OS領域111に
は、それぞれ、各OSが使用する仮想空間とその仮想空
間を構成する物理メモリ領域のマッピング情報とを有す
るページテーブル128、及び、構成した仮想空間をア
クセスするための実行権限レベル情報を有するセグメン
トテーブル127が存在する。なお、図1におけるセグ
メントテーブル127、ページテーブル128は、第2
OSのテーブルであり、第1OSのセグメントテーブ
ル、ページテーブルも第1OSの領域112に存在する
が図の簡略化のため記載を省略している。
【0036】図2はセグメントテーブルの構成を説明す
る図であり、次に、図2を参照して、本発明の実施形態
におけるセグメントテーブル127の構成について説明
する。
【0037】セグメントテーブル127は、仮想空間内
の特定の領域へアクセスするための実行権限レベル及び
その領域の属性を記録したテーブルであり、エントリ番
号201が付与された複数のエントリを有している。
【0038】図2において、ベースアドレス202は仮
想空間内の特定領域の開始アドレスを示し、リミット2
03は領域長を示し、実行権限レベル204は当該領域
へのアクセスに必要な実行権限レベルを示している。タ
イプ205はその領域に格納する情報のタイプ、すなわ
ち、命令コードが格納されるのか、データが格納される
のかを示すタイプを示しており、図2に示す例では、命
令コード領域の場合にC、データ領域の場合にDとして
表記している。206は、そのエントリが有効か否かを
示している。
【0039】計算機100は、プロセッサがプログラム
を実行する場合、そのプログラムを実行する前に、コー
ドセグメントレジスタ103に格納されているプロセッ
サが実行するプログラムコードCが格納されている領域
のセグメント情報(セグメントテーブル127内に記録
されている情報)を示すセグメント内インデックスをロ
ードし、そのプログラムが参照するデータ領域のセグメ
ント情報を示すセグメント内インデックスをロードす
る。コードセグメントレジスタ103にローディングさ
れたセグメント情報の実行権限レベルが、そのプログラ
ムを実行するときの実行権限レベルとなる。計算機10
0は、プロセッサ101がデータにアクセスする前に、
そのプログラムが有する実行権限レベルと、アクセスし
ようとするデータ領域をアクセスするための実行権限レ
ベルとを比較し、現在プログラムが有する実行権限レベ
ルがアクセスしようとするデータ領域をアクセスするた
めに必要な実行権限レベルと同等かそれ以上の場合にア
クセスを許可する。アクセスのために必要な実行権限レ
ベルより低い実行権限レベルの場合、アクセス例外とし
て、プロセッサに通知する。
【0040】また、計算機100は、実行権限レベル0
以外の実行権限を有するプログラムが、システムを制御
するシステム操作命令(例えば、データセグメントレジ
スタ104を操作する命令等)を実行しようとした場
合、命令実行前に、プログラムの実行権限レベルをチェ
ックし、実行権限レベルが0以外の場合、実行権限例外
として、プロセッサに通知する。この機構により、計算
機100は、実行権限レベルの低いプログラムが、高い
実行権限を有するプログラムが使用する領域を破壊する
ことを防止する。
【0041】図3はページテーブルの構成を説明する図
であり、次に、図3を参照して、本発明の実施形態にお
けるページテーブル128の構成について説明する。
【0042】ページテーブル128は、プロセッサ10
1の仮想アドレス空間の仮想ページ毎に、それぞれの仮
想ページを記述する複数のエントリを有している。それ
ぞれのエントリは、仮想ページ番号301と、有効ビッ
ト302と、物理ページ番号303とにより構成されて
いる。有効ビット302は、その仮想ページに対応する
物理ページが割り当てられているか否か、すなわち、仮
想−物理アドレス変換が可能か否かを示している。例え
ば、図3におけるページテーブル128の仮想ページ番
号2に対応する有効ビット302は、“0”であり、
“1”にセットされていないため、仮想ページ番号2に
対応する物理ページは存在しないことを示している。そ
して、有効ビット302が“1”に設定されていない仮
想ページにアクセスが発生すると、プロセッサはページ
フォルトを発生する。
【0043】物理ページ番号303は、仮想ページに対
応する物理ページ番号を格納している。アドレス変換装
置108は、ページテーブルレジスタ107の指してい
るページテーブル128を参照して、演算装置102が
生成する仮想アドレスを物理アドレスに変換する。プロ
セッサ101は、アドレス変換により得られた物理アド
レスにより主記憶装置109を参照する。
【0044】ページテーブルを切り替えることにより、
主記憶109の中に独立した空間を構築することがで
き、第1OSの空間及び第2OSの空間を別々に構築す
ることが可能である。また、主記憶109内の共通領域
110については、両OSのページテーブルの共通領域
に対応する部分に、同じ物理ページをマップするよう設
定しておくことにより、共通領域を実現することができ
る。
【0045】図4は割り込みテーブルの構成を説明する
図であり、次に、図4を参照して、本発明の実施形態に
おける割り込みテーブル123の構成について説明す
る。
【0046】割り込みテーブル123は、プロセッサ1
01が受け取る割り込み番号毎401の割り込みハンド
ラの仮想アドレス402を記憶している。プロセッサ1
01は、割り込みを受け取ると、受け取った割り込み番
号に対応する割り込みハンドラアドレスを、割り込みテ
ーブルレジスタ106が指す割り込みテーブル123か
ら取得し、そのアドレスに制御を移すことにより割り込
み処理を開始する。ここでいう割り込みとは、計算機1
00に接続されている外部機器からのデバイス割り込み
及び命令実行時にアクセス例外等でプロセッサに通知さ
れる例外を意味する。
【0047】図5はアクセスチェックテーブルの構成を
説明する図であり、次に、図5を参照して、本発明の実
施形態におけるアクセスチェックテーブル129の構成
について説明する。
【0048】アクセスチェックテーブル129は、OS
がアクセス可能である領域の先頭アドレスを示すアクセ
ス許可領域先頭アドレス502と、アクセス可能領域の
サイズを示すアクセス許可領域長503と、そのエント
リが有効であるか否かを示す有効ビット504とから構
成されている。なお、これらの502、503、504
をアクセスチェック情報と呼ぶ。また、アクセスチェッ
クテーブル500は、1つ以上のエントリから構成され
ており、各エントリには、エントリ番号として、インデ
ックス501が付与されている。アクセス許可領域長5
03は、アクセス許可領域の大きさをバイト単位で記録
している。
【0049】このアクセスチェックテーブル129を用
いることにより、特定のOSが資源にアクセスしようと
した場合に、アクセスして良いか否かを判定することが
できる。また、アクセスチェックテーブル129の内容
については、予め決まっている内容に固定的に設定して
も構わないが、共存するOSからアクセスチェックテー
ブルの内容を設定するためのアクセスチェックテーブル
設定インタフェースを有するアクセスチェックテーブル
設定手段を設け、計算機上で共存しているOSからアク
セスチェック情報を登録する形態にしてもよい。
【0050】図6は主記憶装置上に第1OS及び第2O
SがローディングされてこれらのOSが1台の計算機上
に共存している状態を示す図、図7は第2OSが通常使
用するセグメントテーブルの構成を示す図、図8は本発
明の実施形態により使用する第2OSのセグメントテー
ブルの構成を示す図、図9はセグメントテーブルの内容
の変更により、セグメントテーブルに格納されているセ
グメント情報で示される仮想空間の実行権限が変更され
ることを説明する図、図10はアクセス例外が発生した
ときのエミュレーション処理の動作を説明するフローチ
ャート、図11は実行権限例外が発生したときのエミュ
レーション処理の動作を説明するフローチャート、図1
2は第2OSが構成する仮想空間の構成を示す図、図1
3はOSの実行権限レベルを変更するOS実行権限設定
処理について説明する図であり、次に、図6〜図13を
参照して、本発明の実施形態により、第1OSと第2O
Sとを共存させ、両OSから共用する資源に対して第2
OSのアクセスを制限するOS間資源保護を実現するこ
とについて説明する。
【0051】図6に示すように、主記憶109には、第
1OS及び第2OSで共通に使用する共通領域110
と、第2OS固有の領域111と、第1OS固有の領域
112とが形成される。第2OSの領域111には、第
2OSの命令コードが格納されている第2OS命令コー
ド領域709と第2OSが参照するデータがされている
第2OSデータ領域710とが設けられ、データ領域7
10内には、第2OS用のセグメントテーブル711
と、ページテーブル712とが配置される。
【0052】第1OS領域112には、第1OSの命令
コードが格納されている第1OS命令コード領域713
と第1OSが参照するデータがされている第1OSデー
タ領域714とが設けられ、データ領域710内には、
第2OS用のセグメントテーブル715と、ページテー
ブル716とが配置される。
【0053】また、共通領域110には、図1により説
明したように、割り込みテーブル123、割り込みハン
ドラ125、OS実行権限設定手段126が配置される
と共に、さらに、第2OSエミュレーション手段707
と、第2OSアクセスチェックテーブル708とが配置
されている。割り込みテーブル123の各エントリに
は、割り込みが発生した場合に実行する処理のスタート
アドレスとして、割り込みハンドラ125、及び、第2
OSエミュレーション手段707を実行するためのアド
レスが登録されている。
【0054】第2OSが構成する仮想空間は、図12に
示すように、ユーザプログラム命令コード領域130
1、ユーザプログラムデータ領域1302、OS命令コ
ード領域1303、OSデータ領域1304、共通領域
1305から構成される。そして、図12に示すような
仮想空間を構成したとき、第2OSが通常使用するセグ
メントテーブル711は図7に示すように構成される。
【0055】図7に示す第2OSが通常使用するセグメ
ントテーブル711において、エントリ810は、OS
命令コード領域1303のセグメント情報を格納してお
り、エントリ811は、OSデータ領域1304の、エ
ントリ812、813は、共通領域1305の、エント
リ814は、ユーザプログラム命令コード領域1301
の、エントリ815は、ユーザプログラムデータ領域1
302の各セグメント情報を格納している。
【0056】本発明の実施形態は、第2OSのセグメン
トテーブル711を図8に示すように変更して使用す
る。図8に示すテーブルの図7に示すテーブルとの相違
は、図7に示すテーブルのエントリ810に対応する図
8のテーブルのエントリ910の実行権限レベル804
の内容を“1”にしていることである。エントリ910
の実行権限レベルを“0”から“1”に変更することに
より、第2OSがOS領域、すなわち、エントリ81
1、812、813で記述されている領域をアクセスし
ようとした場合、プロセッサに対して、アクセス例外、
あるいは、実行権限例外として通知されることになる。
なお、セグメントテーブル内の実行権限レベル804を
変更するのは、図1及び図6に示しているOS実行権限
設定手段126である。
【0057】セグメントテーブルの内容を図7に示す内
容から図8に示す内容に変更することにより、セグメン
トテーブルに格納されているセグメント情報で示される
仮想空間の実行権限は、図9に示すように変更されるこ
とになる。
【0058】次に、前述したように、第2OSの実行権
限を変更した場合に発生するアクセス例外、及び、実行
権限例外発生時の第2OSのエミュレート処理につい
て、図10、図11に示すフローを参照して説明する。
まず、図10に示すフローを参照して、はアクセス例外
が発生したときのエミュレーション処理について説明す
る。なお、エミュレート処理は、図6に示す第2OSエ
ミュレーション手段により実施される。
【0059】(1)まず、例外が発生した命令のデコー
ド処理を実施する。そして、このデコード処理におい
て、例外が発生した命令の命令語、参照レジスタ、参照
アドレス等を取得する(ステップ1101)。
【0060】(2)次に、例外発生命令を実行しようと
したときの命令実行権限レベルを、コードセグメントレ
ジスタあるいはセグメントテーブルから取得する。その
後、ステップ1101の処理で取得した参照アドレスが
指す領域を含むセグメントに対するデータ参照権限レベ
ルを、データセグメントレジスタあるいはセグメントテ
ーブルから取得する(ステップ1102、1103)。
【0061】(3)ステップ1102の処理で取得した
実行権限レベルが“1”であるか否かをチェックし、実
行権限レベルが“1”以外の場合、他の例外処理に制御
を移す(ステップ1104、1109)。
【0062】(4)ステップ1104の判定で、実行権
限レベルが“1”であった場合、その例外発生命令が実
行権限を“1”に変更したセグメント内に格納されてい
る命令であるか否かをチェックし、その命令が実行権限
レベルを“1”に変更したセグメント内の命令でなかっ
た場合、他の例外処理に制御を移す(ステップ110
5、1109)。
【0063】(5)ステップ1105の判定で、その命
令が実行権限レベルを“1”に変更したセグメント内の
命令であった場合、その例外発生命令の参照データが、
アクセスチェックテーブル708に登録されている領域
内であるか否かをチェックし、その例外発生命令の参照
データがアクセスチェックテーブルに登録されていない
場合、他の例外処理に制御を移す(ステップ1106、
1109)。
【0064】(6)ステップ1106の判定で、その例
外発生命令の参照データが、アクセスチェックテーブル
708に登録されている領域内であった場合、例外発生
命令を実際に実行するエミュレート処理を実行する(ス
テップ1107)。
【0065】(7)例外処理を終了して例外発生命令の
次の命令に制御を移すための復帰アドレスを設定する処
理を実行する(ステップ1108)。
【0066】前述した処理において、ステップ1109
へ制御が渡るのは、そのOSがアクセスする資源がアク
セスチェックテーブルに登録されていない場合、あるい
は、実行権限レベルを変更したことにより発生したアク
セス例外ではなく、プログラムのバグ等の要因で発生し
たアクセス例外が発生した場合である。このような例外
が発生した場合の例外処理がステップ1109である。
【0067】図10により説明したアクセス例外処理を
実行することにより、アクセス可否をチェックすること
ができ、アクセスチェックテーブルに、アクセス許可資
源を登録することにより、登録されていない資源へのア
クセスを禁止することができる。
【0068】次に、実行権限例外が発生したときのエミ
ュレーション処理について、図11に示すフローを参照
して説明する。
【0069】(1)まず、例外が発生した命令のデコー
ド処理を実施する。そして、このデコード処理におい
て、例外が発生した命令の命令語、参照レジスタ、参照
アドレス等を取得する(ステップ1201)。
【0070】(2)次に、例外発生命令を実行しようと
したときの命令実行権限レベルを、コードセグメントレ
ジスタあるいはセグメントテーブルから取得する(ステ
ップ1202)。
【0071】(3)ステップ1202の処理で取得した
実行権限レベルが“1”であるか否かをチェックし、実
行権限レベルが“1”以外の場合、他の例外処理に制御
を移す(ステップ1203、1207)。
【0072】(4)ステップ1203の判定で、実行権
限レベルが“1”であった場合、その例外発生命令が実
行権限を“1”に変更したセグメント内に格納されてい
る命令であるか否かをチェックし、その命令が実行権限
レベルを“1”に変更したセグメント内の命令でなかっ
た場合、他の例外処理に制御を移す(ステップ120
4、1207)。
【0073】(5)ステップ1204の判定で、その例
外発生命令が実行権限レベルを“1”に変更したセグメ
ント内の命令であった場合、例外発生命令を実際に実行
するエミュレート処理を実行する(ステップ120
5)。
【0074】(6)例外処理を終了して例外発生命令の
次の命令に制御を移すための復帰アドレスを設定する処
理を実行する(ステップ1206)。
【0075】前述した処理において、ステップ1207
へ制御が渡るのは、実行権限レベルを変更したことによ
り発生した実行権限例外ではなく、プログラムのバグ等
の要因で発生した実行権限例外が発生した場合である。
このような例外が発生した場合の例外処理がステップ1
207である。
【0076】図10、図11により説明した処理を実行
することにより、実行権限レベルを“1”に変更したプ
ログラム(本発明の実施形態では、第2OS)は、実行
権限レベルを“1”に下げて実行することができ、さら
に、アクセスチェックテーブルに登録していない資源に
対してアクセスを禁止することができる。
【0077】次に、図13を参照して、OSの実行権限
レベルを変更するOS実行権限設定処理について説明す
る。
【0078】図13には、OS実行権限設定手段140
1が共通領域に配置され、OS実行権限設定手段140
1が、OS実行権限指定インフェース1402を有して
いることが示されている。インタフェース1402は、
計算機上で共存しているOSから特定OSの実行権限を
指定するためのインタフェースであり、その入力とし
て、どのOSの実行権限を設定するかを示すOS識別子
と、設定すべき実行権限レベルとを必要とする。
【0079】入力値として、OS識別子と実行権限レベ
ルとを与えらたOS実行権限設定手段1401は、実行
権限レベルを設定すべきOSのセグメントテーブル内の
命令を格納する領域の情報を格納するエントリに対し
て、その実行権限レベルを入力されたレベルに設定し、
さらに、割り込みテーブルに対して、実行権限レベルを
変更することにより発生する例外に対する処理として、
エミュレーション処理を実行するための命令アドレスを
設定する。ここで、変更するセグメントテーブルエント
リについては、予め、判っているものとする。OS実行
権限設定手段1401により、1台の計算機上で共存し
ているOSから、特定のOSに対して、実行権限レベル
を変更することが可能となる。なお、前述で説明したO
S実行権限設定処理は、1台の計算機上で共存し、現在
実行中のOSから、現在実行していないもう一方のOS
に対して実施可能であるが、特定のOS起動時の初期化
処理として、前述したインタフェースを使用することに
より、実行権限を設定することが可能である。
【0080】前述した本発明の実施形態によれば、1台
の計算機上で2つのOSが共存する環境において、OS
の実行権限を設定するOS実行権限設定手段を設け、1
つのOSの実行権限を下げて実行し、実行権限を下げた
OSの処理をエミュレーションすることにより、共存す
るOS間で共用する計算機資源に対するアクセスを制限
することができる。そして、本発明の実施形態によれ
ば、もう一方のOSに関しては、エミュレーション処理
を行わせずにそのまま実行させることができ、性能に関
しても、高速化のための特別ハードウェアを必要としな
い。特に、共存させるOSとして、通常使用する現用系
OSと、テスト系OSとを共存させた場合、テスト系O
Sに障害要因が潜んでいる場合が一般的に多く、テスト
系OSからの資源アクセスを制限することにより、テス
ト系OSの障害が現用系OSに波及することを防止する
ことができる。このように、テスト系OSの処理のみエ
ミュレーション処理を実行することにより、現用系OS
に関する性能劣化も防止することができる。
【0081】前述した本発明の実施形態は、共存するO
Sが2つであるとして説明したが、本発明は、共存する
OSが3つ以上である場合にも、第2OS、第3OSに
対して、実行権限を下げることにより、同等の効果を得
ることができる。
【0082】また、前述した本発明の実施形態は、第2
OSのみの実行権限を下げることにより、第2OSから
の資源アクセスを制限したが、第2OSと同様に、第1
OSの実行権限を下げることにより、共存するOS間で
共用する資源のアクセスを両OSから制限することも可
能である。
【0083】また、前述した本発明の実施形態は、本発
明を単一のプロセッサを有する計算機に適用したとして
説明したが、本発明は、複数のプロセッサを持つ計算機
にに対しても同様に適用することが可能である。
【0084】さらに、前述した本発明の実施形態は、O
Sがアクセスする資源として、主記憶装置を対象として
説明したが、本発明は、インテルアーキテクチャのI/
O空間のような主記憶装置以外の資源を有する計算機に
対しても適用することができ、主記憶装置と同様に、主
記憶装置以外の資源を同様な方法で保護することが可能
となる。
【0085】
【発明の効果】以上説明したように本発明によれば、複
数OSを共存させる計算機環境において、高性能化のた
めの特別なハードウェアなしに、かつ、特別なハードウ
ェアによるOS間資源保護機構なしに、OS間の資源保
護を実現することができ、特に、現行系とテスト系とが
共存する環境において、テスト系のみにエミュレーショ
ン処理を実施することにより、現行系の性能を落とすこ
となくOS間での資源保護を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施形態による計算機システムの構成
を示すブロック図である。
【図2】セグメントテーブルの構成を説明する図であ
る。
【図3】ページテーブルの構成を説明する図である。
【図4】割り込みテーブルの構成を説明する図である。
【図5】アクセスチェックテーブルの構成を説明する図
である。
【図6】主記憶装置上に第1OS及び第2OSがローデ
ィングされてこれらのOSが1台の計算機上に共存して
いる状態を示す図である。
【図7】第2OSが通常使用するセグメントテーブルの
構成を示す図である。
【図8】本発明の実施形態により使用する第2OSのセ
グメントテーブルの構成を示す図である。
【図9】セグメントテーブルの内容の変更により、セグ
メントテーブルに格納されているセグメント情報で示さ
れる仮想空間の実行権限が変更されることを説明する図
である。
【図10】アクセス例外が発生したときのエミュレーシ
ョン処理の動作を説明するフローチャートである。
【図11】実行権限例外が発生したときのエミュレーシ
ョン処理の動作を説明するフローチャートである。
【図12】第2OSが構成する仮想空間の構成を示す図
である。
【図13】OSの実行権限レベルを変更するOS実行権
限設定処理について説明する図である。
【符号の説明】
100 計算機 101 プロセッサ 102 演算装置 103 コードセグメントレジスタ 104 データセグメントレジスタ 105 セグメントテーブルレジスタ 106 割り込みテーブルレジスタ 107 ページテーブルレジスタ 108 アドレス変換装置 109 主記憶装置 110 共通領域 111 第2OS領域 112 第1OS領域 113 割り込みコントローラ 130 クロック生成器 116 バス 117 割り込み信号線

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 計算機資源のアクセス権を制限可能な実
    行権限レベルを複数有し、1つの計算機上で、複数のオ
    ペレーティングシステムが独自のアドレス空間と、オペ
    レーティングシステム間共通のアドレス空間とを有し、
    プロセッサを複数のオペレーティングシステムにより共
    有して動作する計算機システムにおいて、オペレーティ
    ングシステムが実施する処理を代替するエミュレーショ
    ン手段と、オペレーティングシステムの実行権限レベル
    を変更するOS実行権限設定手段と、オペレーティング
    システムの計算機資源へのアクセス可否情報が設定され
    ているアクセスチェックテーブルと、オペレーティング
    システムが計算機資源にアクセスしようとするときにア
    クセスチェックテーブルを検査するアクセスチェック手
    段とを備え、複数のオペレーティングシステムからアク
    セス可能な計算機資源を保護することを特徴とする計算
    機システム。
  2. 【請求項2】 オペレーティングシステム起動時に当該
    オペレーティングシステムの実行権限を指定するOS実
    行権限指定インタフェースを備えることを特徴とする請
    求項1記載の計算機システム。
  3. 【請求項3】 すでにロードされているオペレーティン
    グシステムに対して、そのオペレーティングシステムの
    実行権限レベルを指定するOS実行権限指定インタフェ
    ースと、オペレーティングシステムの実行権限を変更す
    るOS実行権限設定手段とをさらに備えることを特徴と
    する請求項1または2記載の計算機システム。
  4. 【請求項4】 オペレーティングシステムがアクセス可
    能な計算機資源をアクセスチェックテーブルに登録する
    アクセス情報設定手段を有し、オペレーティングシステ
    ム毎の計算機資源アクセス可否情報を登録することを特
    徴とする請求項1、2または3記載の計算機システム。
JP36315499A 1999-12-21 1999-12-21 計算機システム Pending JP2001175486A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36315499A JP2001175486A (ja) 1999-12-21 1999-12-21 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36315499A JP2001175486A (ja) 1999-12-21 1999-12-21 計算機システム

Publications (1)

Publication Number Publication Date
JP2001175486A true JP2001175486A (ja) 2001-06-29

Family

ID=18478633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36315499A Pending JP2001175486A (ja) 1999-12-21 1999-12-21 計算機システム

Country Status (1)

Country Link
JP (1) JP2001175486A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム
JP2006506752A (ja) * 2002-11-18 2006-02-23 エイアールエム リミテッド 安全処理システムにおける例外タイプ
JP2009199530A (ja) * 2008-02-25 2009-09-03 Panasonic Corp 情報処理装置及びその制御方法
KR101015456B1 (ko) * 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
JP2011508292A (ja) * 2007-11-26 2011-03-10 アルカテル−ルーセント ユーエスエー インコーポレーテッド プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置
KR101034415B1 (ko) 2004-12-21 2011-05-12 마이크로소프트 코포레이션 가상 머신 또는 강화된 운영 시스템 등에서의 컴퓨터 보안관리
US8161161B2 (en) 2005-10-31 2012-04-17 Sony Computer Entertainment, Inc. Information processing method and information processing apparatus

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006506752A (ja) * 2002-11-18 2006-02-23 エイアールエム リミテッド 安全処理システムにおける例外タイプ
US7661105B2 (en) 2002-11-18 2010-02-09 Arm Limited Exception types within a secure processing system
KR101015456B1 (ko) * 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
US7949866B2 (en) 2002-11-18 2011-05-24 Arm Limited Exception types within a secure processing system
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム
KR101034415B1 (ko) 2004-12-21 2011-05-12 마이크로소프트 코포레이션 가상 머신 또는 강화된 운영 시스템 등에서의 컴퓨터 보안관리
US8161161B2 (en) 2005-10-31 2012-04-17 Sony Computer Entertainment, Inc. Information processing method and information processing apparatus
JP2011508292A (ja) * 2007-11-26 2011-03-10 アルカテル−ルーセント ユーエスエー インコーポレーテッド プロセッサから周辺機器へのセキュア動作モードアクセス特権の譲渡のための方法及び装置
JP2009199530A (ja) * 2008-02-25 2009-09-03 Panasonic Corp 情報処理装置及びその制御方法
WO2009107330A1 (ja) * 2008-02-25 2009-09-03 パナソニック株式会社 情報処理装置及びその制御方法
CN101946252B (zh) * 2008-02-25 2013-08-14 松下电器产业株式会社 信息处理装置及其控制方法
US8689212B2 (en) 2008-02-25 2014-04-01 Panasonic Corporation Information processing device for controlling an application able to access a predetermined device, and control method using an information processing device for controlling an application able to access a predetermined device

Similar Documents

Publication Publication Date Title
JP3546678B2 (ja) マルチos構成方法
US10241819B2 (en) Isolating data within a computer system using private shadow mappings
EP2283429B1 (en) Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
Neiger et al. Intel virtualization technology: Hardware support for efficient processor virtualization.
EP0171859B1 (en) Memory access control device for implementing guarded regions in a memory, and memory provided with such memory access control device
EP1524596B1 (en) Systems and methods for using synthetic instructions in a virtual machine
JP5042848B2 (ja) 仮想マシン・モニタの構成部分を特権化解除するためのシステム及び方法
US8464022B2 (en) Virtualization with shadow page tables
US7712104B2 (en) Multi OS configuration method and computer system
US5561788A (en) Method and system for executing programs using memory wrap in a multi-mode microprocessor
US7478204B2 (en) Efficient sharing of memory between applications running under different operating systems on a shared hardware system
EP2889777A2 (en) Modifying memory permissions in a secure processing environment
BR112012033821B1 (pt) método de gerenciamento de requisições de interrupção em um ambiente computacional
JP2011519089A (ja) 複数の論理パーティションと自己仮想化入出力デバイスとのインターフェース接続
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
JPS6248258B2 (ja)
JP4026667B2 (ja) マルチos構成方法
CN116578341A (zh) 处理器、中断隔离方法、指令模拟方法、片上系统及设备
JPH0638237B2 (ja) マルチプログラミング・モードで動作するデータ処理システム
JP2001175486A (ja) 計算機システム
US9558364B2 (en) Computing machine, access management method, and access management program
JP2001216172A (ja) マルチos構成方法
EP4187387A1 (en) Inter-process communication method and apparatus, and computer storage medium
EP3255544B1 (en) Interrupt controller
Machado Self-Secured Devices: Securing shared device access on TrustZone-based systems