------------------------------------------------------------------
              第 344 回 PTT のお知らせ

     ---  Programming Tools and Techniques  ---
------------------------------------------------------------------
■日時: 2008年5月29日 (木) 18:30 から
■場所: 東京工業大学 西8号館W棟10階1008号室 (大岡山キャンパス)

http://www.titech.ac.jp/access-and-campusmap/j/o-okayama-campusmap-j.html
------------------------------------------------------------------
■話者: 田所秀和(東京工業大学大学院情報理工学研究科)
------------------------------------------------------------------
■題名:仮想マシン間にまたがるプロセススケジューリング
------------------------------------------------------------------
■概要:
サーバ統合により複数の仮想マシンを用いる場合、重要なサービスを阻害
しないようにシステム全体でプロセスに優先度をつけられることが望まし
い。しかし、従来ではこのようなシステム全体でプロセスを意識したスケ
ジューリングを行うのは難しかった。本研究では仮想マシンモニタが仮想
マシン間にまたがるプロセススケジューリングを行うシステムを提案する。
このシステムでは、仮想マシンモニタから仮想マシン上のゲストOSのラン
キューを直接操作することで、ゲストOSのプロセススケジューリングを調
整する。我々はこのようなプロセススケジューリングをXenを用いて実装
し、他のすべてのプロセスが停止した時だけ特定のプロセスを動かすという
ポリシーを実現できることを実験により確かめた。

------------------------------------------------------------------
■アクセス情報:●大岡山キャンパスまでの案内

東急大井町線、目黒線の大岡山駅下車、徒歩1分です。

    http://www.titech.ac.jp/access-and-campusmap/j/access-j.html

●西8号館W棟まで

駅を出てすぐに正門があります(7)。ここから右手に向って本館前の桜並木
に出ます(1)。 ここから、芝生脇の坂を下ったところに西8号館があります
(24, 25)。西8号館はE棟と W棟にわかられていて、エントランスの階以外
はふたつの棟は行き来できないので注意して 下さい。エントランスより入
って、廊下を突っ切ったところにエレベータホールがあり ます。エレベー
タを使って10階の一番奥の部屋が会場です。

    http://www.titech.ac.jp/access-and-campusmap/j/o-okayamaO-j.html

第 344 回 PTT report

出席者:25名

別役,武山,森田,堀江,赤井,今吉,千葉,光来,脇田,鈴木,田所(東
工大),横山,丸山,筧,笹田(東大),江崎,酒井,林(富士通),和田
(IIJ),卜部(TNT),鵜川,寺田(電通大),日比野(朝日ネット),並木(農工
大),伊知地(ラムダ数教研)

話者:田所秀和(東京工業大学大学院情報理工学研究科)
題名:仮想マシン間にまたがるプロセススケジューリング

概要:
サーバ統合により複数の仮想マシンを用いる場合、重要なサービスを阻害
しないようにシステム全体でプロセスに優先度をつけられることが望まし
い。しかし、従来ではこのようなシステム全体でプロセスを意識したスケ
ジューリングを行うのは難しかった。本研究では仮想マシンモニタが仮想
マシン間にまたがるプロセススケジューリングを行うシステムを提案する。
このシステムでは、仮想マシンモニタから仮想マシン上のゲストOSのラン
キューを直接操作することで、ゲストOSのプロセススケジューリングを調
整する。我々はこのようなプロセススケジューリングをXenを用いて実装
し、他のすべてのプロセスが停止した時だけ特定のプロセスを動かすという
ポリシーを実現できることを実験により確かめた。


質疑応答:
Q. VMM はどこにあるのか?(提案のスライドで質問)
A. VM の下

Q. 仮想マシンと VM は同じもの?
A. yes

Q. VMM と guest OS の関係は?
A. 次のスライドで

Q. CAP で指定するのは物理 CPU の数 or 量?
A. 50 なら半分、400 なら 4 個分

Q. scheduling するは dom0 の 1 つのプロセス?
A. yes

Q. コンテキストスイッチごとにこの操作が必要か? p2m table は変わった
りするのか?
A. yes、毎回やる

Q. この操作は重くないか?
A. 実験で説明

Q. 「ゲストOSの変更が要らない」とはいうけど,かなりゲストOSについて
の知識がないとダメなのでは?
A. yes。 Windows でもやっている

Q. gdb からの型情報取得はいつやるのか?
A. guest OS を動かす前に、事前に

Q. オーバヘッドの時間はどのように測ったのか?
A. loop させて gettimeofday

Q. プレゼン中の優先度というのは提案手法に置ける優先順位か?
A. yes

Q. pi 計算は自発的に CPU を手放さないのになぜ CPU を使わなくなってい
るのか?
A. 計算が終了したので、CPUを使わなくなった

Q. 走っているプロセスを取り除くのは難しいとあるが,あきらめたのか
A. 半分あきらめている。ソースコードをみながら考え中

Q.どうして外から止められないのか?
A. カーネルの内部でいろいろやっているから

Q. 円周率の計算の規模は?
A. 100 万桁。計算結果の正しさはチェックしていない

Q. ポーリングの間隔は?
A. 秒単位

Q. 間隔によってチェックできるものが変わるのでは。荒いと見逃す可能性
があるのでは?
A. 一瞬動くプログラムは、見逃す可能性がある

Q. ポーリングの間隔にくらべて pi の時間は?
A. 25 sec くらい

Q. ポーリングで一番短いのは?
A. 100 ms

Q. イベント駆動は考えなかったのか?
A. ポーリングのほうが簡単だから

Q. ポーリング時にキューを操作中であればスキップするが,それは次の
ポーリングまでスキップということか
A. yes

Q. webサーバでは context switch は激しいのでは?
A. CPU を使っていないプロセス(I/O 待ち) は難しい

Q. runqueue をいじらなければならなかった理由は?
  linux の scheduling policy でがんばればよいのでは?
A. 同じ domain 内ならいいが、別の domain だと優先度がつけられない

Q. process 情報だけとれればよいのでは?
  DB がいなくなったら VM A の優先度をあげればよいのでは?
  linux の scheduler で優先度最低はそんなに動くのか?
  process を立ちあげなければよいのでは?
  これを使わないとできないことは?
A. よくわからない

Q. tripwire を linux scheduler で優先度最低にしたらどうか?
A. やっていない

Q. tripwire の優先度をそんなに下げて security 上よいのか?
A. どのくらい tripwire が動いているかは調べていない。tripwire はそれ
なりに CPU を食う

Q. lighttpd, tripwire どちらも I/O intensive なのか
A. それなりにCPUを使う

Q. security にからめることは考えなかったか?
   OS がうまく動かなくても VMM がいる。そこが VMM の利点。よさが伝わ
らない。(コメント)

Q. 外から優先度を落としてやりたいことはありそう(virus check など)。
そういうストーリーがよい。(コメント)

Q. memory など他にもいろいろ情報が取れる。そういう情報を使ってCPU以
外のリソースもVMMから管理してはどうか。(コメント)

Q. guest OS が version up したら、gdb でデータを取る必要がある?
  version up 毎にやるのは大変
A. 3 年変わっていない

Q. ゲストOSが変わると対応しないといけないのは使いづらいのは。

Q. 外から runqueue をいじって大丈夫か?  どのくらい試したか?
A. 1 週間ほど make 等を動かし、試した

Q. process 情報が kernel のいろいろなところに cache されていることは
ないか?
  カーネルの意図しない更新が入るので,バグが入りやすいのでは
A. ソースをみて調べた

Q. 型がついた OS (singularity) ではどうか?
  ソースがある。 型を活用する方向。型があると有利か?
A. 難しいところは型ではなんともならない (by chiba)

Q. ユーザはどうやって process を指定するのか?
A. process の名前や、ドメインのIDと pid

Q. Windows hacking の情報はどこから得たのか?
A. 一部はあやしいサイトから。 reverse engineering の結果。

Q. 挙げられている process の痕跡は必要条件 or 十分条件?
A. 必要条件。メンバ変数につながっていることはつよい条件。

Q. process 等のリンクは双方向?
A. yes

Q. process の優先度はもっと簡単にかえられないのか?
A. Win32API などでは、優先度をあげる関数が存在する

Q. process を止めることは?
A. てががりなし

Q. windows の場合に正しいことはどうやって保証?
A. できていない
 process がつながっていればだいじょうぶだろうし、 basepriority はか
えても大丈夫だろう。 atomic に変えられたら

Q. windows 内で特権 process を動かせば?
A. 可能。うまくできることは明らかなのでおもしろくない。

Q. win で新しいところは?
A. 組み合わせたところ

Q. guest OS を 1 つ増やせばよいのでは?
A. 同じ dom で動かさなければならない場合もある。backup を別 domain
で動かしてもしかたない。

Q. honeypot に使える?
A. VM だとそもそもあやしい