JP2014078186A - 多重化装置、多重化方法および多重化プログラム - Google Patents
多重化装置、多重化方法および多重化プログラム Download PDFInfo
- Publication number
- JP2014078186A JP2014078186A JP2012226587A JP2012226587A JP2014078186A JP 2014078186 A JP2014078186 A JP 2014078186A JP 2012226587 A JP2012226587 A JP 2012226587A JP 2012226587 A JP2012226587 A JP 2012226587A JP 2014078186 A JP2014078186 A JP 2014078186A
- Authority
- JP
- Japan
- Prior art keywords
- input
- signal
- signal input
- output
- oss
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【解決手段】この発明に係る多重化装置は、複数のオペレーティングシステム(OS)を起動してそれぞれに共通のアプリケーションを実行させ、デバイスとのI/O入出力を管理して、複数のOSの各動作を制御する同期実行管理手段と、複数のOSからの各I/O出力値に基づいて、デバイスへI/O出力するI/O出力同期手段と、デバイスからのI/O入力値を複数のOSからの各I/O入力要求に基づいて、I/O入力要求したOSにI/O入力するI/O入力同期手段とを備えた。
【選択図】 図1
Description
図1は、この発明の実施の形態1に係る多重化装置の一例を示す構成図である。
仮想マシンモニタ3は、この多重化装置の利用者や起動スクリプトなどの指示により、同期実行管理部6に多重化起動情報を通知する。多重化起動情報は、例えば、多重化して起動するOS4(OSのファイル名や識別番号など)、多重化の数(2以上)、対象とするI/O入出力(I/Oアドレスとサイズ)と割込み通知(割込み番号)などである。多重化起動情報の通知方法は特に言及しないが、例えば仮想マシンモニタ3が提供するサービスコール(これを一般的にはハイパーコールという)を利用するものとする。
次に、同期実行管理部6は、対象とするデバイスについてI/O出力の場合はI/O出力同期部7を、I/O入力の場合はI/O入力同期部8を実行するようにI/O入出力発生時の処理を予め設定する。
同期実行管理部6は、多重化の数の分、OS4を起動し、実行を開始させる。ここでは、多重化の数を3とし、OS−A4aからOS−C4cを起動するものとする。この設定方法としては、例えばメモリ管理ユニット(MMU:Memory Management Unit)や、CPUの特権モード、もしくは例えばIntel社製CPUのIntel VT機能やAMD社製CPUのAMD−V機能のようなI/Oアクセス保護機能を用いて当該I/Oアドレスへのアクセス保護を設定し、I/O入出力を検知するようにしてもよい。ここで、ハードウェア1がマルチCPUやマルチコアCPUを持つ場合、複数の異なるCPUまたはコアにOS4の実行をそれぞれ割り当てることにより並列にOS4を実行してもよい。
まず、最初にI/O出力処理は、OS−n(nはA、BまたはC)からのI/O出力を待ち合せるS201の状態にある。このS201の状態で、仮想マシンモニタ3の同期実行管理部6が、OS−nから対象とするデバイス(以下、対象デバイスという)へのI/O出力を検知することで、S202の状態に遷移する。
S202の状態に遷移すると、同期実行管理部6がI/O出力をしてきたOS−nの実行を一時中断させ、I/O出力同期部7がI/O出力テーブル10に今回のI/O出力の対象(I/Oアドレスとサイズ)を格納するとともに当該OS−nの該当部分にI/O出力値を格納する。なお、I/Oアドレスとサイズは、最初にI/O出力したOS−nのいずれかが既に格納している場合には、格納は不要とし、I/O出力するOS−n間の対応が確認される。
S203の状態に遷移すると、I/O出力同期部7は、当該I/OアドレスにI/Oテーブル10に格納されたI/O出力値を用いてI/O出力を実施し、S204の状態に遷移する。
S204の状態に遷移すると、I/O出力テーブル10から当該I/Oアドレスの部分を各OS−nのI/O出力値とともに削除し、多重化されたすべてのOS−nの実行を再開して、S201の待ち状態に遷移する。
S205の状態に遷移すると、多重化の数が3以上であれば多数決などの方法により正しいものが選択できればその内容でS203と同様の処理を実施し、S204の状態を経て、S201の待ち状態に遷移して、動作を継続する。
まず、最初にI/O入力処理は、OS−nからのI/O入力要求を待ち合せるS301の状態にある。このS301の状態で、仮想マシンモニタ3の同期実行管理部6が、OS−nからI/O入力要求を検知することで、S302の状態に遷移する。
S302の状態に遷移すると、同期実行管理部6がI/O入力を要求してきたOS−nの実行を一時中断させ、I/O入力同期部8は、I/O入力テーブル11に今回のI/O入力の対象(I/Oアドレスとサイズ)を格納するとともに当該OS−nの該当部分にI/O入力要求があったことを示すフラグを設定する(ON)する。なお、I/Oアドレスとサイズは、最初にI/O入力要求したOS−nのいずれかが既に格納している場合には、格納は不要とし、既にI/O入力要求しているOS−n間の対応が確認される。
このS303の状態に遷移すると、I/O入力同期部8は、対象デバイスからのI/O入力を要求し、I/O入力値を得た後、S304の状態に遷移する。
S304の状態に遷移すると、各OS−nに対象デバイスからのI/O入力を実施し、I/O入力テーブル11から当該I/Oアドレスとサイズの部分を削除して、各OS−nのI/O入力要求を示すフラグをリセットして未設定(OFF)にするとともに、I/O入力によって得られたデータ(I/O入力値)を用いて、I/O入力要求で一時中断していたすべてのOS−nの実行を再開させて、S301の待ち状態に遷移する。
まず、仮想マシンモニタ3の同期実行管理部6は、OS4(OS−A4a〜OS−C4c)の対象とするI/Oデバイスからの割込みを検知し、割込み同期通知部9に通知する。
割込み同期通知部9は、多重化しているすべてのOS4(OS−A4a〜OS−C4c)に対し、割込み発生を通知する。
各OS4(OS−A4a〜OS−C4c)もしくはそれらのデバイスドライバ5(5a〜5c)は、対象デバイスから割込みが発生したことを通知されることで、当該デバイスに対応した割込み処理を実行する。
先に説明したこの発明の実施の形態1に係る多重化装置では、I/O入力同期部8は、I/O入力する前にI/O入力要求の有無を確認するため、OS4ごとにI/O入力要求フラグを保持するI/O入力テーブル11を有し、デバイス2からのI/O入力値を複数のOS4からの各I/O入力要求に基づいて、I/O入力要求したOS4にI/O入力する。OS4からの対象デバイスのI/O入力時に呼び出され、多重化された複数のOS4からのI/O入力要求が揃うのを待って、デバイスからのI/O入力値を複数のOS4へ受け渡して、実際にI/O入力を実施するものであった。
まず、最初にI/O入力処理は、OS−nからのI/O入力要求を待ち合せるS501の状態にある。このS501の状態で、仮想マシンモニタ3の同期実行管理部6が、OS−nからI/O入力要求を検知することで、S502の状態に遷移する。
S502の状態に遷移すると、同期実行管理部6がI/O入力を要求してきたOS−nの実行を一時中断させ、I/O入力同期部8は、I/O入力テーブル11に今回のI/O入力の対象(I/Oアドレスとサイズ)を格納するとともに当該OS−nの該当部分にI/O入力要求があったことを示すフラグを設定(ON)する。なお、I/Oアドレスとサイズは、最初にI/O入力要求したOS−nのいずれかが既に格納している場合には、格納は不要とし、既にI/O入力要求しているOS−n間の対応が確認される。
このS503の状態に遷移すると、I/O入力同期部8は、対象デバイスからのI/O入力を要求し、当該I/Oアドレスのエントリに対象デバイスから得たI/O入力値を格納した後、S504の状態に遷移する。
S504の状態に遷移すると、同期実行管理部6が今回I/O入力要求して一時中断しているOS−nに対してI/O入力値を入力して実行を再開させる。
S505の状態に遷移すると、I/O入力テーブル11から当該I/Oアドレスとサイズの部分を削除して、各OS−nのI/O入力要求を示すフラグをリセットして未設定(OFF)にして、S501の待ち状態に遷移する。
Claims (13)
- 複数のオペレーティングシステム(OS)を起動してそれぞれに共通のアプリケーションを実行させ、デバイスとの信号入出力を管理して、前記複数のOSの各動作を制御する同期実行管理手段と、
前記複数のOSからの各信号出力値に基づいて、前記デバイスへ信号出力する信号出力同期手段と、
前記デバイスからの信号入力値を前記複数のOSからの各信号入力要求に基づいて、前記信号入力要求したOSに信号入力する信号入力同期手段と
を備えた多重化装置。 - 前記デバイスからの割込みを通知されると、前記複数のOSに割込みに対応した処理を実行させる割込み通知同期手段
を有し、
前記同期実行管理手段は、前記デバイスからの割込みを検知すると、割込みがあったことを前記割込み通知同期手段に通知する
請求項1記載の多重化装置。 - 前記信号出力同期手段は、
前記複数のOSからの各信号出力値を保持する信号出力テーブル
を有し、
前記複数のOSのそれぞれが前記信号出力テーブルに信号出力値を登録して、すべての信号出力値が揃ったとき、前記信号出力値が一致する場合に、前記デバイスへ信号出力する
請求項1または請求項2記載の多重化装置。 - 前記信号出力同期手段は、前記信号出力テーブルに登録した信号出力値のうち、少なくとも1つの前記信号出力値が一致しない場合、前記信号出力値を多数決で決定して前記デバイスへ信号出力する
請求項3記載の多重化装置。 - 前記信号出力同期手段は、前記信号出力テーブルに登録した信号出力値のうち、少なくとも1つの前記信号出力値が一致しない場合、異常発生時に行う所定の処理を実行する
請求項3記載の多重化装置。 - 前記同期実行管理手段は、
前記信号出力同期手段の前記信号出力テーブルに信号出力値を登録したOSの動作を前記デバイスへ信号出力するまで一時停止させ、信号出力後に再開させる
請求項3または請求項4記載の多重化装置。 - 前記信号入力同期手段は、
前記複数のOSからの各信号入力要求を保持する信号入力テーブル
を有し、
前記複数のOSのそれぞれが前記信号入力テーブルに信号入力要求を登録して、すべての信号入力要求が揃ったとき、前記デバイスからの入力値を要求し、前記信号入力要求したOSに信号入力する
請求項1または請求項2記載の多重化装置。 - 前記同期実行管理手段は、
前記信号入力同期手段の前記信号入力テーブルに信号入力要求を登録したOSの動作を前記デバイスへ信号入力するまで一時停止させ、信号入力後に再開させる
請求項7記載の多重化装置。 - 前記信号入力同期手段は、
前記複数のOSからの各信号入力要求と前記デバイスからの入力値を保持する信号入力テーブル
を有し、
前記複数のOSのいずれかから最初に前記信号入力テーブルに信号入力要求が登録されたとき、前記デバイスからの入力値を要求して前記信号入力テーブルに保持し、前記信号入力要求したOSに前記信号入力テーブルに保持した前記入力値を信号入力する
請求項1または請求項2記載の多重化装置。 - 複数のオペレーティングシステム(OS)を起動してそれぞれに共通のアプリケーションを実行させ、デバイスとの信号入出力を管理して、前記複数のOSの各動作を制御する同期実行管理ステップと、
前記複数のOSからの各信号出力値に基づいて、前記デバイスへ信号出力する信号出力同期ステップと、
前記デバイスからの信号入力値を前記複数のOSからの各信号入力要求に基づいて、前記信号入力要求したOSに信号入力する信号入力同期ステップと
を有する多重化方法。 - 前記デバイスからの割込みを検知すると、割込みがあったことを通知する割込み検知ステップと、
前記デバイスからの割込みを通知されると、前記複数のOSに割込みに対応した処理を実行させる割込み通知同期ステップ
を有する請求項10記載の多重化方法。 - 複数のオペレーティングシステム(OS)を起動してそれぞれに共通のアプリケーションを実行させ、デバイスとの信号入出力を管理して、前記複数のOSの各動作を制御する同期実行管理ステップと、
前記複数のOSからの各信号出力値に基づいて、前記デバイスへ信号出力する信号出力同期ステップと、
前記デバイスからの信号入力値を前記複数のOSからの各信号入力要求に基づいて、前記信号入力要求したOSに信号入力する信号入力同期ステップと
をコンピュータに実行させる多重化プログラム。 - 前記デバイスからの割込みを検知すると、割込みがあったことを通知する割込み検知ステップと、
前記デバイスからの割込みを通知されると、前記複数のOSに割込みに対応した処理を実行させる割込み通知同期ステップと
をコンピュータに実行させる請求項12記載の多重化プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012226587A JP2014078186A (ja) | 2012-10-12 | 2012-10-12 | 多重化装置、多重化方法および多重化プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012226587A JP2014078186A (ja) | 2012-10-12 | 2012-10-12 | 多重化装置、多重化方法および多重化プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2014078186A true JP2014078186A (ja) | 2014-05-01 |
Family
ID=50783426
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012226587A Pending JP2014078186A (ja) | 2012-10-12 | 2012-10-12 | 多重化装置、多重化方法および多重化プログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2014078186A (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009238068A (ja) * | 2008-03-28 | 2009-10-15 | Fujitsu Ltd | 通信制御装置、通信制御方法 |
| JP2012003313A (ja) * | 2010-06-14 | 2012-01-05 | Hitachi Ltd | コンピュータシステム及びその制御方法 |
| WO2012032572A1 (ja) * | 2010-09-08 | 2012-03-15 | 株式会社日立製作所 | 計算機 |
-
2012
- 2012-10-12 JP JP2012226587A patent/JP2014078186A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009238068A (ja) * | 2008-03-28 | 2009-10-15 | Fujitsu Ltd | 通信制御装置、通信制御方法 |
| JP2012003313A (ja) * | 2010-06-14 | 2012-01-05 | Hitachi Ltd | コンピュータシステム及びその制御方法 |
| WO2012032572A1 (ja) * | 2010-09-08 | 2012-03-15 | 株式会社日立製作所 | 計算機 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101689127B (zh) | 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序 | |
| US9965304B2 (en) | Delayed hardware upgrades in virtualization systems | |
| US7574627B2 (en) | Memory dump method, memory dump program and computer system | |
| US7702828B2 (en) | Input/output control apparatus, input/output control system, and input/output control method | |
| US8782643B2 (en) | Device and method for controlling communication between BIOS and BMC | |
| EP2128759B1 (en) | Operating system startup control method and information processing apparatus | |
| US10379931B2 (en) | Computer system | |
| US20140032810A1 (en) | Application sharing in multi host computing systems | |
| WO2019100589A1 (zh) | 虚拟机快速扩容方法、装置、设备以及存储介质 | |
| JP4957765B2 (ja) | ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム | |
| WO2011116672A1 (zh) | 为共享代码段打补丁的方法及装置 | |
| US9880888B2 (en) | Executing an operating system in a multiprocessor computer system | |
| JP2019079309A (ja) | 起動管理装置、起動管理システム、起動管理方法、および、起動管理プログラム | |
| EP4443291A1 (en) | Cluster management method and device, and computing system | |
| JP2014078186A (ja) | 多重化装置、多重化方法および多重化プログラム | |
| US9292062B2 (en) | Power supply and program to acquire virtual machine data | |
| JP5713089B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
| JP2013140473A (ja) | 障害監視システム及び障害監視方法 | |
| JP2008077388A (ja) | マルチプロセッサ制御システム、方法、およびプログラム | |
| US10528391B1 (en) | Execution manager for binary objects operating across private address spaces | |
| JP2023071103A (ja) | プロセススケジュール方法 | |
| HK1237058B (en) | Virtual disk backup system, method and device | |
| HK1237058A1 (en) | Virtual disk backup system, method and device | |
| HK1237058A (en) | Virtual disk backup system, method and device | |
| JP2013130999A (ja) | マルチコアプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20140327 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150831 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160727 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160817 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170221 |