Webテクノロジー 2006年8月25日 11:20

Microsoft、プログラムコードのハングアップ要因解消技術を開発

著者: Andy Patrizio  オリジナル版を読む
2006年8月25日 11:20 付の記事
■海外internet.com発の記事

アプリケーションやデバイスドライバの不具合で、コンピュータが動かなくなってしまい、イライラした経験は誰にでもあるだろう。

この問題の対策に取り組んでいた Microsoft (NASDAQ:MSFT) の研究者たちは、アプリケーションやデバイスドライバのコードを調べる数学的な解決策を見出した。

その解決策こそ、同社研究部門 Microsoft Research の開発したソフトウェア『TERMINATOR』だ。同ツールの開発は、同名のソフトウェア検証プロジェクトとして進んでいる。TERMINATOR はソフトウェアのコードを検証し、全てのループ処理 (繰り返し処理) について制御不能に陥らないか、数学的原理を適用して調べるというものだ。

ソフトウェアの操作ができなくなった時、「固まった」と表現することがあるが、これはよくある誤解だ。この時、プログラムコードの実行が止まったのではない。では何が起きたのかというと、Microsoft の研究者 Byron Cook 氏によれば、ソフトウェアは脱出できない無限ループにはまっているという。

無限ループに陥る状況を回避するため、Cook 氏はアプリケーションが最終的に人間に制御を戻すことができるかどうか論理テストを実施する、数学的解決方法を考案した。Cook 氏は TERMINATOR プロジェクトを開始する前、『SLAM/SDV』プロジェクトに従事していた。こちらは、デバイスドライバに重点を置いた検証ツールで、同社のデバイスドライバモデル『WDM』に基づいてテストする。

プログラマがこれらツールを、恐らくは夜通し実行し、得た結果が良好ならば、作成したプログラムのループが無限ループに陥らないという数学的な証明になる。逆に問題があれば、(カウンタの追加を忘れていたり、カウンタの増分処理忘れによる) 成立不能な条件設定があるなど、スタックしている場所がどこかを示してくれる。

Microsoft は次期クライアント OS『Windows Vista』の社内テスト用に、TERMINATOR と SLAM を使用しており、より質の高いドライバの開発という成果を得ていると Cook 氏は述べた。

トップページ | 画面トップ

Copyright 2008 Jupitermedia Corporation All Rights Reserved. http://www.internet.com/