virtual memory - tamu computer science people...

17
CPSC 410/611: Operating Systems Virtual Memory 1 Virtual Memory Overview / Motivation Locality of Reference Demand Paging • Policies – Placement – Replacement – Allocation Process 2 AA BB CC DD EE FF GG 0 1 2 HH logical memory 1 v 0 9 v 1 i 2 i 3 i 4 i 5 i 6 i 7 page table Demand Paging Lazy Swapper: only swap in pages that are needed. Whenever CPU tries to access a page that is not swapped in, a page fault occurs. Process 1 A B C D E F G 0 1 2 3 4 5 6 H 7 logical memory 4 v 0 i 1 10 v 2 i 3 i 4 8 v 5 i 6 i 7 page table 1 6 7 2 3 4 5 0 8 9 10 11 12 physical memory backing store AA BB CC DD A B C D E F A F C AA BB

Upload: lekien

Post on 30-Mar-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 1

Virtual Memory

•  Overview / Motivation•  Locality of Reference•  Demand Paging•  Policies

–  Placement–  Replacement–  Allocation

Process 2

AA BB CC DD EE FF GG

0 1 2 3 4 5 6

HH 7 logical memory

1 v 0 9 v 1

i 2 i 3 i 4 i 5 i 6 i 7

page table

Demand Paging

•  “Lazy Swapper”: only swap in pages that are needed.•  Whenever CPU tries to access a page that is not swapped in, a page

fault occurs.

Process 1

A B C D E F G

0 1 2 3 4 5 6

H 7 logical memory

4 v 0 i 1

10 v 2 i 3 i 4

8 v 5 i 6 i 7

page table

1

6 7

2 3 4 5

0

8 9

10 11 12

physical memory

backing store

AA BB CC DD

A B

C D E F

A

F

C

AA

BB

Page 2: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 2

Mechanics of a Memory Reference

CPU v

page table

OS

some frame

physical memory

reference 1

complete reference

3 2

access memory

Mechanics of a Page Fault

CPU i

page table

OS

free frame

physical memory

reference 1

exception! 2

page is on backing store

3

load page

4

update page table 5

restart instruction

6 v

frame used

Page 3: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 3

Locality of Reference

•  Page faults are expensive!•  Thrashing: Process spends most of the time paging in

and out instead of executing code.•  Most programs display a pattern of behavior called the

principle of locality of reference.

Locality of Reference: A program that references a location n at some point in time is likely to reference the same location n and locations in the immediate vicinity of n in the near future.

Memory Access Trace: Example

Page 4: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 4

Performance of Demand PagingOperations during Page Fault:

CPU i

page table

OS

free frame

reference

restart instruction

trap

page is on backing store

load page update page table

1. service page fault interrupt

2. swap in page 3. restart process

Effective Memory Access Time ema:ema = (1-p) * ma + p * “page fault time”

where–  p = probability of a page fault–  ma = memory access time

Interlude: Architectural Considerations

•  Must be able to restart any instruction after a page fault, e.g.,

ADD A,B TO C

•  What about operations that modify several locations in memory?–  e.g. block copy operations?

•  What about operations with side effects?–  e.g. PDP-11, 80x86 auto-decrement, auto-increment

operations?–  Add mechanism for OS to “undo” instructions.

Page 5: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 5

OS Policies for Virtual Memory•  Fetch Policy

–  How/when to get pages into physical memory.–  demand paging vs. pre-paging.

•  Placement Policy–  Where in physical memory to put pages.–  Only relevant in NUMA machines.

•  Replacement Policy–  Physical memory is full. Which frame to page out?

•  Resident Set Management Policy–  How many frames to allocate to process?–  Replace someone else’s frame?

•  Cleaning Policy–  When to write a modified page to disk.

•  Load Control

Configuring the Windows Memory Manager

•  Registry Values that Affect the Memory Manager:

ClearPageFileAtShutdown

DisablePagingExecutive

IoPageLockLimit

LargePageMinimum

LargeSystemCache

NonPagedPoolQuota

NonPagedPoolSize

PagedPoolQuota

PagedPoolSize

SystemPages

Page 6: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 6

Page Replacement•  Virtual memory allows higher degrees of multiprogramming by

over-allocating memory.

1024kB

256kB 256kB 256kB 256kB 256kB

K L M N

0 1 2 3

2 v 0 4 v 1

i 2 0 v 3

address �space 1

A B C D

0 1 2 3

3 v 0 i 1

1 v 2 5 v 3

address �space 2

page tables

K 2 A 3

N 0 C 1

L 4 D 5

frame table

M

B

paging store

Mechanics of Page Replacement

Invoked whenever no free frame can be found.

Problem: Need two page transfers

vict.frame f v

nil i

victim

page table

physical memory backing store

3

5

2

4

swap out victim page

swap in new page

invalidate entry for victim page

update entry for new page

1

select victim frame

i

v f

Solution: Dirty bit.

c

d

Page 7: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 7

Page Replacement Algorithms

•  Objective: Minimize page fault rate.•  Why bother?

•  Example��for(int i=0; i<10; i++) { a = x * a; } ��

•  Evaluation: Sequence of memory references: reference string.

a

x

i

FIFO Page Replacement

f/nil v/i

nil/f i/v

victim

page table

physical memory backing store

3

5

2

4

swap out victim page

swap in new page

invalidate entry for victim page

update entry for new page

FIFO queue select victim

1 6

enter frame in FIFO queue

Page 8: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 8

FIFO Page Replacement (cont.)•  Example:

a

b

c

d

1

c

2

a

3

d

4

b

a

b

c

d

5

e

e

b

c

d

6

b

e

b

c

d

7

a

e

a

c

d

8

b

e

a

b

d

9

c

e

a

b

c

10

d

d

a

b

c

a

b

c

d

a

b

c

d

a

b

c

d

time

! ! ! ! !

•  Advantage: simplicity •  Disadvantage: Assumes that pages residing the longest in

memory are the least likely to be referenced in the future (does not exploit principle of locality).

reference�string

frames

Algorithm with provably lowest page fault rate of all algorithms:

Replace that page which will not be used for the longest period of time (in the future).

Optimal Replacement Algorithm

time

reference string

frames a

b

c

d

1

c

2

a

3

d

4

b

a

b

c

d

5

e

a

b

c

e

6

b

a

b

c

e

7

a

a

b

c

e

8

b

a

b

c

e

9

c

a

b

c

e

10

d

d

b

c

e

a

b

c

d

a

b

c

d

a

b

c

d

! !

Page 9: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 9

Approximation to Optimal: LRU

Least Recently Used: replace the page that has not been accessed for longest period of time (in the past).

time

reference string

frames a

b

c

d

1

c

2

a

3

d

4

b

a

b

c

d

5

e

a

b

e

d

6

b

a

b

e

d

7

a

a

b

e

d

8

b

a

b

e

d

9

c

a

b

e

c

10

d

a

b

d

c

a

b

c

d

a

b

c

d

a

b

c

d

! ! !

•  Stack:

LRU: ImplementationProblem: We need to keep chronological history of page references; need to be reordered upon each reference.

stack ?

?

?

?

b

d

a

c

e

b

d

a

b

e

d

a

a

b

e

d

b

a

e

d

c

b

a

e

d

c

b

a

c

?

?

?

a

c

?

?

d

a

c

?

•  Capacitors: Associate a capacitor with each memory frame. Capacitor is charged with every reference to the frame. The subsequent exponential decay of the charge can be directly converted into a time interval.

•  Aging registers: Associate aging register of n bits (Rn-1, ..., R0) with each frame in memory. Set Rn-1 to 1 for each reference. Periodically shift registers to the right.

Page 10: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 10

Approximation to LRU: Clock AlgorithmAssociate a use_bit with every frame in memory.

–  Upon each reference, set use_bit to 1.–  Keep a pointer to first “victim candidate” page.–  To select victim: If current frame’s use_bit is 0, select

frame and increment pointer. Otherwise delete use_bit and increment pointer.

time

reference string

frames a/1

b/1

c/1

d/1

1

c

2

a

3

d

4

b

5

e

6

b

7

a

8

b

9

c

10

d

! ! !

a/1

b/1

c/1

d/1

a/1

b/1

c/1

d/1

a/1

b/1

c/1

d/1

a/1

b/1

c/1

d/1

e/1

b/0

c/0

d/0

e/1

b/1

c/0

d/0

e/1

b/0

a/1

d/0

e/1

b/1

a/1

d/0

e/1

b/1

a/1

c/1

d/1

b/0

a/0

c/0

!

Improvement on Clock Algorithm�(Second Chance Algorithm)

•  Consider read/write activity of page: dirty_bit (or modify_bit)•  Algorithm same as clock algorithm, except that we scan for

frame with both use_bit and dirty_bit equal to 0.•  Each time the pointer advances, the use_bit and dirty_bit are

updated as follows: �����

•  Called Second Chance because a frame that has been written to is not removed until two full scans of the list later.

•  Note: Other authors (e.g., Stallings) describe a slightly different algorithm!

ud ud ud udbefore 11 10 01 00after 01 00 00* (select)

Page 11: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 11

Improved Clock (cont)•  Example:

time

reference string

frames a/10

b/10

c/10

d/10

1

c

2

aw

3

d

4

bw

5

e

6

b

7

aw

8

b

9

c

10

d

a/10

b/10

c/10

d/10

a/11

b/10

c/10

d/10

a/11

b/10

c/10

d/10

a/11

b/11

c/10

d/10

a/00*

b/00*

e/10

d/00

a/00*

b/10*

e/10

d/00

a/11

b/10*

e/10

d/00

a/11

b/10*

e/10

d/00

a/11

b/10*

e/10

c/10 ! ! !

The Macintosh VM Scheme (see Stallings)

•  Uses use_bit and modify_bit.

•  Step 1: Scan the frame buffer. Select first frame with use_bit and modify_bit cleared.

•  Step 2: If Step 1 fails, scan frame buffer for frame with use_bit cleared and modify_bit set. During scan, clear use_bit on each bypassed frame.

•  Now all use_bit’s are cleared. Repeat Step 1 and, if necessary, Step 2.

Page 12: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 12

The Macintosh Scheme (cont)

•  Example:

time

reference string

frames a/10

b/10

c/10

d/10

1

c

2

aw

3

d

4

bw

5

e

6

b

7

aw

8

b

9

c

10

d

a/10

b/10

c/10

d/10

a/11

b/10

c/10

d/10

a/11

b/10

c/10

d/10

a/11

b/11

c/10

d/10

a/01

b/01

e/10

d/00

a/01

b/11

e/10

d/00

a/11

b/11

e/10

d/00

a/11

b/11

e/10

d/00

a/11

b/11

e/10

c/10 ! ! !

Resident Set Management

•  Local vs. Global replacement policy:–  Local: The page to be replaced is selected from the

resident set of pages of the faulting process.– Global: The page to be replaced may belong to any

of the processes in memory.•  Each program requires a certain minimum set of pages

to be resident in memory to run efficiently.•  The size of this set changes dynamically as a program

executes.•  This leads to algorithms that attempt to maintain an

optimal resident set for each active program. (Page replacement with variable number of frames.)

Page 13: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 13

The Working Set Model

Working Set W(t,Δ) : Set of pages referenced by process during time interval (t-Δ, t).

The storage management strategy follows two rules:Rule 1: At each reference, the current working set is determined

and only those pages belonging to the working set are retained in memory.

Rule 2: A program may run only if its entire current working set is in memory.

Underlying Assumption: Size of working set remains constant over small time intervals.

Working Set Model (cont.)•  Example: (Δ = 4)

time

reference string

working set

1

c

2

c

3

d

4

b

5

c

6

e

7

c

8

e

9

a

10

d

Problems: •  Difficulty in keeping track of working set. •  Estimation of appropriate window size Δ.

a d e

e

d

e

a

d

e

a

c

d

a

c

d

a

c

d

b

c

d

b

c

d

b

c

d

e

b

c

e

c

e

a

c

e

a

c

d

e e ! ! ! ! !

Page 14: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 14

Improve Paging Performance: Page Buffering

•  Victim frames are not overwritten directly, but are removed from page table of process, and put into:–  free frame list (clean frames)– modified frame list (modified frames)

•  Victims are picked from the free frame list in FIFO order.

•  If referenced page is in free or modified list, simply reclaim it.

•  Periodically (or when running out of free frames) write modified frame list to disk.

Page Buffering and Page Stealer•  Kernel process (e.g., pageout in Solaris) swaps out memory frames that

are no longer part of a working set of a process, using reference bits.•  Periodically increments age field in valid pages.

•  Page stealer wakes up when available free memory is below low-water mark. Swaps out frames until available free memory exceeds high-water mark.

•  Page stealer collects frames to swap and swaps them out in a single run. Until then, frames still available for reference.

page out of memory

1 2 3 4 page in memory

n

page referenced

age page ... not referenced

ready to swap out

swap out swap in

Page 15: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 15

fork() System Call in Paging Systems

•  Naive: fork() makes a physical copy of parent address space. However, fork() mostly followed by an exec() call, which overwrites the address space.

•  Lazy Copy: Use copy_on_write bit:–  During fork() system call, only page table is copied. All

copy_on_write bits of pages are set. If either process writes to the page, incurs protection fault, and, in handling the fault, kernel makes a new copy of the page for the faulting process.

•  In practice, this is a bit trickier…

Implementation of Demand Paging �in UNIX SVR4

frame address agecp/wrtmod ref valprot

page table entry

swapdev block num type (swap,file,

fill 0, demand fill)

disk block descriptor

page state ref count logical device

frame table entry

block number pfdata pointer

Page 16: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 16

Linux Frame Table

•  Every page is represented by: struct page {

ulong  flags; // dirty, locked, etc.atomic_t  count; // reference counterstruct list_head  list;struct AS  *mapping; // address space associated with pageulong  index;struct list_head lru;(pte)(private)void * virtual;   // virtual address (could be null)/* … etc. */

}

Example: Reference Bit:–  If process references a page, it incurs a page fault because valid bit is

off. Page fault handler then checks software-valid bit. –  If set, kernel knows that page is really valid and can set software-

reference bit.

Demand Paging on �Less-Sophisticated Hardware

•  Demand paging most efficient if hardware sets the reference and dirty bits and causes a protection fault when a process writes a page whose copy_on_write bit is set.

•  Can duplicate valid bit by a software-valid bit and have the kernel turn off the valid bit. The other bits can then be simulated in software.

Off

HardwareValid

On

SoftwareValid

Off

SoftwareReference

before referencing page

On

HardwareValid

On

SoftwareValid

On

SoftwareReference

after referencing page

Page 17: Virtual Memory - TAMU Computer Science People Pagesfaculty.cs.tamu.edu/bettati/Courses/410/2017A/Slides/vi... ·  · 2017-05-02OS Policies for Virtual Memory • Fetch Policy

CPSC 410/611: Operating Systems

Virtual Memory 17

Exercise: Implement Copy-on-Write

Given:–  valid bit–  read-only bit Implement:

–  copy-on-write bit

Hardwarevalid

Hardwareread-only

Hardwarevalid

Hardwareread-only