[null, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/16/5004159/big_thumb.jpg", "src": "https://slideplayer.com/16/5004159/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "By: Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baronn, David Black, William Bolosky, and Jonathan Chew, October 1987 Presented."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/13/3610528/big_thumb.jpg", "src": "https://slideplayer.com/13/3610528/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "G22.3250-001 Robert Grimm New York University Virtual Memory."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/26/8530543/big_thumb.jpg", "src": "https://slideplayer.com/26/8530543/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "A summary by Nick Rayner for PSU CS533, Spring 2006"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/13/3610535/big_thumb.jpg", "src": "https://slideplayer.com/13/3610535/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "MACHINE-INDEPENDENT VIRTUAL MEMORY MANAGEMENT FOR PAGED UNIPROCESSOR AND MULTIPROCESSOR ARCHITECTURES R. Rashid, A. Tevanian, M. Young, D. Golub, R. Baron,"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/27/9036392/big_thumb.jpg", "src": "https://slideplayer.com/27/9036392/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/27/8916777/big_thumb.jpg", "src": "https://slideplayer.com/27/8916777/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "1 Machine-Independent Virtual Memory Management of Paged Uniprocessor and Multiprocessor Architectures by Rashid, Tevanian, Young, Golub, Baron, Black,"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/26/8593885/big_thumb.jpg", "src": "https://slideplayer.com/26/8593885/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/16/5089141/big_thumb.jpg", "src": "https://slideplayer.com/16/5089141/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Yousuf Surmust Instructor: Marius Soneru Course: CS550 Fall 2001"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/17/5347091/big_thumb.jpg", "src": "https://slideplayer.com/17/5347091/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "CS533 Concepts of Operating Systems Class 14 Extensible Virtual Memory Management."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/16/5161379/big_thumb.jpg", "src": "https://slideplayer.com/16/5161379/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/16/4979571/big_thumb.jpg", "src": "https://slideplayer.com/16/4979571/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Virtual Memory Virtual Memory Management in Mach Labels and Event Processes in Asbestos Ingar Arntzen."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/26/8576917/big_thumb.jpg", "src": "https://slideplayer.com/26/8576917/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "1 Threads, SMP, and Microkernels Chapter 4. 2 3 Multithreading Operating system supports multiple threads of execution within a single process MS-DOS."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/32/9839020/big_thumb.jpg", "src": "https://slideplayer.com/32/9839020/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/16/5188495/big_thumb.jpg", "src": "https://slideplayer.com/16/5188495/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Computer Organization and Architecture"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/17/5372967/big_thumb.jpg", "src": "https://slideplayer.com/17/5372967/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/27/9106973/big_thumb.jpg", "src": "https://slideplayer.com/27/9106973/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "M a c O S X CS-450-1: Operating Systems Fall 2005 Matt Grady \u2013 Mike O\u2019Connor \u2013 Justin Rains."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/27/9082197/big_thumb.jpg", "src": "https://slideplayer.com/27/9082197/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "The Mach System Silberschatz et al Presented By Anjana Venkat."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/24/6972777/big_thumb.jpg", "src": "https://slideplayer.com/24/6972777/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Paper Review Mach : A New Kernel Foundation For UNIX Development Chan Seok Kang 2013/02/26."}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/27/9072637/big_thumb.jpg", "src": "https://slideplayer.com/27/9072637/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Processes and Virtual Memory"}, null, {"document_url": "http://slideplayer.com/slide/3610595/", "unformatted_src": "/31/9784587/big_thumb.jpg", "src": "https://slideplayer.com/31/9784587/big_thumb.jpg", "formatted_filename": "big thumb", "alt_text": "Lectures 8 & 9 Virtual Memory - Paging & Segmentation System Design."}, null, null]
Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures Jordan Acedera Ishmael Davis Justin Augspurger Karl.

Published byKeagan Walbridge Modified over 2 years ago


Presentation on theme: "Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures Jordan Acedera Ishmael Davis Justin Augspurger Karl."— Presentation transcript:

1 Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures Jordan Acedera Ishmael Davis Justin Augspurger Karl Banks

2 Introduction Many OS do not have VM support Mach goals: – Exploit hardware/software relationship – Portability – Handling of page faults Mach extends UNIX support Compatibility

3 Mach runs on the following systems: – VAX processors – IBM RT PC – SUN 3 – Encore Multimax – Sequent Balance 21000

4 Mach Design Basic abstractions – Task – Thread – Port – Message – Memory Object

5 Mach Design Basic Operations – Allocate memory – Deallocate memory – Set protection status – Specify inheritance – Create/Manage memory objects Limits of Mach Design

6 Mach Design

7 The Implementation of Mach Virtual Memory Presented by: Karl Banks

8 Data Structures Resident page table: keeps track of Mach pages residing in main memory (machine independent) Address map: a doubly linked list of map entries, each of which maps a range of virtual addresses to a region of a memory object Memory object: a unit of backing storage such as a disk file or a swap area Pmap: the memory-mapping data structure used by the hardware (machine dependent)

9 Pager Managing task; one associated with each memory object Handles page faults and page-out requests outside of the kernel If kernel sends pageout request to a user-level pager, it can decide which page to swap out If pager is uncooperative, default pager will be invoked to perform the necessary pageout

10 Mach Implementation Diagram Virtual address space of a process External Pager Default Pager Swap area File System

11 Sharing Memory: Copy-on-Write Case: tasks only read Supports memory-sharing across tasks

12 Sharing Memory: Copy-on-Write Case: write “copied” data New page allocated only to writing task Shadow object created to hold modified pages

13 Sharing Memory: Shadow Objects Collects modified pages resulting from copy-on- write page faults Initially empty with pointer to its shadowed object Only contains modified pages, relies on original object for rest Can create chain of shadow objects System proceeds through list until page is found Complexity handled by garbage collection

14 Sharing Memory: Read/Write Data structure for copy-on-write not appropriate (read/write sharing could involve mapping several memory objects) Level of indirection needed for a shared object

15 Sharing Memory: Sharing Maps Identical to address map, points to shared object Address maps point to sharing maps in addition to memory objects Map operations are then applied simply to sharing map Sharing maps can be split and merged, thus no need to reference others

16 Virtual Memory Management Part 2 Jordan Acedera Karl Banks Ishmael Davis Justin Augspurger

17 Porting Mach First installed on VAX architecture machines By May 1986 it was available for use – IBM RT PC, SUN 3, Sequent Balance, and Encore MultiMAX machines. A year later there were 75 IBM RT PC’s running Mach

18 Porting Mach All 4 machine types took about the same time to complete the porting process Most time spent was debugging the compilers and device drivers Estimated time was about 3 weeks for the pmap module implementation – Large part of that time was spent understanding the code

19 Assessing Various Memory Management Architectures Mach does not need the hardware data structure to manage virtual memory Mach – Need malleable TLB, with little code needed written for the pmap Pmap module will manipulate the hardware defined in-memory structures, which will control the state of the internal MMU TLB. – Though this is true, each hardware architecture has had issues with both the uni and multi processors.

20 Uniprocessor Issues Mach on the VAX – In theory a 2Gb address space is allocated to a process Problem – not practical - A large amount of space needed linear page table (8 MB) UNIX – Page tables in physical memory – Addresses only get 8, 16, or 64MB per process

21 Uniprocessor Issues VAX VMS – Pageable tables in the kernel’s virtual address space. Mach on the VAX – Page tables kept in physical memory – Only constructs the parts needed to map the virtual to real address for the pages currently being used.

22 Uniprocessor Issues IBM RT PC – Uses a single inverted page (not per-task table) Describes mapping for the addresses – Uses the hashing function for the virtual address translation (allows a full 4GB address space) Mach on IBM RT PC – Reduced memory requirements benefits – Simplified page table requirements – Only allows one mapping for each physical page (can cause page faults when sharing)

23 Uniprocessor Issues SUN 3 – Segments and page tables are used for the address maps (up to 256 MB each) – Helps with implementing spares addressing Only 8 contexts can exist at one time Mach on the SUN 3 – SUN 3 had an issue with display memory addressable as “high” physical memory. The Mach OS handled the issue with machine dependent code

24 Uniprocessor Issues Encore Multimax and Sequent Balance – Both Machines used the National 32082 MMU, which had problems Only 16 MB of VM can be addressed per page table Only 32 MB of physical memory can be addressed. A read-modify-write fault reported as a read fault – Mach depended on correct faults being handled – This was taken care of with the next MMU – National 32382

25 Multiprocessor Issues None of the multiprocessors running Mach supported TLB consistency To guarantee consistency, the kernel will have to know which processors have the old mapping in the TLB and make it flush Unfortunately – its impossible to reference or modify a TLB remotely or any of the multi processors running Mach

26 Multiprocessor Issues 3 solutions – 1 interrupt all CPU’s using a shared portion of an address and flush their buffers When a change is critical – 2 hold on map changing until all CPU’s have been flushed using a timer interrupt When mappings need to be removed from the hardware address maps – 3 allow temp inconsistency Acceptable because the operation semantics do not need to be simultaneous

27 Integrating Loosely-coupled and Tightly- coupled Systems Difficulties in building a universal VM model – different address translation hardware – different shared memory access between multiple CPUs fully shared/uniform access time (Encore MultiMax, Sequent Balance) shared/non-uniform access time (BBN Butterfly, IBM RP3) non-shared, message-based (Intel Hypercube) Mach is ported only for uniform shared memory (tightly- coupled) multiprocessor systems Mach does contain mechanisms for loosely-coupled multiprocessor systems.

28 Measuring VM Performance Mach performance is favored

29 Measuring VM Performance Program compiling, Compiling Mach kernel Mach performance is favored

30 Relations to Previous Work Mach's VM functionality derives from earlier OS – Accent and/or Multics Virtual space segment creation corresponding with files and other permanent data Efficient, large VM transfers between protected address spaces – Apollo's Aegis, IBM's System/38, CMU's Hydra Memory mapped objects – Sequent's Dynix, Encore's Umax Shared VM systems for multiprocessors

31 Relations to Previous Work Mach differs in its sophisticated VM features not tied to a specific hardware base Mach differs in its ability to additionally work in a distributed environment

32 Conclusion Growth of portable software and use of more sophisticated VM mechanisms lead to a need for a less intimate relationship between memory architecture and software Mach shows possibilities of – Portable VM management with few reliances on system hardware – VM management without negative performance impact Mach runs on a variety of machine architectures
 By: Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baronn, David Black, William Bolosky, and Jonathan Chew, October 1987 Presented. G Robert Grimm New York University Virtual Memory. A summary by Nick Rayner for PSU CS533, Spring 2006 M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun. 1 Machine-Independent Virtual Memory Management of Paged Uniprocessor and Multiprocessor Architectures by Rashid, Tevanian, Young, Golub, Baron, Black, CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer. Yousuf Surmust Instructor: Marius Soneru Course: CS550 Fall 2001 CS533 Concepts of Operating Systems Class 14 Extensible Virtual Memory Management. 1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications. Virtual Memory Virtual Memory Management in Mach Labels and Event Processes in Asbestos Ingar Arntzen. 1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS. Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous. Computer Organization and Architecture 1 OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features. M a c O S X CS-450-1: Operating Systems Fall 2005 Matt Grady – Mike O’Connor – Justin Rains. The Mach System Silberschatz et al Presented By Anjana Venkat. Paper Review Mach : A New Kernel Foundation For UNIX Development Chan Seok Kang 2013/02/26. Processes and Virtual Memory Lectures 8 & 9 Virtual Memory - Paging & Segmentation System Design.

 8. Mach. History of Mach Mach’s earliest roots go back to a system called RIG (Rochester Intelligent Gateway), which began at the University of Rochester.
