コンテンツにスキップ

Lock-freeとWait-freeアルゴリズム

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Lock-freeWait-freeLock-free Lock-free 使Wait-free Lock-freeWait-freeWait-free  Lock-free 

[]


ABB



使

[]


使使使1990[1][2]



使

FIFO

 Read-copy-update

 Read-copy-update obstruction-free 

使[3][4][5][6][7][8][9]

Wait-freedom[]


Wait-freedom[10]

1980[11]

CASLL/SC[12]

ARM2KB使

20112011KoganPetrank[13]CAS使MichaelScott[14]KoganPetrankTimnat and Petrank

Lock-freedom[]


1

12(12)

NNwait-freelock-freewait-free

4




Obstruction-freedom[]


[10]



2使2

Wait-free[]


Wait-free 使使 Wait-free Wait-free 使Java5java.util.concurrent Wait-free Wait-free 使

[]


ATM1ATMATM Lock-free Wait-free ATM Lock-free Wait-freeLock-free Wait-freennWait-freen

[]


Lock-free  Wait-free CPU使Compare and Swap, CASJava java.util.concurrent.atomiccompareAndSet3使CPU[?]Intel

ATM33使33313使ATM1ATM3 Lock-free Wait-free ATMATM

Wait-Free Synchronization (1993) Wait-free

脚注[編集]



(一)^ Harris, Tim; Fraser, Keir (26 November 2003). Language support for lightweight transactions. ACM SIGPLAN Notices 38 (11): 388. doi:10.1145/949343.949340. http://research.microsoft.com/en-us/um/people/tharris/papers/2003-oopsla.pdf. 

(二)^ Harris, Tim; Marlow, S.; Peyton-Jones, S.; Herlihy, M. (June 1517, 2005). Composable memory transactions. Proceedings of the 2005 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '05 : Chicago, Illinois. New York, NY: ACM Press. pp. 4860. doi:10.1145/1065944.1065952. ISBN 978-1-59593-080-4 

(三)^  libcds - C++ library of lock-free containers and safe memory reclamation schema

(四)^  liblfds - A library of lock-free data structures, written in C

(五)^  Concurrency Kit - A C library for non-blocking system design and implementation

(六)^ Herb Sutter. Lock-Free Code: A False Sense of Security. 2015912019925

(七)^ Herb Sutter. Writing Lock-Free Code: A Corrected Queue. 20081252019925

(八)^  Herb Sutter. "Writing a Generalized Concurrent Queue".

(九)^  Herb Sutter. "The Trouble With Locks".

(十)^ ab Anthony Williams. "Safety: off: How not to shoot yourself in the foot with C++ atomics". 2015. p. 20.

(11)^ Herlihy, Maurice P. (1988). Impossibility and universality results for wait-free synchronization. Proc. 7th Annual ACM Symp. on Principles of Distributed Computing. pp. 276290. doi:10.1145/62546.62593. ISBN 0-89791-277-2

(12)^ Fich, Faith; Hendler, Danny; Shavit, Nir (2004). On the inherent weakness of conditional synchronization primitives. Proc. 23rd Annual ACM Symp.on Principles of Distributed Computing (PODC). pp. 8087. doi:10.1145/1011767.1011780. ISBN 1-58113-802-4

(13)^ Kogan, Alex; Petrank, Erez (2011). Wait-free queues with multiple enqueuers and dequeuers (PDF). Proc. 16th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPOPP). pp. 223234. doi:10.1145/1941553.1941585. ISBN 978-1-4503-0119-0

(14)^ Michael, Maged; Scott, Michael (1996). Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. Proc. 15th Annual ACM Symp. on Principles of Distributed Computing (PODC). pp. 267275. doi:10.1145/248052.248106. ISBN 0-89791-800-2

関連項目[編集]

外部リンク[編集]