Checking Consistency of Concurrent Data Types on Relaxed Memory Models

140
Следующее
07.09.16 – 2 07258:57
Behind the Code with Rico Mariani
Популярные
Опубликовано 7 сентября 2016, 16:53
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurrent implementations of familiar data types such as queues or sets. On multiprocessors, optimized algorithms can achieve superior performance by allowing concurrent data accesses without using locks for mutual exclusion. Unfortunately, such implementations often harbor subtle concurrency bugs and are susceptible to relaxations in the memory model. Moreover, state-of-the-art verification tools are not directly applicable, because they assume a sequentially consistent memory model or race-free programs. We present a novel verification approach for this domain (realized in our tool CheckFence) that helps the algorithm designer or library implementor by exhaustively checking all concurrent executions of a given symbolic test program on the chosen memory model and verifying that they are observationally equivalent to some serial execution. CheckFence automatically translates the C implementation code (including memory ordering fences) and the test program into a SAT formula, hands the latter to a standard SAT solver, and presents formatted counterexample traces if there exist incorrect executions. We applied CheckFence to seven previously published algorithms and were able to (a) confirm correct behavior for sequentially consistent platforms or find bugs in some cases, and (b) determine how to insert memory ordering fences for correct execution on architectures with relaxed memory models.
Свежие видео
11 дней – 10 7669:08
Google Trends for SEO
12 дней – 632 6550:12
Meet Titan Gray | Xiaomi 14T Series
12 дней – 66 2300:09
_ _ tan Gray is coming...
198 дней – 16 1280:48
Xiaomi Fan Unboxing | Xiaomi Watch S3
автотехномузыкадетское