Award Abstract # 1836712
FMitF: Verifying Concurrent System Software with Cspec

NSF Org: CCF
Division of Computing and Communication Foundations
Awardee: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Initial Amendment Date: August 31, 2018
Latest Amendment Date: August 31, 2018
Award Number: 1836712
Award Instrument: Standard Grant
Program Manager: Anindya Banerjee
abanerje@nsf.gov
 (703)292-7885
CCF
 Division of Computing and Communication Foundations
CSE
 Direct For Computer & Info Scie & Enginr
Start Date: November 1, 2018
End Date: October 31, 2022 (Estimated)
Total Intended Award Amount: $750,000.00
Total Awarded Amount to Date: $750,000.00
Funds Obligated to Date: FY 2018 = $750,000.00
History of Investigator:
  • Nickolai  Zeldovich (Principal Investigator)
    nickolai@csail.mit.edu
  • Adam  Chlipala (Co-Principal Investigator)
  • M. Frans  Kaashoek (Co-Principal Investigator)
Awardee Sponsored Research Office: Massachusetts Institute of Technology
77 MASSACHUSETTS AVE
CAMBRIDGE
MA  US  02139-4301
(617)253-1000
Sponsor Congressional District: 07
Primary Place of Performance: Massachusetts Institute of Technology
MA  US  02139-4309
Primary Place of Performance
Congressional District:
07
Unique Entity Identifier (UEI): E2NYLCDML6V1
Parent UEI: E2NYLCDML6V1
NSF Program(s): FMitF: Formal Methods in the F
Primary Program Source: 040100 NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 062Z, 7943
Program Element Code(s): 094Y
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Most computer systems involve concurrency---multiple threads, cores, or computers executing at the same time and interacting with one another. Developing concurrent software is error-prone, because the concurrent threads can interact in many unexpected ways, and it is easy for developers to overlook subtle corner-case interactions. This project will tackle this problem through the use of machine-checked proofs for concurrent software: that is, it will focus on helping developers to provide a mathematical proof that the software will execute according to its specification, for any possible interaction among the concurrent threads. As a driving example, this project will develop a verified concurrent multicore file system. This project's novelty lies in its approach for specifying and proving concurrent software that reduces the number of thread interactions that the developer must reason about, while still providing a full proof of correctness. The expected impact of this project will be a set of ideas, techniques, and tools for specifying and proving concurrent systems software. Since concurrent software plays such a critical role in computer systems, being able to verify correctness of key software components will improve reliability and security of many systems.

The specific research contributions of this project will center around CSPEC, a framework for formal verification of concurrent software, which will help developers ensure that no corner cases are missed. The key challenge faced by CSPEC is to reduce the number of interactions, or interleavings, that developers must consider in their proofs. CSPEC addresses this challenge using so-called mover types to reorder commutative operations. Mover types enable developers to reason about largely sequential executions rather than all possible interleavings. CSPEC also provides a library of proof patterns for common styles of concurrency, including retry loops, state partitioning, and cooperative enforcement of rules between threads or processes. In the process of developing a verified concurrent file system on top of CSPEC, the investigators will address additional research challenges, such as formulating a specification for a POSIX file system under concurrency, integrating reasoning about crash safety and concurrency, managing the complexity of proving a sophisticated concurrent file system, and generating efficient concurrent code to achieve high performance while preserving correctness. As part of this project, the research team will also develop a course focused on formal reasoning about computer systems, which includes concurrency, reliability, and fault-tolerance.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Chajed, Tej and Tassarotti, Joseph and Kaashoek, Frans and Zeldovich, Nickolai "Verifying concurrent, crash-safe systems with Perennial" Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP) , 2019 10.1145/3341301.3359632 Citation Details
Chajed, Tej and Tassarotti, Joseph and Kaashoek, M. Frans and Zeldovich, Nickolai "Argosy: verifying layered storage systems with recovery refinement" Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ?19) , 2019 10.1145/3314221.3314585 Citation Details
Chajed, Tej and Tassarotti, Joseph and Theng, Mark and Jung, Ralf and Kaashoek, M. Frans and Zeldovich, Nickolai "GoJournal: a verified, concurrent, crash-safe journaling system" Proceedings of the 15th USENIX Symposium on Operating Systems Design and Implementation , 2021 Citation Details

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page