単一システムイメージを提供するための仮想マシンモニタ
For English Version
News
(May 15, 2006) Version 0.3 が公開されました.(Changelog). 
(July 6, 2005) 新しいデモムービーが公開されました.仮想 8-way マルチプロセッサマシンが起動しています.
(May 31, 2005) Version 0.2 が公開されました.(Changelog). 
(Dec 20, 2004) Version 0.1 が公開されました.(Changelog). 
Overview
Virtual Multiprocessorは,単一システムイメージを提供するための
仮想マシンモニタです.このシステムは,ネットワークで結合された複数のマ
シン上に,共有メモリ型マルチプロセッサマシンを仮想的に構築します.
例えば,N台のシングルプロセッサマシン上に,Nプロセッ
サからなる仮想マルチプロセッサマシンを構築することができます.利用者はこの仮想マシン上に,Linux といったマルチプロセッサ対応の OS をインストールし,さらに,
その OS 上で並列アプリケーションを記述・実行することが可能となっています.
Demo Movies
- 仮想 8-way マルチプロセッサマシンを,
8台の物理マシン上に構築します (wmv)
- 仮想デユアルプロセッサマシンを,2台のシングルプロセッサマシン上に
構築します (wmv)
Pulications
- Papers
- Kenji Kaneda, Yoshihiro Oyama, and Akinori Yonezawa.
 "A Virtual Machine Monitor for Providing a Single System Image".
 Submitted to IPDPS 2006 (and rejected!),
 15 pages, (pdf).
 
- 金田憲二, 大山恵弘,and 米澤明憲.
 "単一システムイメージを提供するための仮想マシンモニタ".
 情報処理学会論文誌 第47回 SIG 3 (ACS 13).
 
- 金田憲二, 大山恵弘, and 米澤明憲.
 "単一システムイメージを提供するための仮想マシンモニタ".
 第17回コンピュータシステム・シンポジウム (ComSys2005),
 pages 3-12, November 2005 (pdf) (ppt).
 (若手/学生論文賞 受賞)
 
 
- Poster Presentations
- Kenji Kaneda, Yoshihiro Oyama, and Akinori Yonezawa.
 "Virtualizing a Multi-processor Machine on a Network of Computers".
 大域ディペンダブル情報基盤シンポジウム,
 March 2005 (abstract:pdf)
                (poster:ppt)
                (talk:ppt).
 
- Talks
- Kenji Kaneda, Yoshihiro Oyama, and Akinori Yonezawa.
 "A Virtual Machine Monitor for Utilizing Non-dedicated Clusters".
 In Work-in-Progress Session of the 20th ACM Symposium on Operating Systems Principles (SOSP'05),
 October 2005 (abstract:pdf)
                  (talk:ppt)
                  (movie:wmv).
- CRESTセミナー (ppt)
- 松岡研セミナー (ppt)
 
- 雑誌記事
- 日経バイト 11月第270号「仮想化の正体」pp. 32-33, 2005
 
License
このプログラムはフリーソフトウェアであり、Free Software Foundation の 
GNU General Public License  の利用規約に従い,再配布,改変することが許
可されています.
Download
Install
このソフトウェアは,Linux/x86アーキテクチャ上で動作します.
configureスクリプトとmakeコマンドを用いて,コンパイル及びインストールすることができます.
このソフトウェアをインストールする最も簡潔な方法は,以下の通りです.
- 
ソースコードの置かれたディレクトリに移動し,./configureと入力します.
- 
makeと入力し,ソースコードをコンパイルをします.
- 
make installと入力し,ソフトウェアをインストールします.monというコマンドがインストールされます.
初期設定では,インストール先のディレクトリは /usr/localとなっています.
インストール先のディレクトリは,configureを実行する際に,--prefix=PATHオプションで指定することができます.
Usage
- 
設定ファイルを記述し,(1)仮想マシンがお互いに通信する際に使用するホスト名とポートと,(2) ディスクイメージへのパスと,(3) 初期メモリイメージへのパスを指定します.
設定ファイル中の各行は,文頭に置かれたキーワードにより,その意味が決定されます.具体的には,
- cpu というキーワードで始まる行は,仮想マシンがお互いに connect/listen するホスト名とポートを指定します.
- disk というキーワードで始まる行は,ディスクイメージへのパスを指定します.
- memory というキーワードで始まる行は,初期メモリイメージへのパスを指定します.
 これは設定ファイルのサンプルです.
- 
インストールされたmon というコマンドを実行します.
その際に,CPU ID と設定ファイルへのパスをコマンドライン引数で指定します.
mon --id number --config filename
 このコマンドで立ち上げられたプロセスが,指定された CPU IDをもつプロセッサをエミュレーションします.
もし N プロセッサからなる仮想マシンをエミュレーションしたい場合には,
N個のプロセスを異なる CPU ID を与えて立ち上げる必要があります.
その際には,設定ファイル中で指定されているホスト上でプロセスを立ち上げる必要があります.
Related Work
-  仮想マシンモニタ
     (e.g., Virtual Iron (Katana), 
            vNUMA, 
            VMWare, 
            LilyVM)
-  シミュレータ/エミュレータ
     (e.g, SimOS,
           Bochs)
-  分散共有メモリシステム
     (e.g., Shasta, 
            cJVM)
-  分散オペレーティングシステム
     (e.g., MOSIX,
            Kerrighed,
            OpenSSI)
-  Microkernels
     (e.g., Mach, 
            GNU hurd)
Links
Kenji Kaneda
kaneda@yl.is.s.u-tokyo.ac.jp