著者
権藤 克彦 明石 修 伊知地 宏 岩崎 英哉 河野 健二 豊田 正史 上田 和紀
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.26, no.4, pp.4_17-4_29, 2009-10-27 (Released:2009-12-27)

「ソフトウェア開発で得られる経験や知見を成果とする論文(=ソフトウェア論文)を書くことは難しい」とよく言われますが,「なぜ難しいのか」の分析はこれまで十分にはなされていません.本論文では本誌のソフトウェア論文特集を編集した経験から,「ソフトウェア論文を書くことがなぜ難しい(と感じる)のか」の分析を試みます.問題は「著者の作文の問題」だけではなく,ソフトウェア自体,ソフトウェア工学,査読者,社会状況にも要因があることを示します.要因が多岐に渡るので結論を短く言うことが難しいです.あえて言えば「著者の作文技術にも問題はあるが,(著者の責任ではない)本質的な難しさも別にあるので,著者が自らハードルを上げてしまうことは避けるべき」「ソフトウェア論文の追試としての価値を査読者は評価すべき」です.また作文技術の問題を解決する一助として,ソフトウェア論文の執筆チェックリストを最後に示します.
著者
吉村剛 河野健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2014-OS-130, no.10, pp.1-12, 2014-07-21

Linux カーネルにおいてバグ対策は不可欠である.しかし,コードの大規模化に伴い,バグ対策のために必要となるシステム全体の深い知識や誤りやすいパターンを把握することは難しい.特に誤りやすいパターンを把握するためには過去に大量に蓄積されたバグ報告やパッチの変更履歴を把握しなければならない.本研究は linux のパッチ 37 万件に対してパッチの説明文を自然言語処理し,トップダウンクラスタリングを用いることで全体の中でより高い頻度で発生した話題を抽出し,パッチ集合を 66 クラスタに分割してバグの実態調査に利用する.調査の有用性を示すため,割り込みに関するクラスタを調査してバグパターンを定義し,コード解析による検査を linux 3.15 において行って 2 件のバグを発見した.
著者
大須賀 敦俊 縣 直道 窪田 貴文 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2017-OS-140, no.3, pp.1-7, 2017-05-09

仮想化を用いたクラウド環境では,ひとつの仮想マシン (VM) でひとつのアプリケーションを動作させる形態が一般的になっている.この特徴を活用し,クラウド環境に特化した OS の設計 ・ 開発が行われている.これらのクラウド特化型 OS は,ハイパーバイザと重複した機能をゲスト OS から取り除いた,軽量かつ省メモリな実装となっている.これらの OS は新規の設計となっているため,1) 既存 OS と同等の機能を利用できるとは限らないという機能性,および 2) 既存 OS とは別個に保守が必要になるという保守性の面において不十分である.本論文では,既存の OS に対する改変を最小限に留めつつ,クラウド特化型 OS と同等の性能を実現する方法として,既存アプリケーションを既存のカーネル内で実行できるようにするフレームワークを提案する.この方法では,プロセスによるオーバーヘッドを削減することで,クラウド特化型 OS に近い軽量化を行うことができる.同時に,1) 実装において既存 OS の機能をそのまま利用できること,2) 既存 OS コミュニティによりコア機能が保守されることを期待できる.Linux を対象にフレームワークの実現を行った.本フレームワークの有用性を示すため,LevelDB というキーバリューストアをカーネル内で実行したところ,プロセスとして実行した場合と比較して,スループットが最大 1.46 倍となった.
著者
山木田 和哉 山田 浩史 河野 健二
雑誌
研究報告 システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2011, no.4, pp.1-11, 2011-07-20

可用性の高いサービスを実現するために,オペレーティングシステム (OS) には高い信頼性が求められる.しかし,現在の OS 内部には多くのバグが含まれており,カーネルクラッシュの原因となっている.古くからカーネルクラッシュに対し広く用いられているリカバリ手法として,OS の再起動が挙げられる.OS 再起動はシンプルかつ強力なリカバリ手法であり,カーネルクラッシュの原因を特定せずとも,システムを復旧することができる.しかし,OS の再起動には時間を要するという問題点も存在する.これは,OS 再起動がハードウェアやカーネルの初期化など,多くの煩雑な手順を踏まなければならないためである.そこで本研究では,システム起動フェーズの再現性に着目した OS の再起動高速化手法 Phase-based Reboot を提案する.Phase-based Reboot では,OS 起動時の動作を実行フェーズ毎に分割して,システムの状態を保存する.そして,OS 再起動時に,過去の OS 起動時と同じ動作をする場合は,過去の実行フェーズを再利用することで,迅速に再起動と同等の効果を得る.また,Phase-based Reboot を Xen 3.4.1 上で稼働する Linux 2.6.18 内に実装し,評価実験を行った.実験では,既存の OS 再起動に要する時間を約 34% から 94% 削減できることを確認した.Although operating systems (OSes) are crucial to achieving high availability of computer systems, modern OSes are far from bug-free. Rebooting the OS is simple, powerful, and sometimes the only remedy for kernel failures. Once we accept reboot-based recovery as a fact of life, we should try to ensure that the downtime caused by reboots is as short as possible. Unfortunately, OS reboots involve significant downtime, which is unacceptable in commercial services. This paper presents "phase-based" reboots that shorten the downtime caused by reboot-based recovery. The key idea is to divide a boot sequence into phases. The phase-based reboot reuses a system state in the previous boot if the next boot reproduces the same state. A prototype of the phase-based reboot was implemented on Xen 3.4.1 running para-virtualized Linux 2.6.18. Experiments with the prototype show that it successfully recovered from kernel transient failures inserted by a fault injector, and its downtime was 34.3 to 93.6% shorter than that of the normal reboot-based recovery.
著者
河野健二著
出版者
岩波書店
巻号頁・発行日
1959
著者
縣 直道 大須賀 敦俊 窪田 貴文 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2017-OS-141, no.9, pp.1-6, 2017-07-19

仮想化を利用したクラウド環境では,ひとつの仮想マシン上でひとつのアプリケーションのみを動作させる構成が一般的になっている.このようなクラウド環境の構成に特化した OS が提案 ・ 開発されている.これらの OS では,アプリケーション間の保護をハイパーバイザに任せることで機能を削減し,軽量化 ・ 省メモリ化を実現している.さらに,ベアメタルハイパーバイザ上で動作させることで,OS をアプリケーションに特化させることも可能である.一方で,プロセスの機能を提供しないため,マルチプロセスで動作するアプリケーションに対応することができない.また,ホスト OS の機能を利用することでマルチプロセスに対応した仮想化環境特化 OS の場合,ホスト OS が提供していない機能を実装することができない.本論文では,単一アドレス空間内で複数のプロセスを擬似的に実行させる手法を提案する.これによって,ホスト OS の存在を前提にせずマルチプロセスに対応することができ,既存のクラウド環境特化 OS と同様の軽量化を可能にする.
著者
山崎 修平 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2016-OS-138, no.12, pp.1-7, 2016-08-01

近年,仮想化環境は広く使用されるようになっている.複数のマシンを動かすためにはハードウェア等の物理資源を仮想化して使用する必要があり,ハイパーバイザ型の仮想化ではハイパーバイザが物理資源を管理する.この様な環境ではスピンロックを獲得することができない仮想 CPU (仮想 CPU) が長期間ビジーウェイトしたままになってしまう Lock-Holder Preemption (LHP) という問題が発生することが知られている.この様な問題に対して,いくつかのハードウェアでは一定時間以上のビジーウェイトした場合にはハイパーバイザに制御を移すような機能が追加されている.Intel ではこれを Pause Loop Exiting (PLE) という.しかし,PLE を利用するだけでは LHP の完全な対策になっておらず,PLE が頻発することによってオーバーヘッドが掛かることがある.本論文では PLE の発生状況と,それに対するスピンロックの獲得状況を分析し,より効率よく PLE を使用するための新しい仮想 CPU スケジューリングの方法について提案する.
著者
岩田 聡 河野 健二
出版者
情報処理学会
雑誌
情報処理学会論文誌コンピューティングシステム(ACS) (ISSN:18827829)
巻号頁・発行日
vol.3, no.3, pp.221-234, 2010-09-17

ウェブアプリケーションの性能異常が重要な問題となりつつあり,性能異常の発生をいち早く検出し,被害が致命的になるのを防ぐことが求められている.しかし,性能指標の1つとして用いられるリクエストの処理時間は,正常時でも揺らぎが大きいため,その微妙な変化から性能異常の兆候を検出することは難しい.そこで,本論文では管理図という統計的手法を利用して,リクエストの処理時間に表れる微妙な変化から性能異常兆候の検出を試みる.その際,検出の精度向上や検出後の原因究明に有益な情報を得るために2つの工夫を行っている.1つは,監視対象の値として個々のリクエストの処理時間ではなく,一定時間ごとのリクエストの処理時間に関する4種類の統計値を用いている点である.もう1つはウェブアプリケーション全体ではなく,リクエストの種類ごとに管理図を作成する点である.実際にRUBiSというウェブアプリケーションに管理図を適用した結果,性能異常の兆候をつかむことができた.管理図によって検出されたいくつかの性能異常の兆候を詳細に調査した結果,(1)データベースへのインデックスの追加および,(2)性能パラメータの調整などを行うことによって,検出された性能異常が解決できることを確認した.Performance anomaly is becoming a serious problem in web applications. To prevent performance anomaly, it is useful to detect a symptom of performance anomaly to proactively take action against it. Unfortunately, a symptom of performance anomaly is a slight change in processing time in a web application. Thus it is difficult to detect the symptoms without being confused by natural fluctuations in processing time. In this paper, we apply control charts, a statistical method to detect deviations from the standard quality of products, to detecting symptoms of performance anomaly. In applying control charts, we devise some means to improve detection accuracy and gain useful information for debugging performance anomaly. To demonstrate the usefulness of control charts, we conducted case studies with RUBiS, an auction site modeled after ebay.com. Control charts detected some symptoms of performance anomaly: (1) the increase in processing time due to inappropriate design of database index, and (2) the increase in processing time due to improper setting of performance parameters. We confirmed that the detected anomalies can be fixed by modifying database design and performance parameters.
著者
佐久間 亮 吉村 剛 河野 健二
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2015-OS-135, no.16, pp.1-8, 2015-11-17

オペレーティングシステムカーネルには多くのバグが存在している.Windows や Linux にも多くのバグが存在しており,Microsoft では Windows Error Reporting (WER) と呼ばれるシステムを用いてクライアントからバグによって障害が起きた際の情報を集めている.集めたクラッシュログを WER システムを用いてバグごとに分類し,多くのユーザで発現するバグからデバッグを行っている.バグの分類にはコールスタックに注目して類似度を計算する事によって分類を行う ReBucket が知られている.しかし,Linux では ReBucket のようなバグの分類をおこなっていないため,適用できれば,開発者がクラッシュレポートを分類する負担を軽減することができる.しかし,Linux ではフレームポインタの最適化によりコールスタックが正確ではない場合があり,同じバグでも異なる情報を出力することがある.本研究は事前調査として ReBucket を Linux に適用した場合の効果について,定量的に評価をおこなった.調査の結果,f-measure が 0.75 と Microsoft 製品に比べ,低いことが分かった.そのため,我々は分類精度を向上するため,Linux カーネルのコールグラフを生成し,正確なコールトレースを取得した.正確なコールトレースを用いて分類した場合,f-measure が 0.75 と以前と変わらないことがわかった.そのため,我々はその結果を分析しリアルバグのコールトレースの性質についての考察をおこなった.
著者
落合 淳 嶋村 誠 河野 健二
出版者
情報処理学会
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2009, no.8, pp.1-8, 2009-07-29

現在,ユーザの個人情報を不正に収集するスパイウェアを検出する手法としてTaint Analysis が注目されている.Taint Analysis では,パスワードなどのデータに taint と呼ばれる情報を付加し,taint 情報を持つデータが操作されたときに伝播規則に基づいて taint 情報を伝播する.そして,taint 情報を含むデータが外部に流出した場合にスパイウェアとして検出する.既存のスパイウェアは Taint Analysis を回避していない.そのため,Taint Analysis はスパイウェアが回避手法を用いた場合を考慮していない.本論文では,Taint Analysis の回避手法への耐性を向上させるため,既存の Taint Analysis に対する回避手法を示し,taint 情報の伝播規則の問題点を指摘する.回避手法を検証するため,一般的な伝播規則を用いた Taint Analysis を実装し実験を行った.実験の結果,回避コードを組み込むことで,Taint Analysis による検出ができなくなることを確認した.これにより,taint 情報の伝播規則を改良する必要があることを示した.<i>Taint analysis</i> is a promising approach to detecting malicious behavior of a leaking users' sensitive data. In taint analysis, we label data as <i>tainted</i> such as password. When a program processes tainted data, we propagate taint attribute in the program, based on a given taint propagation rule. If tainted data is output to untrusted sources, we can recognize that the computer system is compromised. Evasion techniques to taint analysis have not been explored adequately. This means that taint propagation rules are not studied as well. To make taint analysis more powerful, we study current tainting rules and point out the weakness of the rules by using our evasion techniques. We implemented a taint tracker with the well-used propagation rule. Our experimental results demonstrate that the well-used taint propagation rule does not detect the data leak of test programs including our evasion techniques.
著者
吉村 剛 山田 浩史 吉田 哲也 河野 健二
雑誌
研究報告システムソフトウェアと オペレーティング・システム(OS)
巻号頁・発行日
vol.2011, no.6, pp.1-8, 2011-04-06

コンピュータには高い信頼性が求められている.信頼性を脅かす要因としてオペレーティングシステムのカーネルフェイラがある.カーネルフェイラが発生すると,カーネル上で動作している全てのアプリケーションの動作異常につながり,サービス提供者やユーザに大きな損害を与えてしまう.カーネルフェイラの原因はソフトウェアやハードウェアにおけるバグであり,こうしたバグを開発段階で除去することは難しい.そのため,カーネルフェイラが運用時に発生したらできるだけ早くフェイラから復旧する方法が求められている.カーネルフェイラから素早く復旧する手法を検討するために,本研究はバグの発生からフェイラに至る過程で発生するエラー伝播を調査する.実用 OS のバグの調査結果に基づいて作成されたフォールトインジェクタを利用して,Linux カーネルに対してフォールトインジェクションを行い,その結果発生するエラー伝播を KDB によって追跡した.調査した結果,フォールトインジェクション 500 回に対してエラーを 150 回,エラー伝播を 18 回確認した.エラー伝播はプロセス間では発生しにくく,バグの挿入された関数内で収束する確率が非常に高いことを確認した.Kernel failures have a considerable impact on the overall availability of software systems. Even if the applications running on the operating system are highly available, a bug inside the kernel may result in a failure of the entire software stack. However, modern operating systems are far from bug-free. Guided by this fact, we need to recover from kernel failures as quickly as possible when they occur in a service operation. To explore the quick recovery mechanism, in this work, we investigate error propagation of kernel bugs in a commodity operating system kernel. In our investigation, we use a fault injector that is implemented based on a survey of commercial operating system bugs. We inject faults into Linux 2.6.18.8 with the injector, and trace error propagation with KDB. Our experimental result shows that 150 of 500 faults make the kernel error, which means that almost all the error is not propagated. Our result also shows that 18 of 150 errors are propagated, and the errors are not propagated from the faulted process to the other.
著者
益田 隆司 河野 健二 千葉 滋
出版者
東京大学
雑誌
基盤研究(B)
巻号頁・発行日
1996 (Released:1996-04-01)

本研究の目的は,近年になって注目されている次世代のオブジェクト指向技術である自己反映計算の技術を応用して,新たなソフトウェアの部品化の手法を開発することであった.本研究は,我々の研究グループで既に開発した自己反映計算に基づいた言語処理系OpenC_<++>を研究開発の基盤として利用した.まず,プログラムの部品間の依存関係をあらわすメタ情報を記述しやすくなるよう,OpenC_<++>の改良をおこなった.さらに部品化の対象となるソフトウェアの範囲を広げ,現状の自己反映計算の能力でもうまく部品化できないソフトウエアを部品化するのに必要な基礎技術の開発を行った.そのひとつとして,フランスの国立研究所LAASの研究グループと協力し,ソフトウェアの耐故障性を高める機能を部品化する研究,オペレーティング・システム(OS)のサブシステムを部品化する研究,分散ミドルウェアを部品化する研究を行った.OS機能の部品化では,実行時性能の他に,故障時の安全性が重要であり,実行時性能と安全性とを両立させる手法の開発を行った.また,OpenC_<++>のようにコンパイル時にメタプログラムを解釈実行する方式では,プログラムの実行時にしか行うことのできないソフトウェア部品間の保護を行うのは難しい.そのため,互いに保護を必要とするようなソフトウエア部品では,部品化することによって性能の劣化が起ってしまう.この性能劣化を押さえるため,部品間の保護を実現しながらも部品間の呼び出しによるオーバヘッドを削減できるような,仮想記憶機構を新たに開発を行った.

1 0 0 0 OA 研究紹介

著者
河澄 響矢 河野 健二 塚田 捷 桑島 邦博 山本 智 吉村 宏和 中村 正人
出版者
東京大学大学院理学系研究科・理学部
雑誌
東京大学大学院理学系研究科・理学部廣報
巻号頁・発行日
vol.31, no.1, pp.13-22, 1999-06

リーマン面のモジュライ空間の上で新しい「テンソル解析」をめざして/安全な分散環境を目指して/第一原理電子状態計算による水のプロトンリレー型解離の解明/タンパク質のフォールディングの分子機構/見えてきた星間分子雲形成:富士山頂サブミリ波望遠鏡による観測から/太陽輻射変動メカニズムの解明に挑戦する/電離層内電場の観測
著者
嶋村 誠 河野 健二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.50, no.9, pp.2371-2381, 2009-09-15

バッファオーバフロー攻撃に代表されるリモートコードインジェクション攻撃が大きな問題となっている.このような攻撃を検知するため,近年ではメッセージ中に機械語命令列に相当するバイト列が含まれているかどうかを検査するネットワーク侵入検知システム(NIDS)が提案されている.しかし,これらのシステムでは検知した攻撃コードが実際にサーバ上でどのように振る舞うかは分からない.このため,NIDSが攻撃を検知すると,管理者は適切な対策をとるため,人手で攻撃コードの振舞いを調査しなければならない.本論文では攻撃メッセージを解析し,攻撃コードの振舞いを抽出するシステムであるYataglassを提案する.Yataglassでは,NIDSが検知したメッセージを機械語命令列と見なして擬似的に実行し,攻撃が成功したときに実行されるシステムコール列を抽出する.実際にIntel x86アーキテクチャのLinuxおよびWindowsに対する攻撃メッセージを対象としたYataglassのプロトタイプを作成し,実験を行った.実験の結果,Sambaを対象とする攻撃メッセージや,Metasploit Frameworkから生成された攻撃メッセージが実行するシステムコールを抽出することができた.
著者
小藤 哲彦 河野 健二 竹内 郁雄
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.44, no.13, pp.84-99, 2003-10-15
被引用文献数
3 or 0

具象構文と抽象構文は対応関係が強く,これらを別々に記述するのは無駄が多い.この無駄を省くために,具象構文と抽象構文を一体として記述する手法がいくつか提案されている.本論文では,具象構文と抽象構文を一体として記述し,抽象構文木を出力するパーザを生成するコンパイラ・コンパイラ?<>< ∪∪(notavaCC )の設計と実装について述べる. ?<>< ∪∪は,継承,ラベル付け,エイリアスの構文記法を用い,オブジェクト指向に基づいた抽象構文を記述することができる. ?<>< ∪∪は,算術式のような従来の研究では表現できない抽象構文を記述することができ,表現力が高い.本論文では?<>< ∪∪が実用的な性能を持っていることも示す.Because of the similarity between abstract syntax and concrete syntax, it is wasteful to write these syntax descriptions individually. The paper describes the design and implementation of a compiler compiler named ¬<>< ∪∪(notavaCC), which has an integrated notation that can represent both of abstract syntax and concrete syntax, and generates a parser that builds an object-oriented abstract syntax tree. Using the notation for inheritance, labeling and aliases, ¬<>< ∪∪enables us to generate an object-oriented syntax tree of an arithmetic expression, which existent compiler compilers cannot generate. The paper also describes the practicability of ¬<>< ∪∪.