The mungi single-address-space operating system
Corresponding Author
Gernot Heiser
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, AustraliaSearch for more papers by this authorKevin Elphinstone
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorJerry Vochteloo
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorStephen Russell
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorJochen Liedtke
IBM T. J. Watson Research Center, 30 Saw Mill River Road, Hawthorne, NY 10532, USA
Search for more papers by this authorCorresponding Author
Gernot Heiser
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, AustraliaSearch for more papers by this authorKevin Elphinstone
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorJerry Vochteloo
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorStephen Russell
Department of Computer Systems, School of Computer Science and Engineering, The University of New South Wales, Sydney 2052, Australia
Search for more papers by this authorJochen Liedtke
IBM T. J. Watson Research Center, 30 Saw Mill River Road, Hawthorne, NY 10532, USA
Search for more papers by this authorAbstract
Single-Address-Space Operating Systems (SASOS) are an attractive model for making the best use of the wide address space provided by the latest generations of microprocessors. SASOS remove the address space boundaries which make data sharing between processes difficult and expensive in traditional operating systems. They offer the potential of significant performance advantages for applications where sharing is important, such as object-oriented databases or persistent programming systems. We have built the Mungi system to demonstrate that a SASOS can offer these performance advantages without resorting to special hardware. Mungi is a very ‘pure’ SASOS, featuring an unintrusive protection model based on sparse capabilities, a fast protected procedure call mechanism, and uses shared memory as the exclusive inter-process communication mechanism, as well as for I/O. The simplicity of our model makes it easy to implement it efficiently on conventional architectures. Our implementation of Mungi for the MIPS R4600 64-bit microprocessor is presented, which is based on our port of the L4 microkernel. Mungi is shown to outperform, in some instances by more than an order of magnitude, two UNIX operating systems, Irix and Linux, in several important operations, such as task creation and inter-process communications, and on the OO1 object-oriented database benchmark. As well, we describe how our approach to key issues in SASOS design provides better performance than other systems, such as Opal. Our experience shows that the SASOS concept is viable, and that a well-designed microkernel is an excellent base on which to build high-performance operating systems. © 1998 John Wiley & Sons, Ltd.
References
- 1 W. Cockshot, M. Atkinson, K. Chisholm, P. Bailey and R. Morrison, ‘Persistent object management systems’, Softw. Pract. Exp., 14(1); 49–71 (1984).
- 2
P. R. Wilson,
‘Pointer swizzling at page fault time: Efficiently supporting huge address spaces on standard hardware’,
Computer Architecture News,
19(4);
6–13
(June 1991).
10.1145/122576.122577 Google Scholar
- 3 M. Atkinson, P. Bailey, K. Chisholm, P. Cockshott and R. Morrison, ‘An approach to persistent programming’, The Computer Journal, 26: 360–365 (1983).
- 4 M. E. Houdek, F. G. Soltis and R. L. Hoffman ‘ IBM System/38 support for capability-based addressing’, Proceedings of the 8th Symposium on Computer Architecture, May 1981, pp. 341–348. ACM/IEEE.
- 5 J. Rosenberg and D. Abramson, ‘ MONADS-PC-a capability-based workstation to support software engineering’, Proceedings of the 18th Hawaii International Conference on System Sciences, volume 1, 1985. pp. 222–231. IEEE.
- 6 T. Wilkinson, T. Stiemerling, P. E. Osmon, A. Saulsbury and P. Kelly, ‘ Angel: A proposed multiprocessor operating system kernel’, European Workshop on Parallel Computing, Barcelona, Spain, 1992, pp. 316–319.
- 7 J. S. Chase, H. M. Levy, E. D. Lazowska and M. Baker-Harvey ‘ Lightweight shared objects in a 64-bit operating system’, Conference on Object-Oriented Programming Systems, Languages, and Applications, 1992.
- 8 S. Russell, A. Skea, K. Elphinstone, G. Heiser, K. Burston, I. Gorton and G. Hellestrand, ‘ Distribution + persistence = global virtual memory’, Proceedings of the 2nd International Workshop on Object Orientation in Operating Systems, Dourdan, France, September 1992, pp. 96–99. IEEE.
- 9 F. G. Soltis, Inside the AS/400, Duke Press, Loveland, CO, 1996.
- 10 T. Wilkinson and K. Murray, ‘ Evaluation of a distributed single address space operating system’, Proceedings of the 16th International Conference on Distributed Computing Systems, Hong Kong, May 1996, pp. 494–501. IEEE.
- 11 T. Wilkinson, ‘ Implementing Fault Tolerance in a 64-Bit Distributed Operating System’, PhD Thesis, Systems Architecture Research Centre, City University, London, UK, July 1993.
- 12 T. Wilkinson, K. Murray, A. Saulsbury and T. Stiemerling, ‘ Compiling for a 64-bit single address space architecture’, Technical report TCU/SARC/1993/1, Systems Architecture Research Centre, City University, London, UK, March 1993.
- 13 S. J. Mullender and A. S. Tanenbaum, ‘The design of a capability-based distributed operating system’, The Computer Journal, 29, 289–299, 1986.
- 14 J. S. Chase, H. M. Levy, M. J. Feeley and E. D. Lazowska, ‘Sharing and protection in a single-address-space operating system’, ACM Transactions on Computer Systems, 12: 271–307 (November 1994).
- 15 M. Anderson, R. Pose and C. S. Wallace, ‘A password-capability system’, The Computer Journal, 29: 1–8 (1986).
- 16 I. Leslie, D. McAuley, R. Black, T. Roscoe, P. Barham, D. Evers, R. Fairbairns and E. Hyden, ‘The design and implementation of an operating system to support distributed multimedia applications’, IEEE Journal on Selected Areas in Communications, 14; 1280–1297, (1996).
- 17 J. Rosenberg, A. Dearle, D. Hulse, A. Lindstrom and S. Norris, ‘Operating system support for persistent and recoverable computations’, Communications of the ACM, 39(9); 62–69 (September 1996).
- 18 A. Lindstrom, J. Rosenberg and A. Dearle, ‘ The grand unified theory of address spaces’, Proceedings of the 5th Workshop on Hot Topics in Operating Systems (HotOS), Orcas Island, WA, May 1995. pp. 66–71. IEEE.
- 19 J. Vochteloo, S. Russell and G. Heiser, ‘ Capability-based protection in the Mungi operating system’, Proceedings of the 3rd International Workshop on Object Orientation in Operating Systems, Asheville, NC, December 1993, pp. 108–115. IEEE.
- 20 J. B. Carter, J. K. Bennett and W. Zwaenepoel, ‘Techniques for reducing consistency-related communication in distributed shared memory systems’, ACM Transactions on Computer Systems, 13: 205–243 (1995).
- 21 G. Heiser, J. Vochteloo, K. Elphinstone and S. Russell, ‘ The Mungi kernel API/Release 1.0’, Technical Report UNSW-CSE-TR-9701, School of Computer Science and Engineering, University of NSW, Sydney 2052, Australia, March 1997.
- 22 C. S. Wallace, ‘Physically random generator’, Computer Systems Science & Engineering, 5; 82–88 (1990).
- 23 D. Kotz and P. Crow, ‘The expected lifetime of single-address-space operating systems’, Computing Systems, 9; 155–178 (1996).
- 24 G. Heiser, F. Lam and S. Russell, ‘Resource management in the Mungi single-address-space operating system’, Proceedings of the 21st Australasian Computer Science Conference, Perth, Australia, February 1998. Springer-Verlag. (Also available as UNSW-CSE-TR–9705 from http://www.cse.unsw.edu.au/school/research/tr.html.)
- 25 J. Vochteloo, ‘ Design, Implementation and Performance of Protection in Mungi’, PhD thesis, School of Computer Science and Engineering, University of NSW, Sydney 2052, Australia, July 1998.
- 26 H. M. Levy, Capability-Based Computer Systems, Digital Press, 1984.
- 27 R. Needham and R. Walker, ‘ The Cambridge CAP computer and its protection system’, Proceedings of the 6th ACM Symposium on OS Principles, November 1977, pp. 1–10. ACM.
- 28 V. Berstis, ‘ Security and protection in the IBM System/38’, Proceedings of the 7th Symposium on Computer Architecture, May 1980, pp. 245–250. ACM/IEEE.
- 29 J. Vochteloo, K. Elphinstone, S. Russell and G. Heiser, ‘ Protection domain extensions in Mungi’, Proceedings of the 5th International Workshop on Object Orientation in Operating Systems, Seattle, WA, October 1996, pp. 161–165. IEEE.
- 30 K. Elphinstone, S. Russell, G. Heiser and J. Liedtke, ‘ Supporting persistent object systems in a single address space’, Proceedings of the 7th International Workshop on Persistent Object Systems, Cape May, NJ, USA, May 1996, pp. 111–119. Morgan Kaufmann.
- 31 C. Chao, M. Mackey and B. Sears, ‘ Mach on a virtually addressed cache architecture’, USENIX Mach Workshop, 1990, pp. 31–51.
- 32 Portable Operating System Interface (POSIX)-Part 1: System Application Program Interface (API) [C Language]. IEEE, 1990. (IEEE Std 1003.1-1990, ISO/IEC 9945-1: 1990).
- 33 D. Presotto, R. Pike, K. Thompson and H. Trickey, ‘ Plan 9, a distributed system’, EurOpen Conference, Tromsø, Norway, May 1991, pp. 43–50.
- 34 J. Liedtke, ‘ On μ-kernel construction’, Proceedings of the 15th ACM Symposium on OS Principles, Copper Mountain, CO, December, 1995, pp. 237–250.
- 35 J. Liedtke, K. Elphinstone, S. Schonberg, H. Hartig, G. Heiser, N. Islam and T. Jaeger, ‘ Achieved IPC performance (still the foundation for efficiency)’, Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS), Cape Cod, MA, May 1997, pp. 28–31. IEEE.
- 36 J. Liedtke, ‘ A basis for huge fine-grained address spaces and user level mapping’, Proceedings of the 7th European Conference on Object Oriented Programming (ECOOP), Workshop on Granularity of Objects in Distributed Systems (GODS'93), Kaiserslautern, Germany, July 1993.
- 37 J. Liedtke, On the Realization Of Huge Sparsely-Occupied and Fine-Grained Address Spaces, Olden-bourg, Munich, Germany, 1996.
- 38 A. Chang and M. F. Mergen, ‘801 Storage: Architecture and programming’, ACM Transactions on Computer Systems, 6; 28–50 (1988).
- 39 M. Talluri, M. D. Hill and Y. A. Khalid, ‘ A new page table for 64-bit address spaces’, Proceedings of the 15th ACM Symposium on OS Principles, Copper Mountain Resort, CO, December 1995, pp. 184–200. ACM.
- 40 H. Hartig, M. Hohmuth, J. Liedtke, S. Schonberg and J. Wolter, ‘ The performance of μ-kernel-based systems’, Proceedings of the 16th ACM Symposium on OS Principles, St. Malo, France, October 1997, pp. 66–77. ACM.
- 41 J. Liedtke, ‘ Clans & chiefs’, 12. GI/ITG-Fachtagung Architektur von Rechensystemen, Kiel, 1992, pp. 294–305. Springer-Verlag.
- 42 M. J. Feeley, J. S. Chase and E. D. Lazowska, ‘ User-level threads and interprocess communication’, Technical Report 93-02-03, Department of Computer Science, University of Washington, Seattle, WA, 1993.
- 43 G. Gonnet and R. Baeza-Yates, Handbook of Algorithms and Data Structures ( 2nd ed) Addison-Wesley, 1990.
- 44 R. G. G. Cattell and J. Skeen, ‘Object operations benchmark’, ACM Transactions on Database Systems, 17, 1–31 (1992).