New(Mint)

本グループでは, 今後予想される計算機の多コア化に柔軟に対応できる新しいOSについて, 谷口研究室と共同で研究開発を進めています. Mint は,1台の計算機上でマルチコアCPUを用い, 複数のLinuxを独立に走行させる方式です. 過去の卒論・修論のテーマ一覧(一部)を以下に掲載します.

Mint: 複数のLinux を同時走行させる技術の研究


Mintは,1台の計算機上で複数のLinuxを動作させる方式です. 各OSは,計算機のハードウェアを各OSで分割し,占有することで, 高い独立性を実現しています. 特に,プロセッサに関しては,1つ以上のコアを各Linuxに占有させるため, 実計算機に近い形態での走行環境の構築が期待できます.

【特徴】

  1. VM方式と違いハードウェアを仮想化しないため高速に動作
    • プロセッサ:コア分割し,各OSで占有
    • メモリ:空間分割して,各OSが占有
    • 入出力機器:各OS毎に占有する機器を限定
  2. 各OSは独立に走行

MintにおけるLinuxとAndroidの共存制御


Mintにおいて用途の異なるOSを混載することで,OS固有の特性が同時に使用可能になります. この一例として,本研究では,MintにおいてLinuxとAndroidを混載する方式を提案します. LinuxとAndroidを混載する際の利用例として,家電製品への適用が考えられます. 既存の家電製品では,制御用のOSとユーザインタフェース用のOSを用意し,別々のCPU上で動作させることが一般的です. Mintでは独立性とオーバヘッドが発生しないという性質を生かし,1つのCPU上でそれぞれのOSの性能を落とすことなく,制御用OSとユーザインタフェース用OSを動作できます.

【特徴】

  1. 1台の計算機上で,LinuxとAndroidを独立に走行

Mintにおけるコア管理機能の実現


Mint では,Linuxの既存機能を用いて同時に走行するOS間での計算機資源の移譲ができるようにしています.しかしながら,Linux はMint のように複数のOSを同時に走行させることを想定していないため,それぞれのOSは自分の持つ資源と他のOSがもつ資源との区別ができません.このため,資源の移譲の際には,システムの管理者が対象のOSと対象の資源を選定する必要があります.また,移譲対象の資源を誤ると,走行中のOS 環境を破壊する可能性があるため,慎重に操作する必要があります. この結果,同時走行するOS数と計算機の資源量の増大にともない,システムの管理運用のコストも増大してしまいます. そこで,Mintにおいて同時走行する他のOSの走行環境を破壊しないように保護をする他占有資源保護機構を実現し,さらに計算機全体の資源を管理する資源管理機構を提案しています.

【特徴】

  1. Mintにおける計算機資源管理部の実現
  2. 動的な計算機資源移譲

実メモリ移譲機能


近年の計算機システムでは大規模かつ多数のサービスを提供する必要があるため,実メモリ容量の需要は増大し続けています. 特に複数OSを走行させる計算機システムでは,実メモリの使用量が膨大となり,運用コストを高める一因となってしまいます.
そこで,Mintにおいて実メモリを効率的よく利用可能にする実メモリ移譲機能を提案しました. この機能では,実メモリを仮想化によらず複数OSに分配することで,各OSは実計算機と同等の性能での実メモリアクセスが可能です. また,各OSのメモリ使用量の変動に応じて実メモリを動的再分配できます. 動的再分配のためには,Linuxのもつメモリホットプラグ機能を利用しながら,OS間で実メモリ領域を排他利用します.
評価では,提案方式は既存の仮想計算機方式に比べてAPの実行時間の長大化を抑制でき,実メモリ使用量を抑制する効果が高いことを明らかにしました.

【特徴】

  1. 実計算機と同等の性能での実メモリアクセスを実現しながら,実メモリを複数OSで分割利用
  2. 各OSの実メモリ使用量の変動に基づいて実メモリを動的再分配

Mintにおけるデバイス移譲方式


Mintでは動作するLinuxの数は,コア数に依存しています. また,Intelは,将来的に計算機に搭載するコアの数を1000個にすることを目標にしています. このため,Mintで同時走行するLinuxの数は10倍以上に増加すると考えられます. 一方で,1台の計算機に搭載できるデバイスの数には限界があります. デバイスは常に使用されるわけではなく,待機時間が存在します. 待機時間中にデバイスを他Linux に移譲することで,デバイスを効率的に利用できます. 現在,MintではLinuxの既存機能であるLoadable Kernel Module(LKM)を利用することで,Linux 間でデバイスを移譲できます. LKMを利用したデバイス移譲方式では,本来デバイス移譲に必要のない処理が発生し,処理時間が長大化しています. また,デバイス移譲処理中は,すべてのOSが移譲対象のデバイスを使用できません. このため,デバイス移譲にかかる時間を最小限に抑えたいという要求があります. この要求への対処として,本研究では,デバイスの1つであるNICに着目し,Mintにおける割り込みルーティングの変更によるNIC移譲機能を実現しました.

【特徴】

  1. 割り込みルーティングによるデバイス移譲の実現

Mint上のKVMの評価


1台の計算機上で複数のOSを走行させる技術として,Mintの他にVM方式があります. VM方式は,仮想的にOSが走行できる環境(以後,VMと呼ぶ)を作成し,このVMを複数走行させることで,1台の計算機上で複数のOSを走行させる方式です. また,VM方式では,CPUコア,メモリ空間,および入出力デバイスを複数のVM間で共有し,動作できます. しかし,Mintとは異なり,上記を実現するためのソフトウェア(以降,ハイパーバイザと呼ぶ)を計算機とVMの間に走行させる必要があります. このため,VM方式ではハイパーバイザに障害が発生すると,ハイパーバイザ上で動作するVMが全て停止し,計算機が稼働しなくなる問題があります. また,ハイパーバイザ上で動作するVM間には処理負荷の影響が発生する問題もあります. 具体的には,2台のVMが同時に走行している際に,一方のVMに処理負荷が集中すると,もう一方のVMの処理が遅延してします. そこで,Mintで動作するOSをハイパーバイザとして利用することで,1台の計算機上で複数のハイパーバイザを動作させる方式を実現します. 具体的には,Mintで動作するOSでKVM(Kernel-based Virtual Machine)を動作させ,このKVM上で複数のVMを走行させます. この方式では,1台の計算機上で複数のハイパーバイザが動作するため,1つのハイパーバイザに不具合が発生しても計算機上で稼働するVMが全て停止することはありません. また,動作させるVM間の処理負荷の影響を同一のハイパーバイザ上に限定することができます. さらに,Mintで動作するOSが占有している計算機の資源をハイパーバイザ上で動作するVMが共有して利用できます.

【特徴】

  1. Mintの利用法の提案
  2. MintへのVM方式の導入

Mintを用いた割り込み処理のデバッグ支援環境


OSの割り込み処理のデバッグについての研究では,仮想計算機を用いるも のがあります.しかし,仮想計算機上で走行するOSは,仮想化の処理負荷 の影響を受けます.このため,短い間隔や一定間隔の複数の割り込みを発 生させることが困難です. そこで,Mintを用いた割り込み処理のデバッグ支援環境を実現します.こ のデバッグ支援環境では,Mint上で走行する他OSからデバッグ対象のOSへ 割り込みを発生させます.これにより,割り込み処理を確認することがで きます.また,Mintでは,仮想化を用いずにOSを走行させるため,仮想化 の処理負荷の影響を受けずにデバッグ対象のOSを走行させることができま す.このため,短い間隔や一定間隔の複数の割り込みを発生させることが できます.

【特徴】

  1. Mintを用いて割り込み処理を行いたいOSへ割り込みを発生
  2. 短い間隔や一定間隔の複数の割り込みを発生可能