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.