著者
柳澤 佳里 光来 健一 千葉 滋
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2004, no.82, pp.33-40, 2004-08-01

本稿は、OSカーネル内での経過時間などのログを取得するために我々が開発したアスペクト指向システムについて述べる。本システムを使うと、カーネルソースコードを手動で変更せずに、カーネルの各所で網羅的にログ出力を行うことが容易に出来る。しかし、ログ出力を行う箇所を変えるたびに、カーネルの再コンパイル、再起動が必要では、実用上好ましくない。そこで我々は、アスペクトを実行する位置で割り込みを発生させるように実行時にカーネルコードを書き換える方法で、動的にアスペクトを組み込む方法を提案する。関数の呼び出し部分ではブレークポイント割り込み、変数の読み書き部分ではページフォールト割り込みを用いて実現する。こうして実現することで困難な基本ブロックの解析やデータ構造の解析の必要性が無くなる。この実装では負荷が大きいように見えるが実験の結果より通信処理に300程度のブレークポイント割り込みを挿入してもスループットが低下しないことが確認された。This paper presents our aspect-oriented system for logging the time of events happening in an OS kernel. It enables to perform logging a large number of kernel events without modifying the source code by hand. However, previous implementation techniques have required recompiling the kernel and rebooting the system whenever the logged events are changed. We propose a new implementation technique for dynamically weaving an aspect into the OS kernel. In this technique, a software interrupt is issued when the program execution reaches the join points where an aspect should be executed. Our system substitutes a machine instruction for software interrupt for an original instruction if the join point is a function call. It uses a page-fault interrupt if the join point is memory access. Our technique can be easily implemented since it does not need complicated analysis of basic blocks and data structures. Although this technique might seem to involve heavy execution overheads, our preliminary experiments showed that the overheads do not significantly decrease the throughput if less than 300 software interrupts are inserted through the execution path for network communication.

言及状況

Twitter (1 users, 1 posts, 0 favorites)

こんな論文どうですか? 通信処理のカーネル内競合を検出するアスペクト指向カーネルレベルロガー(OS-2:モニタリング)(2004年並列/分散/協調処理に関する『青森』サマー・ワークショップ(SWoPP青森(柳澤佳里ほか),2004 http://id.CiNii.jp/MODYL

収集済み URL リスト