Abstract
Message-based communication offers the potential benefits of providing stronger specification and cleaner separation between components. Compared with shared-memory interactions, message passing has the potential disadvantages of more expensive data exchange (no direct sharing) and more complicated programming.In this paper we report on the language, verification, and run-time system features that make messages practical as the sole means of communication between processes in the Singularity operating system. We show that using advanced programming language and verification techniques, it is possible to provide and enforce strong system-wide invariants that enable efficient communication and low-overhead software-based process isolation. Furthermore, specifications on communication channels help in detecting programmer mistakes early---namely at compile-time---thereby reducing the difficulty of the message-based programming model.The paper describes our communication invariants, the language and verification features that support them, as well as implementation details of the infrastructure. A number of benchmarks show the competitiveness of this approach.
Publisher
Association for Computing Machinery (ACM)
Reference35 articles.
1. Partition III: CIL Instruction Set. ECMA Standard 335 http://www.ecma-international.org/publications/standards/Ecma-335.htm.]] Partition III: CIL Instruction Set. ECMA Standard 335 http://www.ecma-international.org/publications/standards/Ecma-335.htm.]]
2. Joe Armstrong Robert Virding Claes Wikström and Mike Williams. Concurrent Programming in Erlang. Prentice-Hall second edition 1996.]] Joe Armstrong Robert Virding Claes Wikström and Mike Williams. Concurrent Programming in Erlang. Prentice-Hall second edition 1996.]]
3. Guava
Cited by
58 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Dynamic Linkers Are the Narrow Waist of Operating Systems;Proceedings of the 12th Workshop on Programming Languages and Operating Systems;2023-10-23
2. Low-Cost Privilege Separation with Compile Time Compartmentalization for Embedded Systems;2023 IEEE Symposium on Security and Privacy (SP);2023-05
3. Multiparty half-duplex systems and synchronous communications;Journal of Logical and Algebraic Methods in Programming;2023-02
4. Comparing Channel Restrictions of Communicating State Machines, High-level Message Sequence Charts, and Multiparty Session Types;Electronic Proceedings in Theoretical Computer Science;2022-09-20
5. A flexible type system for fearless concurrency;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09