Using Concurrent Relational Logic with Helpers for Verifying the AtomFS File System

被引:14
作者
Zou, Mo [1 ,2 ]
Ding, Haoran [1 ,2 ]
Du, Dong [1 ,2 ]
Fu, Ming [3 ]
Gu, Ronghui [4 ]
Chen, Haibo [1 ,2 ]
机构
[1] Shanghai Jiao Tong Univ, Shanghai Key Lab Scalable Comp & Syst, Shanghai, Peoples R China
[2] Shanghai Jiao Tong Univ, Inst Parallel & Distributed Syst, Shanghai, Peoples R China
[3] Huawei Technol Co Ltd, Shenzhen, Peoples R China
[4] Columbia Univ, New York, NY 10027 USA
来源
PROCEEDINGS OF THE TWENTY-SEVENTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES (SOSP '19) | 2019年
基金
中国国家自然科学基金;
关键词
SEPARATION LOGIC; VERIFICATION; LINEARIZABILITY; ABSTRACTION; FRAMEWORK;
D O I
10.1145/3341301.3359644
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Concurrent file systems are pervasive but hard to correctly implement and formally verify due to nondeterministic interleavings. This paper presents AtomFS, the first formally-verified, fine-grained, concurrent file system, which provides linearizable interfaces to applications. The standard way to prove linearizability requires modeling linearization point of each operation-the moment when its effect becomes visible atomically to other threads. We observe that path inter-dependency, where one operation (like rename) breaks the path integrity of other operations, makes the linearization point external and thus poses a significant challenge to prove linearizability. To overcome the above challenge, this paper presents Concurrent Relational Logic with Helpers (CRL-H), a framework for building verified concurrent file systems. CRL-H is made powerful through two key contributions: (1) extending prior approaches using fixed linearization points with a helper mechanism where one operation of the thread can logically help other threads linearize their operations; (2) combining relational specifications and rely/guarantee conditions for relational and compositional reasoning. We have successfully applied CRL-H to verify the linearizability of AtomFS directly in C code. All the proofs are mechanized in Coq. Evaluations show that AtomFS speeds up file system workloads by utilizing fine-grained, multicore concurrency.
引用
收藏
页码:259 / 274
页数:16
相关论文
共 26 条
  • [1] Verifying Relational Properties using Trace Logic
    Barthe, Gilles
    Eilers, Renate
    Georgiou, Pamina
    Gleiss, Bernhard
    Kovacs, Laura
    Maffei, Matteo
    2019 FORMAL METHODS IN COMPUTER AIDED DESIGN (FMCAD), 2019, : 170 - 178
  • [2] Verifying compiled file system code
    Muehlberg, Jan Tobias
    Luettgen, Gerald
    FORMAL ASPECTS OF COMPUTING, 2012, 24 (03) : 375 - 391
  • [3] Formalizing and Verifying Decentralized Systems with Extended Concurrent Separation Logic
    Ding, Yepeng
    Sato, Hiroyuki
    ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING, ICA3PP 2020, PT I, 2020, 12452 : 480 - 494
  • [4] Verifying Compiled File System Code
    Muhlberg, Jan Tobias
    Luttgen, Gerald
    FORMAL METHODS: FOUNDATIONS AND APPLICATIONS, 2009, 5902 : 306 - 320
  • [5] Verifying concurrent probabilistic systems using probabilistic-epistemic logic specifications
    Wan, Wei
    Bentahar, Jamal
    Yahyaoui, Hamdi
    Ben Hamza, Abdessamad
    APPLIED INTELLIGENCE, 2016, 45 (03) : 747 - 776
  • [6] Verifying concurrent probabilistic systems using probabilistic-epistemic logic specifications
    Wei Wan
    Jamal Bentahar
    Hamdi Yahyaoui
    Abdessamad Ben Hamza
    Applied Intelligence, 2016, 45 : 747 - 776
  • [7] Recon: Verifying File System Consistency at Runtime
    Fryer, Daniel
    Sun, Kuei
    Mahmood, Rahat
    Cheng, Tinghao
    Benjamin, Shaun
    Goel, Ashvin
    Brown, Angela Demke
    ACM TRANSACTIONS ON STORAGE, 2012, 8 (04)
  • [8] Simuliris: A Separation Logic Framework for Verifying Concurrent Program Optimizations
    Gaeher, Lennard
    Sammler, Michael
    Spies, Simon
    Jung, Ralf
    Dang, Hoang-Hai
    Krebbers, Robbert
    Kang, Jeehoon
    Dreyer, Derek
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (POPL):
  • [9] Using Crash Hoare Logic for Certifying the FSCQ File System
    Chen, Haogang
    Ziegler, Daniel
    Chajed, Tej
    Chlipala, Adam
    Kaashoek, M. Frans
    Zeldovich, Nickolai
    SOSP'15: PROCEEDINGS OF THE TWENTY-FIFTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES, 2015, : 18 - 37
  • [10] VCC: A Practical System for Verifying Concurrent C
    Cohen, Ernie
    Dahlweid, Markus
    Hillebrand, Mark
    Leinenbach, Dirk
    Moskal, Michal
    Santen, Thomas
    Schulte, Wolfram
    Tobies, Stephan
    THEOREM PROVING IN HIGHER ORDER LOGICS, PROCEEDINGS, 2009, 5674 : 23 - +