Towards Proving Optimistic Multicore Schedulers

Operating systems have been shown to waste machine resources by leaving cores idle while work is ready to be scheduled. This results in suboptimal performance for user applications, and wasted power. Recent progress in formal verification methods have led to operating systems being proven safe, but operating systems have yet to be proven free of performance bottlenecks. In this paper we instigate the first effort in proving performance properties of operating systems by designing a multicore scheduler that is proven to be work-conserving.

[1]  Adam Chlipala,et al.  Using Crash Hoare logic for certifying the FSCQ file system , 2015, USENIX Annual Technical Conference.

[2]  J. Flinn,et al.  Automatic Root-cause Diagnosis of Performance Anomalies in Production Software , 2011 .

[3]  Samuel T. King,et al.  Verifying security invariants in ExpressOS , 2013, ASPLOS '13.

[4]  Michael Norrish,et al.  seL4: formal verification of an OS kernel , 2009, SOSP '09.

[5]  Richard Mortier,et al.  Using Magpie for Request Extraction and Workload Modelling , 2004, OSDI.

[6]  Xuezheng Liu,et al.  D3S: Debugging Deployed Distributed Systems , 2008, NSDI.

[7]  Marcos K. Aguilera,et al.  Performance debugging for distributed systems of black boxes , 2003, SOSP '03.

[8]  Sebastian Burckhardt,et al.  Effective Data-Race Detection for the Kernel , 2010, OSDI.

[9]  Sharon E. Perl Performance assertion checking , 1993, SOSP '93.

[10]  Junfeng Yang,et al.  Using model checking to find serious file system errors , 2004, TOCS.

[11]  Leonid Ryzhyk,et al.  Dingo: taming device drivers , 2009, EuroSys '09.

[12]  Zvonimir Rakamaric,et al.  Fast and Precise Symbolic Analysis of Concurrency Bugs in Device Drivers (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[13]  Francis C. M. Lau,et al.  Load balancing in parallel computers - theory and practice , 1996, The Kluwer international series in engineering and computer science.

[14]  Alan L. Cox,et al.  Whodunit: transactional profiling for multi-tier applications , 2007, EuroSys '07.

[15]  Varmo Vene,et al.  Static race detection for device drivers: The Goblint approach , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[16]  Sidney Amani,et al.  Cogent: Verifying High-Assurance File System Implementations , 2016, ASPLOS.

[17]  Vivien Quéma,et al.  The Linux scheduler: a decade of wasted cores , 2016, EuroSys.

[18]  Ming Zhong,et al.  I/O system performance debugging using model-driven anomaly characterization , 2005, FAST'05.

[19]  Laurent Réveillère,et al.  Devil: an IDL for hardware programming , 2000, OSDI.

[20]  Lei Zhang,et al.  Generalized file system dependencies , 2007, SOSP.

[21]  Alastair F. Donaldson,et al.  Fast and Precise Symbolic Analysis of Concurrency Bugs in Device Drivers , 2015 .

[22]  Zhong Shao,et al.  CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels , 2016, OSDI.

[23]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[24]  Vikram S. Adve,et al.  Using likely invariants for automated software fault localization , 2013, ASPLOS '13.

[25]  Adrian Schüpbach,et al.  A Declarative Language Approach to Device Configuration , 2011, TOCS.

[26]  Mona Attariyan,et al.  X-ray: Automating Root-Cause Diagnosis of Performance Anomalies in Production Software , 2012, OSDI.

[27]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

[28]  J. Lawall,et al.  A framework for simplifying the development of kernel schedulers: design and performance evaluation , 2005, Ninth IEEE International Symposium on High-Assurance Systems Engineering (HASE'05).

[29]  Dawson R. Engler,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation Cmc: a Pragmatic Approach to Model Checking Real Code , 2022 .

[30]  Laurent Réveillère,et al.  Towards robust OSes for appliances: a new approach based on domain-specific languages , 2000, ACM SIGOPS European Workshop.