chapter 12 virtual memory copyright © 2008. operating systems, by dhananjay dhamdhere copyright ©...

57
Chapter 12 Virtual Memory Copyright © 2008

Upload: marybeth-holt

Post on 19-Dec-2015

247 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Chapter 12

Virtual MemoryCopyright © 2008

Page 2: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.2Operating Systems, by Dhananjay Dhamdhere 2

Introduction

• Virtual Memory Basics• Demand Paging• The Virtual Memory Manager• Page Replacement Policies• Controlling Memory Allocation to a Process• Shared Pages• Memory-Mapped Files• Case Studies of Virtual Memory Using Paging• Virtual Memory Using Segmentation

Page 3: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.3

• MMU translates logical address into physical one• Virtual memory manager is a software component

– Uses demand loading– Exploits locality of reference to improve performance

Operating Systems, by Dhananjay Dhamdhere 3

Virtual Memory Basics

Page 4: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.4Operating Systems, by Dhananjay Dhamdhere 4

Virtual Memory Basics (continued)

Page 5: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.5Operating Systems, by Dhananjay Dhamdhere 5

Virtual Memory Using Paging

• MMU performs address translation using page tableEffective memory address of logical address (pi, bi)= start address of the page frame containing page pi + bi

Page 6: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.6Operating Systems, by Dhananjay Dhamdhere 6

Demand Paging Preliminaries

Page 7: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.7Operating Systems, by Dhananjay Dhamdhere 7

Demand Paging Preliminaries (continued)

• Memory Management Unit (MMU) raises a page fault interrupt if page containing logical address not in memory

Page 8: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.8Operating Systems, by Dhananjay Dhamdhere 8

Demand Paging Preliminaries (continued)

A page fault interrupt is raised because Valid bit of page 3 is 0

Page 9: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.9Operating Systems, by Dhananjay Dhamdhere 9

Demand Paging Preliminaries (continued)

• At a page fault, the required page is loaded in a free page frame

• If no page frame is free, virtual memory manager performs a page replacement operation– Page replacement algorithm

– Page-out initiated if page is dirty (modified bit is set)

• Page-in and page-out: page I/O or page traffic• Effective memory access time in demand paging:

Page 10: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.10

• (Empirical) law of locality of reference: logical addresses used by process in a short interval tend to be grouped in certain portions of its logical address space

Operating Systems, by Dhananjay Dhamdhere 10

Page Replacement

Page 11: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.11

• How much memory to allocate to a process

Operating Systems, by Dhananjay Dhamdhere 11

Memory Allocation to a Process

Page 12: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.12Operating Systems, by Dhananjay Dhamdhere 12

Optimal Page Size

• Size of a page is defined by computer hardware• Page size determines:

– No of bits required to represent byte number in a page

– Memory wastage due to internal fragmentation

– Size of the page table for a process

– Page fault rates when a fixed amount of memory is allocated to a process

• Use of larger page sizes than optimal value implies somewhat higher page fault rates for a process– Tradeoff between HW cost and efficient operation

Page 13: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.13Operating Systems, by Dhananjay Dhamdhere 13

Paging Hardware

• Page-table-address-register (PTAR) points to the start of a page table

Page 14: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.14Operating Systems, by Dhananjay Dhamdhere 14

Paging Hardware (continued)

Page 15: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.15Operating Systems, by Dhananjay Dhamdhere 15

Memory Protection

• Memory protection violation raised if:– Process tries to access a nonexistent page

– Process exceeds its (page) access privileges

• It is implemented through:– Page table size register (PTSR) of MMU

• Kernel records number of pages contained in a process in its PCB

– Loads number from PCB in PTSR when process is scheduled

– Prot info field of the page’s entry in the page table

Page 16: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.16

• Translation look-aside buffer (TLB): small and fast associative memory used to speed up address translation

Operating Systems, by Dhananjay Dhamdhere 16

Address Translation and Page Fault Generation

Page 17: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.17Operating Systems, by Dhananjay Dhamdhere 17

Address Translation and Page Fault Generation (continued)

• TLBs can be HW or SW managed

Page 18: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.18Operating Systems, by Dhananjay Dhamdhere 18

Address Translation and Page Fault Generation (continued)

• Some mechanisms used to improve performance:– Wired TLB entries for kernel pages: never replaced

– Superpages

TLB hit ratio

Page 19: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.19

Superpages

• TLB reach is stagnant even though memory sizes increase rapidly as technology advances– TLB reach = page size x no of entries in TLB– It affects performance of virtual memory

• Superpages are used to increase the TLB reach– A superpage is a power of 2 multiple of page size– Its start address (both logical and physical) is aligned on

a multiple of its own size– Max TLB reach = max superpage size x no of entries in

TLB– Size of a superpage is adapted to execution behavior of a

process through promotions and demotions

Operating Systems, by Dhananjay Dhamdhere 19

Page 20: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.20Operating Systems, by Dhananjay Dhamdhere 20

Support for Page Replacement

• Virtual memory manager needs following information for minimizing page faults and number of page-in and page-out operations:– The time when a page was last used

• Expensive to provide enough bits for this purpose• Solution: use a single reference bit

– Whether a page is dirty• A page is clean if it is not dirty• Solution: modified bit in page table entry

Page 21: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.21Operating Systems, by Dhananjay Dhamdhere 21

Practical Page Table Organizations

• A process with a large address space requires a large page table, which occupies too much memory

• Solutions:– Inverted page table

• Describes contents of each page frame– Size governed by size of memory

– Independent of number and sizes of processes

– Contains pairs of the form (program id, page #)

• Con: information about a page must be searched

– Multilevel page table• Page table of process is paged

Page 22: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.22Operating Systems, by Dhananjay Dhamdhere 22

Inverted Page Tables

Use of hash tableSpeeds up search

Page 23: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.23Operating Systems, by Dhananjay Dhamdhere 23

Multilevel Page Tables

• If size of a table entry is 2e bytes, number of page table entries in one PT page is 2nb/2e

• Logical address (pi , bi) is regrouped into three fields:

– PT page with the number pi

1 contains entry for pi

– pi2 is entry number for pi

in PT page

– bi

Page 24: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.24Operating Systems, by Dhananjay Dhamdhere 24

I/O Operations in a Paged Environment

• Process makes system call for I/O operations– Parameters include: number of bytes to transfer, logical

address of the data area

• Call activates I/O handler in kernel– I/O subsystem does not contain an MMU, so I/O handler

replaces logical address of data area with physical address, using information from process page table

– I/O fix (bit in misc info field) ensures pages of data area are not paged out

– Scatter/gather feature can deposit parts of I/O operation’s data in noncontiguous memory areas

– Alternatively, data area pages put in contiguous areas

Page 25: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.25Operating Systems, by Dhananjay Dhamdhere 25

Example: I/O Operations in Virtual Memory

Page 26: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.26Operating Systems, by Dhananjay Dhamdhere 26

The Virtual Memory Manager

Page 27: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.27Operating Systems, by Dhananjay Dhamdhere 27

Example: Page Replacement

Page 28: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.28Operating Systems, by Dhananjay Dhamdhere 28

Overview of Operation of the Virtual Memory Manager

• Virtual memory manager makes two important decisions during its operation:– Upon a page fault, decides which page to replace

– Periodically decides how many page frames should be allocated to a process

Page 29: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.29Operating Systems, by Dhananjay Dhamdhere 29

Page Replacement Policies

• A page replacement policy should replace a page not likely to be referenced in the immediate future

• Examples:– Optimal page replacement policy

• Minimizes total number of page faults; infeasible in practice

– First-in first-out (FIFO) page replacement policy– Least recently used (LRU) page replacement policy

• Basis: locality of reference

• Page reference strings– Trace of pages accessed by a process during its

operation– We associate a reference time string with each

Page 30: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.30Operating Systems, by Dhananjay Dhamdhere 30

Example: Page Reference String

• A computer supports instructions that are 4 bytes in length– Uses a page size of 1KB

– Symbols A and B are in pages 2 and 5

Page 31: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.31Operating Systems, by Dhananjay Dhamdhere 31

Page 32: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.32Operating Systems, by Dhananjay Dhamdhere 32

Page Replacement Policies (continued)

• To achieve desirable page fault characteristics, faults shouldn’t increase when memory allocation is increased– Policy must have stack (or inclusion) property

Page 33: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.33Operating Systems, by Dhananjay Dhamdhere 33

FIFO page replacement policy does not exhibit stack property.

Page 34: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.34Operating Systems, by Dhananjay Dhamdhere 34

Page Replacement Policies (continued)

• Virtual memory manager cannot use FIFO policy – Increasing allocation to a process may increase page

fault frequency of process• Would make it impossible to control thrashing

Page 35: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.35Operating Systems, by Dhananjay Dhamdhere 35

Practical Page Replacement Policies

• Virtual memory manager has two threads– Free frames manager implements page replacement

policy

– Page I/O manager performs page-in/out operations

Page 36: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.36Operating Systems, by Dhananjay Dhamdhere 36

Practical Page Replacement Policies (continued)

• LRU replacement is not feasible– Computers do not provide sufficient bits in the ref info

field to store the time of last reference

• Most computers provide a single reference bit– Not recently used (NRU) policies use this bit

• Simplest NRU policy: Replace an unreferenced page and reset all reference bits if all pages have been referenced

• Clock algorithms provide better discrimination between pages by resetting reference bits periodically

– One-handed clock algorithm

– Two-handed clock algorithm

» Resetting pointer (RP) and examining pointer (EP)

Page 37: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.37Operating Systems, by Dhananjay Dhamdhere 37

Example: Two-Handed Clock Algorithm

• Both pointers are advanced simultaneously• Algorithm properties defined by pointer distance:

– If pointers are close together, only recently used pages will survive in memory

– If pointers are far apart, only pages that have not been used in a long time would be removed

Page 38: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.38Operating Systems, by Dhananjay Dhamdhere 38

Controlling Memory Allocation to a Process

• Process Pi is allocated alloci number of page frames

• Fixed memory allocation – Fixes alloc statically; uses local page replacement

• Variable memory allocation– Uses local and/or global page replacement

– If local replacement is used, handler periodically determines correct alloc value for a process

• May use working set model

• Sets alloc to size of the working set

Page 39: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.39Operating Systems, by Dhananjay Dhamdhere 39

Implementation of a Working Set Memory Allocator

• Swap out a process if alloc page frames cannot be allocated

• Expensive to determine WSi(t,∆) and alloci at every time instant t– Solution: Determine working sets periodically

• Sets determined at end of an interval are used to decide values of alloc for use during the next interval

Page 40: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.40Operating Systems, by Dhananjay Dhamdhere 40

Shared Pages

• Static sharing results from static binding performed by a linker/loader before execution of program

• Dynamic binding conserves memory by binding same copy of a program/data to several processes– Program or data shared retains its identity

– Two conditions should be satisfied:• Shared program should be coded as reentrant

– Can be invoked by many processes at the same time

• Program should be bound to identical logical addresses in every process that shared it

Page 41: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.41Operating Systems, by Dhananjay Dhamdhere 41

Shared pages should have samepage numbers inall processes

Page 42: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.42Operating Systems, by Dhananjay Dhamdhere 42

Copy-on-Write

• Feature used to conserve memory when data in shared pages could be modified– Copy-on-write flag in page table entries Memory

allocation decisions are performed statically

A private copy of page k is made

when A modifies it

Page 43: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.43Operating Systems, by Dhananjay Dhamdhere 43

Memory-Mapped Files

• Memory mapping of a file by a process binds file to a part of the logical address space of the process– Binding is performed when process makes a memory

map system call

– Analogous to dynamic binding of programs and data

Page 44: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.44Operating Systems, by Dhananjay Dhamdhere 44

Memory-Mapped Files (continued)

Page 45: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.45Operating Systems, by Dhananjay Dhamdhere 45

Case Studies of Virtual Memory Using Paging

• Unix Virtual Memory• Linux Virtual Memory• Virtual Memory in Solaris• Virtual Memory in Windows

Page 46: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.46Operating Systems, by Dhananjay Dhamdhere 46

Unix Virtual Memory

• Paging hardware differs in architectures• Pages can be: resident, unaccessed, swapped-out• Allocation of as little swap space as possible• Copy-on-write for fork• Lack reference bit in some HW architectures;

compensated using valid bit in interesting manner• Process can fix some pages in memory• Pageout daemon uses a clock algorithm

– Swaps out a process if all required pages cannot be in memory

– A swap-in priority is used to avoid starvation

Page 47: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.47Operating Systems, by Dhananjay Dhamdhere 47

Linux Virtual Memory

• Page size of 4 KB• On 64-bit architectures, uses three-level page table• States for page frames: free, active, inactive dirty,

inactive laundered, inactive clean• Page replacement based on a clock algorithm

– Uses two lists called active list and inactive list

• Buddy system allocator for allocating page frames• Several virtual memory regions for a process:

– Zero-filled, file-backed, private memory

Page 48: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.48Operating Systems, by Dhananjay Dhamdhere 48

Virtual Memory in Solaris

• Supports normal pages and superpages– Superpages:

• Automatically for processes with large address spaces• Can be requested using memcntl system call• Not used for memory-mapped files

• Solaris 6 introduced priority paging to avoid interference between file processing and virtual memory

• Page scanner tries to keep a sufficient number of page frames on cyclic page cache (since Solaris 8)– lotsfree parameter indicates how many page frames

should be free– Uses two-handed clock algorithm on a global basis

Page 49: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.49Operating Systems, by Dhananjay Dhamdhere 49

Virtual Memory in Windows

• Supports both 32-bit and 64-bit logical addresses• Page size is 4 KB• Process address space is either 2 GB or 3 GB• Two-, three- or four-level page tables and various page

table entry formats– On the X-86 architecture:

• Page frame can be in one of eight states, including: valid, free, zeroed, standby, modified, and bad

• A process must first reserve virtual address space and then commit it for specific entities

Page 50: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.50Operating Systems, by Dhananjay Dhamdhere 50

Virtual Memory in Windows (continued)

• A section object represents a section of memory that can be shared– A process maps a view to access part of a section

– Copy-on-write feature used for sharing pages

– Prototype PTE is set-up for shared pages

• TLBs are managed by HW (32-bit) or SW (64-bit)• Exploits reference locality: loads a few pages before

and after a page-faulted page into memory• Uses notion of working sets (for memory allocation)

– Clock algorithm

• Page lists: free, zero-initiated, modified, standby

Page 51: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.51Operating Systems, by Dhananjay Dhamdhere 51

Virtual Memory Using Segmentation

• A segment is a logical entity in a program, such as a function, a data structure, or an object– Or, a module that consists of some or all of these

– Convenient unit for sharing and protection

Page 52: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.52Operating Systems, by Dhananjay Dhamdhere 52

Example: Effective Address Calculation in Segmentation

• Logical address (si, bi) can be specified as ids– (alpha, beta)

• alpha: name of a segment• beta: id associated with a byte contained in alpha

Page 53: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.53Operating Systems, by Dhananjay Dhamdhere 53

Management of Memory

• Similarities to paging:– Segment fault indicates segment is not in memory– Segment-in operation is performed to load segment

• Segment-out operations may be needed first

– Can use working set of segment for allocation• Segments can be replaced on NRU basis

• Differences to paging:– Can lead to external fragmentation

• Tackled through compaction or through memory reuse techniques (first fit, best fit, etc.)

– Segments can dynamically grow or shrink in size

Page 54: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.54Operating Systems, by Dhananjay Dhamdhere 54

Sharing and Protection

• Two important issues in protection and sharing of segments are:– Static and dynamic sharing of segments

– Detecting use of invalid addresses• Protection exception if bi exceeds size of si

Page 55: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.55

• External fragmentation exists in a virtual memory using segmentation– Solution: segmentation with paging

Operating Systems, by Dhananjay Dhamdhere 55

Segmentation with Paging

Page 56: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.56Operating Systems, by Dhananjay Dhamdhere 56

Summary

• Basic actions in virtual memory using paging: address translation and demand loading of pages– Implemented jointly by

• Memory Management Unit (MMU): Hardware• Virtual memory manager: Software

• Memory is divided into page frames • Virtual memory manager maintains a page table

– Inverted and multilevel page tables use less memory but are less efficient

– A fast TLB is used to speed up address translation

Page 57: Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction

Operating Systems, by Dhananjay Dhamdhere Copyright © 2008 12.57Operating Systems, by Dhananjay Dhamdhere 57

Summary (continued)

• Which page should VM manager remove from memory to make space for a new page?– Page replacement algorithms exploit locality of reference

• LRU has stack property, but is expensive• NRU algorithms are used in practice

– E.g., clock algorithms

• How much memory should manager allocate?– Use working set model to avoid thrashing

• Copy-on-write can be used for shared pages• Memory mapping of files speeds up access to data