Questions: Concurrency Verification

3 questions to test your understanding

Score: 0 / 3
Question 1 Multiple Choice

Why is concurrent program verification fundamentally harder than sequential program verification?

AConcurrent programs use more memory
BThe number of possible interleavings of thread actions is exponentially large, and correctness must hold under ALL possible schedules. A bug may only appear under a specific rare interleaving that is almost impossible to reproduce by testing. Sequential programs have a single execution order, making reasoning tractable
CConcurrent programs cannot be expressed in Hoare logic
DConcurrent programs always have bugs
Question 2 True / False

In concurrent separation logic, the separating conjunction P * Q ensures thread safety because it guarantees that the heap regions owned by different threads are disjoint.

TTrue
FFalse
Question 3 Short Answer

Explain the rely-guarantee approach to concurrency verification and how it enables compositional reasoning about threads.

Think about your answer, then reveal below.