Fundamentals Atomicity
Keep Off the Grass
Locking the Right Path for Atomicity Dave Cunningham Khilan Gudka Susan Eisenbach
Imperial College London
07/03/2008
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 1/34
Keep Off the Grass Locking the Right Path for Atomicity Dave - - PowerPoint PPT Presentation
Fundamentals Atomicity Keep Off the Grass Locking the Right Path for Atomicity Dave Cunningham Khilan Gudka Susan Eisenbach Imperial College London 07/03/2008 Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 1/34
Fundamentals Atomicity
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 1/34
Fundamentals Atomicity
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 1/34
Fundamentals Atomicity
◮ IO, JNI, etc is very hard ◮ Performs badly under high contention ◮ Lots of runtime machinery
◮ Reflection, JNI, etc is very hard ◮ Worse granularity (common example: non-empty queue) ◮ Requires more compiler machinery than TM Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 2/34
Fundamentals Atomicity
◮ Associating Synchronisation Constraints w/Data (POPL’05) ◮ Lock Inference for Atomic Sections (TRANSACT’06) ◮ Lock Allocation (POPL’07) ◮ Component-Based Lock Allocation (PACT’07) ◮ Inferring Locks for Atomic Sections (PLDI’08)
◮ Cormac Flanagan et al (everywhere since 1999) ◮ “Autolocker” (POPL’06) ◮ Cunningham et al (VAMP’07) Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 3/34
Fundamentals Lock Inference
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 4/34
Fundamentals Lock Inference
◮ Lock acquisitions precede lock releases ◮ All accesses nested within appropriate locks
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 5/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 6/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 6/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 6/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 7/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 7/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 7/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 7/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 8/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 9/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 9/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 10/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 11/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 12/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 13/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 14/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 14/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 14/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 14/34
Our Approach Examples (State)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 14/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 15/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 16/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 16/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 17/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 18/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 19/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 20/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 20/34
Our Approach Examples (Control Flow and Arrays)
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 20/34
Our Approach Transfer Functions
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 21/34
Our Approach Transfer Functions
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 22/34
Our Approach Transfer Functions
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 23/34
Our Approach Transfer Functions
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 24/34
Soundness Fundamentals
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 25/34
Soundness Fundamentals
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 26/34
Soundness Assignments
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 27/34
Soundness Assignments
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 28/34
Soundness Assignments
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 28/34
Soundness Assignments
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 28/34
Soundness Assignments
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 28/34
Soundness Semantics
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 29/34
Soundness Soundness Theorem
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 30/34
Soundness Isabelle
◮ Explicit quantifiers where they are needed ◮ Explicit handling of null, and the undefinedness of partial functions ◮ A few concessions so we could use primitive recursion: ◮ Convenient to make A a list of “addr option” ◮ Convenient to store set of constructed objects C
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 31/34
Finishing Off
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 32/34
Finishing Off
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 33/34
Finishing Off
Dave Cunningham, Khilan Gudka, Susan Eisenbach Keep Off the Grass 34/34