Lune

CAV2021Top-tier venue

Ghost Signals: Verifying Termination of Busy Waiting - Verifying Termination of Busy Waiting

Tobias Reinhard, Bart Jacobs

2021Year
3Citations
1Top-tier citations

Abstract

Programs for multiprocessor machines commonly perform busy waiting for synchronization. We propose the first separation logic for modularly verifying termination of such programs under fair scheduling. Our logic requires the proof author to associate a ghost signal with each busy-waiting loop and allows such loops to iterate while their corresponding signal s is not set. The proof author further has to define a well-founded order on signals and to prove that if the looping thread holds an obligation to set a signal s ′ , then s ′ is ordered above s. By using conventional shared state invariants to associate the state of ghost signals with the state of data structures, programs busy-waiting for arbitrary conditions over arbitrary data structures can be verified.

new signal θ aug h ⊔ θ.obs(O ⊎ [(id, L)] ), signal((id, L)), id Aug-Red-SetSignal h ⊔ θ.obs(O ⊎ [s] ), set signal(s.id) θ aug h ⊔ θ.obs(O), signalSet(s), tt Aug-Red-Fork θ f ∈ thIds( h) h ⊔ θ.obs(O ⊎ O f ), fork c θ aug h ⊔ θ.obs(O), θ f .obs(O f ), tt, (θ f , c)

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 0c53703b-8f94-4135-badd-dbb4a94ab921

Cited by top-tier papers1

Ask how each one uses it

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines