• 検索結果がありません。

第 3 章 カーネル外による OS の動作推測 23

3.4 まとめ

本章では,本研究で着目したカーネル外からのOSの動作推測について述べた.

GrayBox 手法の概念を活用し,OSの知識を利用することで,ある操作に対する

OSの動作を推測することができる.これにより,ある時点でのOSの内部状態を 推測することができ,従来よりもより多くのOSの内部挙動が把握可能となる.本

研究では,ユーザレベル,そしてVMMレベルという2種類のソフトウェアレイ ヤから OSの動作推測を行っている.ユーザレベルでは,プロセスのある操作に 対しての OSの動作を推測することで,これまで取得が困難であったファイルブ ロックの先読みサイズといった内部挙動が把握可能となる.一方,VMMレベルで は,あるデバイスの操作に対するOSの動作をあらかじめ推測する.これにより,

デバイスによるデータの通知や割り込み通知後の OSの内部挙動をVMM上で把 握することができる.次章より,これらのOSの内部情報の取得方法を用いた資源 管理ポリシーの変更について述べていく.具体的には,ユーザレベルで動作する ディスク帯域割り当てポリシーの変更機構,さらに VMMレベルでの資源管理ポ リシーの変更手法について具体的に述べていく.

4 ユーザレベルでの

ディスク帯域割り当て変更

本章では,ユーザレベルでプロセスのディスク帯域を制限する機構,DiscNice について述べる.ディスクI/OはCPU速度やメモリのアクセス速度と比べて格段 に低速である.そのため,プロセスのディスク帯域の割り当て方を用途に応じて 制御しなければ,アプリケーションのスループットは著しく低下してしまう.各プ ロセスのディスク帯域割り当て変更の必要性にもかかわらず,WindowsやLinux といった汎用 OSにはプロセスごとにディスク帯域を制限する資源管理ポリシー が導入されていない.また,これまでユーザレベルでディスク帯域の割り当てを 変更する機構は提案されていない.この理由はユーザレベルからプロセスのファ イルI/Oに伴うディスクI/Oを観測することができないためであると考えられる.

たとえプロセスがOSに対して発行するファイルI/Oを制限しても,ファイルI/O はディスクI/Oと連動しないため,ディスク帯域使用量を適切に制限することが できない.そこで,DiscNiceではディスクアクセスに関するOSの動作に着目す る.ファイルI/Oが発行された際,OSの動作を推測することでそのファイルI/O に伴って発行されるディスク I/Oサイズを推測する.推測したサイズから,各プ ロセスのディスク帯域使用量の把握を行う.そして,DiscNiceは搭載されたポリ シーに従ってファイル I/Oの発行率を調整することで,ディスク帯域使用量を制 限する.これにより,各プロセスのディスク帯域を制限するようカーネルを修正 したときに近い効果を得る.DiscNiceは以下の特徴をもつ.

OSカーネルの変更が不要: DiscNiceは既存のOSカーネルに修正を加えず に導入することが可能である.DiscNiceの各モジュールは,カーネルの修正 やカーネルモジュールのロードを必要とせず,すべてユーザレベルで動作す る.カーネルの修正を要さないため,商用OSのWindowsであってもディス ク帯域の制限が原理的に可能である.

ディスク帯域制御機構の移植性向上: DiscNiceのすべてのモジュールをユー

ザレベル上で実装しており,またOS固有の機能を用いていない.そのため,

システムコール等のインターフェースの変更は要するものの,カーネルレベ ルのディスク帯域制御機構と比べると,他のOSへの移植が容易である.

ポリシーと機構との明確な分離: DiscNiceでは,プロセスのディスクI/Oサ イズを推測する方法(機構)と,ディスクI/Oを制限するために行うファイル I/Oの発行制限の仕方(ポリシー)を明確に分離している.これにより,ポリ シーを変更する際はポリシーのみの実装を変更すればよく,ディスク帯域使 用量の制限の仕方を用途に応じて設定できる.

プロトタイプをLinux 2.4.27上に実装した.そして,実際のアプリケーション を含むベンチマークを用意して実験したところ,DiscNiceはディスク帯域使用量 を制限可能な精度でディスクI/Oサイズを推測できることがわかった.また,各 ベンチマークディスク帯域使用量をポリシーに従い制限し,バックグラウンドタ スクが起こすディスク競合を緩和することで,フォアグランドタスクのスループッ ト劣化を抑えられることがわかった.加えて,DiscNiceによるオーバヘッドを計 測するために,実際のアプリケーションを用いて,DiscNiceを稼働させたときと そうでないときとの実行時間を比較した.すると, 実行時間の増加は12%以下に とどまった.

本章では,まずディスク帯域制限の必要性について示し,ユーザレベル上での ディスク帯域制限の困難さについて述べる.次に考慮すべき OSの動作について

述べ,DiscNiceの設計,実装および実験について述べる.そして,最後に本章を

まとめる.