From Non-preemptive to Preemptive Scheduling using Synchronization Synthesis

May 18, 2015 Β· Entered Twilight Β· πŸ› Formal methods in system design

πŸŒ… TWILIGHT: Old Age
Predates the code-sharing era β€” a pioneer of its time

"Last commit was 9.0 years ago (β‰₯5 year threshold)"

Evidence collected by the PWNC Scanner

Repo contents: .gitignore, .gitmodules, Makefile, README.md, aec-badge-cav.png, boost_license.txt, clang_license.txt, git-archive-all.sh, lgpl.txt, libs, log-table.py, make_tar.sh, oldtimes-assume-semantics.txt, oldtimes.txt, prep_run.sh, run_synth.sh, run_synth_long.sh, src, tests, times-langinc.txt, times.txt, times_long.txt

Authors Pavol Černý, Edmund M. Clarke, Thomas A. Henzinger, Arjun Radhakrishna, Leonid Ryzhyk, Roopsha Samanta, Thorsten Tarrach arXiv ID 1505.04533 Category cs.PL: Programming Languages Citations 22 Venue Formal methods in system design Repository https://github.com/thorstent/Liss ⭐ 1 Last Checked 1 month ago
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 a preemptive scheduler should be included in the set of such sequences produced under a non-preemptive scheduler. The solution is based on a finitary abstraction, an algorithm for bounded language inclusion modulo an independence relation, and rules for inserting synchronization. We apply the approach to device-driver programming, where the driver threads call the software interface of the device and the API provided by the operating system. Our experiments demonstrate that our synthesis method is precise and efficient, and, since it does not require explicit specifications, is more practical than the conventional approach based on user-provided assertions.
Community shame:
Not yet rated
Community Contributions

Found the code? Know the venue? Think something is wrong? Let us know!

πŸ“œ Similar Papers

In the same crypt β€” Programming Languages