operating systems - virtual memory

36
UNIVERSITY OF MASSACHUSETTS AMHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Virtual Memory

Upload: emery-berger

Post on 28-Nov-2014

3.481 views

Category:

Technology


0 download

DESCRIPTION

From the Operating Systems course (CMPSCI 377) at UMass Amherst, Fall 2007.

TRANSCRIPT

Page 1: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science

Emery Berger

University of Massachusetts Amherst

Operating SystemsCMPSCI 377

Virtual Memory

Page 2: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science

Virtual Memory

Virtual, not physical memory

Divided into pages

Page tables, TLB

Provides isolation, protection, optimization

Managed using eviction policies

2

Page 3: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 3

Demand-Paged Virtual Memory

Key idea: use RAM as cache for disk

OS transparently moves pages

Requires locality:

Working set (memory referenced recently)must fit in RAM

If not: thrashing (nothing but disk traffic)

Page 4: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 4

Virtual Memory Pages

Memory divided into fixed-sized pages (e.g., 4K, 8K)

Allocates pages to framesin memory

OS manages pages

Moves, removes, reallocates

Copied to and from disk

A

Page 5: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 5

Demand-Paging Diagram

Page 6: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 6

Paging + Locality

Most programs obey 90/10 “rule”

90% of time spent accessing 10% of memory

Exploit this rule:

Only keep “live” parts of process in memory

A

B

AB

Page 7: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 7

Virtual Memory

Processes use virtual addresses

Addresses start at 0

OS lays process down on pages

MMU (memory-management unit):

Hardware support for paging

Translates virtual to physical addresses

Uses page table to keep track of frame assigned to memory page

Page 8: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science

Mapping Virtual to Physical

8

Page 9: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 9

Address Translation

Powers of 2:

Virtual address space: size 2m

Page size 2n

High-order m-n bits of virtual address select page

Low order n bits select offset in page

Page 10: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 10

Paging Hardware: Diagram

Page 11: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 11

Translation Lookaside Buffer (TLB)

TLB: fast, fully associative memory

Caches page table entries

Stores page numbers (key) and frame (value) in which they are stored

Assumption: locality of reference

Locality in memory accesses =locality in address translation

TLB sizes: 8 to 2048 entries

Powers of 2 simplifies translationof virtual to physical addresses

Page 12: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science

TLB Action

12

Page 13: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 13

TLB: Diagram

v = valid bit: entry is up-to-date

Page 14: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 14

Cost of Using TLB

Measure in terms of memory access cost

What is cost if: Page table is in memory?

Page table managed with TLB?

Large TLB: Improves hit ratio

Decreases average memory cost

Page 15: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 15

Sharing

Paging allows sharing of memory across processes Different virtual addresses,

point to same physical address

Shared stuff includes code, data Compiler marks “text” segment (i.e., code) of

applications (e.g., emacs) - read-only

OS: keeps track of such segments Reuses if another instance of app arrives

Copy-on-write

Can greatly reduce memory requirements

Page 16: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 16

Key Policy Decisions

Two key questions: (for any cache):

When do we read page from disk?

When do we write page to disk?

Page 17: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 17

Reading Pages

Read on-demand: OS loads page on its first reference

May force an eviction of page in RAM

Pause while loading page = page fault

Can also perform pre-paging: OS guesses which page will next be needed,

and begins loading it

Most systems just do demand paging

Page 18: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 18

Demand Paging

On every reference, check if page is in memory (valid bit in page table)

If not: trap to OS

OS checks address validity, and

Selects victim page to be replaced

Invalidates old page

Begins loading new page from disk

Switches to other process(paging = implicit I/O)

Note: must restart instruction later

Page 19: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 19

Swap Space

Swap space = where victim pages go

Partition or special file reserved on disk

Sometimes: special filesystem (“tmpfs”)

What kind of victim pages can be evicted without going to swap?

Size of reserved swap space limits what?

Page 20: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 20

Swap Space

Swap space = where victim pages go

Partition or special file reserved on disk

Sometimes: special filesystem (“tmpfs”)

What kind of victim pages can be evicted without going to swap?

Read-only (“text”), untouched anonymous pages

Size of reserved swap space limits what?

Page 21: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 21

Swap Space

Swap space = where victim pages go

Partition or special file reserved on disk

Sometimes: special filesystem (“tmpfs”)

Only read-only or undirtied victim pages can be evicted without going to swap

“text” (code), untouched anonymous pages

Size of reserved swap space limitstotal virtual memory

Page 22: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 22

Cost of Paging

Worst-case analysis – useless

Easy to construct adversary example:every page requires page fault

A, B, C, D, E, F, G, H, I, J, A...

size of available memory

Page 23: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 23

Page Replacement Algorithms

MIN, OPT (optimal)

RANDOM

evict random page

FIFO (first-in, first-out)

give every page equal residency

LRU (least-recently used)

MRU (most-recently used)

Page 24: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 24

MIN/OPT

Invented by Belady (“MIN”)

Now known as “OPT”: optimal page replacement

Evict page to be accessed furthest in the future

Provably optimal policy

Just one small problem...requires predicting the future

Still useful point of comparison

Page 25: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 25

MIN/OPT example

Page faults: 5

Page 26: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 26

RANDOM

Evict any page

Works surprisingly well – why?

Theoretically: very good,but not used in practice:takes no advantage of locality

Page 27: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 27

LRU

Evict page that has not been used in longest time (least-recently used)

Approximation of MIN if recent past is good predictor of future

Variant of LRU used in all real operating systems

Page 28: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 28

LRU example

Page faults: ?

Page 29: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 29

LRU example

Page faults: 5

Page 30: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 30

LRU, example II

Page faults: ?

Page 31: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 31

LRU, example II

Page faults: 12!

Page 32: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 32

FIFO

First-in, first-out: evict oldest page Also has competitive ratio k

But: performs miserably in practice! LRU takes advantage of locality

FIFO does not

Suffers from Belady’s anomaly: More memory can mean more paging!

LRU & other “stack” algs. do not

Page 33: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 33

FIFO & Belady’s Anomaly

Page 34: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 34

MRU

Evict most-recently used page

Shines for LRU’s worst-case: loop that exceeds RAM size

What we really want: adaptive algorithms(e.g., EELRU – Kaplan & Smaragdakis)

A, B, C, D, A, B, C, D, ...

size of available memory

Page 35: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science

The End

35

Page 36: Operating Systems - Virtual Memory

UNIVERSITY OF MASSACHUSETTS AMHERST • Department of Computer Science 36

LRU: No Belady’s Anomaly

Why no anomaly for LRU?