トップ «前の日記(2008-03-11 (Tue)) 最新 次の日記(2008-03-13 (Thu))» 編集

uDiary

海野秀之(うんのひでゆき)の外部記憶

Twitter (twilog) / RSS / アンテナ / ぶくま

2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|

2008-03-12 (Wed)

[お勉強] Spin もしくは Murphi を用いた Formal Verification

Formal Verification Memo (UikiTeXi)

有名どころのツールを用いて、プロトコルの形式的検証を行うことにする。 とりあえず目を付けたのは、SpinMurφ のふたつ。

かつて、「Spin はソフトウエア検証向けであって、ハード向けじゃないお」 と言われてヘコんでしまったような記憶があるのだが、

Spin targets efficient software verification, not hardware verification.

ううむ、よく読むと、「ソフトウエアの検証を効率良く行うことが出来ます」 としか言ってませんな。あはは。

ま、ともあれ、両方使ってみる作戦。

いまのところ、両者の能力に大差は無いんじゃないかと踏んでいるんですが、まだ不明。 モデリング言語の醸し出す雰囲気は全然違います。したがって、書き心地はだいぶ違う。

今日はとりあえず、「Dekker の初期の解といわれているらしい、 排他になっていない排他制御の穴を、ちゃんと見つけられますか」問題 *1をやってみた。

これは、Basic Spin Manual にある例そのままなので、 Promela でのモデリングについてはいわれるがまま。 同じものを Murphi 向けに書き直すのは、自分でやってみました。 ちゃんと出来たと思うんですが、これで良いのかどうかは、いまいち自信がない。

今後の予定ですが、どうせなので The Dekker's Algorithm の方もきちんと扱っておこう。 プロトコル検証とは直接関係ないけど、 SPARC V9 Manual にあるようなメモリバリアの話も一応述べておくかなぁ。

次は、Spin, Murphi ともに例題にあげている Alternative Bit Protocol (ABP) をやってみる予定。

*1 句読点打つのってむずかしい!


2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|08|
2010|01|02|03|05|06|07|10|11|
2011|03|08|
2012|02|04|07|08|10|
2013|01|02|03|05|06|08|11|12|
2014|01|02|05|06|07|08|09|12|
2015|01|02|03|04|
Categories 3imp | Card | Cutter | Dalvik | Euler | Football | GAE/J | Hand | Haskell | Re:View | Ruby | Scheme | TQD | Tiger | TigerBook読 | UikiTeXi | Verilog | Violin | Web | parconc | tDiary | お勉強 | エントロピー | ツン読 | | 将棋 | 政治について | | 模写してみよう | 確率論 | 設定など | 雑文 | 音声