読書会(The Art of Multiprocessor Programming)第2回議事録

[ 戻る ]


Java読書会「The Art of Multiprocessor Programming」を読む会 第2回 議事録

日時: 2010年9月25日(土) 10:00-17:00
場所: 高津市民館 第6会議室
参加者: 飯田、高橋(智)、高橋(徹)、遠藤、岩室、小棚木、村山、松永、石黒、今井
書記: 今井
範囲: 3 並行オブジェクト(p.51) 〜 4 共有メモリの基礎 4.2.5(p.95)

--------

3 並行オブジェクト
- p.51 l.4
 並列オブジェクトは並行オブジェクトの誤訳?
 → 読書会後、原書をみると concurrent objects なので並行オブジェクトですね(今井)
- p.51 l.12
 「どの進行が保証されるかは...」の「進行」はprogress ? 進めるためにはの意?
 実装の方法としてブロッキングとノンブロッキングがあるということか?
 → Along a different dimension, different method implementations provide
   different progress guarantees. Some are blocking, where the delay of any one
   thread can delay others, and some are nonblocking, where the delay of a thread
   cannnot delay the others.
 でした。(今井)

3.1 並行性と正確さ
- p.54 Figure 3.3
 enq(), deq()がそれぞれ単一スレッドからしかアクセスされないのでOK。
 tailのread->modify->writeは、enq()だけ。headのそれはdeq()だけ。

 T[] items; はvolatileでなくてよいのか?
 → head, tailがvolatileなので、メモリバリア機能によりhead, tailの変更タイミングを
   跨いでitemsの(メモリへの)反映順序がかわることはないはず。

3.2 逐次オブジェクト

3.3 静止一貫性
- p.56 Figure 3.4
 7と-3が同時更新されて-7になる?
 符号付表現であればなるのでは?でも単に別の値になる様子を書いているだけだろう。

3.3.1 備考
- p.57 下l.5
 「Pを満たすたびに」は、「満たすときに」の意か?

3.4 逐次一貫性
- p.59 Figure 3.6
 スレッドを識別する記号、A,Bが抜けている。上がA、下がB

3.4.1 備考
- p.59 l.1
 「逐次一貫性と静止一貫性が両立しないことに注意する」は、「必ずしも両立しない」
 ということなのか?
 → 原書では incomparable なので誤訳のようです。incompatibleと間違えた?(今井)
 It is worth nothing that sequential consistency and quiescent consistency are
 incomparable: there exist sequentially consistent executions that are not
 quiescently consistent, and vice versa.
- p.60 Figure 3.7
 スレッドを識別する記号、A,Bが抜けている。上がA、下がB

3.5 線形化可能性
3.5.1 線形化ポイント
3.5.2 備考

3.6 正式な定義
(ここらあたりから3章最後まで、参加者全員よく理解できずに消化不良状態)

3.6.1 線形化可能性
- p.64 Definition 3.6.1
 逐次履歴は呼び出しとその応答の対の並び。completeは入れ子になっていても良い。(?)

3.6.2 合成的な線形化可能性
3.6.3 ノンブロッキング特性

3.7 進行の条件
3.7.1 従属的な進行の条件

3.8 Javaメモリモデル
3.8.1 ロックと同期ブロック
3.8.2 揮発性フィールド
3.8.3 finalフィールド

3.9 備考

3.10 注記

3.11 練習問題
- p.75 練習問題28
 readerメソッドがゼロによる除算を実行することはない。xはvolatileではないが、
 vはvolatileなのでメモリバリアにより、writer()でvにtrueがセットされる前に
 かならずxに42がセットされる。→ vがtrueならxは必ず42

4 共有メモリの基礎
4.1 レジスタの空間
4.2 レジスタ構造
- p.86 Figure 4.5
 4行目のベースクラス MRSW標準 → SRSW標準の間違い。(4.2.4節より)

4.2.1 MRSW安全レジスタ
4.2.2 MRSW Boolean標準レジスタ
4.2.3 MRSWのM値標準レジスタ
- p.88 l.2
 「Figure 4.7では、」→ 「Figure 4.8では、」

4.2.4 SRSW不可分レジスタ
4.2.5 MRSW不可分レジスタ

以上


[ 戻る ]