カーネル外で動作するカーネルモードスレッド(et:external thread)を提案し、その仕組みをlkm(loadable kernel module)として実現した。 Unixカーネルとetとは、メタスケジューラによってCPU横取り可能のラウンドロビンスケジューリングを施される。そのため、lkmでは記述できなかった周期的な処理が、etを使ってサーバと同様の方法で記述可能となった。また、etはUnixシステムの外部で動作するため、少ないプローブ効果でUnixシステムの振舞いを観測することができ、etを使って動的にUnixシステムのチューニングを行うことも考えられる。 また、本年度はetを活用するために必要なライブラリを整備した。特に ・etの制御の放棄や終了のための基本的な関数 ・Unixのコンソールへの出力用関数 ・ユーザプロセスとデータの授受をするためのテバイスドライバ を作成した。 本年度の研究では、etを使ったカーネルの可視化も試みた。システムに存在するプロセスの状態を色を使って動的に表示するプログラムや、指定したプロセスの仮想アドレスのマッピング状態を表示するプログラムを作成した。これらのプログラムは、1)etを使ってカーネルの状態情報を取得する、2)テバイスドライバを通して情報をユーザプロセスに渡す、3)ユーザプロセスがXウィンドに描画する、という手順で可視化を行う。今までの可視化システムの実現法と違い、情報の取得は、ほぼ、実時間で行えるため、より実際の状態に近い断面が可視化できるようになったと考えられる。
|