第 236 回 PTT のお知らせ
日時: 1998年1月22日 (木)[大安] 18:30 から
場所: 電気通信大学 IS棟2階 中会議室(215号室)
新宿駅より京王線、調布駅(特急で2つ目、15分)北口下車、
北西方向徒歩12分程度、電気通信大学西地区キャンパスの
南東隅にある8階建ての白い建物。
[いつもと場所が違います。ご注意ください。]
話者:多田 好克(電気通信大学 大学院情報システム学研究科)
題目:発展的カーネル --- どうして? どうやって? どうかしら? ---
概要:
内容:
最近、重点領域「ソフトウェア発展」の一部として研究してい
る発展的カーネル実現法に関する研究の現状をまとめて紹介す
る。
ソフトウェア発展では、a)既存のソフトウェアの仕様変更に対
する対処法、b)仕様変更に強いソフトウェア構築法、c)動的に
仕様変更できるソフトウェアの構築法、などを研究対象として
いる。今回の発表では、OSの核となるカーネルに対する動的
な仕様変更方法を議論する。
なお、動いているカーネルに手を入れてシステムコールopenを
フックするとか、動作中のUnixカーネルから定期的にCPUを取り
上げ実時間処理を実現する、といった(いくつかの地味な)デ
モも予定している。
ただし、最近、同様の話題と内容で5回ぐらい喋った気がする
ので、既にどこかで聞いた人には時間の無駄かもしれない。研
究は少しずつ進んでいるので、最後の10分を聞きにいらっしゃ
るのがお勧めです。(前回、この話題で喋ったのは1月13日な
ので、約10日分の進展を聞くことができ、その後、ご希望とあ
らば呑み会にも参加できます.....)
食事: 今回もありません。調布駅近辺のハンバーガー、ドーナッツ、
その他をご利用ください。電通大の正門のすぐ西にもMで始ま
るハンバーガー屋が待っています。また、IS棟のすぐ隣には、
西食堂と呼ばれる「安くて、早くて、**い」生協食堂があり
ます。
第 236 回 PTTメモ
日時: 1998年1月22日 (木)[大安] 18:30 から
場所: 電気通信大学 IS棟2階 中会議室(215号室)
題目: 発展的カーネル --- どうして? どうやって? どうかしら? ---
話者: 多田 好克(電気通信大学 大学院情報システム学研究科)
出席者:
伊知地宏,
尾河裕,
佐口泰之(富士ゼロックス),
立山義祐(NEDO),
前田敦司,
山内斉,
衣笠友宣,
沖野直人,
小口和弘,
石井清貴,
赤池英央,
角田博保,
齊藤正伸,,
鈴木貢,
中山泰一(電通大),
和田英一,
清水剛,
下國治(富士通研),
海田美香,
田中哲朗(東大)
質疑応答:
文部省の科研、重点領域の「発展ソフト」で研究している「発展的カーネ
ル」の現状をデモを交えて紹介した。トークでは、まず、発展的なカーネル
(機能を動的に拡大/縮小できるカーネル)の必要性を説明した。続いて、既
存の発展的カーネルとして、
- マイクロカーネルとサーバ群
- 単層カーネルとカーネルモジュール取込み(lkm: loadable kernel module)
を紹介し、その得失を議論した。そして、これらの特質を踏まえた上
で、保護付きモジュール取込み(plkm: protected loadable kernel
module)の概念を提案した。plkmでは、発展部開発時の安全性と実行時
の処理効率を確保、両立できる(予定である)。
トークではその後、plkm開発の現状をデモを交えて説明した。特にUnixカー
ネル(FreeBSD/IBM-PC)と共存できるカーネル外スレッドの実現法を示し、定期
的な繰返し処理をUnixとは独立に実行するようなプログラムを動かして見せた。
なお、現在ではこのカーネル外スレッドはプリエンプティブになっており、永
久ループを基本とするサーバのようなプログラムを実行させることも可能であ
る。また、トークではシステムコールopenをフックし、openが実行されるたび
にパス名などを画面に出力する発展的カーネルの応用例も実演した。
[参考文献]
多田好克,中村嘉志,林隆宏:カーネルの発展性と安全性に関する一考察,
情報処理学会システムソフトウェアとオペレーティング・システム研究会
資料,97-OS-76, pp. 61-65 (1997).
質疑応答:
- (問)カーネル外スレッドの使い道はないかしら? (多田)
- (答)Unixカーネルの状態収集/モニタリングは如何? (多くの方々)
- (問)デモでは、画面にa〜zが順番に出ると言っていたが、
:(コロン)と;(セミコロン)が出ているような気が
する。 (和田)
- (答)良く見るとiとjでした。(見にくいデモで申し訳ありません。)
- (問)カーネル外スレッドが180チックに1回、文字を出力するので、
3秒に1文字だと言ったが、測定するともっと短いような気が
する。 (和田)
- (答)Unixでは1チックは1/60秒だと思うのですが、おかしいですねぇ。
[と曖昧な笑みを浮かべてお茶を濁す。] (多田)
- (補足)その後、調べたところ、FreeBSDでは、1チックは1/128秒のよ
うです。(でも、1.4秒に1文字よりは遅いような気もするが...)
また、プロファイルを取る時には、RTC(Real Time Clock)の割込み
を利用して1/1024秒の粒度を実現している模様です。
その他、たくさんのご質問をいただいたのですが、何せ、2ヵ月以上も前の
ことなので、記憶がありません。ご容赦を.....