machine-independent virtual memory management for paged uniprocessor and multiprocessor...

16
Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural Support for Programming Languages and Operating Systems Palo Alto, October 1987 A summary by Nick Rayner for PSU CS533, Spring 2006

Upload: erica-hudson

Post on 05-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

Machine-Independent Virtual Memory Management for Paged Uniprocessor and

Multiprocessor Architectures

R. Rashid, et al.2nd Symposium on Architectural Support for

Programming Languages and Operating SystemsPalo Alto, October 1987

A summary by Nick Rayner

for PSU CS533, Spring 2006

Page 2: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

2

Overview of Contribution

• Portability– Fixed, simple hardware interface

• Capability– Advanced memory management in software

• Integration– Memory management is message passing

• Customization– User-defined memory handlers

Page 3: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

3

Mach Review

• Task: resource allocation unit– Paged virtual address space

• Thread: CPU utilization unit– Independent program counter within task

• Port: protected queue for messages

• Message: typed collection of data objects

• Memory Object: managed data collection– Can be mapped into task address space

Page 4: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

4

VM Features

• Address ranges map to memory objects

• 9 standard task operations available

• Copy-on-write sharing between tasks

• Read/write sharing with child tasks

• “Pager” tasks associated with memory objects control faults and page-outs

Page 5: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

5

Data Structures

• Resident page table– Indexed on physical page number

• Address map– Virtual ranges to object regions

• Memory objects– Backing storage, kernel or user managed

• Pmap– Machine dependent memory mapping

Page 6: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

6

Memory Paging

• Physical pages ≠ hardware pages– Physical size a boot time parameter– Must be power of 2 multiple of hardware size

• Physical pages ≠ memory object pages– Object handlers may use their own policies

Page 7: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

7

Resident Page Table

• Modified and Reference bits

• Memory object list links table entries for each object

• Allocation queues for free, reclaimable, and allocated pages

• Hash buckets based on object & offset

Page 8: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

8

Address Maps

• Doubly linked list of entries sorted by virtual address

• Byte offsets within a memory object for task virtual address ranges

• Inheritance and protection attributes

• Last fault “hint” pointers may be kept

Page 9: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

9

Memory Objects

• Reference counters allow garbage collection– Cache maintained for rapid reuse– Pagers may request caching

• Kernel manages pages in primary memory

• Pager handles store and fetch

• Standard ports and fixed interface govern pager--kernel communication

Page 10: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

10

Sharing

• Copy-on-write: “shadow object” created– If no write, only contains link to source– On write, contains update and link– Chain develops with repeated copies– Kernel collects unneeded intermediates

• Read/write: indirection via “sharing map”– Equivalent to address map entry– Pointed to by address maps of sharing tasks

Page 11: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

11

Machine Dependence: pmap.c

• Must implement 16 specific routines (even if they have no function)

• Must maintain pmaps

• Must switch pmap appropriately

• Not expected to have full accounting

• Should have “frequently referenced task addresses” and current kernel map

Page 12: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

12

Hardware Assessment

• By isolating architecture role to support of Mach-defined interface, the authors claim the system can provide a “relatively unbiased assessment” of hardware design alternatives

• No mention is made of how one could control for the specific pmap.c implementation used in each case

Page 13: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

13

Performance

•Net benefit shown for all machines•Note that user-space pagers or memory objects unlikely

Tables 7-1 and 7-2 of the paper

Page 14: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

14

Weaknesses

• Shadow chains can be lengthy and redundant. Kernel garbage collection may be incomplete and requires “complex” locking for multiprocessors (suggesting overhead and possible contention).

• Paging services at user level require context switching away from kernel fault handler and then back again

• TLB consistency issues in SSM

Page 15: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

15

Strengths

• Porting requires altering only a single module, and has been successfully accomplished by a novice C programmer

• Sharing facilities improve parameter passing possibilities

• External memory objects with paging services support distributed systems as well as arbitrary backing storage

Page 16: Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures R. Rashid, et al. 2 nd Symposium on Architectural

16

Conclusion

• Portability and capability demonstrated (at least with kernel-managed objects)

• No clear sense of how the tradeoffs might play out with significant user-level additions