Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction."— Presentation transcript:

1 Chapter 12 Virtual Memory Copyright © 2008

2 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 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

3 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.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 Dhamdhere3 Virtual Memory Basics

4 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.4Operating Systems, by Dhananjay Dhamdhere4 Virtual Memory Basics (continued)

5 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.5Operating Systems, by Dhananjay Dhamdhere5 Virtual Memory Using Paging MMU performs address translation using page table Effective memory address of logical address (p i, b i ) = start address of the page frame containing page p i + b i

6 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.6Operating Systems, by Dhananjay Dhamdhere6 Demand Paging Preliminaries

7 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.7Operating Systems, by Dhananjay Dhamdhere7 Demand Paging Preliminaries (continued) Memory Management Unit (MMU) raises a page fault interrupt if page containing logical address not in memory

8 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.8Operating Systems, by Dhananjay Dhamdhere8 Demand Paging Preliminaries (continued) A page fault interrupt is raised because Valid bit of page 3 is 0

9 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.9Operating Systems, by Dhananjay Dhamdhere9 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:

10 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.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 Dhamdhere10 Page Replacement

11 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.11 How much memory to allocate to a process Operating Systems, by Dhananjay Dhamdhere11 Memory Allocation to a Process

12 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.12Operating Systems, by Dhananjay Dhamdhere12 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

13 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.13Operating Systems, by Dhananjay Dhamdhere13 Paging Hardware Page-table-address-register (PTAR) points to the start of a page table

14 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.14Operating Systems, by Dhananjay Dhamdhere14 Paging Hardware (continued)

15 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.15Operating Systems, by Dhananjay Dhamdhere15 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

16 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.16 Translation look-aside buffer (TLB): small and fast associative memory used to speed up address translation Operating Systems, by Dhananjay Dhamdhere16 Address Translation and Page Fault Generation

17 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.17Operating Systems, by Dhananjay Dhamdhere17 Address Translation and Page Fault Generation (continued) TLBs can be HW or SW managed

18 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.18Operating Systems, by Dhananjay Dhamdhere18 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

19 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.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 Dhamdhere19

20 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.20Operating Systems, by Dhananjay Dhamdhere20 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

21 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.21Operating Systems, by Dhananjay Dhamdhere21 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

22 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.22Operating Systems, by Dhananjay Dhamdhere22 Inverted Page Tables Use of hash table Speeds up search

23 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.23Operating Systems, by Dhananjay Dhamdhere23 Multilevel Page Tables If size of a table entry is 2 e bytes, number of page table entries in one PT page is 2 n b /2 e Logical address (p i, b i ) is regrouped into three fields: –PT page with the number p i 1 contains entry for p i –p i 2 is entry number for p i in PT page –b i

24 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.24Operating Systems, by Dhananjay Dhamdhere24 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

25 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.25Operating Systems, by Dhananjay Dhamdhere25 Example: I/O Operations in Virtual Memory

26 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.26Operating Systems, by Dhananjay Dhamdhere26 The Virtual Memory Manager

27 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.27Operating Systems, by Dhananjay Dhamdhere27 Example: Page Replacement

28 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.28Operating Systems, by Dhananjay Dhamdhere28 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

29 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.29Operating Systems, by Dhananjay Dhamdhere29 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

30 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.30Operating Systems, by Dhananjay Dhamdhere30 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

31 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.31Operating Systems, by Dhananjay Dhamdhere31

32 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.32Operating Systems, by Dhananjay Dhamdhere32 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

33 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.33Operating Systems, by Dhananjay Dhamdhere33 FIFO page replacement policy does not exhibit stack property.

34 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.34Operating Systems, by Dhananjay Dhamdhere34 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

35 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.35Operating Systems, by Dhananjay Dhamdhere35 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

36 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.36Operating Systems, by Dhananjay Dhamdhere36 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)

37 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.37Operating Systems, by Dhananjay Dhamdhere37 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

38 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.38Operating Systems, by Dhananjay Dhamdhere38 Controlling Memory Allocation to a Process Process P i is allocated alloc i 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

39 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.39Operating Systems, by Dhananjay Dhamdhere39 Implementation of a Working Set Memory Allocator Swap out a process if alloc page frames cannot be allocated Expensive to determine WS i (t,∆) and alloc i 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

40 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.40Operating Systems, by Dhananjay Dhamdhere40 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

41 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.41Operating Systems, by Dhananjay Dhamdhere41 Shared pages should have same page numbers in all processes

42 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.42Operating Systems, by Dhananjay Dhamdhere42 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

43 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.43Operating Systems, by Dhananjay Dhamdhere43 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

44 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.44Operating Systems, by Dhananjay Dhamdhere44 Memory-Mapped Files (continued)

45 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.45Operating Systems, by Dhananjay Dhamdhere45 Case Studies of Virtual Memory Using Paging Unix Virtual Memory Linux Virtual Memory Virtual Memory in Solaris Virtual Memory in Windows

46 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.46Operating Systems, by Dhananjay Dhamdhere46 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

47 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.47Operating Systems, by Dhananjay Dhamdhere47 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

48 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.48Operating Systems, by Dhananjay Dhamdhere48 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

49 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.49Operating Systems, by Dhananjay Dhamdhere49 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

50 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.50Operating Systems, by Dhananjay Dhamdhere50 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

51 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.51Operating Systems, by Dhananjay Dhamdhere51 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

52 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.52Operating Systems, by Dhananjay Dhamdhere52 Example: Effective Address Calculation in Segmentation Logical address (s i, b i ) can be specified as ids –(alpha, beta) alpha : name of a segment beta : id associated with a byte contained in alpha

53 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.53Operating Systems, by Dhananjay Dhamdhere53 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

54 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.54Operating Systems, by Dhananjay Dhamdhere54 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 b i exceeds size of s i

55 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.55 External fragmentation exists in a virtual memory using segmentation –Solution: segmentation with paging Operating Systems, by Dhananjay Dhamdhere55 Segmentation with Paging

56 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.56Operating Systems, by Dhananjay Dhamdhere56 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

57 Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.57Operating Systems, by Dhananjay Dhamdhere57 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


Download ppt "Chapter 12 Virtual Memory Copyright © 2008. Operating Systems, by Dhananjay Dhamdhere Copyright © 200812.2Operating Systems, by Dhananjay Dhamdhere2 Introduction."

Similar presentations


Ads by Google