changeset 12:7fc81ca172b8

Add fig
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Tue, 23 Jan 2018 17:22:30 +0900
parents 10cb71d30fc0
children f262cccff7d4
files paper/fig/takeSynchronizedQueue1.graffle paper/fig/takeSynchronizedQueue1.pdf paper/fig/takeSynchronizedQueue2.graffle paper/fig/takeSynchronizedQueue2.pdf paper/master_paper.pdf paper/parallelism_gears.tex
diffstat 6 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
Binary file paper/fig/takeSynchronizedQueue1.graffle has changed
Binary file paper/fig/takeSynchronizedQueue1.pdf has changed
Binary file paper/fig/takeSynchronizedQueue2.graffle has changed
Binary file paper/fig/takeSynchronizedQueue2.pdf has changed
Binary file paper/master_paper.pdf has changed
--- a/paper/parallelism_gears.tex	Mon Jan 22 12:05:33 2018 +0900
+++ b/paper/parallelism_gears.tex	Tue Jan 23 17:22:30 2018 +0900
@@ -78,9 +78,18 @@
 
 \lstinputlisting[caption=CAS の実装, label=code:atomicImpl]{./src/atomicImpl.cbc}
 
-SynchronizedQueue では\coderef{atomicImpl} で示した Code Gear を利用し、データの一貫性を保証する。
+SynchronizedQueue の Data Gear の定義を \coderef{synchronizedQueue} に示す。
+SynchronizedQueue は List の先頭と、終端のポインタを持っている。
+Queue を操作する際はこのポインタに対して CAS をすることでデータの挿入と取り出しを行う。
+
+\lstinputlisting[caption=SynchronizedQueue の定義, label=code:synchronizedQueue]{./src/synchronizedQueue.h}
 
-\lstinputlisting[caption=SynchronizedQueue の Put の実装, label=code:putSynchronizedQueue]{./src/putSynchronizedQueue.cbc}
+\figref{takeSynchornizedQueue} はデータの取り出し(dequeue) をする際のポインタの動きである。
+データを取り出す際はList の先頭を次の要素のポインタへ CAS することででデータを取得する。
+この Queue では先頭に挿しているポインタはダミー扱いとする。 その為、実際に取り出される値は CAS に成功した後の先頭の値となる。
+
+\lstinputlisting[caption=SynchronizedQueue の定義, label=code:synchronizedQueue]{./src/synchronizedQueue.h}
+
 \section{依存関係の解決}
 \section{並列処理の記述}
 \section{Iterator}