51
Silberschatz, Galvin and Gagne ©2009 perating System Concepts – 8 th Edition Virtual Memory

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

Embed Size (px)

Citation preview

Page 1: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Virtual Memory

Page 2: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

What to Learn?

Chapter 8 in the text book OSCE. Chapter 9 in OSC.

The benefits of a virtual memory system

The concepts of

demand paging

page-replacement algorithms

and allocation of physical page frames

Other related techniques

Copy-on-write. Memory mapped files

Page 3: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Background

Virtual memory

Only part of the program needs to be in memory for execution

Logical address space can be much larger than physical address space

Allows address spaces to be shared by several processes

Page 4: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Virtual Memory That is Larger Than Physical Memory

Page 5: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Transfer of a Paged Memory to Contiguous Disk Space

Page 6: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Demand Paging for Virtual Memory

Bring a page into memory ONLY when it is needed Less I/O needed Less memory needed Faster response More users supported

Check a page table entry when a page is needed not-in-memory bring to memory

Page 7: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Valid-Invalid Bit With each page table entry a valid–invalid bit is

associated(v in-memory, i not-in-memory)

Initially valid–invalid bit is set to i on all entries Not in memory page fault

v

v

v

v

i

i

i

….

Frame # valid-invalid bit

page table

Page 8: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page Table When Some Pages Are Not in Main Memory

Page 9: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Handling a Page Fault

1.Get an empty physical frame

2.Swap page from the disk into frame

3.Reset the page table

Set validation bit = v

4.Restart the instruction that caused the page fault

Page 10: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page Fault (Cont.)

Restart instruction Special handling

block move

Auto increment/decrement

Page 11: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Steps in Handling a Page Fault

Page 12: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Performance of Demand Paging

Page Fault Rate 0 p 1.0

if p = 0, no page faults

if p = 1, every reference is a fault

Effective Access Time (EAT)

EAT = (1 – p) x memory access

+ p (page fault overhead

+ swap page out

+ swap page in

+ restart overhead

)

Page 13: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Demand Paging Performance Example

Memory access time = 200 nanoseconds

Average page-fault service time = 8 milliseconds

EAT = (1 – p) x 200 + p (8 milliseconds)

= (1 – p x 200 + p x 8,000,000

= 200 + p x 7,999,800

If one access out of 1,000 causes a page fault, then

EAT = 8.2 microseconds.

This is a slowdown by a factor of 40!!

Page 14: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Other Benefits

Virtual memory allows other benefits

- Shared pages

- Copy-on-Write during process creation

- Memory-Mapped Files

Page 15: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.15 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Shared Pages with Virtual Memory

Page 16: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Copy-on-Write: Lazy copy during process creation

Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory

If either process modifies a shared page, this page is copied

COW allows more efficient process creation as only modified pages are copied

Page 17: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Before Process 1 Modifies Page C

Page 18: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Copy on Write: After Process 1 Modifies Page C

Page 19: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Memory-Mapped Files

Allow file I/O to be treated as routine memory access by mapping a disk block to a page in memory

Simplifies file access by treating file I/O through direct memory access rather than read() write() system calls

File access is managed with demand paging.

Several processes may map the same file into memory as shared data

Page 20: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Memory Mapped Files

Page 21: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Example of Linux mmap

#define NUMINTS 1000

#define FILESIZE NUMINTS * sizeof(int)

fd = open(FILEPATH, O_RDWR | O_CREAT | O_TRUNC, 0600);

result = lseek(fd, FILESIZE-1, SEEK_SET);

result = write(fd, "", 1);

map = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

for (i = 1; i <=NUMINTS; ++i) map[i] = 2 * i;

munmap(map, FILESIZE);

close(fd);

Page 22: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.22 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Demand paging when there is no free frame?

Page replacement – find some page in memory, but not really in use, swap it out

Algorithm

Performance – want an algorithm which will result in minimum number of page faults

Same page may be brought into memory several times

Page 23: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.23 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Need For Page Replacement

Page 24: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.24 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Page Replacement

Page 25: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.25 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Basic Page Replacement

1. Find the location of the desired page on disk

2. Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim frame

3. Swap out: Use modify (dirty) bit to reduce overhead of page transfers – only modified pages are written to disk

4. Bring the desired page into the free frame.

Update the page and frame tables

Page 26: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.26 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Expected behavior: # of Page Faults vs. # of Physical Frames

Page 27: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.27 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

First-In-First-Out (FIFO) Algorithm

Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

3 frames (3 pages can be in memory at a time per process). Maintain a queue and select based on FIFO order.

4 frames

Belady’s Anomaly: more frames more page faults

1

2

3

1

2

3

4

1

2

5

3

4

9 page faults

1

2

3

1

2

3

5

1

2

4

5 10 page faults

44 3

Page 28: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.28 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

FIFO Page Replacement

Page 29: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.29 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

FIFO Illustrating Belady’s Anomaly

Page 30: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.30 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Optimal Algorithm

Replace page that will not be used for longest period of time

4 frames example

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

How do you know this?

Used for measuring how well your algorithm performs

1

2

3

4

6 page faults

4 5

Page 31: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.31 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Optimal Page Replacement

Page 32: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.32 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Least Recently Used (LRU) Algorithm

Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Counter implementation

Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter

When a page needs to be changed, look at the counters to determine which are to change

5

2

4

3

1

2

3

4

1

2

5

4

1

2

5

3

1

2

4

3

Page 33: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.33 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

LRU Page Replacement

Page 34: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.34 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

LRU Algorithm Implementation

Stack implementation – keep a stack of page numbers in a double link form:

Page referenced:

move it to the top

requires 6 pointers to be changed

No search for replacement

Page 35: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.35 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Use Of A Stack to Record The Most Recent Page References

Page 36: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.36 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

LRU Approximation Algorithms Reference bit

With each page associate a bit, initially = 0

When page is referenced bit set to 1

Replace the one which is 0 (if one exists)

We do not know the order, however

Second chance

If page has reference bit = 1 then:

Leave this page in memory, but set reference bit 0.

Visit next page (in clock order)

If reference bit is 0, replace it.

Page 37: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.37 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Second-Chance Page-Replacement Algorithm

Page 38: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.38 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Issues with Page Allocation and Replacement

Initial Allocation. Each process needs minimum number of pages

Two schemes: Fixed allocation vs. priority allocation

Where to find frames

• Global replacement – find a frame from all processes.

• Local replacement – find only from its own allocated frames

Page 39: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.39 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Fixed Allocation

Equal allocation – For example, if there are 100 frames and 5 processes, give each process 20 frames.

Proportional allocation – Allocate according to the size of process

mSs

pa

m

sS

ps

iii

i

ii

for allocation

frames of number total

process of size

5964137127

56413710

127

10

64

2

1

2

a

a

s

s

m

i

Page 40: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.40 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Priority Allocation

Use a proportional allocation scheme using priorities rather than size

If process Pi generates a page fault,

select for replacement one of its frames

select for replacement a frame from a process with lower priority number

Page 41: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.41 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Thrashing

If a process does not have “enough” pages, the page-fault rate is very high. This leads to:

low CPU utilization

operating system thinks that it needs to increase the degree of multiprogramming

another process added to the system

Thrashing a process is busy swapping pages in and out

Page 42: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.42 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Thrashing (Cont.)

Page 43: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.43 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Relationship of Demand Paging and Thrashing

Why does demand paging work?Locality model

Process migrates from one locality to another

Localities may overlap

Need a minimum working set to be effective

Why does thrashing occur? working-sets > total memory size

Page 44: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.44 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Locality In A Memory-Reference Pattern

Page 45: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.45 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Working Sets and Page Fault Rates

Page 46: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.46 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Prefetching Pages (Prepaging)

Optimization to reduce page faults (e.g. during process startup)

Preload some pages before they are referenced

But if prefetched pages are unused, I/O and memory was wasted

Assume s pages are prepaged and α % of the pages is used

Page fault cost of s * α >

cost of prepaging s * (1- α) unnecessary pages

Page 47: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.47 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Tradeoffs: Page Size

Impact of page size selection:

Internal fragmentation

Page table size

I/O overhead

locality

Page 48: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.48 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Other Issues – TLB Reach

TLB Reach - The amount of memory accessible from the TLB

TLB Reach = (TLB Size) X (Page Size)

Ideally, the working set of each process is stored in the TLB

Increase the Page Size

Increase TLB reach

But may increase internal fragmentation as not all applications require a large page size

Page 49: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.49 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Other Issues – Impact of Program Structure on Page Faults

<128 physical memory pages for each process. Each page is of 128x4 bytes

Program structure Int[128,128] data; Each row is stored in one page Page faults of Program 1?

for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0;

Page faults of Program 2 ?

for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0;

Page 50: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.50 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Other Issues – Impact of Program Structure

<128 physical pages for each process. Each page is of 128x4 bytes Program structure

Int[128,128] data; Each row is stored in one page Program 1

for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0;

128 x 128 = 16,384 page faults

Program 2

for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0;

128 page faults

Page 51: Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Virtual Memory

9.51 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Other Issues – I/O interlock

I/O Interlock – Pages must sometimes be locked into memory

Consider I/O - Pages that are used for copying a file from a device must be locked from being selected for eviction by a page replacement algorithm