skip to main content
10.1145/3365137.3365403acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article

Enveloping Implicit Assumptions of Intrusive Data Structures within Ownership Type System

Published:27 October 2019Publication History

ABSTRACT

Intrusive data structures (IDSes) are heavily used in system programming, where achieving high performance is one of the most important design goals. Yet, they are not supported in today's ownership type system that offer memory-safety without garbage collection. Instead, IDSes force programmers to choose either unsafety or runtime overhead. This limitation stems from the implicit assumptions pertaining to the memory layouts and access patterns created by IDSes.

In this paper, we propose a new technique, referred to as ownership pooling, which defines ownership for IDSes. Ownership pooling consists of three new types, FieldOf, OwnershipPool, and Shared, and their conversion rules.

We implemented the proposed types within Rust's type system and compared its performance capabilities against the existing memory-safe implementations and the C++ implementation without memory safety as baseline. The performance of our implementation shows far better performance than that of the existing memory-safe ones and comparable to that of C++ implementation without memory safety.

References

  1. Abhiram Balasubramanian, Marek S. Baranowski, Anton Burtsev, Aurojit Panda, Zvonimir Rakamarić, and Leonid Ryzhyk. 2017. System Programming in Rust: Beyond Safety. In ACM HotOS.Google ScholarGoogle Scholar
  2. Without Boats. 2018. Shifgrethor III: Rooting. https://boats.gitlab.io/blog/post/shifgrethor-iii/.Google ScholarGoogle Scholar
  3. Amanieu d'Antras. 2016. SeqLock. https://crates.io/crates/seqlock/0.1.1.Google ScholarGoogle Scholar
  4. Amanieu d'Antras. 2018. intrusive-collections. https://crates.io/crates/intrusive-collections/0.7.2.Google ScholarGoogle Scholar
  5. Amanieu d'Antras. 2018. parking_lot. https://crates.io/crates/parking_lot/0.6.4.Google ScholarGoogle Scholar
  6. Redox Project Developers. [n.d.]. Redox - Your Next(Gen) OS. https://www. redox-os.org.Google ScholarGoogle Scholar
  7. Tokio Project Developers. 2018. Tokio: A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language. https://crates.io/crates/tokio/0.1.6.Google ScholarGoogle Scholar
  8. Galen C Hunt and James R Larus. 2007. Singularity: rethinking the software stack. ACM SIGOPS Operating Systems Review 41, 2 (2007), 37--49.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. jemalloc Developers. [n.d.]. jemalloc memory allocator. http://jemalloc.net.Google ScholarGoogle Scholar
  10. Amit Levy, Bradford Campbell, Branden Ghena, Daniel B Giffin, Pat Pannuto, Prabal Dutta, and Philip Levis. 2017. Multiprogramming a 64kB Computer Safely and Efficiently. In ACM SOSP.Google ScholarGoogle Scholar
  11. Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, and Scott Shenker. 2016. NetBricks: Taking the V out of NFV.. In USENIX OSDI.Google ScholarGoogle Scholar
  12. Rishabh Poddar, Chang Lan, Raluca Ada Popa, and Sylvia Ratnasamy. 2018. SafeBricks: Shielding Network Functions in the Cloud. In USENIX NSDI.Google ScholarGoogle Scholar
  13. C++ Reference. 2018. RAII. https://en.cppreference.com/w/cpp/language/raii.Google ScholarGoogle Scholar
  14. Mozilla Research. [n.d.]. Servo, the Parallel Browser Engine Project. https://servo.org.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    PLOS '19: Proceedings of the 10th Workshop on Programming Languages and Operating Systems
    October 2019
    79 pages
    ISBN:9781450370172
    DOI:10.1145/3365137

    Copyright © 2019 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 27 October 2019

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate17of32submissions,53%

    Upcoming Conference

    SOSP '24
  • Article Metrics

    • Downloads (Last 12 months)11
    • Downloads (Last 6 weeks)6

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader