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

Preview:

Citation preview

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

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

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

Virtual Memory That is Larger Than Physical Memory

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

Transfer of a Paged Memory to Contiguous Disk Space

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

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

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

Page Table When Some Pages Are Not in Main 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

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

Page Fault (Cont.)

Restart instruction Special handling

block move

Auto increment/decrement

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

Steps in Handling a Page Fault

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

)

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!!

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

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

Shared Pages with 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

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

Before Process 1 Modifies Page C

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

Copy on Write: After Process 1 Modifies Page C

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

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

Memory Mapped Files

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);

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

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

Need For Page Replacement

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

Page Replacement

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

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

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

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

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

FIFO Page Replacement

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

FIFO Illustrating Belady’s Anomaly

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

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

Optimal Page Replacement

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

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

LRU Page Replacement

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

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

Use Of A Stack to Record The Most Recent Page References

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.

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

Second-Chance Page-Replacement Algorithm

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

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

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

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

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

Thrashing (Cont.)

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

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

Locality In A Memory-Reference Pattern

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

Working Sets and Page Fault Rates

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

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

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

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;

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

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

Recommended