Fairness
Communications of the ACM
Appraising fairness in distributed languages
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Information and Software Technology
Adding liveness properties to coupled finite-state machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The implementation of the Cilk-5 multithreaded language
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem
Software model checking in practice: an industrial case study
Proceedings of the 24th International Conference on Software Engineering
Achieving Service Rate Objectives with Decay Usage Scheduling
IEEE Transactions on Software Engineering
Impartiality, Justice and Fairness: The Ethics of Concurrent Termination
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Specification and verification of concurrent systems in CESAR
Proceedings of the 5th Colloquium on International Symposium on Programming
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
Fair termination of communicating processes
PODC '84 Proceedings of the third annual ACM symposium on Principles of distributed computing
Exploiting Heap Symmetries in Explicit-State Model Checking of Software
Proceedings of the 16th IEEE international conference on Automated software engineering
CMC: a pragmatic approach to model checking real code
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Using model checking to find serious file system errors
ACM Transactions on Computer Systems (TOCS)
Iterative context bounding for systematic testing of multithreaded programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Lottery scheduling: flexible proportional-share resource management
OSDI '94 Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation
Dryad: distributed data-parallel programs from sequential building blocks
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Sealing OS processes to improve dependability and safety
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
The temporal logic of programs
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
Life, death, and the critical transition: finding liveness bugs in systems code
NSDI'07 Proceedings of the 4th USENIX conference on Networked systems design & implementation
Tackling Large Verification Problems with the Swarm Tool
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Verifying Multi-threaded C Programs with SPIN
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Formal verification of practical MPI programs
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Semantic Reduction of Thread Interleavings in Concurrent Programs
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Developing parallel programs: A design-oriented perspective
IWMSE '09 Proceedings of the 2009 ICSE Workshop on Multicore Software Engineering
Efficient Testing of Concurrent Programs with Abstraction-Guided Symbolic Execution
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Clash of the Titans: tools and techniques for hunting bugs in concurrent programs
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Scalable Multi-core Model Checking Fairness Enhanced Systems
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Line-up: a complete and automatic linearizability checker
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Analyzing concurrency bugs using dual slicing
Proceedings of the 19th international symposium on Software testing and analysis
Finding and reproducing Heisenbugs in concurrent programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
pTest: an adaptive testing tool for concurrent software on embedded multicore processors
Proceedings of the Conference on Design, Automation and Test in Europe
Finding latent performance bugs in systems implementations
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
A trace simplification technique for effective debugging of concurrent programs
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Research in concurrent software testing: a systematic review
Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
SimGrid MC: verification support for a multi-API simulation platform
FMOODS'11/FORTE'11 Proceedings of the joint 13th IFIP WG 6.1 and 30th IFIP WG 6.1 international conference on Formal techniques for distributed systems
Accentuating the positive: atomicity inference and enforcement using correct executions
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Explicit fair scheduling for dynamic control
Concurrency, Compositionality, and Correctness
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Preemption sealing for efficient concurrency testing
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Multicore acceleration of priority-based schedulers for concurrency bug detection
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
BALLERINA: automatic generation and clustering of efficient random unit tests for multithreaded code
Proceedings of the 34th International Conference on Software Engineering
Detecting fair non-termination in multithreaded programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Maple: a coverage-driven testing tool for multithreaded programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
CONCURRIT: a domain specific language for reproducing concurrency bugs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Bounded partial-order reduction
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Concurrency testing using schedule bounding: an empirical study
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Model checking with fairness assumptions using PAT
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
Stateless model checking is a useful state-space exploration technique for systematically testing complex real-world software. Existing stateless model checkers are limited to the verification of safety properties on terminating programs. However, realistic concurrent programs are nonterminating, a property that significantly reduces the efficacy of stateless model checking in testing them. Moreover, existing stateless model checkers are unable to verify that a nonterminating program satisfies the important liveness property of livelock-freedom, a property that requires the program to make continuous progress for any input. To address these shortcomings, this paper argues for incorporating a fair scheduler in stateless exploration. The key contribution of this paper is an explicit scheduler that is (strongly) fair and at the same time sufficiently nondeterministic to guarantee full coverage of safety properties.We have implemented the fair scheduler in the CHESS model checker. We show through theoretical arguments and empirical evaluation that our algorithm satisfies two important properties: 1) it visits all states of a finite-state program achieving state coverage at a faster rate than existing techniques, and 2) it finds all livelocks in a finite-state program. Before this work, nonterminating programs had to be manually modified in order to apply CHESS to them. The addition of fairness has allowed CHESS to be effectively applied to real-world nonterminating programs without any modification. For example, we have successfully booted the Singularity operating system under the control of CHESS.