Mercurial > hg > Papers > 2018 > parusu-master
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
--- 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}