Hatena::Groupsicp

SICP読書メモ

 | 

2009-02-12

3.4.2 並列性の制御機構 01:40

並列処理を現実な物にするため、並列処理の制御機構を考える。今回はSerializer(直列化変換器)と呼んでいるそれが、処理の競合を調整する。

serializerの実装の本質は mutexの確保 -> 処理本体の実行 -> mutexの解放、というシンプルな物。


同じserializerでラップされた手続きは、同じ(局所変数の)mutexを確保しようとするので競合が生まれ、並列して処理されることがないように保証される。

シンプルだけど判り易い。


銀行の例では、口座がserializerを持つ。単一口座の引き出し・預け入れは良いけど、複数口座を介するexchange処理の場合serializerを外部に取り出す必要が生まれる。

(serializer1 (serializer2 (exchange))) と関連する二つのserializerでexchange手続きを覆うことで、二つのserializerのmutexを確保する。(ことで競合する処理を回避する)


この章は実装も、問題の例も、コラムも面白かった。

章の最後でちゃんとデッドロックの面倒な問題も提示される。


トラックバック - http://sicp.g.hatena.ne.jp/tkmr2000/20090212
 |