WEKO3
アイテム
Java向けヒープに対する不正参照のページ保護による検出
https://ipsj.ixsq.nii.ac.jp/records/16535
https://ipsj.ixsq.nii.ac.jp/records/16535cdc1f212-a042-4f09-adcb-27ff37b1c9bd
| 名前 / ファイル | ライセンス | アクション |
|---|---|---|
|
|
Copyright (c) 2006 by the Information Processing Society of Japan
|
|
| オープンアクセス | ||
| Item type | Trans(1) | |||||||
|---|---|---|---|---|---|---|---|---|
| 公開日 | 2006-10-15 | |||||||
| タイトル | ||||||||
| タイトル | Java向けヒープに対する不正参照のページ保護による検出 | |||||||
| タイトル | ||||||||
| 言語 | en | |||||||
| タイトル | Detection of Invalid Reference to the Heap for Java Using Page Protection | |||||||
| 言語 | ||||||||
| 言語 | jpn | |||||||
| キーワード | ||||||||
| 主題Scheme | Other | |||||||
| 主題 | 通常論文 | |||||||
| 資源タイプ | ||||||||
| 資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
| 資源タイプ | journal article | |||||||
| 著者所属 | ||||||||
| 日立製作所システム開発研究所 | ||||||||
| 著者所属(英) | ||||||||
| en | ||||||||
| Systems Development Laboratory, Hitachi, Ltd. | ||||||||
| 著者名 |
千葉, 雄司
× 千葉, 雄司
|
|||||||
| 著者名(英) |
Yuji, Chiba
× Yuji, Chiba
|
|||||||
| 論文抄録 | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | Java仮想機械にまつわる障害の原因の1つに,Java仮想機械が管理するヒープに対する不正な書き換えがある.不正な書き換えの原因は大きく分けて2つある.1つはJava仮想機械の実現が含むバグであり,もう1つはJavaで記述したプログラムから呼び出す,C言語で記述したネイティブライブラリが含むバグである.Java仮想機械を対象とした障害解析では,障害の原因が不正な書き換えである場合,まず最初に,書き換えの原因がJava仮想機械の実現にあるのか,あるいはネイティブライブラリにあるのか判断し,バグを含むと推定したプログラムの開発部署に障害解析を依頼する必要がある.この判断は必ずしも容易なものではないが,判断を誤ると,障害解析の長期化といった問題が生じてしまう.そこで我々は,この問題の解決を目的として,ページ保護を活用して,スレッドがネイティブライブラリを実行している際には,Java仮想機械が管理するヒープを参照不能にする機能を実装した.実装にあたっては,個々のスレッドごとに参照可能なメモリを設定するために,Java仮想機械だけでなく,オペレーティングシステム(具体的にはLinux)も改変した.実装した機能によれば,バグがネイティブライブラリ中にあるのか否か容易に推定可能になる.なぜなら,実装した機能を使ってJava仮想機械が管理するヒープを保護すれば,ネイティブライブラリ中にあるバグからの不正参照に際して,即座にページトラップが発生し,バグの所在が明かになるからである.実装した機能の実用性を検討するために,機能の利用にともなって生じるオーバヘッドの大きさを,実用的なアプリケーションを模したベンチマークであるSPECjvm98やSPECjbb2000を使って評価した結果,相乗平均で3.8%になることが分かった. | |||||||
| 論文抄録(英) | ||||||||
| 内容記述タイプ | Other | |||||||
| 内容記述 | Crashes of Java virtual machines (JVMs) often come from invalid memory reference to the heap for the JVMs. Because the bugs that cause the invalid memory reference exist in one of the following two places (1) the implementation of the JVMs, (2) the native library written in C language invoked from Java applications, system engineers who analyze the crashed JVM must first guess in which the bug exists and then ask the developer of the software guessed to contain the bug for debugging, but it is often not easy for system engineers to guess in which the bug exists. To solve this problem, we implemented a feature that use page protection to prohibit threads executing the native library from reference to the heap for the JVM. The feature helps system engineers to find where the bug in the native library is, because page trap happens on the invalid reference by the bug. The result of SPECjvm98 and SPECjbb2000 showed runtime overhead for using the feature is 3.8% in average. | |||||||
| 書誌レコードID | ||||||||
| 収録物識別子タイプ | NCID | |||||||
| 収録物識別子 | AA11464814 | |||||||
| 書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 47, 号 SIG16(PRO31), p. 29-43, 発行日 2006-10-15 |
|||||||
| ISSN | ||||||||
| 収録物識別子タイプ | ISSN | |||||||
| 収録物識別子 | 1882-7802 | |||||||
| 出版者 | ||||||||
| 言語 | ja | |||||||
| 出版者 | 情報処理学会 | |||||||