2011年10月29日土曜日

強い公平性と弱い公平性

強い公平性
実行過程において、ある時点以降、あるスレッドが無限回動作可能状態であるにも関わらず、一度も動作しない時、その実行過程は強い公平性(strong fairness)を満たさないという。
スレッド i が動作可能であることを ei で、動作することを ri で表せば、強い公平性を満たすことはLTLにより以下で表せる。
( []<> e1 -> []<> r1) ∧ ... ∧ ( []<> en -> []<> rn )

弱い公平性
実行過程において、ある時点以降、あるスレッドが常に動作可能状態であるにも関わらず、一度も動作しない時、その実行過程は弱い公平性(weak fairness)を満たさないという。
スレッド i が動作可能であることを ei で、動作することを ri で表せば、弱い公平性を満たすことはLTLにより以下で表せる。
[]<> ( e1 -> r1) ∧ ... ∧ []<> ( en -> rn )


いろいろでてくる

世の中色々新しいものが出てくるけれども基本的なことはあまり変わらないですね。 たとえばunixのコマンドとかhttpの仕様とかjavaの基本的なAPIとかは10年以上経っても変わってないですね。 最近は毎日新しい言語だとかフレームワークがでてきているけどこれらをすべて覚える時間は普通の人はないはずです。 だから変わらないけれども大事なことを押さえておくことはこれから生きる人にとっては重要ではないかと考えます。 けして古いものがいいと言っているのではなく基本的なことを知らないと新しいものを知る、作ることもできないと思うからです。

ただ変わらないけど大事なものを見極めるのは難しいとも思います。すでに完成された分野であればよいのですがまだ未発展の分野であればどう転がるかが展開が予測できないところがありますね。