operating systems cmpsc 473

50
Operating Systems CMPSC 473 Virtual Memory Management (3) November 16 2010 – Lecture 20 Instructor: Bhuvan Urgaonkar

Upload: ziazan

Post on 16-Mar-2016

44 views

Category:

Documents


0 download

DESCRIPTION

Operating Systems CMPSC 473. Virtual Memory Management (3) November 16 2010 – Lecture 20 Instructor: Bhuvan Urgaonkar. Exam 1 grades. Demand Paging Example. Memory access time = 200 nanoseconds Average page-fault service time = 8 milliseconds EAT = (1 – p) x 200 + p (8 milliseconds) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Operating Systems CMPSC 473

Operating SystemsCMPSC 473

Virtual Memory Management (3)

November 16 2010 – Lecture 20Instructor: Bhuvan Urgaonkar

Page 2: Operating Systems CMPSC 473

Exam 1 grades

Page 3: Operating Systems CMPSC 473

Demand Paging 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 4: Operating Systems CMPSC 473

What happens if 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 5: Operating Systems CMPSC 473

Page Replacement• Prevent over-allocation of memory by modifying

page-fault service routine to include page replacement

• Use modify (dirty) bit to reduce overhead of page transfers – only modified pages are written to disk

• Page replacement completes separation between logical memory and physical memory – large virtual memory can be provided on a smaller physical memory

Page 6: Operating Systems CMPSC 473

Need For Page Replacement

OS

Page 7: Operating Systems CMPSC 473

Basic Page Replacement1. Find the location of the desired page on

disk2. 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. Bring the desired page into the (newly) free frame; update the page and frame tables

4. Restart the process

Page 8: Operating Systems CMPSC 473

Page Replacement

Page 9: Operating Systems CMPSC 473

Page Replacement Algorithms

• Want lowest page-fault rate• Evaluate algorithm by running it on a

particular string of memory references (reference string) and computing the number of page faults on that string

• In all our examples, the reference string is

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

Page 10: Operating Systems CMPSC 473

Graph of Page Faults Versus The Number of

Frames

Page 11: Operating Systems CMPSC 473

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)

• 4 frames

• Belady’s Anomaly: more frames cause 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 12: Operating Systems CMPSC 473

FIFO Page Replacement

Page 13: Operating Systems CMPSC 473

FIFO Illustrating Belady’s Anomaly

Page 14: Operating Systems CMPSC 473

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 15: Operating Systems CMPSC 473

Optimal Page Replacement

Page 16: Operating Systems CMPSC 473

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 17: Operating Systems CMPSC 473

LRU Page Replacement

Page 18: Operating Systems CMPSC 473

LRU Algorithm (Cont.)

• Could keep pages in order– Priority queue:

• Update = O(log n), eviction = O(log n)

• Optimize for common case– Common case: hits, not misses!– Hash table

• Update = O(1), eviction = O(n)

Page 19: Operating Systems CMPSC 473

Cost of Maintaining Exact LRU

• Hash tables: too expensive– On every reference:

• Compute hash of page address• Update time stamp

– Unfortunately: 10x - 100x more expensive!

Page 20: Operating Systems CMPSC 473

Cost of Maintaining Exact LRU

• Alternative: doubly-linked lists– Move items to front when referened– LRU items at end of list– Still too expensive

• 4-6 pointer updates per reference

• Can we do better?

Page 21: Operating Systems CMPSC 473

LRU Approximation Algorithms: Hardware

Support• 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– Need reference bit– Clock replacement– If page to be replaced (in clock order) has reference bit =

1 then:• set reference bit 0• leave page in memory• replace next page (in clock order), subject to same rules

Page 22: Operating Systems CMPSC 473

Hardware Support• Maintain reference bits for every page

– On each access, set reference bit to 1– Page replacement algorithm periodically

resets reference bits

A0

B0

C0

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

Reset reference bits

Page 23: Operating Systems CMPSC 473

Hardware Support• Maintain reference bits for every page

– On each access, set reference bit to 1– Page replacement algorithm periodically

resets reference bits

A0

B1

C0

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

Page 24: Operating Systems CMPSC 473

Hardware Support• Maintain reference bits for every page

– On each access, set reference bit to 1– Page replacement algorithm periodically

resets reference bits

A0

B1

C1

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

Page 25: Operating Systems CMPSC 473

Hardware Support• Maintain reference bits for every page

– On each access, set reference bit to 1– Page replacement algorithm periodically

resets reference bits

A0

B1

C1

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

Page 26: Operating Systems CMPSC 473

Hardware Support• Maintain reference bits for every page

– On each access, set reference bit to 1– Page replacement algorithm periodically

resets reference bits– Evict page with reference bit = 0

D1

B1

C1

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

Cost per miss = O(n)

Page 27: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A1

C1

D1

B1

Page 28: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A1

C1

D1

B1

Page 29: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A1

C1

D1

B1

Page 30: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A0

C1

D1

B1

Page 31: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A0

C1

D1

B1

Page 32: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A0

C1

D1

B0

Page 33: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A0

C1

D1

B0

Page 34: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

A0

C0

D0

B0

Page 35: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

E1

C0

D0

B0

Page 36: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

E0

C0

D0

F1

Page 37: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

E0

C1

D0

F0

Page 38: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

E0

C0

D0

F0

Page 39: Operating Systems CMPSC 473

The Clock Algorithm

• Variant of FIFO and LRU• Keep frames in circle• On page fault, OS:

– Checks reference bit of next frame– If bit = 0, replace page, set bit to 1– If bit = 1, set bit to 0, advance pointer to next frame

A, B, C, D, B, C, E, F, C, G

E0

C0

G1

F0

Page 40: Operating Systems CMPSC 473

Segmented Queue • Real systems: segment queue into two

parts– Approximate for frequently-referenced

pages• E.g., first 1/3 page frames - fast

– Exact LRU for infrequently-referenced pages

• How do we move between segments?

Page 41: Operating Systems CMPSC 473

Counting Algorithms

• Keep a counter of the number of references that have been made to each page

• LFU Algorithm: replaces page with smallest count

• MFU Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used

Page 42: Operating Systems CMPSC 473

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

mSspa

msS

ps

iii

i

ii

×==

=∑=

=

for allocation

frames of number total

process of size

5964137127

564137101271064

2

1

2

≈×=

≈×=

===

a

a

ssm

i

Page 43: Operating Systems CMPSC 473

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 44: Operating Systems CMPSC 473

Global vs. Local Allocation

• Global replacement – process selects a replacement frame from the set of all frames; one process can take a frame from another

• Local replacement – each process selects from only its own set of allocated frames

Page 45: Operating Systems CMPSC 473

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 46: Operating Systems CMPSC 473

Thrashing (Cont.)

Page 47: Operating Systems CMPSC 473

Demand Paging and Thrashing

• Why does demand paging work?Locality model– Process migrates from one locality to another– Localities may overlap

• Why does thrashing occur? size of locality > total memory size

Page 48: Operating Systems CMPSC 473

Locality In A Memory-Reference Pattern

Page 49: Operating Systems CMPSC 473

Working-set model

Page 50: Operating Systems CMPSC 473

Keeping Track of the Working Set

• Approximate with interval timer + a reference bit• Example: ∆ = 10,000

– Timer interrupts after every 5000 time units– Keep in memory 2 bits for each page– Whenever a timer interrupts copy and sets the values of

all reference bits to 0– If one of the bits in memory = 1 => page in working set

• Why is this not completely accurate?• Improvement = 10 bits and interrupt every 1000

time units