towards a formal account for software transactional memory
play

Towards a formal account for software transactional memory Doriana - PowerPoint PPT Presentation

Towards a formal account for software transactional memory Doriana Medi c Claudio Antares Mezzina Iain Phillips Nobuko Yoshida Reversible Computation July 9 - July 10, 2020, Oslo, Norway online event Introduction Reversible computing


  1. Towards a formal account for software transactional memory Doriana Medi´ c Claudio Antares Mezzina Iain Phillips Nobuko Yoshida Reversible Computation July 9 - July 10, 2020, Oslo, Norway online event

  2. Introduction ◦ Reversible computing has been studied in several contexts ranging from quantum computing, biochemical modelling, programming, and program debugging. ◦ Of particular interest is its application to the study of programming abstractions for reliable systems. ◦ Distributed reversible actions can be seen as a building blocks for different transactional models and recovery techniques. 1

  3. ◦ An example showing how notions of reversible and irreversible actions in a process calculus can model a primitive form of transaction is given in [1]. ◦ On the shared memory side, we recall [2], where a CCS endowed with a mechanism for software transactional memories (STMs) is presented and [3] which studies reversibility and a high-level abstraction of shared memory (tuple spaces). [1] V. Danos and J. Krivine. Transactions in RCCS. [2] L. Acciai, M. Boreale and S. Dal-Zilio. A Concurrent Calculus with Atomic Transactions. [3] E. Giachino, I. Lanese, C. A. Mezzina and F. Tiezzi: Causal-consistent rollback in a tuple-based language. 2

  4. Software Transactional Memory ◦ Software Transactional Memory is a way to address the problem of concurrent programming, by relieving the programmer from the burden of dealing with locks. ◦ Opposite to the lock-based approach, STM uses transactions, blocks of code accessing shared data which are meant to be executed atomically . ◦ It is necessary to specify the sequences of operations to be enclosed in transactions, while the system is in charge of the interleaving between the concurrent transactions. ◦ A transaction can either commit and update the system permanently or abort and discard all the changes done by its execution. 3

  5. In this work: - our interest is in the interplay between reversible computing and the STM approach to control the concurrent executions; - we present a formal framework for describing STMs in a simple shared memory context; - a transaction can access a shared variable either in read or in write mode; - we show how it is possible to model writer and reader preference in our framework; 4

  6. Example: ◦ Consider the following C-like code where two functions/threads access the same shared variables: x = 0; int void t1 () void t2 () int y = 5; { z = y+x ; } { x = z+1; } int z = 0; - The possible executions of the two functions are: t1 ; t2 t2 ; t1 t1 | t2 z = 5 z = 6 z = 5 x = 6 x = 1 x = 1 - Either the two functions are executed sequentially or are interleaved (leading to an unwanted state). 5

  7. Syntax: (Actions) α, β ::= wr ( x ) | rd ( x ) � (Processes) A , B ::= 0 | α i . A i i (Expressions) X , Y ::= B | α. X | X ; Y | ( X | Y ) | t : � A � Γ (Configuration) C ::= X � M (Shared Memory) M ::= � x , W , R � � M 6

  8. Syntax: (Actions) α, β ::= wr ( x ) | rd ( x ) � (Processes) A , B ::= 0 | α i . A i i (Expressions) X , Y ::= B | α. X | X ; Y | ( X | Y ) | t : � A � Γ (Configuration) C ::= X � M (Shared Memory) M ::= � x , W , R � � M 6

  9. Syntax: (Actions) α, β ::= wr ( x ) | rd ( x ) � (Processes) A , B ::= 0 | α i . A i i (Expressions) X , Y ::= B | α. X | X ; Y | ( X | Y ) | t : � A � Γ (Configuration) C ::= X � M (Shared Memory) M ::= � x , W , R � � M 6

  10. Syntax: (Actions) α, β ::= wr ( x ) | rd ( x ) � (Processes) A , B ::= 0 | α i . A i i (Expressions) X , Y ::= B | α. X | X ; Y | ( X | Y ) | t : � A � Γ (Configuration) C ::= X � M (Shared Memory) M ::= � x , W , R � � M 6

  11. Syntax: (Actions) α, β ::= wr ( x ) | rd ( x ) � (Processes) A , B ::= 0 | α i . A i i (Expressions) X , Y ::= B | α. X | X ; Y | ( X | Y ) | t : � A � Γ (Configuration) C ::= X � M (Shared Memory) M ::= � x , W , R � � M 6

  12. History context A history context H is a process with a hole • , defined by the following grammar: H ::= • | α. • + A . t : � wr ( x ) . rd ( x 1 ) . rd ( y ) . A + B � Γ Example: can be written as: t : � H [ rd ( y ) . A ] � Γ where H = wr ( x ) . rd ( x 1 ) . • + B . 7

  13. History context A history context H is a process with a hole • , defined by the following grammar: H ::= • | α. • + A . t : � wr ( x ) . rd ( x 1 ) . rd ( y ) . A + B � Γ Example: can be written as: t : � H [ rd ( y ) . A ] � Γ where H = wr ( x ) . rd ( x 1 ) . • + B . ◦ To be able to identify the state of the internal computation of a transaction, we mark it with symbol ∧ . Example: in transition t : � rd ( x ) . rd ( y ) . ∧ wr ( z ) . wr ( x ′ ) � Γ actions rd ( x ) and rd ( y ) are already executed. 7

  14. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M 8

  15. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M 8

  16. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M 8

  17. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M 8

  18. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M Example: t : � ∧ wr ( x ) . rd ( y ) � ∅ � � x , ∅ , ∅� � � y , ∅ , ∅� 8

  19. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M Example: t : � ∧ wr ( x ) . rd ( y ) � ∅ � � x , ∅ , ∅� � � y , ∅ , ∅� → 8

  20. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M Example: t : � ∧ wr ( x ) . rd ( y ) � ∅ � � x , ∅ , ∅� � � y , ∅ , ∅� → t : � wr ( x ) . ∧ rd ( y ) � ∅ � 8

  21. Write rule ( W ⊆ { t } ∧ R ⊆ { t } ) (Wr) t : � H [ ∧ wr ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ wr ( x ) . ∧ A + B ] � Γ � � x , W ∪ t , R � � M Example: t : � ∧ wr ( x ) . rd ( y ) � ∅ � � x , ∅ , ∅� � � y , ∅ , ∅� → t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� 8

  22. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M 9

  23. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M 9

  24. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M 9

  25. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M 9

  26. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M Example: t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� 9

  27. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M Example: t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� → 9

  28. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M Example: t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� → t : � wr ( x ) . rd ( y ) ∧ � ∅ � 9

  29. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M Example: t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� → t : � wr ( x ) . rd ( y ) ∧ � ∅ � � x , { t } , ∅� � 9

  30. Read rule (Rd) t : � H [ ∧ rd ( x ) . A + B ] � Γ � � x , W , R � � M → t : � H [ rd ( x ) . ∧ A + B ] � Γ ∪ ( W \ t ) � � x , W , R ∪ t � � M Example: t : � wr ( x ) . ∧ rd ( y ) � ∅ � � x , { t } , ∅� � � y , ∅ , ∅� → t : � wr ( x ) . rd ( y ) ∧ � ∅ � � x , { t } , ∅� � � y , ∅ , { t }� 9

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend