Differences between revisions 2 and 3
Revision 2 as of 2011-02-03 17:14:44
Size: 2451
Editor: viktor
Comment:
Revision 3 as of 2011-02-03 17:15:06
Size: 2440
Editor: viktor
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
<<latex(
$$\frac{ \{ P_1 \}~C_1~\{ Q_1 \} \qquad \{ P_2 \}~C_2~\{ Q_2 \} }
       
{ \{ P_1 * P_2 \}~C_1\|C_2~\{ Q_1 * Q_2 \} }$$ )>>
<<latex($$\frac{ \{ P_1 \}~C_1~\{ Q_1 \} \qquad \{ P_2 \}~C_2~\{ Q_2 \} }{ \{ P_1 * P_2 \}~C_1\|C_2~\{ Q_1 * Q_2 \} }$$ )>>

Local reasoning about Concurrency

The concept of separation naturally applies to concurrent programs.

TODO disjoint parallel comp rule.

$$\frac{ \{ P_1 \}~C_1~\{ Q_1 \} \qquad \{ P_2 \}~C_2~\{ Q_2 \} }{ \{ P_1 * P_2 \}~C_1\|C_2~\{ Q_1 * Q_2 \} }$$

There are a number of approaches of extending sequential separation logic to handle concurrent programs.

  • CSL
  • RGSep/SAGL/LRG
  • Deny-guarantee

CSL (Concurrent Separation Logic)

The place to get started is Resources, Concurrency and Local Reasoning. PW O'Hearn, Theoretical Computer Science 375(1-3) (Reynolds Festschrift), pp271-307, May 2007.

This paper adapted the resource invariants to separation logic and introduced the notion of 'ownership transfer,' whereby the right to access a portion of the heap can be transferred between processes via a shared resource invariant. This enables modular reasoning in the presence of semaphores (e.g., split binary semaphores without maintaining a global invariant).

TODO: Ownership is in the eyer of the beholder.

Important papers:

  • Resources, Concurrency and Local Reasoning. PW O'Hearn, Theoretical Computer Science 375(1-3) (Reynolds Festschrift), pp271-307, May 2007.

  • A Semantics for Concurrent Separation Logic. SD Brookes, Theoretical Computer Science 375(1-3) (Reynolds Festschrift), pp227-270, May 2007.
  • Permission Accounting in Separation Logic. R Bornat, C Calcagno, P O'Hearn and M Parkinson, POPL 2005, pp 59-70.

Important extensions:

  • Permissions.
  • locks-in-the-heap.

Other papers:

  • Modular Verification of a Non-blocking Stack M Parkinson, R Bornat and P O'Hearn, POPL 2007
  • Independence and Concurrent Separation Logic Jonathan Hayman and Glynn Winskel, Proceedings of LICS'06

RGSep / SAGL / LRG

Concurrency (last edited 2011-02-05 12:01:22 by viktor)