Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

Sharing and protection in a single-address-space operating system

Published: 01 November 1994 Publication History

Abstract

This article explores memory sharing and protection support in Opal, a single-address-space operating system designed for wide-address (64-bit) architectures. Opal threads execute within protection domains in a single shared virtual address space. Sharing is simplified, because addresses are context independent. There is no loss of protection, because addressability and access are independent; the right to access a segment is determined by the protection domain in which a thread executes. This model enables beneficial code-and data-sharing patterns that are currently prohibitive, due in part to the inherent restrictions of multiple address spaces, and in part to Unix programming style.
We have designed and implemented an Opal prototype using the Mach 3.0 microkernel as a base. Our implementation demonstrates how a single-address-space structure can be supported alongside of other environments on a modern microkernel operating system, using modern wide-address architectures. This article justifies the Opal model and its goals for sharing and protection, presents the system and its abstractions, describes the prototype implementation, and reports experience with integrated applications.

References

[1]
A_LLCHIN, J. AND MCKENDRY, M. 1983. Synchronization and recovery of actions. In Proceedings of the 2nd ACM Symposium on Principles of Distributed Computing. ACM, New York, 31-44.
[2]
ALMES, G. T., BLACK, A. P., LAZOWSKA, E. D., AND NOE, J. D. 1985. The Eden system: A technical review. IEEE Trans. Softw. Eng. SE-11, I (Jan.), 43-59.
[3]
ANDERSON, M., POSE, R. D., AND WALLACE, C. S. 1986. The password-capability system. Comput. J. 29, I (Feb.), 1-8.
[4]
ANDERSON, T. E., BER8HAD, B. N., LAZOWSKA, E. D., AND LEVY, H.M. 1992. Scheduler activations: Effective kernel support for the user-level management of parallelism. ACM Trans. Comput. Syst. 10, i (Feb.), 53 79.
[5]
BEI~SHA~, B., ANDERSON, T., LAZOWSKA, E., AND LEVY, H. 1990. Lightweight remote procedure call. ACM Trans. Comput. Syst. 8, i (Feb.).
[6]
BEgSHAD, B., ZEKAUSKAS, M., AND SAWDON, W. 1993. The Midway distributed shared memory system. In Proceedings of the 1993 IEEE Computer Conference. 1EEE, New York.
[7]
CARTER, J. g., BENNETT, J. K., AND ZWAENEPOEL, W. 1991. Implementation and performance of Munin. In Proceedings of the 13th Symposium on Operating Systems Principles. ACM, New York, 152 164.
[8]
CHANG, A. AND MERGEN, M.F. 1988. 801 storage: Architecture and programming. ACM Trans. Comput. Syst., 6, i (Feb.), 28 50.
[9]
CHAO, C., MACKEY, M., AND SEARS, B. 1990. Mach on a virtually addressed cache architecture. In Usenix Mach Workshop Proceedings. USENIX Association, Berkeley, Calif., 31-51.
[10]
CHASE, J. S., AMADOR, F. G., LAZOWSKA, E. D., LEVY, H. M., AND LITTLEFIELD, R.J. 1989. The Amber system: Parallel progTamming on a network of multiprocessors. In Proceedings of the 12th ACM Symposium on Operating- System Principles. ACM, New York, 147-158.
[11]
COCKSHOT, W. P., ATKINSON, M. P., AND CHISHOLM, K.J. 1984. Persistent object management system. Softw. Pract. Exp. 14, i (Jan.).
[12]
CUSTER, H. 1993. Inside Windows/NT. Microsoft Press, Redmond, Wash.
[13]
DALEY, R. C. AND DENNIS, J. B. 1968. Virtual memory, processes, and sharing in Multics. Commun. ACM 11, 5 (May), 306-312.
[14]
DENNIS, J. B. AND VAN HORN, E. C. 1966. Programming semantics for multiprogrammed computations. Commun. ACM 9, 3 (Mar.), 143 155.
[15]
DIGITAL EQUIPMENT CORPORATION. 1992. Alpha Architecture Handbook. Digital Equipment Corp., Maynard, Mass.
[16]
DRUSCHEL, P. AND PETERSON, L. 1992a. High performance cross-domain data transfer. Tech. Rep. 92-11, Dept. of Computer Science, Univ. of Arizona, Tucson, Ariz.
[17]
DRUSCHEL, P., PETERSON, L. L., AND HUTCHINSON, N. C. 1992b. Decoupling modularity and protection in Lipto. In Proceedings of the 12th International Conference on Distributed Computing Systems. IEEE, New York.
[18]
FABRY, R.S. 1974. Capability-based addressing. Commun. ACM 17, 7 (July), 403-412.
[19]
FEELEY, M. J., CHASE, J. S., AND LAZOWSKA, E.D. 1993. User-level threads and interprocess communication. Tech. Rep. 93-02-03, Dept. of Computer Science and Engineering, Univ. of Washington, Seattle, Wash.
[20]
GARRETT, W., SCOTT, M., BIANCHINI, R., KONTOTHANASSiS, L., MCCALLUM, R., THOMAS, J., WISNIEWSKI, R., AND LUK, S. 1993. Linking shared segments. In Proceedings of the Winter 1993 Usenix. USENIX Association, Berkeley, Calif.
[21]
GRISWOLD, W. AND NOTKIN, D. 1990. Program restructuring to aid software maintenance. Tech. Rep. 90-08-05, Dept. of Computer Science and Engineering, Univ. of Washington, Seattle, Wash.
[22]
GROVES, R. D. AND OEHLER, R. 1990. RISC system/6000 processor architecture. IBM RISC System/6000 Technology, M. Misra, Ed. International Business Machines, Armonk, N.Y.
[23]
HOUDEK, M., SOLTIS, F., AND HOFFMAN, R.L. 1981. IBM system/38 support for capability-based addressing. In Proceedings of the 8th Symposium on Computer Architecture. ACM/IEEE, New York.
[24]
HUCK, J. AND HAYS, J. 1993. Architectural support for translation table management in large address space machines. In Proceedings of the 20th Annual International Symposium on Computer Architecture. ACM/IEEE, New York.
[25]
INTERNATIONAL BUSINESS MACHINES. 1988. Application System/400 Technology. International Business Machines, Armonk, N.Y.
[26]
JUL, E., LEVY, H., HUTCHINSON, N., AND BLACK, A. 1988. Fine-grained mobility in the Emerald system. ACM Trans. Comput. Syst., 6, i (Feb.) 109-133.
[27]
KALET, I., JACKY, J., I~OMHOUT-SHIRO, S., NIEHAUS, M., SWEENEY, C., AND UNGER, J. 1991. The Prism radiation treatment planning system. Tech. Rep. 91-10-03, Radiation Oncology Dept., Univ. of Washington, Seattle, Wash.
[28]
KOLDINGER, E. J., CHASE, J. S., AND EGGERS, S.J. 1992. Architectural support for single address space operating systems. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems. ACM SIGOPS Oper. Syst. Rev. 26 (Oct.).
[29]
KOTZ, D. AND CROW, P. 1993. The expected lifetime of "single-address-space" operating systems. In Proceedings of the ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS '94). ACM, New York.
[30]
I~AKOWIAK, S., MEYSEMBOURG~ M.~ VAN, H. N.~ t~IVEILL~ M., ROISIN, O, AND DE PINA~ X. R, 1990. Design and implementation of an object-oriented, strongly typed language for distributed applications. J. Obj. Orient. Program. 3, 3 (Sept.), 11-22.
[31]
LAMB, C., LANDIS, G., ORENSTEIN, J., AND WEINREB, D. 1991. The Object Store database system. Cornmun. ACM 34, 10 (Oct.).
[32]
LEE, R.B. 1989. Precision architecture. IEEE Comput. I (Jan.), 78-91.
[33]
LEVY, H.M. 1984. Capability-Based Computer Systems. Digital Press, Bedford, Mass.
[34]
McCABE, T. 1991. Programming with mediators: Developing a graphical mesh environment. Master's thesis, Dept. of Computer Science and Engineering, Univ. of Washington, Seattle, Wash.
[35]
MCJONES, P. R. AND SWART, G. F. 1987. Evolving the Unix system interface to support multithreaded programs. Tech. Rep. 21, DEC Systems Research Center, Palo Alto, Calif.
[36]
MIPS COMPUTER SYSTEMS. 1991. MIPS R4000 Microprocessor User's Manual. 1st ed. MIPS Computer Systems, Inc., Sunnyvale, Calif.
[37]
MULLENDER, S. AND TANENBAUM, A. 1986. The design of a capability-based operating system. Comput. J. 29, 4, 289-299.
[38]
MURRAY, K., SAULSBURY, A., STEIMERLING, T., WILKINSON, T., KEI,LY, P., AND OSMON, P. 1993. Design and implementation of an object-oriented 64-bit single address space microkernel. In the 2nd USENIX Symposium on Microkernels and Other Architectures. USENIX Association, Berkeley, Calif.
[39]
OKAMOTO, T., SEGAWA, I-I., SHIN, S., NOZUE, H., MAEDA, K., AND SAITO, M. 1992. A micro-kernel architecture for next generation processors. In USENIX Workshop on Microkernels and Otker Kernel Architectures. USENIX Association, Berkeley, Calif.
[40]
ORGANICK, E.I. 1983. A Programmer's View of the Intel 432 System. McGraw-Hill, New York.
[41]
POLLACK, F. J., KAHN, K. C., AND WILKINSON, R.M. 1981. The iMAX-432 object filing system. In Proceedings of the 8th ACM Symposium on Operating Systems Principles. ACM, New York.
[42]
REDELL, D., DALAL, Y., HORSLEY, T., LAUER, H., LYNCH, W., MCJONES, P., MURRAY, H., AND PURCELL, S. 1980. Pilot: An operating system for a personal computer. Commun. ACM 23, 2 (Feb.), 81-92.
[43]
ROSENnERC, J. 1992. Architectural and operating system support for orthogonal persistence. Comput. Syst. 5, 3 (July).
[44]
ROSENBERG, J. AND ABRAMSON, D. 1985. MONADS-PC: A capability-based workstation to support software engineering. In Proceedings of the 18th Hawai International Conference on System Sciences. ACM, New York.
[45]
ROZlER, M., ABROSSIMOV, V., ARMAND, F., BOULE, I., GLEN, M., GUILLEMONT, M., HERRMANN, F., LEONARD, P., LANGLOIS, S., AND NEUHAUSER, W. 1988. Chorus distributed operating systems. Comput. Syst. 1, 4.
[46]
SCOTT, M. L., LEBLANC, T. J., AND MARSH, B.D. 1990. Multi-model parallel programming in Psyche. In Proceedings of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM, New York, 70-78.
[47]
SHAPIRO, M. 1986. Structure and encapsulation in distributed systems: The proxy principlo. In Proceedings of the 6th International Conference on Distributed Computing Systems.
[48]
SHEKITA, E. AND ZWILLING, m. 1990. Cricket: A mapped, persistent object store. In Proceedings of the 4th International Workshop on Persistent Object Systems: Design, Implementation and Use.
[49]
SIEWIOREK, D. P., BELL, C. G., AND NEWELL, A. 1982. Computer Structures: Readings and Examples. McGraw Hill, New York.
[50]
SOLTIS, F.G. 1981. Design of a small business data processing system. IEEE Comput. 14, 9 (Sept.).
[51]
SULLIVAN, K. AND NOTKIN, D. 1992. Reconciling environment integration and software evolution. ACM Trans. Softw. Eng. 1, 3 (July).
[52]
SWINEHART, U., ZELLWEGER, P., BEACH, R., AND HAGMANN, R. 1986. A structural view of the Cedar programming environment. ACM Trans. Program. Lang. Syst. 4, 8 (Oct.).
[53]
VOCHTELLO, J., RUSSELL, S., AND HEISER, G. 1993. Capability-based protection in a persistent global virtual memory system. In the 3rd International Workshop on Object-Oriented Memory Systems. IEEE, New York.
[54]
WILSON, P.R. 1991. Pointer swizzling at page fault time: Efficiently supporting huge address spaces on standard hardware. ACM SIGARCH Comput. Arch. News 19, 4 (June).
[55]
WULF, W. A., LEVIN, R., AND PIERSON, C. 1975. Overview of the Hydra operating system development. In Proceedings of the 5th Symposium on Operating Systems Principles. ACM SIGOPS, New York, 122-131.
[56]
YARVIN, C., BUKOWSKI, R., AND ANDERSON, T. 1993. Anonymous RPC: Low Latency protection in a 64-bit address space. In Proceedings of the Summer USENIX Conference. USENIX Association, Berkeley, Calif.
[57]
YOUNG, M., TEVANIAN, A., RASHiD, R., GOLUB, D., EPPINGER, J., CHEW, J., BOLOSKY, W., BLACK, D., AND BARON, a. 1987. The duality of memory and communication in the implementation of a multiprocessor operating system. In Proceedings of the 11th ACM Symposium on Operating' Systems Principles. ACM, New York, 63-76.

Cited By

View all
  • (2024)Prosper: Program Stack Persistence in Hybrid Memory Systems2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00091(1168-1183)Online publication date: 2-Mar-2024
  • (2023)Thoughts on Merging the File System with the Virtual Memory System: Design decisions and their ramifications in developing the Osprey kernelProceedings of the International Symposium on Memory Systems10.1145/3631882.3631895(1-7)Online publication date: 2-Oct-2023
  • (2023)Morsels: Explicit Virtual Memory ObjectsProceedings of the 1st Workshop on Disruptive Memory Systems10.1145/3609308.3625267(52-59)Online publication date: 23-Oct-2023
  • Show More Cited By

Index Terms

  1. Sharing and protection in a single-address-space operating system

                                    Recommendations

                                    Comments

                                    Please enable JavaScript to view thecomments powered by Disqus.

                                    Information & Contributors

                                    Information

                                    Published In

                                    Publisher

                                    Association for Computing Machinery

                                    New York, NY, United States

                                    Publication History

                                    Published: 01 November 1994
                                    Published in TOCS Volume 12, Issue 4

                                    Permissions

                                    Request permissions for this article.

                                    Check for updates

                                    Author Tags

                                    1. 64-bit architectures
                                    2. capability-based systems
                                    3. microkernel operating systems
                                    4. object-oriented database systems
                                    5. persistent storage
                                    6. protection
                                    7. single-address-space operating systems
                                    8. wide-address architectures

                                    Qualifiers

                                    • Article

                                    Contributors

                                    Other Metrics

                                    Bibliometrics & Citations

                                    Bibliometrics

                                    Article Metrics

                                    • Downloads (Last 12 months)439
                                    • Downloads (Last 6 weeks)23
                                    Reflects downloads up to 24 Sep 2024

                                    Other Metrics

                                    Citations

                                    Cited By

                                    View all
                                    • (2024)Prosper: Program Stack Persistence in Hybrid Memory Systems2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00091(1168-1183)Online publication date: 2-Mar-2024
                                    • (2023)Thoughts on Merging the File System with the Virtual Memory System: Design decisions and their ramifications in developing the Osprey kernelProceedings of the International Symposium on Memory Systems10.1145/3631882.3631895(1-7)Online publication date: 2-Oct-2023
                                    • (2023)Morsels: Explicit Virtual Memory ObjectsProceedings of the 1st Workshop on Disruptive Memory Systems10.1145/3609308.3625267(52-59)Online publication date: 23-Oct-2023
                                    • (2023)TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVMProceedings of the 29th Symposium on Operating Systems Principles10.1145/3600006.3613160(1-16)Online publication date: 23-Oct-2023
                                    • (2023)DEV-PIM: Dynamic Execution Validation with Processing-in-Memory2023 IEEE European Test Symposium (ETS)10.1109/ETS56758.2023.10174063(1-6)Online publication date: 22-May-2023
                                    • (2022)Towards practical multikernel OSes with MySySProceedings of the 13th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3546591.3547525(29-37)Online publication date: 23-Aug-2022
                                    • (2022)Boosting Inter-process Communication with Architectural SupportACM Transactions on Computer Systems10.1145/353286139:1-4(1-35)Online publication date: 5-Jul-2022
                                    • (2022)FlexOS: towards flexible OS isolationProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507759(467-482)Online publication date: 28-Feb-2022
                                    • (2021)FlexOSProceedings of the 22nd International Middleware Conference: Doctoral Symposium10.1145/3491087.3493683(29-32)Online publication date: 6-Dec-2021
                                    • (2021)Don't Let RPCs Constrain Your APIProceedings of the 20th ACM Workshop on Hot Topics in Networks10.1145/3484266.3487389(192-198)Online publication date: 10-Nov-2021
                                    • Show More Cited By

                                    View Options

                                    View options

                                    PDF

                                    View or Download as a PDF file.

                                    PDF

                                    eReader

                                    View online with eReader.

                                    eReader

                                    Get Access

                                    Login options

                                    Full Access

                                    Media

                                    Figures

                                    Other

                                    Tables

                                    Share

                                    Share

                                    Share this Publication link

                                    Share on social media