JP3765201B2 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- JP3765201B2 JP3765201B2 JP19257499A JP19257499A JP3765201B2 JP 3765201 B2 JP3765201 B2 JP 3765201B2 JP 19257499 A JP19257499 A JP 19257499A JP 19257499 A JP19257499 A JP 19257499A JP 3765201 B2 JP3765201 B2 JP 3765201B2
- Authority
- JP
- Japan
- Prior art keywords
- operating system
- configuration control
- management table
- interrupt
- operating
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、複数個のオペレーティングシステムを切替えて動作させる計算機システムに関し、特に同一の周辺デバイスを複数個のオペレーティングシステムで共有する高可用計算機およびその構成制御方式に関する。
【0002】
【従来の技術】
一つの計算機システムで複数のオペレーティングシステムを動作させる技術として、従来から大型計算機において仮想計算機方式が実現されている(以下公知例1と称する)。この仮想計算機方式では、計算機システム内で平行して動作する複数個の仮想計算機それぞれで複数のユーザタスク(以降、プロセスおよびスレッドをまとめてタスクと称する)を切替えて処理を実行する。また仮想計算機方式では、仮想計算機制御プログラムが全ハードウェアを占有して管理し、それらを仮想化して仮想計算機を構成する。仮想計算機を構成する制御部は、物理メモリ,入出力機器装置,磁気ディスク装置,外部割込み等を仮想化する。
【0003】
仮想計算機は、大型計算機内の一つのプロセスとして通常実現される。しかし仮想計算機とユーザタスクの関係を考慮すると、仮想計算機は一つのオペレーティングシステムであるとみなすことも可能である。従来の大型計算機では、いわば複数個のオペレーティングシステムを実行することが可能な計算機システムということができる。
【0004】
一方、マイクロプロセッサの性能向上と、オペレーティングシステムの機能向上に伴い、複数個のオペレーティングシステムを一つの計算機システム上で同時動作させ、これらを必要に応じて動的に切替えて処理を行うニーズが高まっている。
【0005】
一般に、工場やプラントなどの機械制御,車載ナビゲーションシステムといった分野では、外部環境変化に対して一定時間以内に応答することを保証するリアルタイム性や、長時間連続稼動を可能とする信頼性や高可用性が重要視される。このため割込み応答性が高くなおかつ低メモリ容量でモジュール構成を有するリアルタイム用オペレーティングシステム(リアルタイムOS)が用いられることが多い。しかし一般的にリアルタイムOSは、リアルタイム制御や信頼性に重点をおいているため、対人間とのインターフェースに関して難点が多い。一方、汎用のパーソナルコンピュータ(PC)に用いられている事務処理用オペレーティングシステム(事務処理OS)は、画像を用いて計算機システムの操作を行えるようにするなど、対人間とのインターフェースに優れている。しかし事務処理OSは人間との対話や科学計算,画像描画を主な目的としているため、割込み応答性能よりも処理のスループットに重点をおいている。また低メモリ容量モジュールで構成されるリアルタイムOSに比べ、24時間連続運転といった信頼性を保証することは難しい。
【0006】
このような複数個のオペレーティングシステムを切替えて動作させ計算機システムの可用性を高める技術として、特開平11−24943 号公報に開示された計算機再起動方法および計算機停止方法がある(以下公知例2と称する)。この従来技術は、オペレーティングシステムを有する計算機がソフトウェア障害を検出した際にカーネルを再起動するために、オペレーティングシステムのカーネルを再ロードする場合に、無停止モジュールが処理する外部割込みに対する割込み処理ハンドラの登録内容を主記憶に保持し、再ロード対象から外してカーネルを再ロード後再実行するものである。オペレーティングシステムを事務処理OS,無停止モジュールをリアルタイムOSにそれぞれ相当すると考えることで、前述の複数個のオペレーティングシステムを切替えて動作させるニーズを満たすことが可能となる。またこの従来技術は、事務処理OSを再起動している期間でも、リアルタイムOSは停止することなく割込み処理を継続実行可能であることを示している。さらにこの従来技術では、無停止モジュールに係わるハードウェア資源と再初期化処理を無停止モジュール管理データ領域に登録し、カーネル再起動時にハードウェアに対する再初期化処理を実行する。
【0007】
【発明が解決しようとする課題】
前述の複数個のオペレーティングシステムに切替えて動作させる計算機システムにおいて、複数個のオペレーティングシステム間で同一の周辺デバイスを共有して使用するために、特に周辺デバイスの構成制御処理において解決しなくてはならない課題が存在する。
【0008】
すなわち公知例1において、大型計算機上で実行される複数個の仮想計算機はみな同一種であり、それらは同一の割込み処理体系や同一のプログラミング・インターフェースを用いて仮想計算機制御部に周辺デバイス処理を発行する。そのため単一の計算機システム上で複数個の相異なるオペレーティングシステムを実行する場合、それぞれ相異なるプログラミング・インターフェースを有するため、周辺デバイスを含むハードウェア資源を仮想化し、統一的に構成制御する仮想計算機制御部を用意することは困難である。
【0009】
また公知例2において、無停止モジュールとオペレーティングシステムで共有されている同一周辺デバイスの構成制御はオペレーティングシステムから実行され、再構成制御は無停止モジュールに係わるデバイスドライバのアドレスをオペレーティングシステム上で設定することを必要としている。すなわち、無停止モジュールのみから処理されるデバイスまでオペレーティングシステムが構成制御や再構成制御を実行することとなる。そのため無停止モジュールがオペレーティングシステムとは独立したリアルタイムOSの場合、プログラミング・インターフェースやロードモジュールの管理体系が異なるため、全てのハードウェア資源を一方のオペレーティングシステムで構成制御するのは困難である。
【0010】
本発明の目的は、複数個のオペレーティングシステムを切替えて動作する計算機システムにおいて、該複数個のオペレーティングシステムが同一の周辺デバイスを共有するために、あるいは排他的に使用するために必要な構成制御方法を提供することにある。
【0011】
【課題を解決するための手段】
上記目的は、本発明の計算機システムによれば、複数個のオペレーティングシステムと、複数個のオペレーティングシステムを切替える切替手段と、外部に接続されるデバイスを特定する固有情報及びデバイスの構成制御を行うオペレーティングシステムとを記憶する管理テーブルとを有し、少なくとも1つのオペレーティングシステムは、管理テーブルに基づいて構成制御を行うオペレーティングシステムを選び、選ばれたオペレーティングシステムが該当するデバイスの構成制御を行うことで達成することができる。
【0012】
また上記目的は、本発明の計算機システムによれば、複数個のオペレーティングシステムと、複数個のオペレーティングシステムを切替える切替手段と、外部に接続されるデバイスを特定する固有情報及びデバイスに割り当てられた割込みレベルを記憶する管理テーブルと、割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルとを有し、少なくとも1つのオペレーティングシステムは、管理テーブルに基づいて割込みレベルを決定し、決定された割込みレベルと割込みテーブルに基づいて、構成制御を行うべきオペレーティングシステムを選び、選ばれたオペレーティングシステムが該当するデバイスの構成制御を行うことにより達成される。
【0013】
また上記目的は、本発明の構成制御方法によれば、切替手段によって切替えられたオペレーティングシステムは、予め登録された外部に接続されるデバイスを特定する固有情報及びデバイスの構成制御を行うオペレーティングシステムとを記憶する管理テーブルから構成制御を行うオペレーティングシステムを選び、選ばれたオペレーティングシステムに当該切替えられたオペレーティングシステムが存在する場合、該切替えられたオペレーティングシステムが該当するデバイスの構成制御を行うことにより達成される。
【0014】
また上記目的は、本発明の構成制御方法によれば、切替手段によって切替えられたオペレーティングシステムは、予め登録された外部に接続されるデバイスを特定する固有情報及びデバイスに割り当てられた割込みレベルを記憶する管理テーブルに基づいて割込みレベルを決定し、予め登録された割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルと決定された割込みレベルから構成制御を行うべきオペレーティングシステムを選び、選ばれたオペレーティングシステムに当該切替えられたオペレーティングシステムが存在する場合、当該オペレーティングシステムが該当するデバイスの構成制御を行うことにより達成される。
【0015】
また上記目的は、本発明の構成制御方法によれば、予め登録された外部に接続されるデバイスを特定する固有情報及びデバイスの構成制御を行うオペレーティングシステムとを記憶する管理テーブルから計算機システムにデバイスが接続されているか判定する第1のステップと、デバイスが接続されている場合に、管理テーブルから構成制御を行うオペレーティングシステムを選ぶ第2のステップと、選ばれたオペレーティングシステムに第1,第2のステップを実行したオペレーティングシステムが存在する場合、当該選ばれたオペレーティングシステムが該当するデバイスの構成制御を行うことにより達成される。
【0016】
また上記目的は、本発明の構成制御方法によれば、予め登録された外部に接続されるデバイスを特定する固有情報及びデバイスに割り当てられた割込みレベルを記憶する管理テーブルに基づいて計算機システムにデバイスが接続されているか判定する第1のステップと、デバイスが接続されていると判定された場合に管理テーブルに基づいて割込みレベルを決定する第2のステップと、予め登録された割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルと決定された割込みレベルから構成制御を行うべきオペレーティングシステムを選ぶ第3のステップと、該選ばれたオペレーティングシステムに第3のステップを実行したオペレーティングシステムが存在する場合、当該オペレーティングシステムが該当するデバイスの構成制御を行うことにより達成される。
【0017】
【発明の実施の形態】
本発明による実施例について図面を用いて以下に説明する。
【0018】
図1は本発明の第1の実施例による全体構成を示したものである。通常、計算機システムはプロセッサ100,メモリ101,入出力制御装置102,ディスプレイ104,スイッチ105,センサ106などから構成される。プロセッサ100,メモリ101,入出力制御装置102はプロセッサバス103を介して接続される。プロセッサ100は複数個のオペレーティングシステムを動作させるためのマイクロプロセッサである。メモリ101は、オペレーティングシステム116,117,各オペレーティングシステムで使用する周辺デバイスを構成制御するためのデバイス初期化機能510,511,デバイス情報データベース512,513,OS間制御機能124を保持する。これらのプログラムはプロセッサ100に読み出されて実行される。
【0019】
入出力制御装置102は、画面表示用デバイスであるディスプレイ104,ユーザからの指示や周囲環境の変化を通知するスイッチ105とセンサ106,各プログラムやオペレーティングシステムを格納する二次記憶装置等を接続する。また、工場/プラント制御用、あるいは、組込み向け計算機システムを実現する場合、入出力制御装置102にはネットワーク109が接続されることがある。ネットワーク109には、通信機器などの入出力機器が接続される。なお、入出力制御装置102に接続されるディスプレイ104,スイッチ105,センサ106のうち、いずれかまたは全ては、システム構成によって省略されることもあり、さらに多様な入出力装置が接続されることもある。入出力制御装置102を含み入出力制御装置102に接続するこれらの装置を本実施例では以降周辺デバイスと称する。入出力制御装置102は、割込み信号線108によってプロセッサ100と接続され、入出力動作完了などを通知する。図1では説明のため割込み信号線108とプロセッサバス103が別の装置であるように記載しているが、実際には、割込み信号線108はプロセッサバス103の一部である。プロセッサ100の内部にはタイマ装置107が設けられており、一定周期毎に内部割込みを発生させる。タイマ装置107からの割込みは、オペレーティングシステムの計時などに使用される。
【0020】
本実施例では、計算機システム内に二つのオペレーティングシステムが存在する場合を説明する。二つのオペレーティングシステムは各々に割り当てられたメモリおよびプロセッサ資源を用いて、各々のオペレーティングシステム上のタスクを実行する。本実施例ではオペレーティングシステム116が事務処理OS,オペレーティングシステム117がリアルタイムOSであると仮定するが、実際に各オペレーティングシステムがいかなる種類であっても、本発明で述べる技術は適用可能である。
【0021】
事務処理OS116及びリアルタイムOS117を一つのプロセッサ上で連携しながら動作させるため、OS間制御機能124を備える。OS間制御機能124は、事務処理OS116とリアルタイムOS117の実行環境を切替えるOSコンテクスト切換127を備える。OSコンテクスト切換127は、割込み要求やOS間制御機能の呼び出しによりオペレーティングシステムの切替えが必要と判断されたときコンテクストを切替える。
【0022】
なお本実施例における「構成制御」とは、周辺デバイスに実装されるハードウェア資源(レジスタ,該デバイスに割り当てられた割込信号等)を初期化あるいは再設定することを意味する。
【0023】
各オペレーティングシステム116,117内には、デバイス初期化機能モジュール510,511が存在する。デバイス初期化機能モジュール510,511は、電源投入リセット時とオペレーティングシステム再起動時の両方でそれぞれのオペレーティングシステムにおいて実行されるモジュールであり、それぞれのオペレーティングシステムで構成制御する必要のあるデバイス情報をOS間制御機能124に対して要求する。
【0024】
デバイス初期化機能モジュール510,511は、自身が有するデバイス情報データベース512,513に登録されている構成制御すべき周辺デバイスのハードウェア固有情報を検索し、ハードウェア固有情報を鍵(キー)としてOS間制御機能124に該当デバイス存在有無の確認要求を発行する。すなわち、計算機システムが電源断等により停止している最中に周辺デバイスの構成が変更されている場合、オペレーティングシステムはデバイスドライバを組み込むためにデバイスドライバに対応する周辺デバイスが存在しているか確認する必要がある。その後OS間制御機能124により周辺デバイスの有無通知を受けると、デバイス初期化機能モジュール510,511は周辺デバイスの有無に応じて対応するデバイスドライバの処理を実行する。ここで周辺デバイスが存在するが構成制御すべきでない場合、すなわち確認要求を発行したオペレーティングシステムではなくもう一方のオペレーティングシステムが構成制御すべき周辺デバイスである場合には、確認要求を発行したオペレーティングシステムはその旨が通知される。そこで周辺デバイスがオペレーティングシステム116,117の両方で共有されるデバイスであれば、通知を受けたオペレーティングシステムでは周辺デバイスに対する構成制御は行わず、ドライバや割込ベクタの登録等、所定の処理を行う。また周辺デバイスがもう一方のオペレーティングシステムで専有されるデバイスであれば、周辺デバイスに対する処理を行わず、次の周辺デバイスに処理を移す。
【0025】
なお必ずしも両方のオペレーティングシステムが周辺デバイス存在確認を発行する必要はない。例えば一方のオペレーティングシステムが全ての構成制御を行う場合を考える。この時もう一方のオペレーティングシステムは、デバイスの存在確認を発行してデバイスの存在を確認すると構成制御不要との通知を受けるので、共有するデバイスに関する構成制御以外の処理のみ行えばよい。
【0026】
またデバイス情報データベース512,513に登録されていない周辺デバイスが前回計算機システム実行時から新規に追加されていると、デバイス初期化機能モジュール510,511はOS間制御機能124より、まだ構成制御すべき周辺デバイスが存在する旨が通知される。デバイス初期化機能モジュール510,511は通知を受け、対応するデバイスドライバを各々、あるいは一方のオペレーティングシステムに組み込むための所定の処理を行う。
【0027】
周辺デバイスの存在確認を行うタイミングは、デバイスドライバによって様々である。例えばオペレーティングシステムが格納されている二次記憶装置に対するデバイスドライバは、オペレーティングシステムのロード前にプロセッサ100から利用可能でなければならない。またディスプレイ104に対するデバイスドライバは、オペレーティングシステムの起動中から利用できれば問題ない。一般に周辺デバイスの存在確認を行うタイミングは、周辺デバイスが提供するサービスの内容により異なり、オペレーティングシステムの起動前,起動中,起動後のいずれかに発行される。オペレーティングシステムの起動前に発行される存在確認は、計算機システムが正常に動作するために最低限必要な周辺デバイスに関するデバイスドライバの初期化ルーチンから発行され、特にそれらのデバイスドライバはBIOS(Basic Input/Output System)と呼ばれ、不揮発性メモリに格納されているプログラムとして存在する。オペレーティングシステムの起動中に発行される存在確認は、オペレーティングシステムに密接に関係するデバイスドライバの初期化ルーチンから発行される場合が有る。またオペレーティングシステムの起動後に発行される存在確認は、例えばユーザアプリケーションから直接起動されるデバイスドライバの初期化ルーチンから発行される場合が有る。
【0028】
OS間制御機能124は、オペレーティングシステム116,117からのデバイス存在確認要求を受け付け、応答を返すデバイス検出機能モジュール501と、周辺デバイスがいずれのオペレーティングシステムに属するかを示すテーブルであるデバイス管理テーブル500と、デバイス管理テーブル500を更新する機能を提供するテーブル更新機能モジュール502を有する。デバイス検出機能モジュール501は、オペレーティングシステム116,117からの周辺デバイス存在有無の確認要求に対し、デバイス管理テーブル500を参照して応答を返す機能を有する。デバイス管理テーブル500は、計算機システム内に存在する全ての周辺デバイスの「ハードウェア固有情報」と、それぞれの周辺デバイスがいずれのオペレーティングシステムに属して構成制御が行われるかを示す「属性フラグ」を有する。デバイス管理テーブル500は、計算機システムが電源投入された時に、活線挿抜等の技術により計算機システム動作中に周辺デバイスが追加や削除された時等に、登録内容に対して更新や追加,削除が行われる。テーブル更新機能モジュール502は、デバイス管理テーブル500の登録内容を各々のオペレーティングシステム、あるいはOS間制御機能124自身から更新するための機能を提供する。
【0029】
以上の構成により、複数個のオペレーティングシステムを切替えて動作する計算機システムにおいて、複数個のオペレーティングシステムが同一の周辺デバイスを共有するために、あるいは排他的に使用するために必要な構成制御を行うことが可能となる。そして共有している周辺デバイスについて、一方のオペレーティングシステムが稼動中にもう一方のオペレーティングシステムを再起動した場合でも、再起動の前後で稼働中のオペレーティングシステムは周辺デバイスを連続的に使用することが可能となる。
【0030】
以下、本実施例の構成について詳細に説明する。
【0031】
図2(a)に周辺デバイスとバスに注目した計算機システムの構成を示す。バスブリッジ550,551は、プロセッサバス103とPCI(Peripheral Component Interconnect) バス552,558との間で、バスプロトコル変換を行うバスブリッジである。バスブリッジ555は、PCIバス552とISA(Industry Standard Architecture)バス556との間でバスプロトコル変換を行うバスブリッジである。プロセッサ100とバスブリッジ550,551はプロセッサバス103を介して接続する。バスブリッジ550,555とネットワークデバイス553,ディスプレイデバイス554はPCIバス552を介して接続し、バスブリッジ551とセンサー559はPCIバス558を介して接続する。またバスブリッジ555とスイッチ557はISAバス556を介して接続する。図2(a)中、PCIバスは2本存在し、これらを区別するためにバス番号と呼ぶ計算機システム内で一意に決まる番号を割り当てる。本実施例では以下のように定める。
【0032】
PCIバス552:バス番号=0
PCIバス558:バス番号=1
また構成制御を行う際にデバイスを特定するために、PCIバス552,558に接続されるデバイスに対して各バスにおいて一意に決定されるデバイス番号と呼ばれる番号を割り当てる。ISAバス556に接続されるデバイスに対して各バスにおいて一意に決定されるI/Oアドレスが割り当てられるが、本実施例ではI/Oアドレスのことも便宜的にデバイス番号と呼ぶことにする。また各デバイスには、デバイス自身のメーカ,デバイス種,特性や機能を表すIDが、各デバイス製造時に割り当てられている。プロセッサは存在有無を確認しようとするデバイスのIDを読み取ることにより、デバイスが意図しているデバイスであるか、もしくは作業員によって置き換えられた等により別のデバイスになっているかを知ることが可能である。本実施例ではIDを一括してデバイス名称と呼ぶことにする。
【0033】
以上の様にバスとデバイスに番号を割り当てることにより、全ての周辺デバイスはプロセッサ100から見てバス種別とバス番号,デバイス番号、さらにデバイス名称にて特定することが可能になる。例えばディスプレイ554は、「バス種別=PCI,バス番号=0に接続される、デバイス番号=0の“DISPLAY"というデバイス」であり、スイッチ557は、「バス種別=ISA,バス番号=0に接続される、デバイス番号(I/Oアドレス)=0x330の“SWITCH”というデバイス」と識別することが可能である。なお“0x”という接頭詞は続く数字が16進数であることを示す。また存在しないバス種別やバス番号,デバイス番号に対してプロセッサ100が存在確認のためにアクセスを行った場合、所定の手続きによりプロセッサに該当デバイスが存在しない旨が通知される。一般的にはプロセッサ100と対象バスとの間に介在するバスブリッジにより、該当デバイスが存在しない旨のステータスがバスブリッジ内の所定レジスタに記録される。
【0034】
図2(b)にOS間制御機能124におけるデバイス管理テーブル500の構成を示す。デバイス管理テーブル500は、デバイス各々に対応するハードウェア固有情報520と属性フラグ525の組で1レコードが構成される。ハードウェア固有情報520は、バス種別521,バス番号522,デバイス番号523,デバイス名称524から構成される。属性フラグ525は対応するデバイスが、いずれのオペレーティングシステムに属して構成制御されるかを示すものであり、事務処理OSに構成制御されるデバイスは“事務”、リアルタイムOSに構成制御されるデバイスは“リアルタイム”、そして両方のオペレーティングシステムに利用されるデバイスは“事務(共有)”あるいは“リアルタイム(共有)”と示される。ここで“(共有)”と示されるデバイスは、構成制御を行うオペレーティングシステムはいずれか一方であるが、デバイスを利用するのは両方のオペレーティングシステムである場合を示している。バス種別521と属性フラグ525に関して、一般的にはそれぞれのバス種別や属性を示す整数値を割り当ててそれぞれ格納するのが適当である。
【0035】
以上ではPCIバスとISAバスに接続されたデバイスを特定する方法について述べたが、本発明はこれらのバスに限定や拘束されるものではなく、デバイスを特定する手段に応じて、ハードウェア固有情報520を構成することにより、任意のバスアーキテクチャを有する計算機システムに対して適用可能である。
【0036】
図3にOS間制御機能124におけるデバイス検出機能モジュール501の処理フローを示す。デバイス初期化機能モジュール510,511はオペレーティナグシステムを起動,再起動する際に、自身が有するデバイス情報データベース512,513に登録されている構成制御すべき周辺デバイスのハードウェア固有情報を検索し、ハードウェア固有情報を鍵(キー)としてデバイス検出機能501に該当デバイス存在有無の確認要求を発行する。デバイス検出機能モジュール501は、デバイス初期化機能モジュールより受け取ったハードウェア固有情報をキーとして、デバイス管理テーブル500を検索すると共に、計算機システム内に実デバイスが存在するかBIOS命令等により探索する(処理600)。その結果、要求のあったデバイスが実デバイスとして計算機システムに存在するか検査する(処理601)。該当デバイスが存在しない場合、デバイス検出機能モジュール501は要求元に該当デバイスが存在しない旨を通知する(処理607)。該当デバイスが存在する場合、引き続きデバイス管理テーブル500上のハードウェア固有情報520がキーと一致するか検査する(処理602)。ここで不一致の場合は、該当デバイスが割り当てられている位置に別のデバイスが存在する、あるいはデバイス管理テーブル500に該当デバイスが登録されていないことを意味し、デバイス検出機能モジュール501はデバイス存在確認要求元に対して該当デバイスとは違うデバイスが存在する旨を通知する(処理608)。デバイス管理テーブル500上のハードウェア固有情報520とキーが完全に一致した場合、引き続き該当デバイスの属性フラグ525が、要求元オペレーティングシステムと一致するか検査する(処理603)。そこで一致した場合、該当デバイスは存在し、かつ要求元オペレーティングシステムにより構成制御なされるべきデバイス(専有されるデバイス)として、要求元に通知する(処理605)。一方属性フラグ525が不一致であった場合、さらに該当デバイスが共有デバイスであるか検査する(処理604)。処理604で該当デバイスが共有と判断された場合、要求元に対し該当デバイスは共有デバイスであると通知すると共に、構成制御を行うべきオペレーティングシステムを合わせて通知する(処理606)。処理604で該当デバイスが共有ではない場合、すなわち要求元オペレーティングシステムとは違うオペレーティングシステムが専有するデバイスである場合、要求元オペレーティングシステムに対しては、該当デバイスは存在しないと通知する(処理607)。
【0037】
またデバイスに対する存在確認要求が有ったことをデバイス検出機能501にて保持することにより、存在確認要求にもれたデバイスが生じた場合に、該デバイスが属するオペレーティングシステムに対して該デバイスを構成制御するように通知することが可能となる。
【0038】
図4にデバイスに対する存在確認要求が有ったことを示すリンクトリスト620の構成例を示す。デバイス検出機能501は、リンクトリスト620の先頭アドレスを既知とする。また要求元オペレーティングシステムと対応して、リンクトリスト620をそれぞれ用意するものとする。リストの要求はハードウェア固有情報とポインタからなり、ハードウェア固有情報621,623,625は存在確認要求の有ったハードウェア固有情報を格納し、ポインタ622,624はそれぞれ次のリスト要素の先頭アドレスを格納する。最後のリスト要素中のポインタ626は、それ以上リスト要素が無いことを表す特殊なコードが格納され、一般にはアドレス0x0(=Null)をコードとする。
【0039】
デバイス検出機能501は、処理605,606によってデバイスに対する存在確認要求の有ったことを検知し、それぞれの処理と合わせてリンクトリストを構築していく。すなわち、処理605,606と同時に、確認要求を受けた周辺デバイス順にリスト要素のハードウェア固有情報をリンクトリストに追加する。デバイス検出機能501は、処理605,606を実行すると共に新たなリスト要素を作成し、ハードウェア固有情報として該当デバイスのハードウェア固有情報を格納し、最終リスト要素のポインタを新たなリスト要素のアドレスに書き換える。
【0040】
デバイス検出機能501は、オペレーティングシステムからのデバイス存在確認要求が全て終了したことを検知すると、オペレーティングシステムに対応するリンクトリスト620のハードウェア固有情報とデバイス管理テーブル500のハードウェア固有情報を比較する。デバイス管理テーブル500上に(本来オペレーティングシステムから存在確認要求がくるべきであるのに)存在確認要求が来ていないデバイスが存在する場合、デバイス検出機能501は対応するオペレーティングシステムに該当デバイスを通知する。
【0041】
なお図4に示されるリンクトリスト620と、デバイス存在確認要求の“もれ”を検出する機能は、デバイス検出機能501に無くてもよく、オペレーティングシステム116,117にそれぞれ持ってもよい。その場合、デバイス検出機能501はデバイス管理テーブル500を参照するための手段を提供する必要がある。
【0042】
さらに図3に示されるデバイス存在確認の機能もデバイス検出機能501に無くてもよく、各々のオペレーティングシステム116,117に有ればよい。その場合、デバイス検出機能501は同様にデバイス管理テーブル500を参照するための手段を提供する必要が有る。
【0043】
以上によりデバイス管理テーブル500において、バス種別521,バス番号522,デバイス番号523,デバイス名称524、そしてデバイス存在確認の要求を発行したオペレーティングシステムが特定できれば、該デバイス存在確認に対する応答を決定することが可能である。すなわち、該当デバイスがデバイス存在確認と一致して存在し、かつデバイス存在確認を発行したオペレーティングシステムと属性フラグが一致した場合のみ、該オペレーティングシステムに対して要求デバイスが存在する旨を返答する。それ以外の場合には該デバイスが存在しない旨を返答する。以上により、例えば一方のオペレーティングシステムが使用中の共有デバイスに関して、構成制御すべきでないオペレーティングシステムが再起動し、発行したデバイス存在確認の要求に対して、「デバイスは存在するが構成制御不要」と返答することにより再起動中のオペレーティングデバイスはデバイスの構成制御をせずに該デバイスのデバイスドライバ組込みを実行する。そして再起動が完了した該オペレーティングシステムは共有デバイスを利用することが可能となる。
【0044】
図5にテーブル更新機能モジュール502における処理フローを示す。テーブル更新機能モジュール502はデバイス管理テーブル500の内容を追加や削除,変更をするための機能である。デバイス管理テーブル500は、双方のオペレーティングシステムからアクセスされる可能性が有る。一般にはオペレーティングシステム116,117がそれぞれ独立しているため、双方から統一してデバイス管理テーブル500をアクセスする手段を提供する。
【0045】
テーブル更新機能モジュール502は、オペレーティングシステム116,117いずれかよりテーブル更新要求が発行される。ここでテーブル更新機能モジュール502はオペレーティングシステム116,117の双方から呼び出されるため、該モジュール呼び出し方法はどちらかのオペレーティングシステムに存在した方法ではなく、例えばプロセッサ100の汎用レジスタにより引数を受け渡し、直接物理メモリ上のテーブル更新機能モジュール502を呼び出す方法が好適である。ここでテーブル更新機能モジュール502に引き渡す引数として、以下のパラメータがある。
【0046】
(1)バス種別,バス番号,デバイス番号といったデバイス指定情報
(2)デバイス名称,属性フラグ
(3)該当レコードに対する処理(削除,追加/更新)
テーブル管理テーブル更新要求を受けたテーブル更新機能モジュール502は、上記(1)で指定された情報を元にデバイス管理テーブル500から該当するデバイスが存在するか検索する(処理640)。次に上記(3)の処理内容が削除要求か判定する(処理641)。処理641で削除要求の場合、処理640で検索した結果、デバイスが存在して、かつ上記(2)で指定したデバイス名称までがデバイス管理テーブル500の登録内容と一致した場合、テーブル更新機能モジュール502は、該当デバイスに関するデータレコードをデバイス管理テーブル500より削除し(処理644)、処理642,643いずれかで不一致が生じた場合にはエラーとして要求元に通知する(処理645)。処理641が更新要求であった場合、処理640で検索した結果デバイスが存在していたかを判定する(処理646)。処理646で該当するデバイスが存在する場合、デバイス管理テーブル500の該当データレコードのデバイス名称と、属性フラグを更新する(処理647)。処理646で該当するデバイスが存在しない場合、デバイス管理テーブル500に要求デバイスのレコードを追加する(処理648)。
以上によりテーブル更新機能モジュール502はデータ管理テーブル500を更新する。以上ではオペレーティングシステム116,117がデバイス更新要求を発行するとしたが、デバイス更新要求を発行するのはそれらに限定されない。例えばOS間制御機能124が直接BIOS命令等により周辺デバイスのハード固有情報を収集して、テーブル更新機能モジュール502を用いて存在しないデバイスを削除するといったデバイス管理テーブル500の更新をしてもよい。それぞれのオペレーティングシステムは、テーブル更新機能モジュール502を用いて一度だけ、デバイス管理テーブル500の構築を行えばよい。デバイス管理テーブル500は不揮発性メモリあるいは二次記憶装置等に格納され、次回以降の計算機システム立上げ時にはそれらのデバイスからメモリ内のOS間制御機能にロードされる。
【0047】
図6に、それぞれのオペレーティングシステム116,117におけるデバイス初期化機能モジュール510,511の処理フローを示す。以下の説明では特にデバイス初期化機能モジュール510に注目して説明するが、デバイス初期化機能モジュール510,511は同一の処理フローであり、それぞれ対応する構成要素とおきかえられる。
【0048】
オペレーティングシステム116が電源投入や再起動により、構成制御処理を開始した場合について説明する。デバイス初期化機能モジュール510は、オペレーティングシステム116が有するデバイス情報データベース512から自身が構成制御すべきデバイスが存在するか判断する(処理660)。構成制御すべきデバイスが存在しない場合、そのまま構成制御処理を終了する。構成制御すべきデバイスが存在する場合、デバイス情報データベース512よりデバイスのハードウェア固有情報を抽出し、合わせてOS間制御機能124にデバイス存在有無の確認要求を発行する(処理661)。その後、処理661の応答タイプを判定し次の通り分岐する(処理662)。
【0049】
・「デバイスが存在しない」と通知された場合…これは電源断中に該当デバイスが撤去されるか、該当デバイスが故障等により正常に応答できない場合に起こりうる。デバイス初期化機能モジュール510は該当デバイスに関するデータレコードをデバイス情報データベース512より削除する(処理663)。
【0050】
・「専有デバイス」と通知された場合…これは該当デバイスがオペレーティングシステム116によってのみ使用されるデバイスを意味する。ゆえにもう一方のオペレーティングシステムに使用されていることはないため、デバイス初期化機能モジュール510は該当デバイスに対し、構成制御を実行し(処理664)、引き続きデバイスドライバの組込み処理を行う(処理665)。
【0051】
・「共有デバイス」と通知された場合…これは該当デバイスがもう一方のオペレーティングシステムに使われている可能性があることを意味する。この時共有デバイス通知と共に、構成制御すべきオペレーティングシステムも合わせて通知される。そこで自オペレーティングシステムが構成制御をすべきか否か判定する
(処理666)。構成制御すべきと判定した場合、さらに現在のデバイス初期化機能モジュール510が、電源投入後の処理をしているか、再起動中の処理をしているか判定する(処理667)。すなわち、再起動中であればもう一方のオペレーティングシステムが該当デバイスを使用している可能性がある。電源投入後の処理中であれば、デバイスは構成制御する必要が有るため、専有デバイス通知をされた時と同様に処理664,665を実行する。それ以外の場合、すなわち自オペレーティングシステムが構成制御すべきでない、あるいは再起動処理中である場合、該当デバイスのドライバ組込み処理を行う(処理668)。
【0052】
以上の処理664,665,668において、デバイス初期化機能モジュール510はそれぞれの処理を実行するドライバをデバイス情報データベース512から参照し、実行するものである。
【0053】
なおドライバ組込みのための処理665,668として、該当デバイスに対する割込ハンドラの設定や、デバイスドライバのロード処理,エントリアドレスをオペレーティングシステムに登録する等の処理を行うことが挙げられる。また処理664と処理665をまとめて一つのドライバとし、処理668で実行するドライバと分けて用意しても問題ない。またデバイスの特性上可能であるならば、処理665と処理668で実行するドライバを兼用とし、処理664で実行するドライバを別に用意してもよい。
【0054】
図7にデバイス情報データベース512の構成例を示す。以下においてはデバイス情報データベース512について説明するが、デバイス情報データベース513についても同じ説明が当てはまる。
【0055】
デバイス情報データベース512はハードウェア固有情報680と対応するドライバ685から構成される。ハードウェア固有情報680は、対象となる周辺デバイスを必要十分に識別することができる位置情報を含み、バス種別681,バス番号682,デバイス番号683,デバイス名称684からなる。これらの用語は、図2(b)において説明した用語と同じ意味をなす。またドライバ685は、電源投入(Power ON)時に適用されるPON時ドライバ686と、再起動時に適用される再起動時ドライバ687からなる。PON時ドライバ686は、該デバイス情報データベース512に登録されているデバイス全てに用意される。一方再起動時ドライバ687は、対象デバイスが共有デバイスの場合に用意される場合が有る。ドライバ686,687の登録情報については、ドライバが格納されているデバイス(二次記憶装置等)における位置が定まればよく、一般的にはファイル形式で格納されたドライバを表現するパス形式(/usr/bin/driverあるいは/system/driver等)で格納する。本実施例では、PON時ドライバ686は、図6における処理664,665をまとめたドライバであり、再起動時ドライバ687は図6における処理668を実行するドライバであり、これらのドライバを登録するデバイス情報データベース512の例を示している。ここで図6における処理664,665,668全てを独立に処理するドライバを用意する場合には、ドライバ685に登録するドライバ種を3つとし、それぞれ構成制御用ドライバ,専有処理(処理665)用ドライバ,共有処理(処理668)用ドライバを用意して登録すればよい。
【0056】
本発明による第2の実施例を図8に示す。図8には、図1中の特にメモリ101に関する構成例を示したものであり、その他の構成要素は特に断らない限り図1中の構成要素と同一である。本実施例では、OS間制御機能124が第一の実施例と異なる。本実施例の特徴は、構成制御すべきオペレーティングシステムの決定を、デバイス割込管理テーブル503と優先割込みテーブル156を用いて行うことに有る。ここで優先割込みテーブル156とは、オペレーティングシステムの定常動作時に利用するテーブルであり、デバイスに割り当てられた割込みレベル毎に割込処理を依頼するオペレーティングシステムと該デバイスの共有を示すフラグから構成されるテーブルである。本実施例ではデバイスの割込み処理を行うオペレーティングシステムが該デバイスの構成制御を行うため、割込処理を行わないもう一方のオペレーティングシステムは構成制御による影響を受けないことが特徴として挙げられる。また通常動作時のテーブルと構成制御時に必要なテーブルを部分的に共通化することにより、テーブルを予盾無く管理することも特徴として挙げられる。
【0057】
OS間制御機能124は、オペレーティングシステム116,117からのデバイス情報要求を受け付け、応答を返すデバイス検出機能モジュール504と、周辺デバイスがいずれの割込みレベルが割り振られているかを示すテーブルであるデバイス割込管理テーブル503と、デバイス割込管理テーブル503を更新する機能を提供するテーブル更新機能モジュール505を有する。また割込み管理テーブル129は割込みレベルに応じたオペレーティングシステム毎の割込みベクタにより構成される割込みアドレステーブル155と、割込みレベル毎に必要な割込み処理をいずれのオペレーティングシステムに対して依頼するかを示す優先割込みテーブル156からなる。
【0058】
デバイス検出機能モジュール504は、オペレーティングシステム116,117からの周辺デバイス存在有無の確認要求に対し、デバイス割込管理テーブル503と割込み管理テーブル129を参照して応答を返す機能を有する。デバイス割込管理テーブル503は、計算機システム内に存在する全ての周辺デバイスの「ハードウェア固有情報」と、それぞれの周辺デバイスがいずれの割込みレベルが割り振られているかを示す「割込番号」を有する。デバイス割込管理テーブル503は、計算機システムが電源投入された時と、活線挿抜等の技術により計算機システム動作中に周辺デバイスが追加や削除された時等に、登録内容に対して更新や追加,削除が行われる。テーブル更新機能モジュール505は、デバイス割込管理テーブル503の登録内容を各々のオペレーティングシステム、あるいはOS間制御機能124自身から更新するための機能を提供する。
【0059】
デバイス検出機能モジュール504はオペレーティングシステム116,117よりデバイス存在確認要求を受けると、オペレーティングシステム116,117より受け取ったハードウェア固有情報を元にデバイス割込管理テーブル503から該当デバイスが存在するか否か検査し、もし存在するならば該当デバイスの割込みレベルを抽出する。その後、抽出された割込みレベルを用いて、優先割込みテーブル156より該当デバイスの担当オペレーティングシステムと共有されるか否かを検査し、デバイス検出機能モジュール504は要求元に対して該当デバイスの存在有無と担当オペレーティングシステムを通知する。
【0060】
その後OS間制御機能124により該周辺デバイスの有無通知を受けると、デバイス初期化機能モジュール510,511は該周辺デバイスの有無に応じて対応するデバイスドライバの処理を実行する。ここで該周辺デバイスが存在するが構成制御すべきでない場合、すなわち確認要求を発行したオペレーティングシステムではなくもう一方のオペレーティングシステムが構成制御すべき周辺デバイスである場合には、確認要求を発行したオペレーティングシステムはその旨を通知される。そこで該周辺デバイスがオペレーティングシステム116,117の両方で共有されるデバイスであれば、上記通知を受けたオペレーティングシステムでは該周辺デバイスに対する構成制御を行わず、ドライバや割込ベクタの登録等、所定の処理を行う。また該周辺デバイスがもう一方のオペレーティングシステムで専有されるデバイスであれば、該周辺デバイスに対する処理を行わず、次の周辺デバイスに処理を移す。
【0061】
以上の構成により、複数個のオペレーティングシステムを切替えて動作する計算機システムにおいて、該複数個のオペレーティングシステムが同一の周辺デバイスを共有するために、あるいは排他的に使用するために必要な構成制御を行うことが可能となる。そして共有している周辺デバイスについて、一方のオペレーティングシステムが稼動中にもう一方のオペレーティングシステムを再起動した場合でも、再起動の前後で稼動中のオペレーティングシステムは該周辺デバイスを連続的に使用することが可能となる。
【0062】
以下では第2の実施例について詳細に説明する。
【0063】
図9にデバイス割込管理テーブル503の構成例を示す。ハードウェア固有情報520を構成するバス種別521,バス番号522,デバイス番号523,デバイス名称524については、図2(b)の構成要素と同一である。割込番号526は、該当するデバイスに割り当てられた割込レベルを格納する。割込番号526に格納された割込レベルの割込が割込信号線108を介してプロセッサ100に通知されると、プロセッサ100は割込みレベルに応じた、すなわちデバイスに応じた処理を実行する。割込み番号526は、ここでは優先割込みテーブル156に対するインデックスとして利用する。
【0064】
図10に割込みアドレステーブル155の構成例を示す。割込みアドレステーブル155は、各々のオペレーティングシステムが備える割込みハンドラの開始アドレスを保持する表である。例えば割込みIRQ2が発生した場合、事務処理OSに対してはアドレス0x00000440を呼び出し、リアルタイムOSに対してはアドレス0x00000640を呼び出すことが意味する。
【0065】
図11に優先割込みテーブル156の構成例を示す。優先割込みテーブル156 は、個々の割込みがどちらのオペレーティングシステムで処理されるべきかを示す対応表で構成され、フラグ1が立っているオペレーティングシステムが備える割込みハンドラに処理を依頼する。さらに共有に関する欄では、複数のオペレーティングシステムで共有する入出力装置からの割込みにはフラグ1を、共有しない割込みにはフラグ0を記憶する。本実施例では、16種類の割込み要因が存在すると仮定すると、優先割込みテーブル156も16個のエントリ(IRQ0〜IRQ15)の構成になる。なお、本説明では優先割込みテーブル156にフラグを記録する方法を想定したが、何らかの識別可能な情報を記録すればいかなる方法でも実現可能である。
【0066】
図12にOS間制御機能124におけるデバイス検出機能504の処理フローを示す。機能的には図3で示したデバイス検出機能モジュール501と同等であり、同一記号が付与されている処理は図3の説明と同一である。デバイス初期化機能モジュール510,511はオペレーティングシステムを起動,再起動する際に、自身が有するデバイス情報データベース512,513に登録されている構成制御すべき周辺デバイスのハードウェア固有情報を検索し、該ハードウェア固有情報を鍵(キー)としてデバイス検出機能モジュール504に該当デバイス存在有無の確認要求を発行する。デバイス検出機能モジュール504は、デバイス初期化機能モジュールより受け取ったハードウェア固有情報をキーとして、デバイス割込管理テーブル503を検索すると共に、計算機システム内に実デバイスが存在するかBIOS命令等により探索する(処理600)。その結果、要求のあったデバイスが実デバイスとして計算機システムに存在するか検査する(処理601)。該当デバイスが存在しない場合、デバイス検出機能モジュール504は要求元に該当デバイスが存在しない旨を通知する(処理607)。該当デバイスが存在する場合、引き続きデバイス割込管理テーブル503上のデバイス名称524がキーと一致するか検査する(処理602)。ここで不一致の場合は、該当デバイスが割り当てられている位置に別のデバイスが存在する、あるいはデバイス割込管理テーブル503に該当デバイスが登録されていないことを意味し、デバイス検出機能モジュール504はデバイス存在確認要求元に対して該当デバイスとは違うデバイスが存在する旨を通知する(処理608)。デバイス割込管理テーブル503上のハードウェア固有情報520とキーが完全に一致した場合、デバイス割込管理テーブル503より割込番号526を抽出し、優先割込みテーブル156を参照する(処理610)。そして該当デバイスの共有フラグがセットされているか検査する(処理604)。処理604で該当デバイスが共有と判断された場合、要求元に対し該当デバイスは共有デバイスであると通知すると共に、構成制御を行うべきオペレーティングシステムを合わせて通知する(処理606)。処理604で該当デバイスが共有ではない場合、さらに該割込番号のレコードにおける要求元オペレーティングシステムにフラグがセットされているか検査する(処理611)。そこでセットされている場合、該当デバイスは存在し、かつ要求元オペレーティングシステムにより構成制御なされるべきデバイス(専有されるデバイス)として、要求元に通知する(処理605)。処理611で要求元オペレーティングシステムにフラグがセットされていない場合、すなわち要求元オペレーティングシステムとは違うオペレーティングシステムが専有するデバイスである場合、要求元オペレーティングシステムに対しては、該当デバイスは存在しないと通知する(処理607)。
【0067】
テーブル更新機能モジュール505における処理フローについて、テーブル更新機能モジュール505は第1の実施例におけるテーブル更新機能モジュール502(図5参照)とただ1点を除いて同一である。すなわちテーブル更新機能モジュール505では、処理646で該当するデバイスが存在する場合、デバイス管理テーブル500の該当データレコードのデバイス名称と、割込番号を更新する処理を実行する。
【0068】
以上によりテーブル更新機能モジュール505はデータ割込管理テーブル503を更新可能である。
【0069】
本発明によれば、複数個のオペレーティングシステムを切替えて動作する計算機システムにおいて、該複数個のオペレーティングシステムが同一の周辺デバイスを共有するために、あるいは排他的に使用するために必要な構成制御を行うことが可能となる。そして共有している周辺デバイスについて、一方のオペレーティングシステムが稼動中にもう一方のオペレーティングシステムを再起動した場合でも、再起動の前後で稼動中のオペレーティングシステムは該周辺デバイスを連続的に使用することが可能となる構成制御方式を提供することができる。
【0070】
本発明に係わる計算機および構成制御方式は、次のようなものである。
【0071】
計算機システムは、複数個のオペレーティングシステムと、複数個のオペレーティングシステムを切替えて実行するOS切替手段とを有する計算機システムにおいて、計算機システム内デバイスを特定するハードウェア固有情報と、デバイスの構成制御を行うオペレーティングシステムとを記憶するデバイス管理テーブルを有し、複数個のオペレーティングシステムのうち少なくとも一つはデバイス管理テーブルを参照して構成制御を行うオペレーティングシステムを判定し、判定の結果がデバイス管理テーブルを参照したオペレーティングシステムのみであった場合には、デバイス管理テーブルを参照したオペレーティングシステムが該当するデバイスを構成制御する。
【0072】
また別の計算機システムは、複数個のオペレーティングシステムと、複数個のオペレーティングシステムを切替えて実行するOS切替手段とを有する計算機システムにおいて、計算機システム内デバイスを特定するハードウェア固有情報と、デバイスに割り当てられた割込レベルを記憶するデバイス割込管理テーブルを有し、割込レベル毎に起動するオペレーティングシステムを記憶する優先割込みテーブルを有し、複数個のオペレーティングシステムのうち少なくとも一つはデバイス割込管理テーブルを参照して割込レベルを得て、優先割込みテーブルを参照して割込レベルに対応するオペレーティングシステムを判定し、判定の結果がデバイス管理テーブルを参照したオペレーティングシステムのみであった場合には、デバイス管理テーブルを参照したオペレーティングシステムが該当するデバイスを構成制御する。
【0073】
また計算機システムにおいて、判定の結果がデバイス管理テーブルを参照したオペレーティングシステムのみではなく任意の数のオペレーティングシステムで共有される場合で、デバイス管理テーブルを参照したオペレーティングシステムが構成制御を行うべきオペレーティングシステムであった場合には、デバイス管理テーブルを参照したオペレーティングシステムがデバイスの構成制御を行う。また計算機システムにおいて、デバイス管理テーブルを参照したオペレーティングシステムが再起動処理中の場合には、デバイス管理テーブルを参照したオペレーティングシステムがデバイスの構成制御を中止する。
【0074】
また別の計算機システムは、複数個のオペレーティングシステムと、該複数個のオペレーティングシステムを切替えて実行するOS切替手段とを有する計算機システムにおいて、計算機システム内デバイスを特定するハードウェア固有情報と、デバイスの構成制御を行うオペレーティングシステムとを記憶するデバイス管理テーブルを有し、ハードウェア固有情報を伴うデバイスの存在確認要求を受け、デバイス管理テーブルを参照して該当する計算機システム内デバイスの有無を応答するデバイス検出手段を有し、複数個のオペレーティングシステムのうち少なくとも一つはデバイス検出手段にデバイスの存在確認要求を発行し、応答結果を判定し、判定の結果がデバイス管理テーブルを参照したオペレーティングシステムのみであった場合には、デバイス管理テーブルを参照したオペレーティングシステムが該当するデバイスを構成制御する。
【0075】
また別の計算機システムは、複数個のオペレーティングシステムと、複数個のオペレーティングシステムを切替えて実行するOS切替手段とを有する計算機システムにおいて、計算機システム内デバイスを特定するハードウェア固有情報と、デバイスに割り当てられた割込レベルを記憶するデバイス割込管理テーブルを有し、割込レベル毎に起動するオペレーティングシステムを記憶する優先割込みテーブルを有し、ハードウェア固有情報を伴うデバイスの存在確認要求を受け、デバイス割込管理テーブルを参照して割込レベルを得て、優先割込みテーブルを参照して割込レベルに対応するオペレーティングシステムを判定し、該当する計算機システム内デバイスの有無を応答するデバイス検出手段を有し、複数個のオペレーティングシステムのうち少なくとも一つはデバイス検出手段にデバイスの存在確認要求を発行し、応答結果を判定し、判定の結果がデバイス管理テーブルを参照したオペレーティングシステムのみであった場合には、デバイス管理テーブルを参照したオペレーティングシステムが該当するデバイスを構成制御する。
さらに計算機システムは、判定の結果がデバイス検出手段にデバイスの存在確認要求を発行したオペレーティングシステムのみではなく任意の数のオペレーティングシステムで共有される場合で、デバイス検出手段にデバイスの存在確認要求を発行したオペレーティングシステムが構成制御を行うべきオペレーティングシステムであった場合には、デバイス検出手段に前記デバイスの存在確認要求を発行したオペレーティングシステムがデバイスの構成制御を行う。
【0076】
さらに計算機システムは、デバイス検出手段に前記デバイスの存在確認要求を発行したオペレーティングシステムが再起動処理中の場合には、デバイス検出手段にデバイスの存在確認要求を発行したオペレーティングシステムがデバイスの構成制御を中止する。
【0077】
さらに計算機システムは、デバイス検出手段は、存在確認要求のあったデバイスに対し該当するデバイスが計算機システム内に存在することを確認した後に、存在確認要求に対する応答を返すことを特徴とする。
【0078】
さらに計算機システムは、デバイス検出手段は、存在確認を要求されたデバイスが、存在確認要求を発行したオペレーティングシステムのみが構成制御するのではない場合、または存在確認要求を発行したオペレーティングシステムが共有するデバイスでもない場合には、デバイスは存在しないと応答を返す。
【0079】
さらに計算機システムは、複数個のオペレーティングシステムのうち少なくとも一つは、計算機システム内デバイスを特定するハードウェア固有情報からなるデバイス情報データベースを有し、デバイス情報データベースにおけるハードウェア固有情報は、デバイス管理テーブルあるいはデバイス割込管理テーブルにおけるハードウェア固有情報と同一構成のデータで構成される。
【0080】
さらに計算機システムは、デバイスに対する存在確認要求に伴われる前記ハードウェア固有情報は、デバイス管理テーブルあるいはデバイス割込管理テーブルにおけるハードウェア固有情報と同一構成のデータで構成される。
【0081】
さらに計算機システムは、OS切替手段はデバイス管理テーブルあるいはデバイス割込管理テーブルを更新するテーブル更新手段を有し、テーブル更新手段に対する更新要求に伴われるハードウェア固有情報は、デバイス管理テーブルあるいはデバイス割込管理テーブルにおけるハードウェア固有情報と同一構成のデータで構成される。
【0082】
さらに計算機システムは、デバイス管理テーブルあるいはデバイス割込管理テーブルと、テーブル更新手段と、テーブル検出手段のいずれかまたは全てが、複数個のオペレーティングシステムの全てから参照することが可能である。
【0083】
【発明の効果】
以上説明したように本発明によれば、複数個のオペレーティングシステムが同一の周辺デバイスを共有するために、あるいは排他的に使用するために必要な構成制御を行うことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるシステム構成を示す図である。
【図2】(a)本発明を適用する計算機システムのバスとデバイスの関係を示す図である。(b)デバイス管理テーブルの構成を示す図である。
【図3】デバイスの存在確認要求に対する処理フローを示す。
【図4】デバイスの存在確認要求が来たハードウェア固有情報を保持するリンクトリストの構成を示す図である。
【図5】デバイス管理テーブルを更新する処理フローを示す。
【図6】構成制御処理を行うデバイス初期化機能モジュールの処理フローを示す。
【図7】デバイス情報データベースの構成を示す図である。
【図8】本発明による第2の実施例におけるメモリ内部の構成を示す図である。
【図9】デバイス割込管理テーブルの構成を示す図である。
【図10】割込アドレステーブルの構成を示す図である。
【図11】優先割込みテーブルの構成を示す図である。
【図12】本発明の第2の実施例によるデバイスの存在確認要求に対する処理フローを示す。
【符号の説明】
100…プロセッサ、101…メモリ、102…入出力制御装置、103…プロセッサバス、104…ディスプレイ、105…スイッチ、106…センサ、107…タイマ装置、108…割込み信号線、109…ネットワーク、116…事務処理OS、117…リアルタイムOS、124…OS間制御機能、127…OSコンテクスト切換、129…割込み管理テーブル、155…割込みアドレステーブル、156…優先割込みテーブル、500…デバイス管理テーブル、501,504…デバイス検出機能、502,505…テーブル更新機能、503…デバイス割込管理テーブル、510,511…デバイス初期化機能、512,513…デバイス情報データベース、520,621,623,625,680…ハードウェア固有情報、521,681…バス種別、522,682…バス番号、523,683…デバイス番号、524,684…デバイス名称、525…属性フラグ、526…割込信号、550,551,555…バスブリッジ、552,558…PCIバス、553…ネットワークデバイス、554…ディスプレイデバイス、557…スイッチデバイス、559…センサデバイス、620…リンクトリスト、622,624,626…ポインタ、685…ドライバ、686…PON時ドライバ、687…再起動時ドライバ。
Claims (8)
- 複数個のオペレーティングシステムと、
前記複数個のオペレーティングシステムを切替える切替手段と、
外部に接続されるデバイスを特定する固有情報及び前記デバイスの構成制御を行うオペレーティングシステムを記憶する管理テーブルとを有し、
少なくとも1つの前記オペレーティングシステムは、前記管理テーブルに基づいて構成制御を行うオペレーティングシステムを選び、該選ばれたオペレーティングシステムが該当するデバイスの構成制御を行い、前記デバイスが複数のオペレーションシステムに共有される場合、前記デバイスを共有する前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行わないオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行う計算機システム。 - 複数個のオペレーティングシステムと、
前記複数個のオペレーティングシステムを切替える切替手段と、
外部に接続されるデバイスを特定する固有情報及び前記デバイスに割り当てられた割込みレベルを記憶する管理テーブルと、
前記割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルとを有し、
少なくとも1つのオペレーティングシステムは、前記管理テーブルに基づいて割込みレベルを決定し、決定された前記割込みレベルと前記割込みテーブルに基づいて、構成制御を行うべきオペレーティングシステムを選び、該選ばれたオペレーティングシステムが該当するデバイスの構成制御を行い、前記デバイスが複数のオペレーティングシステムに共有される場合、前記デバイスを共有する前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行う計算機システム。 - 複数のオペレーティングシステムを切替手段によって切替えて実行する計算機システムにおけるデバイスの構成制御方法であって、
切替手段によって切替えられたオペレーティングシステムは、予め登録された外部に接続されるデバイスを特定する固有情報及び前記デバイスの構成制御を行うオペレーティングシステムとを記憶する管理テーブルから構成制御を行うオペレーティングシステムを選び、
前記選ばれたオペレーティングシステムに当該切替えられたオペレーティングシステムが存在する場合、該切替えられたオペレーティングシステムが該当するデバイスの構成制御を行い、前記デバイスが複数のオペレーティングシステムに共有される場合、前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行わないオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行うデバイスの構成制御方法。 - 請求項3において、
前記デバイス管理テーブルを参照したオペレーティングシステムが再起動処理中の場合には、前記デバイス管理テーブルを参照したオペレーティングシステムがデバイスの構成制御を中止するデバイスの構成制御方法。 - 複数のオペレーティングシステムを切替手段によって切替えて実行する計算機システムにおけるデバイスの構成制御方法であって、
切替手段によって切替えられたオペレーティングシステムは、予め登録された外部に接続されるデバイスを特定する固有情報及び前記デバイスに割り当てられた割込みレベルを記憶する管理テーブルに基づいて割込みレベルを決定し、
予め登録された前記割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルと前記決定された割込みレベルから構成制御を行うべきオペレーティングシステムを選び、前記デバイスが複数のオペレーティングシステムに共有される場合、前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行わないオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行い、
該選ばれたオペレーティングシステムに当該切替えられたオペレーティングシステムが存在する場合、当該オペレーティングシステムが該当するデバイスの構成制御を行うデバ
イスの構成制御方法。 - 請求項5において、
前記デバイス管理テーブルを参照したオペレーティングシステムが再起動処理中の場合には、前記デバイス管理テーブルを参照したオペレーティングシステムがデバイスの構成制御を中止するデバイスの構成制御方法。 - 複数のオペレーティングシステムを切替手段によって切替えて実行する計算機システムにおけるデバイスの構成制御方法であって、
予め登録された外部に接続されるデバイスを特定する固有情報及び前記デバイスの構成制御を行うオペレーティングシステムとを記憶する管理テーブルから前記計算機システムにデバイスが接続されているか判定する第1のステップと、
前記デバイスが接続されている場合に、前記管理テーブルから構成制御を行うオペレーティングシステムを選ぶ第2のステップと、
前記選ばれたオペレーティングシステムに前記第1,第2のステップを実行したオペレーティングシステムが存在する場合、当該選ばれたオペレーティングシステムが該当するデバイスの構成制御を行い、前記デバイスが複数のオペレーティングシステムに共有される場合、前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行わないオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行うデバイスの構成制御方法。 - 複数のオペレーティングシステムを切替手段によって切替えて実行する計算機システムにおけるデバイスの構成制御方法であって、
予め登録された外部に接続されるデバイスを特定する固有情報及び前記デバイスに割り当てられた割込みレベルを記憶する管理テーブルに基づいて前記計算機システムにデバイスが接続されているか判定する第1のステップと、
前記デバイスが接続されていると判定された場合に前記管理テーブルに基づいて割込みレベルを決定する第2のステップと、
予め登録された前記割込みレベルごとに起動するオペレーティングシステムを記憶する割込みテーブルと前記決定された割込みレベルから構成制御を行うべきオペレーティングシステムを選ぶ第3のステップと、
前記デバイスが複数のオペレーティングシステムに共有される場合、前記デバイスの構成制御を行うオペレーティングシステム以外のオペレーティングシステムは構成制御を行わないようにし、当該デバイスを共有する前記デバイスの構成制御を行わないオペレーティングシステムについて前記共有するデバイスを使用する登録処理を行い、
該選ばれたオペレーティングシステムに前記第3のステップを実行したオペレーティングシステムが存在する場合、当該オペレーティングシステムが該当するデバイスの構成制御を行うデバイスの構成制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19257499A JP3765201B2 (ja) | 1999-07-07 | 1999-07-07 | 計算機システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19257499A JP3765201B2 (ja) | 1999-07-07 | 1999-07-07 | 計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001022598A JP2001022598A (ja) | 2001-01-26 |
JP3765201B2 true JP3765201B2 (ja) | 2006-04-12 |
Family
ID=16293556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19257499A Expired - Fee Related JP3765201B2 (ja) | 1999-07-07 | 1999-07-07 | 計算機システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3765201B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070003765A (ko) * | 2003-10-01 | 2007-01-05 | 쟈루나 에스에이 | 운영체제 |
JP4629416B2 (ja) * | 2003-11-28 | 2011-02-09 | パナソニック株式会社 | データ処理装置 |
JP5102528B2 (ja) * | 2007-04-18 | 2012-12-19 | 株式会社エヌ・ティ・ティ・ドコモ | 情報処理装置及び制御方法 |
JP4882845B2 (ja) * | 2007-04-19 | 2012-02-22 | 株式会社日立製作所 | 仮想計算機システム |
US8239938B2 (en) * | 2008-12-08 | 2012-08-07 | Nvidia Corporation | Centralized device virtualization layer for heterogeneous processing units |
JP5578698B2 (ja) * | 2009-04-23 | 2014-08-27 | ルネサスエレクトロニクス株式会社 | 半導体データ処理装置及びデータ処理システム |
JP5233817B2 (ja) * | 2009-04-23 | 2013-07-10 | 富士通株式会社 | ドライバ・プログラム、デバイス管理方法及びコンピュータ装置 |
JP5557612B2 (ja) * | 2010-06-17 | 2014-07-23 | 三菱電機株式会社 | 計算機及び転送プログラム |
JP5539073B2 (ja) * | 2010-07-02 | 2014-07-02 | キヤノン株式会社 | 認証システム、認証サービスの制御方法、プログラム |
JP5611060B2 (ja) * | 2011-01-07 | 2014-10-22 | 三菱電機株式会社 | 計算機システム及び割込み制御方法及びプログラム |
JP6244786B2 (ja) * | 2013-09-30 | 2017-12-13 | 富士通株式会社 | 情報処理装置、ストレージ制御装置、及びプログラム |
JP6309623B2 (ja) * | 2013-12-23 | 2018-04-11 | インテル・コーポレーション | 複数のハイブリッドプロセッサコアを含むシステムオンチップ(SoC) |
JP5856220B2 (ja) * | 2014-04-23 | 2016-02-09 | ルネサスエレクトロニクス株式会社 | ナビゲーションシステム |
US11394614B2 (en) | 2020-05-05 | 2022-07-19 | Arista Networks, Inc. | Network device supporting multiple operating systems to enable optimized use of network device hardware |
JP7439773B2 (ja) * | 2021-01-18 | 2024-02-28 | 株式会社オートネットワーク技術研究所 | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム |
-
1999
- 1999-07-07 JP JP19257499A patent/JP3765201B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001022598A (ja) | 2001-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3593241B2 (ja) | 計算機の再起動方法 | |
US6996828B1 (en) | Multi-OS configuration method | |
US6711605B2 (en) | Multi OS configuration method and computer system | |
JP3765201B2 (ja) | 計算機システム | |
US7657778B2 (en) | Computer system and boot control method | |
JP3546678B2 (ja) | マルチos構成方法 | |
US6775728B2 (en) | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework | |
US20070050586A1 (en) | Memory access control apparatus | |
US8046392B2 (en) | Storage system and information transfer method for the same | |
US20050240669A1 (en) | BIOS framework for accommodating multiple service processors on a single server to facilitate distributed/scalable server management | |
WO2011114476A1 (ja) | マルチコアプロセッサシステム、通知プログラム、および通知方法 | |
JP4026667B2 (ja) | マルチos構成方法 | |
GB2195192A (en) | System recovery method for computer system | |
JP2001290665A (ja) | プロセッサシステム | |
JPH0736713A (ja) | プログラム実行管理装置 | |
JP2001290678A (ja) | 非同期メモリダンプ実行方式 | |
JP2001290691A (ja) | 計算機システム及び二次記憶装置 | |
JP4853620B2 (ja) | マルチプロセッサシステムと初期立ち上げ方法およびプログラム | |
JP3189894B2 (ja) | 仮想計算機システム | |
JP5713089B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP2798140B2 (ja) | 仮想空間制御方式 | |
JP2018180644A (ja) | 運用管理装置、運用管理システム及び運用管理方法 | |
JP2004038995A (ja) | マルチos構成方法 | |
JPH07141207A (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040624 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050425 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050707 |
|
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: 20060104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060117 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |