Operating Systems Unit 8: – Virtual Memory management Operating Systems.

48
Operating Systems Unit 8: – Virtual Memory management Operating Systems

Transcript of Operating Systems Unit 8: – Virtual Memory management Operating Systems.

Page 1: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

Operating Systems

Unit 8:– Virtual Memory management

Operating Systems

Page 2: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 2

Introduction: virtual memory management

• page management strategies:– fetch– placement– replacement

Page 3: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 3

Basic concept: Locality

• Process tends to reference memory in highly localized patterns– referenced pages tend to be adjacent

to one another in process’s virtual address space

Page 4: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 4

Fetch Strategy: Demand Paging

• when process startspage with first instruction is

loaded• after that, only page that are being

referenced is loaded• process accumulates pages one at a

time

Page 5: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 5

Demand Paging

• waiting process occupies memory

Page 6: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 6

Fetch Strategy: Anticipatory Paging

• attempt to predict the pages a process will need and preloads these pages when memory space is available

• must be carefully designed so that overhead incurred by the strategy does not reduce system performance

Page 7: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 7

Page Replacement

• on page fault:– find referenced page in secondary storage– load page into page frame – update page table entry

• what about page being replaced ?– modified (dirty) bit indication– page must be written back to secondary

storage

• optimal strategy:– replaces the page that will not be referenced

again until furthest into the future

Page 8: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 8

Page Replacement Strategies

• characterized by – heuristic it uses to select a page for

replacement – overhead it incurs

• overview of strategies:– Random– FIFO– LRU– LFU– NUR– Second chance & clock page– Far page

Page 9: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 9

Random Page Replacement

• low-overhead • no discrimination against particular

processes• each page has an equal likelihood • but:

– could easily select as the next page to replace the page that will be referenced next

– rarely used

Page 10: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 10

First-In-First-Out (FIFO) Page Replacement

Replace oldest page – Likely to replace

heavily used pages

– relatively low overhead: simple queue

– Impractical for most systems

Page 11: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 11

Belady’s Anomaly

page fault increases when number of page frames allocated to a process is increased

Page 12: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 12

Least-Recently-Used (LRU) Page Replacement

• Heuristic– temporal locality– replace page that has not been used

recently

• but:– increased system overhead

• list of pages used, update for every page use

– poor performance in certain situations:• large loop

Page 13: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 13

Least-Frequently-Used (LFU) Page Replacement

• Heuristic:– keep pages that are being used– replaces page that is least intensively

referenced

• but:– implementation overhead

• counter for each page ?

– page with highest counter stays in memory, even if it is never used again

Page 14: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 14

Not-Used-Recently (NUR) Page Replacement

• Heuristic:– goal: approximate LRU with less overhead– uses 2 indicator bits per page:

• referenced bit• modified bit

– bits are reset periodically– order for page replacement

• un-referenced page• un-modified page

• supported in hardware on modern systems

Page 15: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 15

FIFO Variation: Second-Chance Replacement

• Examines referenced bit of the oldest page

• If off: page is replaced• If on:

– turns off the bit – moves the page to tail of FIFO queue

– keeps active pages in memory

Page 16: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 16

FIFO Variation: Clock Page Replacement

• Heuristic: – uses circular list instead of FIFO queue– marker for oldest page

• Examines referenced bit of the oldest page

• If off: page is replaced• If on:

– turns off the bit – advances marker in circular list

Page 17: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 17

Far Page Replacement

• Heuristic: – based on page access pattern of

process– track page references– replace page that is far away from

referenced pages

Page 18: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 18

Far Page Replacement: access graph

Page 19: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 19

Far Page Replacement

• Performs at near-optimal levels

• but:– access graph needs to be computed– access graph is complex to search and

manage without hardware support

Page 20: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 20

Working Set Model

• For a program to run efficiently– The system must maintain that

program’s favored subset of pages in main memory

• Heuristic:– consider locality of page references– keep “local” pages of process in

memory

Page 21: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 21

Example of page reference pattern

Page 22: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 22

Effect of memory allocation to page fault

Page 23: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 23

Concept: Working Set of process

Page 24: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 24

Working Set Window size vs. program size

Page 25: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 25

Working-Set-based page replacement strategy

• keep pages of working set in main memory

• But:– working set size changes– working set changes

• transition period yields ineffective memory use

– overhead for working set management

Page 26: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 26

Page-Fault-Frequency (PFF) Page Replacement

• Goal: improve working set approach

• Adjusts a process’s resident page set– Based on frequency at which the

process is faulting– Based on time between page faults,

called the process’s interfault time

Page 27: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 27

Program Behavior under Paging

Page 28: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 28

PFF Advantage

• Lower overhead– PFF adjusts resident page set only after

each page fault– Working set management must run

after each memory reference

Page 29: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 29

Page Release

• Problem: inactive pages may remain in main memory

• Solution:• explicit voluntary page release

• need compiler and operating system support

Page 30: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 30

Page Size

• Small page sizes– Reduce internal fragmentation– Can reduce the amount of memory required to

contain a process’s working set– More memory available to other processes

• Large page size– Reduce wasted memory from table fragmentation– Enable each TLB entry to map larger region of

memory, improving performance– Reduce number of I/O operations the system

performs to load a process’s working set into memory

Page 31: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 31

Page Size: internal fragmentation

Page 32: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 32

Page Size examples

• Multiple page size• Possibility of external fragmentation

Page 33: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 33

Global vs. Local Page Replacement

• Global: applied to all processes as a unit – ignore characteristics of individual process behavior– Global LRU (gLRU) page-replacement strategy

• Replaces the least-recently-used page in entire system• Especially bad if used with RR scheduler

– SEQ (sequence) global page-replacement strategy• Uses LRU strategy to replace pages until sequence of page

faults to contiguous pages is detected, at which point it uses most-recently-used (MRU) page-replacement strategy

• Local: Consider each process individually – adjusts memory allocation according to relative

importance of each process to improve performance

Page 34: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 34

Example: Linux Memory Management

• supports 32- and 64-bit addresses, and Non-Uniform Memory Access

• pure page paging approach– single page size– Three levels of page tables

• Page global directory• Page middle directory• Page tables

• uses “virtual memory area” concept for protection management

Page 35: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 35

Linux Page Table Organization

Page 36: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 36

Memory Zones

Page 37: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 37

Physical Memory Allocation

binary buddy algorithm for zone

Page 38: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 38

Linux Page Replacement

• only user pages can be replaced• uses page cache• modified FIFO page replacement:

– Two linked lists per zone• Active list contains pages that have been

referenced recently• Inactive list contains pages that have been

used less recently

Page 39: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 39

Linux Page Replacement

Page 40: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 40

Linux kernel swap daemon

• Periodically frees page framesby flushing dirty pages to disk

• Swaps out pages from the tail of the inactive list– considers:

• page sharing• page locking

Page 41: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 41

Windows Memory Management

• Virtual memory manager (VMM)– Executive component responsible for

managing memory

• Lazy allocation– Avoid allocating memory until

necessary

• Prefetching– Move pages from disk to main memory

before they are needed

Page 42: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 42

Memory Organization

• Paged pool– VMM can move pages to pagefile

• Nonpaged pool, limited size– VMM never moves pages to pagefile– Used for

• Device driver code• VMM code• Interrupt handler code

– Code in nonpaged pool may not access paged pool

Page 43: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 43

Windows Memory Organization

• 2-level hierarchical memory map– Page directory table

• Page directory entries (PDEs) point to page table

• One page directory table per process• Location in page directory register

– Page table• Page table entries (PTEs) point to page frames

• also: “Large Page” is several pages

Page 44: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 44

Windows Memory Organization

Page 45: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 45

Windows Memory Organization

• PTE can point to data in pagefile– 4 bits determine which pagefile– 20 bits indicate offset in pagefile

• PTE has protection bits– Read, Write, Execute– Copy-on-write

• processes can share page frames transparently

– Raise exception on access

Page 46: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 46

Windows Page Prefetching

• Logical Prefetcher– Responsible for prefetching

• Records all memory access during– Windows boot time– Application start up

• Next time prefetch needed pages• Usually done during device initialization• Faster start up

Page 47: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 47

Windows Page Replacement

• Working set– Pages a process currently has in main

memory

• Balance set manager– Responsible for trimming working sets

• Localized Least Recently Used– Similar to LRU– Localized by process

Page 48: Operating Systems Unit 8: – Virtual Memory management Operating Systems.

COP 5994 - Operating Systems 48

Agenda for next week:

– Chapter 12: Disk Performance Optimization

– Read ahead !