2015
DOI: 10.1007/978-3-319-21668-3_11
|View full text |Cite
|
Sign up to set email alerts
|

From Non-preemptive to Preemptive Scheduling Using Synchronization Synthesis

Abstract: We present a computer-aided programming approach to concurrency. The approach allows programmers to program assuming a friendly, non-preemptive scheduler, and our synthesis procedure inserts synchronization to ensure that the final program works even with a preemptive scheduler. The correctness specification is implicit, inferred from the non-preemptive behavior. Let us consider sequences of calls that the program makes to an external interface. The specification requires that any such sequence produced under … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
4
1
1

Relationship

1
5

Authors

Journals

citations
Cited by 13 publications
(19 citation statements)
references
References 24 publications
0
19
0
Order By: Relevance
“…Note that if τ is a non-linearizable trace, then all the traces τ that are equivalent to τ are also non-linearizable. Indeed, if τ is equivalent to τ , then the values that are read in τ are the same as in τ 6 , which implies that the return values in τ are the same as in τ , and therefore, τ is non-linearizable when τ is.…”
Section: Definition 2 (Repair Subsumption) a Repair R Subsumes Another Repair R We Write R C R If And Only If For All Atomic Blocks B ∈ mentioning
confidence: 99%
See 1 more Smart Citation
“…Note that if τ is a non-linearizable trace, then all the traces τ that are equivalent to τ are also non-linearizable. Indeed, if τ is equivalent to τ , then the values that are read in τ are the same as in τ 6 , which implies that the return values in τ are the same as in τ , and therefore, τ is non-linearizable when τ is.…”
Section: Definition 2 (Repair Subsumption) a Repair R Subsumes Another Repair R We Write R C R If And Only If For All Atomic Blocks B ∈ mentioning
confidence: 99%
“…There is large body of work on synchronization synthesis [2,[6][7][8]11,22,34,42,43]. The approaches in [11,42] are based on inferring synchronization by constructing and exploring the entire product graph or tableaux corresponding to a concurrent program.…”
Section: Related Workmentioning
confidence: 99%
“…Synthesis with Quantitative Objectives Two lines of prior work on synthesis are explicitly concerned with optimizing resource usage. One is quantitative automata-theoretic synthesis, which has been used to synthesize optimal Mealy machines [8] and place synchronization in concurrent programs [11,12,28]. In contrast, we focus on synthesis of high-level programs that can manipulate custom data structures, which are out of reach for automata-theoretic synthesis.…”
Section: Domain-specific Program Synthesis Most Program Synthesis Tecmentioning
confidence: 99%
“…One of the greatest challenges in software development is to write programs that are not only correct but also efficient with respect to memory usage, execution time, or domain specific resource metrics. For this reason, automatically optimizing program performance has long been a goal of synthesis, and several existing techniques tackle this problem for low-level straight-line code [9,48,49,55,56] or add efficient synchronization to concurrent programs [11,12,21,28]. However, the developed techniques are not applicable to recent advances in the synthesis of high-level looping or recursive programs manipulating custom data structures [22,35,39,46,50,51].…”
Section: Introductionmentioning
confidence: 99%
“…We exhibit a variety of existing synthesis frameworks that can be naturally seen as instantiations of our abstract-learning framework, where the formulation shows the diversity in the instantiations of the spaces. These include (a) a variety of CEGIS-based synthesis techniques for synthesizing program expressions in sketches (completing program sketches [51], synthesizing loop-free programs [24], mining specifications [28], synthesizing synchronization code for concurrent programs [13], etc. ), (b) synthesis from input-output examples such as Flashfill [23], (c) the CEGIS framework applied to the concrete problem of solving synthesis problems expressed in the SMT-based SyGuS format [2,1], and three synthesis engines that use learning to synthesize solutions, (d) invariant synthesis frameworks, including Houdini [18] and the more recent ICE-learning model for synthesizing loop invariants [21], spanning a variety of domains from arithmetic [21,22] to quantified invariants over data structures [20], and (e) synthesizing fixed-points and abstract transformers in abstract interpretation settings [52].…”
Section: Introductionmentioning
confidence: 99%